面试题(二)

1.JAVA语言的特点?

1.简单易学
2.面向对象(封装继承多态)
3.平台无关性
4.GC垃圾回收机制
5.异常处理机制
6.支持多线程
7.支持方便的网络编程
8.编译和解释并存

2.面向对象和面向过程的区别?

1.面向过程的性能更高
2.面向对象易维护、易复用、易拓展。使系统更灵活、更易于维护。

3.JAVA和C++的区别?

1.JAVA不提供指针访问内存,程序内存更安全。
2.JAVA类单继承 C++多继承 但JAVA的接口可以多继承
3.JAVA自带内存管理
4.JAVA没有结束符

4.byte short int long float double char boolean

5.基本类型和引用类型的区别

1.基本类型直接赋值 引用类型先用new创建对象,然后把对象赋予对应的值。
2.==号比较的时候,基本类型比较的是值,引用类型比较的是引用地址。
3.传参时,基本类型是值传递,引用类型是地址传递。
4.JVM中的位置,基本类型直接存储在栈中,而引用类型,现在栈上分配一块内存,再把信息存在堆内存上,然后由栈上面的引用指向堆中对象的地址。

6.重载与重写

重载发生在同一类中,方法名必须相同,参数类型、个数、顺序,方法返回值和访问修饰符可以不同。
重写是子类对父类允许访问的方法的实现过程中进行的重新编写,发生在子类中,方法名,参数类型必须相同,返回值范围小于等于父类,抛出的异常范围小于等于父类,访问修饰范围大于等于父类。另外,如果父类方法访问修饰符为private,子类就不能重写该方法。也就是说方法提供的行为改变,而方法的外貌并没有改变。

7.封装继承多态

8.final修饰的类不能被继承,方法不能被重写,变量不可被更改。

9.String StringBuffer StringBuilder的区别

String的值不可改变 另外两个可以改变
StringBuffer线程安全效率低,StringBuilder线程不安全效率高。

10.为什么String要设置不可变?

1.为了实现字符串常量池
2.为了线程安全
3.为了保证同一变量调用hashcode都产生相同的值,这也是Map的key使用String的原因。

10.JAVA异常体系

ERROR是错误
EXCEPTION表示程序本身可以处理的异常
checked exception是可检查的异常(IDE中会报错的异常)
unchecked Exception

11.接口和抽象类的区别

1.接口默认的方法是public,所有方法在接口中不能有实现(Java 8 开始接口方法可以有默认实现),而抽象类可以有非抽象的方法。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容