1.面向过程和面向对象的区别
-
面向过程性能比面向对象高
如Java是半编译语言,最终的执行代码并不是可以直接被CPU执行的二进制机械码。而面向过程语言大多都是直接编译成机械码在电脑上执行。
-
面向对象比面向过程易维护、易复用、易扩展
因为面向对象有分装、继承、多态的特性,可以设计出低耦合的系统,是系统跟家灵活更加易于维护。
2.java语言的特点
-
面向对象(封装、多态、继承)
-
平台无关性(java虚拟机实现平台无关)
-
可靠性 、安全性(强类型语言、无指针运算、垃圾回收机制、 异常处理机制)
-
支持多线程
-
支持网络编程很方便
3.JVM、JDK、JRE
-
**JVM - Java Virtual Machine **
JVM(java虚拟机)是运行java字节码 (.class文件)的虚拟机。JVM有针对不同系统的实现(Windows、Linux、macOS),目的是使用相同的字节码,它们都会有相同的结果,实现java平台无关性。
-
JRE - Java Runtime Environment
JRE是java运行时环境,包含JVM标准实现及Java核心类库。JVM+lib
-
JDK - Java Development Kit
JDK是java的 软件开发工具包(SDK),它拥有JRE,还有编译器javac和其他工具如javadoc。它能够创建和编译程序。
4.Java和C++的区别
- Java不提供指针操作方法,有gc垃圾回收机制,内存更安全
- Java是单继承的,C++支持多继承
- C语言中,字符串或字符数组最后都会有一个额外的字符‘\0’表示结束,Java没有结束符的概念
5.重写和重载的区别
重写override
指的是子类对父类的方法内容重新编写,重写方法必须和父类方法拥有相同的方法名和参数列表,返回值范围和异常范围小于等于父类方法,访问权限大于等于父类方法。父类的private修饰方法子类无法重写。
重载overload
指的是同一个类中,可以有相同名字的方法,但它们的参数列表必须不相同。
6.构造器Constructor是否可被重写?
构造器不可以被重写,但是可以被重载