30道最常问的Java基础面试题

本文汇总了30道常见的Java基础面试题,涵盖面向对象、JDK/JRE/JVM的区别、字节码优势、Java与C++对比、主类与小程序区别、线程与进程等核心知识点,帮助读者巩固Java基础,为面试做好准备。
摘要由CSDN通过智能技术生成

我这里以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语言有哪些特点?

  1. 简单易学;
  2. 面向对象(封装,继承,多态);
  3. 平台无关性(Java虚拟机实现平台无关性);
  4. 可靠性;
  5. 安全性;
  6. 支持多线程(C++语言没有内置的多线程机制,因此必须调用操作系统的多线程功能来进行多线程程序设计,而Java语言却提供了多线程支持);
  7. 支持网络编程并且很方便(Java语言诞生本身就是为简化网络编程设计的,因此Java语言不仅支持网络编程而且很方便);
  8. 编译与解释并存;

3. 什么是JDK?什么是JRE?什么是JVM?三者之间的联系与区别

这几个是Java中很基本很基本的东西,但是我相信一定还有很多人搞不清楚!为什么呢?因为我们大多数时候在使用现成的编译工具以及环境的时候,并没有去考虑这些东西。

JDK:顾名思义它是给开发者提供的开发工具箱,是给程序开发者用的。它除了包括完整的JRE(Java Runtime Environment),Java运行环境,还包含了其他供开发者使用的工具包。

JRE:普通用户而只需要安装JRE(Java Runtime Environment)来运行Java程序。而程序开发者必须安装JDK来编译、调试程序。

JVM:当我们运行一个程序时,JVM负责将字节码转换为特定机器代码,JVM提供了内存管理/垃圾回收和安全机制等。这种独立于硬件和操作系统,正是java程序可以一次编写多处执行的原因。

区别与联系:

  1. JDK用于开发,JRE用于运行java程序 ;
  2. JDK和JRE中都包含JVM ;
  3. JVM是java编程语言的
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值