《Java必须知道的300个问题》读书总结

这本书是在图书馆随便逛的时候找到的书。花了一下午看完了,感觉有用的地方不是很多,大部分都是些概念,并没有太大用途。不过里边有些东西还是可以看一看的,总结如下。

Java语言基础

1.表达式3-2.6==0.4的值?

答:false。 这是有基本数据类型浮点数计算的不精确性造成的。

3-2.6=0.39999999999999999999..

可以用BigDecimal进行浮点数精确计算。

2.&和&&两个运算符的区别?

答:& 位与,&& 逻辑与。

3.不适用循环和条件语句如何求1+2+3+…+n?

答:函数递归调用。

4.能正确编译”short s=1;s=s+1;”吗?

答:不能。类型不匹配。可:s+=1;

5. += 计算结果一定正确吗?

答:不。可能溢出。

6.两个整数相乘结果一定正确吗?

不。

long num=2147483648.超出int范围,编译错误。

long num=214748364*10 结果为-10.int溢出。

long num=2147483648L*10 正确。

7.如何跳出多重嵌套循环?

label:
fori(){
break label;
}

8.存储相同数据量的一维数组和二维数组所占内存是否相同?

二维数组远远大于以为数组。???

9.只能通过构造方法构造对象吗?

不是。

Calendar c=Clalendar.getInstance();

10.接口和抽象类的区别?

1、抽象类可以提供成员的实现细节,而接口不能。数级抽象时如果要求提供成员的实现细节,可选抽象类。

2、如果涉及抽象时选择抽象类,在以后的版本中可以随意为抽象类添加新成员。而接口只有修改现有代码才能添加新成员。

3.一个类可以实现多个接口,但是能继承一个抽象类。如果要实现类似多重继承的效果,选接口。

两者相似,某些功能可以互换。但理念不同,抽象类用于继承,表示is-a;接口用于实现,表示like-a。

11.clone()方法的使用?

1.浅克隆

被克隆的对象各个属性都是基本类型,而不是引用类型,如果存在引用类型的属性,则需要进行深克隆。

2.深克隆

如果需要克隆的饿对象的域包含引用类型,则需要使用深克隆;
繁殖,可以直接使用Object类的clone()方法进行浅克隆。

12.两种方式可以实现深克隆,效率如何?

1.序列化,效率很差。

2.榆次克隆各个可变的引用类型域的方式。

13.在内部类中调用外部类同名的成员?

在内部类中调用内容类的x: this.x=…

在内部类调用外部类的X: TheSamName.this.x=…

14.反射?

额,不会。。

字符串和包装类

15.自动装包、拆包?

基本数据类型自动转换成类.集合中不能存储基本数据类型。

int a=3;

arraylist.add(a);

16.String可以被继承么?

不可以。final修饰的类不能被继承。

17.各种进制的转换

Integer.parseInt(“101001010”,2);二进制转int
Integer.toBinaryString(int i);

Java集合类框架

18.数组 和 集合的转换

List list=new Arrays.asList(1,2,3,4,5);

Interger[] array=list.toArray(new Integer[]{});

19.Collection 和 Collections 的区别?

Collection是集合类的派生接口。是Java集合类的基础。

Collections是为集合类定义的工具类,包含了一些查找排序的方法,非常实用。

20.获得Map中的全部键?

Map接口中的keySet()方法

Set keySet()

Set keySet=map.keySet();

然后通过键获得值。

21.获得Map中的全部值?

values()

Collection values()

Collection values=map.values();

22.获得Map中的全部键值对?

Set

异常处理

23.throw和throws区别

throws是方法里的声明要抛出什么异常

throw是抛出具体异常

I/O

24.对象流?

DataInput DataOutput 可以吧对象写入到磁盘中

但是读写的对象必须实现了Serializable接口。

你可能感兴趣的:(经验,java)