笔试那些事(玩逻辑)

主要说说最近在笔试中频繁遇到的题目,涉及到:逻辑题、实例变量与静态变量的区别、Java类的加载问题

1.“盲人摸牌”,有52张牌,其中10张正面朝上,排除盲人能摸出正反面这种情况,问:盲人要把牌分成两部分,怎么保证每一部分正面朝上的牌数相等?

2.“烧香定时”,有两根分布不均的香,已知每根香正常烧完的时间是一个小时,问:怎么利用香来确定一段15分钟的时间?

3.“大智保命”,某小岛居住一群与世隔绝多年的人,某天,一探险家误入该岛,被岛上人抓住(不纠结语言不通的问题),岛上人说:外人进来都要被杀死,我们允许你有遗言,这将决定你的死亡方式。如果你说的是真话,你将会被烧死,如果你说的是假话,你将会被五马分尸。问:冒险家怎么说才能保命?

实例变量与静态变量的区别:
实例变量:是类对象的属性,只有在创建类对象时,才会有实例变量
静态变量:也称类变量,是类所有,在类第一次被加载时就会存在
比较典型例子的是:实例变量无法通过类名直接调用,需要创建类对象,通过对象进行调用,但是静态变量却可以直接通过类名进行调用。

关于类加载问题
主要是写出程序的输出,涉及有父类和子类的普通代码块、静态代码块及构造函数,下面是自己测试写的例子
<pre>public class Parent {
{
System.out.println("父类普通代码块");
}

static{
    System.out.println("父类静态代码块");
}

public Parent() {
    System.out.println("父类构造函数");
}

}</pre>

<pre>public class Children extends Parent{
{
System.out.println("子类普通代码块");
}

static {
    System.out.println("子类静态代码块");
}

public Children() {
    System.out.println("子类构造函数");
}

}</pre>

<pre>public class LoadOrderTest {
public static void main(String[] args) {
Parent parent = new Children();
parent = new Children();
}

}</pre>
程序运行结果如下


44137534.png

!!静态代码块在整个过程中只会加载一次

</br>

逻辑题答案:
1.“盲人摸牌”,首先分成42和10两部分,然后把10的那一部分牌全部翻过来。
解析:共有10张正面朝上的牌,假设42中有x张正面,则10中有(10-x)张正面,10那部分全部翻了之后(正面变成反面,反面变成正面),10中正面的牌为(10-(10-x))张,即x张。所以此时两部分正面朝上的牌数相同

2.“烧香定时”,姑且把香编号为A、B。同一时刻,把A两头点燃,B一头点燃。由于一根香烧完是一个小时,那么此种情况下A烧完需要半个小时。A烧完时,点燃B的另一头。那么点燃B另一头的这一刻到B烧完这段时间即为15分钟。

3.“大智保命”,冒险家说:我将会被五马分尸
解析:因为如果这句话为真,便与真话会被烧死相矛盾,若为假,便与假话会被五马分尸矛盾

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,785评论 18 399
  • 中午在宿舍休息,辗转多次,迟迟进不入睡眠的感觉,随即拿出手机,浏览起了新闻。 还记得五年前,刚登入大学,那时候自己...
    梦幻的路人阅读 172评论 0 0
  • 不听闲话,不八卦。
    再忘记帐号就是智障阅读 222评论 0 0
  • 市面上常见的php框架有很多,最近因为有技术需求,所以对常见的php框架的中间件进行了一些了解。各个框架尽管在目标...
    selbstkennen梁晨阅读 11,850评论 7 29
  • 心脏里的血液在翻腾 咚咚地撞得双耳不安 把电视的声音调到最大 门窗紧闭 却像失聪那般 听不见声响 空气那样嘈杂 包...
    霖子酱阅读 277评论 1 2