
/br>
相信今年很多面试的朋友都遇到一个问题java基础联系,在刷题的时候一直在刷比较高级项目框架内容,却忘记了那些不该忘的基础内容.
万万没想到,最后却栽倒了基础上面,下面为大家准备了一些基础项目题,大家可以查漏补缺下.
img src="https://www.west.cn/info/upload//hr2sqr55gfd.jpg" alt="file">
1.面向对象和面向过程的区别
面向过程
优点:
性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、
缺点:
没有面向对象易维护、易复用、易扩展
面向对象
优点:
易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系
缺点:
性能比面向过程低
2. Java 语言有哪些特点
JVM
目的:是使用相同的字节码,它们都会给出相同的结果.
什么是字节码?采用字节码的好处是什么?
Java 程序从源代码到运行一般有下面 3 步:
JDK 9 引入了一种新的编译模式
但是 ,AOT 编译器的编译质量是肯定比不上 JIT 编译器的。
总结:
Java 虚拟机(JVM)是运行 Java 字节码的虚拟机。JVM 有针对不同系统的特定实现(Windows,Linux,
字节码和不同系统的 JVM 实现是 Java 语言“一次编译,随处可以运行”的关键所在。
JDK 和 JRE
例如,如果要使用 JSP 部署 Web 应用程序,那么从技术上讲,您只是在应用程序服务器中运行 Java 程序。那你为什么需要 JDK 呢?
因为应用程序服务器会将 JSP 转换为 Java servlet,并且需要使用 JDK 来编译servlet。
4. Oracle JDK 和 OpenJDK 的对比
可能在看这个问题之前很多人和我一样并没有接触和使用过 OpenJDK 。那么Oracle 和 OpenJDK 之间是否存在重大差异?
关于 JVM,JDK,JRE 和 OpenJDK 之间的区别.
一个更详细的答案:
总结:
5. Java 和 C++的区别
我知道很多人没学过 C++,但是面试官就是没事喜欢拿咱们 Java 和 C++ 比呀!没办法!!!就算没学过 C++,也要记下来!
都是面向对象的语言,都支持封装、继承和多态
Java 不提供指针来直接访问内存,程序内存更加安全
Java 的类是单继承的,C++ 支持多重继承;虽然 Java 的类不可以多继承,但是接口可以多继承。
Java 有自动内存管理机制,不需要程序员手动释放无用内存
6. 什么是 Java 程序的主类 应用程序和小程序的主类有何不同
7. Java 应用程序与小程序之间有那些差别
8. 字符型常量和字符串常量的区别
9. 构造器 Constructor 是否可被 override
10. 重载和重写的区别
重载:
发生在同一个类中,方法名必须相同,参数类型不同、个数不同、顺序不同,方法返回值和访问修饰符可
重写:
发生在父子类中,方法名、参数列表必须相同,返回值范围小于等于父类,抛出的异常范围小于等于父
如果父类方法访问修饰符为 private 则子类就不能重写该方法。
11. Java 面向对象编程三大特性: 封装 继承 多态
封装
继承
关于继承如下 3 点请记住:
多态
在 Java 中有两种形式可以实现多态:继承(多个子类对同一方法的重写)和接口(实现接口并覆盖接口中同一方法)。
12. String StringBuffer 和 StringBuilder 的区别
是什么 String 为什么是不可变的
大家可以自行查阅源码:
线程安全性
如 expandCapacity、append、insert、indexOf 等公共方法。
性能
对于三者使用的总结:
13. 自动装箱与拆箱
14. 在一个静态方法内调用一个非静态成员为什么是非法的.
15. 在 Java 中定义一个不做事且没有参数的构造
方法的作用
16. import java 和 javax 有什么区别
17. 接口和抽象类的区别是什么
18. 成员变量与局部变量的区别有那些
19. 创建一个对象用什么运算符?对象实体与对象引用有何不同?
20. 什么是方法的返回值?返回值在类的方法里的作用是什么?
返回值作用:接收出结果,使得它可以用于其他的操作.
21. 一个类的构造方法的作用是什么 若一个类没有声明构造方法,该程序能正确执行吗 ?为什么?
22. 构造方法有哪些特性
23. 静态方法和实例方法有何不同
24. 对象的相等与指向他们的引用相等,两者有什么不同?
25. 在调用子类构造方法之前会先调用父类没有参数的构造方法,其目的是?
26. == 与 equals(重要)
情况 1
:类没有覆盖 equals() 方法。则通过 equals() 比较该类的两个对象时,等价于通过“==”比较这两个对象。
情况 2
:类覆盖了 equals() 方法。一般,我们都覆盖 equals() 方法来两个对象的内容相等;若它们的内容相等,则
举个例子:
说明:
String 中的 equals 方法是被重写过的,因为 object 的 equals 方法是比较的对象的内存地址,而 String 的 equals 方法比较的是对象的值。
当创建 String 类型的对象时,虚拟机会在常量池中查找有没有已经存在的值和要创建的值相同的对象,如果有就把它赋给当前引用。如果没有就在常量池中重新创建一个 String 对象。
hashCode()介绍
我们以“HashSet 如何检查重复”为例子来说明为什么要有 hashCode:
如果不同的话,就会重新散列到其他位置。
hashCode()与 equals()的相关规定.
28. 为什么 Java 中只有值传递
29. 简述线程,程序、进程的基本概念。以及他们之间关系是什么?
30. 线程有哪些基本状态?
Java 线程状态变迁如下图所示:
31 关于 final 关键字的一些总结.
变量、方法、类
。
3. 使用 final 方法的原因有两个。
32 Java 中的异常处理Java 异常类层次结构图
br>
img src="https://www.cnblogs.com/xiaoxu456/p/images/screenshot_65.png" alt="">
Throwable有两个重要的子类:Exception(异常) 和 Error(错误) .
在 Java 中,错误通过 Error 的子类描述。
注意异常和错误的区别:
异常能被程序本身可以处理,错误是无法处理。
Throwable 类常用方法:
public string getMessage():返回异常发生时的详细信息
public string toString():返回异常发生时的简要描述
public string getLocalizedMessage():返回异常对象的本地化信息。
异常信息
异常处理总结
catch 块:
用于处理 try 捕获到的异常。? finally 块:无论是否捕获或处理异常,finally 块里的语句都会被执行。
在以下 4 种特殊情况下,finally 块不会被执行:
33 Java 序列化中如果有些字段不想进行序列化 怎么办?
34 获取用键盘输入常用的的两种方法.
br/>如有疑问请与原作者联系
标签:
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/h6javajc/3172.html