JavaGuide面试突击阅读笔记(1)java基础

1.面向过程和面向对象的区别

    面向过程性能比面向对象高 如Java是半编译语言,最终的执行代码并不是可以直接被CPU执行的二进制机械码。而面向过程语言大多都是直接编译成机械码在电脑上执行。 面向对象比面向过程易维护、易复用、易扩展 因为面向对象有分装、继承、多态的特性,可以设计出低耦合的系统,是系统跟家灵活更加易于维护。

2.java语言的特点

  1. 面向对象(封装、多态、继承)
  2. 平台无关性(java虚拟机实现平台无关)
  3. 可靠性 、安全性(强类型语言、无指针运算、垃圾回收机制、 异常处理机制)
  4. 支持多线程
  5. 支持网络编程很方便

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的 软件开发工具包(),它拥有JRE,还有编译器javac和其他工具如javadoc。它能够创建和编译程序。

4.Java和C++的区别

    Java不提供指针操作方法,有gc垃圾回收机制,内存更安全 Java是单继承的,C++支持多继承 C语言中,字符串或字符数组最后都会有一个额外的字符‘’表示结束,Java没有结束符的概念

5.重写和重载的区别

重写override

指的是子类对父类的方法内容重新编写,重写方法必须和父类方法拥有相同的方法名和参数列表,返回值范围和异常范围小于等于父类方法,访问权限大于等于父类方法。父类的private修饰方法子类无法重写。

重载overload

指的是同一个类中,可以有相同名字的方法,但它们的参数列表必须不相同。

6.构造器Constructor是否可被重写?

构造器不可以被重写,但是可以被重载

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

8.成员变量和局部变量的区别?

9.==和equals区别?

经验分享 程序员 微信小程序 职场和发展