java面试-java基础(上)
最编程
2024-07-06 22:32:36
...
文章目录
- 一、什么是Java?特点?
- 二、什么是JVM、JDK、JRE?
- 三、java跨平台实现原理
- 四、java数据类型有哪些?
- 五、char能不能存一个中文汉字?
- 六、存在数字i加1小于i或者i减1小于i?
- 七、什么是自动类型转换与强制类型转换?
- 八、什么是装/拆箱?为什么这么设计?
- 九、&&运算符和&运算符区别?
- 十、switch表达式的值?
- 十一、Math.round(-1.5) 等于多少?
- 十二、break,continue,return区别及作用?
- 十三、什么是自增?什么是自减?
- 十四、最高效率计算2的幂次方乘法?比如2乘以4?
- 总结
一、什么是Java?特点?
- Java是一门面向对象的编程语言
- 面向对象(封装,继承,多态),跨平台(一次编写,到处运行)
二、什么是JVM、JDK、JRE?
- JVM:Java Virtual Machine,Java虚拟机,Java程序运行在Java虚拟机上。针对不同系统的实现(Windows,Linux,macOS)不同的 JVM,因此Java语言可以实现跨平台。
- JRE:Java运⾏时环境。包括JVM和Java类库
- JDK: Java Development Kit(软件开发工具包)。包括了JRE以及编译器(javac)、Java 文档生成工具(Javadoc)、Java调试器等开发工具。
- JDK包含JRE,JRE包含JVM。
三、java跨平台实现原理
- 跨平台性,是指Java语言编写的程序,一次编译后,可以在不同系统平台(windows、linux、mac)上运行。
- 实现原理:Java程序是通过Java虚拟机在系统平台上运行的,只要该系统可以安装相应的Java虚拟机就可以运行java程序
四、java数据类型有哪些?
基本数据类型 | 八种 | 字节数 | 数据表示范围 | 默认值 | 包装类 |
---|---|---|---|---|---|
整型 | byte | 1 | -27-1,27-1 | 0 | Byte |
short | 2 | -215,215-1 | 0 | Short | |
int | 4 | -231,231-1 默认是int | 0 | Integer | |
long | 8 | -263,263-1 +L | 0 | Long | |
浮点型 | float | 4 | -3.403E38~3.403E38 E科学计数10^38 128-127次方+F 1位符号位,8位指数位(偏移量127,实际值应该减去127),23位尾数位,7位有效数字 | 0.0f | Float |
double | 8 | -1.798E308~1.798E308 E科学计数10^308 1024-1023次方+D 1位符号位,11位指数位,52位尾数位,16位有效数字,默认是双精度 | 0.0d | Double | |
布尔型 | boolean | 1 | true、false | false | Boolean |
字符型 | char | 2 | ''包裹,只包含一字符,运算按ASCII码对应的整数运算 | ‘’ | Character |
引用数据类型 | 数组、类、接口 | String是对象 | null |
五、char能不能存一个中文汉字?
- Java中无论汉字还是英文字母都用Unicode编码(2字节)表示。char类型占2个字节。所以可以存储一个中文汉字
六、存在数字i加1小于i或者i减1小于i?
- 整型类型是有范围的,如果发生越界,那么将出现该情况
七、什么是自动类型转换与强制类型转换?
- java数值类型变量从表示范围小的转化为表示范围大的变量,此时需要强制转换,反之则为自动类型转换
- 数据类型数据范围从小到大:byte -> short -> int -> long -> float -> double
long i = 100L;
int j = (int) i;//强制转换
int k = 100;
long m = k;//自动类型转换
八、什么是装/拆箱?为什么这么设计?
- 自动装箱是Java编译器在基本数据类型和对应的包装类之间做转化。比如:把int转化成Integer。反之就是自动拆箱。
- 为了简化代码,因为jdk1.5需要手写代码才能完成基本数据类型转成包装类放入集合中
九、&&运算符和&运算符区别?
- 都是表示与的逻辑运算符and,当两边的表达式都为true,结果才为true
- &&:有短路功能,当第一个表达式的值为false的时候,则不再计算第二个表达式;
- &:2个表达式都会执行。当两边的表达式不是Boolean类型则表示按位操作
十、switch表达式的值?
- 在jdk1.8下支持byte、short、int、char、enum(枚举)、String这6种类型
十一、Math.round(-1.5) 等于多少?
- round表示’四舍五入’,算法为Math.floor(x+0.5)即加0.5后再向下取整,所以Math.round(1.5)=2,Math.round(-1.5)=-1
十二、break,continue,return区别及作用?
- break跳出循环
- continue跳出本次循环
- return结束方法返回
十三、什么是自增?什么是自减?
自增是指i++、或者++i相当于i=i+1
自减是指i–、或者–i相当于i=i-1
如果符号在前面则先自增、后面则先执行别的再自增
public static void main(String[] args) {
int i=1;
int j=1;
System.out.println(i++);//结果1 先输出
System.out.println(i);//结果2 再+1
System.out.println(++j);//结果2 先+1再输出
}
十四、最高效率计算2的幂次方乘法?比如2乘以4?
- 2<<2。位运算,二进制位左移三位相当于乘以2的2次方。
总结
本文介绍了的java基础的面试(上),如有问题欢迎私信和评论