欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

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基础的面试(上),如有问题欢迎私信和评论