99%的java程序员都遇到过的笔试题

99%的java程序员都遇到过的笔试题
www.zeeklog.com  - 99%的java程序员都遇到过的笔试题
请看题:
www.zeeklog.com  - 99%的java程序员都遇到过的笔试题

先说明,这道理的几个选项其实都不严谨,正确的输出应该是:

goodand gbc

这里咱们忽略空格,所以答案就是B,主要的是本道题考察的是Java语言中传参方式和不可变类的知识。

**不可变类(Immutable class)**是指当创建了这个类的实例以后,就不允许修改它的值了,也就是说,一个对象一旦被创建出来后,在其正规生命周期中,他的成员变量就不能被修改。有点类似于常量,就是只允许其他程序进行读操作,而不允许其他程序对其进行修改操作。

在Java类库中,所有基本类型的包装类都是不可变类,比如:Integer,Long,Float等

public final class Integer extends Number implements Comparable<Integer> {	
}
public final class Long extends Number implements Comparable<Long> {	
}
public final class Short extends Number implements Comparable<Short> {	
}
public final class Float extends Number implements Comparable<Float> {	
}

除此之外,String类也是不可变的,

public final class String implements java.io.Serializable, Comparable<String>, CharSequence {	
}

有人会疑问下面的代码:

public static void main(String[] args) {	
    String string=new String("hello");	
    string=string+" world";	
    System.out.println(string);	
 }

运行结果:

hello world

表明上看,string=string+" world";的作用好像是修改了String类型对象的值,其实非也,String string=new String("hello");语句声明了一个变量string指向了String类型对象的引用,这个对象的内容是hello。这里string=string+" world";并没有修改new String("hello")这个对象的值,而是string指向了另外一个String类型的对象,该对象内容为 hello world。原来的那个字符串还在内存中,不曾被修改过。

在Java语言中,除了8种原始的数据类型byte、short、double、long,int,float,char和boolean外,其他的类型都是对象,在方法调用的时候,传递的都是引用。引用从本质上来讲也是按值传递,只不过传递的这个值是对象的引用而已,因此,在方法调用的时候,对形参引用所指对象属性值的修改可见。但是对引用值本身的修改对实参是不可见的。

关键词:参数传递,形参,实参,不可变类

www.zeeklog.com  - 99%的java程序员都遇到过的笔试题

Read more

印度统治阶级锁死底层人的5大阳谋

印度统治阶级锁死底层人的5大阳谋

基于社会学和心理学视角: 1. 情感道德: 统治阶级通过塑造道德规范和情感价值观,引导底层人群的行为。例如,宣扬“勤劳致富”“忍耐美德”等观念,让底层人接受现状并自我约束。这种道德框架往往掩盖结构性不平等,使人们将个人困境归咎于自身而非系统。 2. 欲望控制: 通过消费主义和媒体宣传,统治阶级刺激底层人的物质与社会欲望(如名牌、地位),但同时设置经济壁垒,使这些欲望难以实现。底层人被困在追求“更好生活”的循环中,精力被分散,无法聚焦于挑战权力结构。 3. 情绪煽动: 利用恐惧、愤怒或民族主义等情绪,统治阶级可以通过媒体或公共事件转移底层人对社会问题的注意力。例如,制造外部敌人或内部对立(如阶层、种族矛盾),让底层人内耗而非联合反抗。 4. 暴利诱惑: 通过展示少数“成功案例”或快速致富的机会(如赌博、投机),诱导底层人追逐短期暴利。这种机制不仅让底层人陷入经济风险,还强化了对现有经济体系的依赖,削弱长期变革的可能性。 5. 权力震撼: 通过展示统治阶级的权力(

By Ne0inhk