Java 基础经典面试题(2022)

作者: cheng 发布时间: 2022-10-29 浏览: 782 次 编辑

1 、 Java 语言有哪些特点

1 、简单易学、有丰富的类库

2 、面向对象( Java 最重要的特性,让程序耦合度更低,内聚性更高)

这里说下C语音是面向过程的。举个简单例子对比下:比如洗衣服这个事情,面向过程是这样:往洗衣机放衣服和洗衣液-》加水 -》启动洗衣机;而面向对象则是分成了:衣服、洗衣机、水几个对象,然后进行对象之间的调用;

3 、与平台无关性( JVM 是 Java 跨平台使用的根本)

4 、可靠安全

5 、支持多线程

2 、面向对象和面向过程的区别

面向过程 :是分析解决问题的步骤,然后用函数把这些步骤一步一步地实现,然后在使用的时候一

一调用则可。性能较高,所以单片机、嵌入式开发等一般采用面向过程开发

面向对象 :是把构成问题的事务分解成各个对象,而建立对象的目的也不是为了完成一个个步骤,

而是为了描述某个事物在解决整个问题的过程中所发生的行为。面向对象有 封装、继承、多态 的特

性,所以易维护、易复用、易扩展。可以设计出低耦合的系统。 但是性能上来说,比面向过程要

低。

3、八种基本数据类型的大小,以及他们的封装类


基本类型大小(字节)默认值封装类
byte1(byte)0Byte
short2(short)0Short
int40Integer
long80LLong
float40.0fFloat
double80.0dDouble
boolean-falseBoolean
char2
\u0000(null)
Char


注:

1.int是基本数据类型, Integer 是 int 的封装类,是引用类型。 int 默认值是 0 ,而 Integer 默认值

是 null ,所以 Integer 能区分出 0 和 null 的情况。一旦 java 看到 null ,就知道这个引用还没有指向某个

对象,再任何引用使用前,必须为其指定一个对象,否则会报错。

2.基本数据类型在声明时系统会自动给它分配空间,而引用类型声明时只是分配了引用空间,

必须通过实例化开辟数据空间之后才可以赋值。数组对象也是一个引用对象,将一个数组赋值给另

一个数组时只是复制了一个引用,所以通过某一个数组所做的修改在另一个数组中也看的见。

虽然定义了boolean 这种数据类型,但是只对它提供了非常有限的支持。在 Java 虚拟机中没有

任何供 boolean 值专用的字节码指令, Java 语言表达式所操作的 boolean 值,在编译之后都使用 Java 虚拟机中的int 数据类型来代替,而 boolean 数组将会被编码成 Java 虚拟机的 byte 数组,每个元素 boolean元素占 8 位。这样我们可以得出 boolean 类型占了单独使用是 4 个字节,在数组中又是 1 个字 节。使用int 的原因是,对于当下 32 位的处理器( CPU )来说,一次处理数据是 32 位(这里不是指的 是32/64 位系统,而是指 CPU 硬件层面),具有高效存取的特点。

4 、标识符的命名规则。

标识符的含义:

是指在程序中,我们自己定义的内容,譬如,类的名字,方法名称以及变量名称等

等,都是标识符。

命名规则:(硬性要求)

标识符可以包含英文字母, 0-9 的数字, $ 以及 _ 标识符不能以数字开头 标

识符不是关键字

命名规范:(非硬性要求)

类名规范:首字符大写,后面每个单词首字母大写(大驼峰式)。 变量

名规范:首字母小写,后面每个单词首字母大写(小驼峰式)。 方法名规范:同变量名。

5 、 instanceof 关键字的作用

instanceof 严格来说是 Java 中的一个双目运算符,用来测试一个对象是否为一个类的实例,用法

为:

boolean result = obj instanceof Class
int i = 0;
System.out.println(i instanceof Integer);//编译不通过 i必须是引用类型,不能是基本类型
System.out.println(i instanceof Object);//编译不通过
Integer integer = new Integer(1);
System.out.println(integer instanceof Integer);//true
//false ,在 JavaSE规范 中对 instanceof 运算符的规定就是:如果 obj 为 null,那么将返
回 false。
System.out.println(null instanceof Object);