java面试题

时间:2021-08-03
本文章向大家介绍java面试题,主要包括java面试题使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

1. Java的特点有哪些

Java 语言是一种分布式的面向对象语言,具有

    面向对象、

    平台无关性、

    简单性、

    解释执行、

    多线程、

    安全性等很多特点

2. JDK和JRE和JVM的区别

JDK:java se development kit

jre:java runtime eviroment 

jvm:java virtual machine

3.


 

4 引用数据类型分3种:类,接口,数组

基本数据类型:数据存储在 栈 中

引用数据类型:栈中存储地址,堆中存储内容

判断是否相等:

基本:++ !=

引用:equals()方法

==和!=是比较数值的。而equals()方法是比较内存地址的。

5. a=a+b与a+=b有什么区别吗?

+= 操作符会隐式的进行自动类型转换,此处a+=b隐式的将加操作的结果类型强制转换为持有结果的类型,而a=a+b则不会自动进行类型转换

+= 操作符会对右边的表达式结果强转匹配左边的数据类型

6. final 在 Java 中有什么作用?

final作为Java中的关键字可以用于三个地方。用于修饰类、类属性和类方法。

特征:凡是引用final关键字的地方都不可以改变!

(1)修饰类:表示该类不能被继承;

(2)修饰方法:表示方法不能被重写;

(3)修饰变量:表示变量赋值后不可修改(常量)。

(如果修饰引用,那么表示引用不可变,引用指向的内容可变

被final修饰的方法,JVM会尝试将其内联,以提高运行效率

被final修饰的常量,在编译阶段会存入常量池中)

7. static都有哪些用法?

修饰类:静态内部类,可以直接通过类来调用,而不需要new

修饰变量:静态变量,分配在内存堆上,所有实例都会指向这一个地址而不会重新分配内存

修饰方法:静态方法

也就是被static所修饰的变量/方法都属于类的静态资源,类实例所共享

修饰块:静态块,多用于初始化操作

修饰包:静态导包,可以用来指定导入某个类中的静态资源,并且不需要使用类名,可以直接使用资源名

8.==和equals()的区别

== 对于基本类型来说是值比较,对于引用类型来说是比较的是引用;而 equals 默认情况下是引用比较,只是很多类重写了equals 方法,比如 String、Integer 等把它变成了值比较,所以一般情况下equals 比较的是值是否相等。

9.hashCode()

hashCode方法可以这样理解:它返回的就是根据对象的内存地址换算出的一个值。这样一来,当集合要添加新的元素时,先调用这个元素的hashCode方法,就一下子能定位到它应该放置的物理位置上。如果这个位置上没有元素,它就可以直接存储在这个位置上,不用再进行任何比较了;如果这个位置上已经有元素了,就调用它的equals方法与新元素进行比较,相同的话就不存了,不相同就散列其它的地址。这样一来实际调用equals方法的次数就大大降低了,几乎只需要一两次

10. 面向对象的特征

抽风极多:抽象,封装,继承,多态

11.访问修饰符


 

原文地址:https://www.cnblogs.com/midiyu/p/15096598.html