JavaSE考试题库基础题1-10(某硅谷内部核心资料)
一、基础题(2分/题)
1. 用最有效的的方法算出2乘以8等于几
2<<3。因为将一个数左移n位,就相当于乘以了2的n次方,那么,一个数乘以8只要将其左移3位即可,而位运算cpu直接支持的,效率最高,所以,2乘以8等於几的最效率的方法是2 << 3。
2. Math.round(11.5)和Math.round(-11.5)的值是多少?
Math.round(11.5):12
Math.round(-11.5):-11
数轴拉出来,标点向右看
3. 两个对象a和b,请问a==b和a.equals(b)有什么区别?
a==b:比较对象地址
a.equals(b):如果a对象没有重写过equals方法,也是比较地址,如果重写了就按照重写的规则比较。
4. switch是否能作用在byte上,是否能作用在long上,是否能作用在String上?
可以,不可以,可以(7后)
switch支持的类型byte,short,int,char
JDK1.5之后支持枚举,
JDK1.7之后支持String类型。
5. char型变量中是否可以存储一个汉字?
能,一个char=一个unicode 可以表示一个汉字
6. float f=3.4;是否正确,表达式15/2*2的值是多少
不正确,float f = 3.4F;
14
7. 编写代码实现两个变量值交换,int m = 3, n =5;
方法一:
Int temp=m;
m=n;
n=temp;
缺点:需要一个临时变量。
方法二:
先将两个数加在一起
m=m+n;
n=m-n;
m=m-n;
缺点:当m和n较大时,有可能出现精度失准
方法三:
采用异或算法
m=m^n;
n=m^n; //(m^n)^n==m
m=m^n; //(m^n)^m==n
优点:没有上述两种方法的缺点。
8. Java的基本数据类型有哪些?String是基本数据类型吗?
基本(8个):boolean(1bit),byte(1byte),short(2byte),char(2byte),int(4byte),long(8byte),float,double
String不是基本数据类型
9. 数组有没有length()方法?String有没有length()方法?File有没有length()方法?ArrayList有没有length()方法?(纯粹SB题)
数组没有length()方法,但是有length属性。
String和File有length()方法。
ArrayList没有length()方法,有size()方法获取有效元素个数。
10. String str = new String(“hello”);创建了几个对象?
字符串常量池中有一个对象,堆中有一个字符串对象。