Java练习题 01

记录一些题
1. 以下哪种方式实现的单例是线程安全的?
正确答案: A B C D 你的答案: A B C D (正确)
A.枚举
B.静态内部类
C.双检锁模式
D.饿汉式

解释:1.饿汉式(线程安全,调用效率高,但是不能延时加载); 2.懒汉式(线程安全,调用效率不高,但是能延时加载(synchronized 和 volatile 保证懒汉式单例模式的线程安全)); 3.Double CheckLock实现单例:DCL也就 是双重锁判断机制(由于JVM底层模型原因,偶尔会出问题,不建议使用); 4.静态内部类实现模式(线程安全,调用效率高,可以延时加载); 5.枚举类(线程安全,调用效率高,不能延时加载,可以天然的防止反射和反序列化调用)。

2.
代码执行顺序:
父类静态变量,方法→父类静态代码块→子类静态变量,方法→子类静态代码块→父类非静态代码快→父类构造函数→子类非静态代码快→子类构造函数。注:静态变量,方法按照位置顺序执行。

3.
public class IfTest{
public static void main(string[]args){
int x=3;
int y=1;
if(x=y)
System.out.println(“Not equal”);
else
System.out.println(“Equal”);
}
}
What is the result?
正确答案: C 你的答案: B(错误)
A.The output is “Equal”
B.The output in “Not Equal”
C.An error at line 5 causes compilation to fall.
D.The program executes but does not print a message.

解释:其实这个是由于java和C语言的不同处理机制导致的:

C语言中
当if语句中的条件为赋值语句时,实际上是将赋值后的结果与0进行比较【左值】
if(1) 由于1>0 所以认为是true

java语言中,虽然也用了左值,但是不再与0比较,而是直接将0放入if()中
但是int类型,不能转换为boolean,所以会报错:“ Type mismatch: cannot convert from int to boolean ”

4. 关于equals和hashCode描述正确的是 ()
正确答案: A B C 你的答案: A B (错误)
A.两个obj,如果equals()相等,hashCode()一定相等(符合代码规范的情况下)
B.两个obj,如果hashCode()相等,equals()不一定相等
C.两个不同的obj, hashCode()可能相等
D.其他都不对
解释:“= =”:作用是判断两个对象的地址是否相等,即,判断两个对象是不是同一个对象,如果是基本数据类型,则比较的是值是否相等。
“equal”:作用是判断两个对象是否相等,但一般有两种使用情况:
1.类没有覆盖equals()方法,则相当于通过“= =”比较
2.类覆盖equals()方法,一般,我们都通过equals()方法来比较两个对象的内容是否相等,相等则返回true,如String

地址比较是通过计算对象的哈希值来比较的,hashcode属于Object的本地方法,对象相等(地址相等),hashcode相等,对象不相等,hashcode()可能相等,哈希冲突

5. JVM内存不包含如下哪个部分( )
正确答案: D 你的答案: D (正确)
A.Stacks
B.PC寄存器
C.Heap
D.Heap Frame
在这里插入图片描述
6.
floor: 求小于参数的最大整数。返回double类型-----n. 地板,地面
例如:Math.floor(-4.2) = -5.0

ceil: 求大于参数的最小整数。返回double类型-----vt. 装天花板;
例如:Math.ceil(5.6) = 6.0

round: 对小数进行四舍五入后的结果。返回int类型
例如:Math.round(-4.6) = -5

7. 下面哪一项不属于优化Hibernate所鼓励的?
正确答案: A 你的答案: B (错误)
A.使用单向一对多关联,不使用双向一对多
B.不用一对一,用多对一取代
C.配置对象缓存,不使用集合缓存
D.继承类使用显式多态
解释:
优化Hibernate所鼓励的7大措施:
1.尽量使用many-to-one,避免使用单项one-to-many
2.灵活使用单向one-to-many
3.不用一对一,使用多对一代替一对一
4.配置对象缓存,不使用集合缓存
5.一对多使用Bag 多对一使用Set
6.继承使用显示多态 HQL:from object polymorphism=“exlicit” 避免查处所有对象
7.消除大表,使用二级缓存

8. 下列不属于算法结构的是()
正确答案: C 你的答案: C (正确)
A.输入数据
B.处理数据
C.存储数据
D.输出结果

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值