Java基础
文章目录
- Java基础
-
-
- 1、面向对象和面向过程的区别?
- 2、什么是JVM?
- 3、JDK和JRE的区别?
- 4、Java和C++的区别?
- 5、构造器Constructor是否可被override?
- 6、方法重载和重写的区别?
- 7、Java面向对象的三大特性
- 8、String,StringBuffer和StringBuilder的区别是什么?
- 9、自动装箱与自动拆箱
- 10、为什么静态方法内不能调用非静态成员?
- 11、在Java类中定义一个不做事且没有参数的构造方法有什么作用?
- 12、接口和抽象类的区别?
- 13、== 与 equals的区别?
- 14、hashCode()与equals()为什么要重写?
- 15、Java中是引用传递还是值传递?
- 16、线程、进程、程序直接的关系?
- 17、线程有哪些基本状态?
- 18、说一下final关键字
- 19、Java异常层次结构图
- 20、Throwable类常用方法
- 21、异常处理机制try...catch...finally
- 22、有些字段不想进行序列化,怎么办?
- 23、获取键盘输入常用的两种方法
- 24、IO流分为几种?
- 25、BIO,NIO,AIO有什么区别?
- 26、深拷贝与浅拷贝
-
1、面向对象和面向过程的区别?
(1)面向过程:面向过程偏步骤化,性能比面向对象高。因为类调用时需要实例化,开销比较大,比较消耗资源,所以当性能是最重要的考量因素时,比如近底层的东西,单机片、嵌入式开发、Linux系统等一般采用面向过程开发。但是,面向过程没有面向对象易维护、易复用、易扩展。
(2)面向对象:把所有事物当成对象看待,不管是实体对象还是虚拟对象。面向对象易维护、易复用、易扩展。因为面向对象有封装、继承、多态性的特性,所以可以设计低耦合的系统,更加灵活。但是面向对象的性能比面向过程低。
2、什么是JVM?
JVM是运行Java字节码的虚拟机。对不同的系统(Windows,Linux,macOS)都有特定的实现,目的是使用相同的字节码,能给出相同的运行结果。