//面试(java基础)

来源:互联网 发布:java培训包就业 编辑:程序博客网 时间:2024/04/29 10:03

Q:Java 面向对象有哪些特征? A:封装、继承、多态。

Q:short s1=1;s1=s1+1 有什么错?
short s1=1;s1+=1;有什么错?
A:第一个是有错的,short 在内存中占 2 个字节,而整数 1 默认为 int 型占 4 个字节,s1+1 其实这个 时候就向上转型为 int 类型了,因此第一行代码必须强转才行。第二个之所以可以是以为这句话翻译过 来就是 s1++,也就是 short 类型的数据自身加增 1,因此不会有问题。

Q:静态成员类、非静态成员类有什么区别?什么是匿名内部类? A:静态成员类相当于外部类的静态成员,是外部类在加载的时候进行初始化,非静态成员类相当于外 部类的普通成员,当外部类创建对象的时候才会初始化。匿名内部一般都是在方法里面直接通过 new ClassName(){};形式的类。比如我们 new Thread(new Runnable(){}).start();就用到了匿名内部类。

Q:abstract class 和 interface 有什么区别? A:前者是抽象类,可以有抽象方法,也可以没有。后者是接口,只能有抽象方法。他们都不能创建对 象,需要被继承。
Q:ArrayList 是不是线程安全的?如果不是,如何是 ArrayList 成为线程安全的? A:不安全的。可以使用 Collections.synchronizedList(list)将 list 变为线程安全的。

Q:heap 和 stack 有什么区别?
A:堆和栈。栈存放对象的引用,堆存放对象实体。堆中的对象是有 jvm 的垃圾回收器负责回收。

0 0