关于双等号判断的深入面试题
2017-07-17 10:32
423 查看
1.如果整型字面量的值在-128到127之间,那么不会new新的Integer对象,而是直接引用常量池中的Integer对象,所以上面的面试题中f1==f2的结果是true,而f3==f4的结果是false。
Integer f1=100,f2=100,f3=150,f4=150;
System.out.println(f1==f2);
System.out.println(f3==f4);
2.存在于.class文件中的常量池,在运行期被JVM装载,并且可以扩充。String的intern()方法就是扩充常量池的一个 方法;当一个String实例str调用intern()方法时,Java查找常量池中是否有相同Unicode的字符串常量,如果有,则返回其的引用, 如果没有,则在常量池中增加一个Unicode等于str的字符串并返回它的引用;看例3就清楚了
3.Java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例。instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。
用法:
result = object instanceof class
参数:
Result:布尔类型。
Object:必选项。任意对象表达式。
Class:必选项。任意已定义的对象类。
说明:
如果 object 是 class 的一个实例,则 instanceof 运算符返回 true。如果 object 不是指定类的一个实例,或者 object 是 null,则返回 false。
A a=null;
B b=null;
String str="";
System.out.println(a instanceof A);
b=new B();
System.out.println(b instanceof B);
System.out.println(str instanceof String);
更多面试题请狠狠的点击 下载
Integer f1=100,f2=100,f3=150,f4=150;
System.out.println(f1==f2);
System.out.println(f3==f4);
2.存在于.class文件中的常量池,在运行期被JVM装载,并且可以扩充。String的intern()方法就是扩充常量池的一个 方法;当一个String实例str调用intern()方法时,Java查找常量池中是否有相同Unicode的字符串常量,如果有,则返回其的引用, 如果没有,则在常量池中增加一个Unicode等于str的字符串并返回它的引用;看例3就清楚了
String s1="JavaCode"; String s2=new String("JavaCode"); String s3="Java"; String s4="Code"; String s5="Java"+"Code"; String s6=s3+s4; System.out.println(s1==s2); System.out.println(s1==s5); System.out.println(s1==s6); System.out.println(s1==s6.intern()); System.out.println(s2==s2.intern());
3.Java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例。instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。
用法:
result = object instanceof class
参数:
Result:布尔类型。
Object:必选项。任意对象表达式。
Class:必选项。任意已定义的对象类。
说明:
如果 object 是 class 的一个实例,则 instanceof 运算符返回 true。如果 object 不是指定类的一个实例,或者 object 是 null,则返回 false。
A a=null;
B b=null;
String str="";
System.out.println(a instanceof A);
b=new B();
System.out.println(b instanceof B);
System.out.println(str instanceof String);
更多面试题请狠狠的点击 下载
相关文章推荐
- 关于MySQL latch争用深入分析与判断
- java中if判断里关于两个Boolean值等号连接的理解
- 160822、关于javascrip ==(等号) 和===(恒等)判断
- 深入解答关于Python的11道基本面试题
- 关于序列的面试题1 ------------- 判断整数序列是否是二叉排序树的后续遍历
- MySQL20个经典面试题(关于引擎 日志 备份 比较深入)
- 关于DOM元素定位属性的深入学习
- 关于c#判断是否包含汉子
- 翻译语音天使 voiceangel 控件 关于判断呼叫状态部分的说明
- 判断出栈顺序的合法性(面试题)
- 关于不用if,switch,?:语句判断两个数大小及其他
- 关于类加载的奇怪面试题
- 关于sizeof的一道面试题
- C/C++程序员应聘常见面试题深入剖析
- 数据结构与算法分析(三) —— 关于树的深入探讨
- 深入Python(1): 字典排序 关于sort()、reversed()、sorted()
- 团体程序设计天梯赛-练习集 L2-012. 关于堆的判断 解题报告
- 关于《剑指offer》中面试题30中的第一种算法的推导
- 关于华为一道面试题 ( ++a )和( a++ )
- 一个算法:关于如何判断两个时间是否在允许误差内相等