天梯180402
1. 设int x=1,float y=2,则表达式x/y的值是:()
A. 0
B. 1
C. 2
D. 以上都不是
2. 以下代码执行后输出结果为( )
public class Test
{
public static Test t1 = new Test();
{
System.out.println("blockA");
}
static
{
System.out.println("blockB");
}
public static void main(String[] args)
{
Test t2 = new Test();
}
}
A. blockAblockBblockA
B. blockAblockAblockB
C. blockBblockBblockA
D. blockBblockAblockB
3. (不定项)线程安全的map在JDK 1.5及其更高版本环境 有哪几种方法可以实现?
A. Map map = new HashMap()
B. Map map = new TreeMap()
C. Map map = new ConcurrentHashMap();
D. Map map = Collections.synchronizedMap(new HashMap());
4. 对于JVM内存配置参数:
-Xmx10240m -Xms10240m -Xmn5120m -XXSurvivorRatio=3
,其最小内存值 和 Survivor区 总大小分别是()
A. 5120m,1024m
B. 5120m,2048m
C. 10240m,1024m
D. 10240m,2048m
5. (不定项)下面哪些赋值语句是正确的()
A. long test=012
B. float f=-412
C. int other =(int)true
D. double d=0x12345678
E. byte b=128
//------------分割线-------------
D
A
CD
D
ABD
答案详解:
1. float y=2; OK(int自动转换为float)但如果是float y =2.0;则会报错,必须加f。
答案是 0.5。
2. 静态域执行在main函数之前,而静态成员先于静态代码块,而代码块每new一个新的对象就执行一次。所以选A
3. HashTable 和 ConcurrentHashMap 都是线程安全的。区别在于他们对加锁的范围不同,HashTable 对整张Hash表进行加锁,而ConcurrentHashMap将Hash表分为16桶(segment),每次只对需要的桶进行加锁。
Collections 类提供了synchronizedXxx()方法,可以将指定的集合包装成线程同步的集合。比如, List list = Collections.synchronizedList(new ArrayList()); Set set = Collections.synchronizedSet(new HashSet());
4. -Xmx : 最大堆大小
-Xms : 初始堆大小
-Xmn : 年轻代大小
-XXSurvivorRatio : 年轻代中Eden区与Survivor区的大小比值
年轻代5120m, Eden : Survivor =3, Survivor区大小 = 1024m (Survivor区有两个,即将年轻代分为5份,每个Survivor区各占一份),总大小为2048m。
-Xms 初始堆大小 即最小内存值 为 10240 m
5. long test = 012; //0开头 八进制
float f =-412; // int低精度自动转高精度
boolean不能转int
double d =0x12345678 //0x开头 十六进制 低精度自动转高精度
byte 范围 -128~127