JavaSE_笔试题_简答题1,javase简答题
JavaSE_笔试题_简答题1,javase简答题
1. 运行代码,给出相应结果:
int a=5/(3>>2);
System.out.println(a);
答案:抛出异常:Exception in thread “main” java.lang.ArithmeticException: / by zero。
2. 运行代码,给出相应结果:
int b=1,c;
c=b+b++-b--;
System.out.println(c);
System.out.println(b);
答案:c=0,b=1。c等价于c=b+(b++)-(b- -);然后算完括号后,再由等式从左到右计算。
3. 运行代码,给出相应结果:
char c = 'a';
System.out.println((char)(c-32));
答案:A。字符在参与运算的时候,是用其ASCII码进行计算。
4. 运行代码,给出相应结果:
byte b=127;
byte b1=1;
b1+=b;
System.out.println(b1);
答案:-128。最后b1的二进制是1000 0000,也就是-128的补码。
5. 用最有效的方法算出2乘以8等于几?
答案:int a = 2<<3。这是最省内存,效率最高的做法。
6. 说说&和&&的区别?
答案:<1>&和&&都可以做逻辑与(and)的运算符,当运算符两边表达式都为true时,结果为true。否则结果为false。
<2>&&运算符还具有短路功能,如果第一个表达式为false,那么就不再计算第二个表达式,结果为false。
<3>&还可以用作位运算符,如果&两边的表达式不是boolean类型的时候,那么&表示按位与操作。
7. 使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变?
答案:使用final关键字修饰一个变量时,是指引用变量不能变,引用变量所指向的对象中的内容还是可以改变的。简而言之就是对于一个final变量,如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改;如果是引用类型的变量,则在对其初始化之后便不能再让其指向另一个对象。
8."=="和equals方法究竟有什么区别?
答案:==操作符是专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中的存储值是否相同。简而言之就是对于基本类型,==是比较值,对于引用对象就是比较地址。
equals方法是用来比较两个两个独立的对象是否相同,是object类中的一个方法,我们可以根据需求进行重写比较相等的依据。
9.是否可以从一个static 方法内部发出对非static方法的调用?
答案:不可以。static方法是跟类关联在一起的,而非static是跟对象关联在一起的,也就是需要先有对象才行。调用static方法的时候,可能还没创建任何实例对象,这时候根本调用不了非static方法。
10.Integer和int的区别?
答案:int是8种原始数据类型之一,是基本数据,默认值为0。而Interger是int的封装类,是个对象,默认值为null。Interger能够区分赋值和未赋值,而int不能。
相关文章
- 暂无相关文章
用户点评