我这里以30道Java基础知识题目,带着大家回顾一下Java基础知识。
文章目录
-
- 1. 面向对象和面向过程的区别
- 2. Java语言有哪些特点?
- 3. 什么是JDK?什么是JRE?什么是JVM?三者之间的联系与区别
- 4. 什么是字节码?采用字节码的最大好处是什么?
-
- 先看下java中的编译器和解释器:
- 采用字节码的好处:
- 5. Java和C++的区别
- 6. 什么是Java程序的主类?应用程序和小程序的主类有何不同?
- 7. Java应用程序与小程序之间有那些差别?
- 8. 字符型常量和字符串常量的区别
- 9. 构造器Constructor是否可被override
- 10. 重载和重写的区别
- 11. Java 面向对象编程三大特性:封装、继承、多态
- 12. String和StringBuffer、StringBuilder的区别是什么?String为什么是不可变的?
- 13. 自动装箱与拆箱
- 14. 在一个静态方法内调用一个非静态成员为什么是非法的?
- 15. 在Java中定义一个不做事且没有参数的构造方法的作用
- 16. import java和javax有什么区别
- 17. 接口和抽象类的区别是什么?
- 18. 成员变量与局部变量的区别有那些?
- 19. 创建一个对象用什么运算符?对象实体与对象引用有何不同?
- 20. 什么是方法的返回值?返回值在类的方法里的作用是什么?
- 21. 一个类的构造方法的作用是什么?若一个类没有声明构造方法,改程序能正确执行吗?为什么?
- 22. 构造方法有哪些特性?
- 23. 静态方法和实例方法有何不同?
- 24. 对象的相等与指向他们的引用相等,两者有什么不同?
- 25. 在调用子类构造方法之前会先调用父类没有参数的构造方法,其目的是?
- 26. ==与equals(重要)
- 27. hashCode与equals(重要)
-
- 为什么要有hashCode**
- hashCode()与equals()的相关规定
- 28. Java中的值传递和引用传递
- 29. 简述线程,程序、进程的基本概念。以及他们之间关系是什么?
- 30. 线程有哪些基本状态?这些状态是如何定义的?
1. 面向对象和面向过程的区别
面向过程
优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发,性能是最重要的因素。
缺点:没有面向对象易维护、易复用、易扩展
面向对象
优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护
缺点:性能比面向过程低
2. Java语言有哪些特点?
- 简单易学;
- 面向对象(封装,继承,多态);
- 平台无关性(Java虚拟机实现平台无关性);
- 可靠性;
- 安全性;
- 支持多线程(C++语言没有内置的多线程机制,因此必须调用操作系统的多线程功能来进行多线程程序设计,而Java语言却提供了多线程支持);
- 支持网络编程并且很方便(Java语言诞生本身就是为简化网络编程设计的,因此Java语言不仅支持网络编程而且很方便);
- 编译与解释并存;
3. 什么是JDK?什么是JRE?什么是JVM?三者之间的联系与区别
这几个是Java中很基本很基本的东西,但是我相信一定还有很多人搞不清楚!为什么呢?因为我们大多数时候在使用现成的编译工具以及环境的时候,并没有去考虑这些东西。
JDK:顾名思义它是给开发者提供的开发工具箱,是给程序开发者用的。它除了包括完整的JRE(Java Runtime Environment),Java运行环境,还包含了其他供开发者使用的工具包。
JRE:普通用户而只需要安装JRE(Java Runtime Environment)来运行Java程序。而程序开发者必须安装JDK来编译、调试程序。
JVM:当我们运行一个程序时,JVM负责将字节码转换为特定机器代码,JVM提供了内存管理/垃圾回收和安全机制等。这种独立于硬件和操作系统,正是java程序可以一次编写多处执行的原因。
区别与联系:
- JDK用于开发,JRE用于运行java程序 ;
- JDK和JRE中都包含JVM ;
- JVM是java编程语言的