没有合适的资源?快使用搜索试试~ 我知道了~
最新Java面试题及答案(Java基础、设计模式、Java虚拟机(jvm))
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 51 浏览量
2024-05-11
18:49:48
上传
评论
收藏 547KB DOCX 举报
温馨提示
试读
82页
Java面试题及答案包括:Java基础题,设计模式、Java虚拟机(jvm) 资料部分来源于合法的互联网渠道收集和整理,部分是自己积累成果,供大家参考 收取的是收集和整理资料的费用
资源推荐
资源详情
资源评论
Java 面试题及答案
2 / 82
2
一、Java 基础
1、什么是 Java
Java 是一门面向对象编程语言,不仅吸收了 C++语言的各种优点,还摒弃了
C++里难以理解的多继承、指针等概念,因此 Java 语言具有功能强大和简单
易用两个特征。Java 语言作为静态面向对象编程语言的代表,极好地实现了
面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。
2、Jdk 和 Jre 和 JVM 的区别
Java 官方的图片,Jdk 中包括了 Jre,Jre 中包括了 JVM
JDK :Jdk 还包括了一些 Jre 之外的东西 ,就是这些东西帮我们编译 Java 代
码的, 还有就是监控 Jvm 的一些工具 Java Development Kit 是提供给
Java 开发人员使用的,其中包含了 Java 的开发工具,也
包括了 JRE。所以安装了 JDK,就无需再单独安装 JRE 了。其中的开发工具:
编译工具(javac.exe),打包工具(jar.exe)等
JRE :Jre 大部分都是 C 和 C++ 语言编写的,他是我们在编译 java 时所需
要的基础的类库 JavaRuntime Environment 包括 Java 虚拟机和 Java 程序所
需的核心类库等。核心类库主要是 java.lang 包:包含了运行 Java 程序必
不可少的系统类,如基本数据类型、基本数学函数、字符串处理、线
程、异常处理类等,系统缺省加载这个包如果想要运行一个开发好的 Java
程序,计算机中只需要安装 JRE 即可。
Jvm:在倒数第二层 由他可以在(最后一层的)各种平台上运行 Java
Virtual Machine 是 Java 虚拟机,Java 程序需要运行在虚拟机上,不同的平
台有自己的虚拟机,因此 Java 语言可以实现跨平台。
3、Java 语言有哪些特点
简单易学(Java 语言的语法与 C 语言和 C++语言很接近)
面向对象(封装,继承,多态)
Java 面试题及答案
3 / 82
3
平台无关性(Java 虚拟机实现平台无关性)
支持网络编程并且很方便(Java 语言诞生本身就是为简化网络编程设计的)
支持多线程(多线程机制使应用程序在同一时间并行执行多项任)
健壮性(Java 语言的强类型机制、异常处理、垃圾的自动收集等)
安全性好
4、Java 有哪些数据类型
定义:Java 语言是强类型语言,对于每一种数据都定义了明确的具体的数据
类型,在内存中分配了不同
大小的内存空间。
分类
基本数据类型
数值型
整数类型(byte,short,int,long)
浮点类型(float,double)
字符型(char)
布尔型(boolean)
引用数据类型
类(class)
接口(interface)
数组([])
5、switch 是否能作用在 byte 上,是否能作用在 long 上,是否能作用在
String 上
在 Java 5 以前,switch(expr)中,expr 只能是 byte、short、char、int。从
Java5 开始,Java 中引入了枚举类型,expr 也可以是 enum 类型,从 Java 7
开始,expr 还可以是字符串(String),但是长整型(long)在目前所有的
版本中都是不可以的
6、用最有效率的方法计算 2 乘以 8
2 << 3(左移 3 位相当于乘以 2 的 3 次方,右移 3 位相当于除以 2 的 3 次方)
7、Math.round(11.5) 等于多少?Math.round(-11.5)等于多少
Math.round(11.5)的返回值是 12,Math.round(-11.5)的返回值是-11。四舍
五入的原理是在参数上加 0.5 然后进行下取整
Java 面试题及答案
4 / 82
4
8、float f=3.4;是否正确
不正确。3.4 是双精度数,将双精度型(double)赋值给浮点型(float)属
于下转型(down-casting,也称为窄化)会造成精度损失,因此需要强制类型
转换 float f =(float)3.4; 或者写成 floatf =3.4F;。
9、short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗
对于 short s1 = 1; s1 = s1 + 1;由于 1 是 int 类型,因此 s1+1 运算结果也是
int 型,需要强制转换类型才能赋值给 short 型。而 short s1 = 1; s1 += 1;
可以正确编译,因为 s1+= 1;相当于 s1 = (short(s1 + 1);其中有隐含的强制类
型转换
10、Java 语言采用何种编码方案?有何特点?
Java 语言采用 Unicode 编码标准,Unicode(标准码),它为每个字符制订
了一个唯一的数值,因此在任何的语言,平台,程序都可以放心的
11、什么 Java 注释
定义:用于解释说明程序的文字
分类
单行注释
格式: // 注释文字
多行注释
格式: /* 注释文字 */
文档注释
格式:/** 注释文字 */
作用
在程序中,尤其是复杂的程序中,适当地加入注释可以增加程序的可读性,有利
于程序的修改、调试和交流。注释的内容在程序编译的时候会被忽视,不会产生
目标代码,注释的部分不会对程序的执行结果产生任何影响。
注意事项:多行和文档注释都不能嵌套
12、== 和 equals 的区别是什么?
== 解读
对于基本类型和引用类型 == 的作用效果是不同的,如下所示:
Java 面试题及答案
5 / 82
5
基本类型:比较的是值是否相同;
引用类型:比较的是引用是否相同;
代码示例:
String x = “string”;
String y = “string”;
String z = new String(“string”);
System.out.println(xy); // true
System.out.println(xz); // false
System.out.println(x.equals(y)); // true
System.out.println(x.equals(z)); // true
代码解读:因为 x 和 y 指向的是同一个引用,所以 == 也是 true,而 new
String()方法则重写开辟了内存空间,所以 == 结果为 false,而 equals 比较
的一直是值,所以结果都为 true。
equals 解读
equals 本质上就是 ==,只不过 String 和 Integer 等重写了 equals 方法,把它
变成了值比较。看下面的代码就明白了。
首先来看默认情况下 equals 比较一个有相同值的对象,代码如下:
class Cat {
public Cat(String name) {
this.name = name;
}
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Cat c1 = new Cat(“王磊”);
Cat c2 = new Cat(“王磊”);
System.out.println(c1.equals(c2)); // false
输出结果出乎我们的意料,竟然是 false?这是怎么回事,看了 equals 源码就
知道了,源码如下:
public boolean equals(Object obj) {
return (this == obj);
}
原来 equals 本质上就是 ==。
那问题来了,两个相同值的 String 对象,为什么返回的是 true?代码如下:
String s1 = new String(“老王”);
String s2 = new String(“老王”);
System.out.println(s1.equals(s2)); // true
同样的,当我们进入 String 的 equals 方法,找到了答案,代码如下:
剩余81页未读,继续阅读
资源评论
Andy&lin
- 粉丝: 134
- 资源: 216
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功