Java面试题记录第一天

Java面试题记录第一天

1. Java语言中,类型转换分为自动转换和强制转换两种。在自动转换中,一般按照byte→short或者char→int→long→float→double的原则进行转换,字节数少的类型转换为字节数多的类型,此时可以看到long是8个字节,而float是4个字节,理解为小数的优先级大于整数的优先级。在强制转换中,s=(int)(3.14rr),此时s为int型,避免内存溢出或精度问题。
2. JDK与JRE与JVM的关系
在这里插入图片描述
答:从自己的角度来看,JDK的意思是Java开发工具,同时包含了JRE,(所以通常情况下,下载JDK后就包含了JRE)是在JRE的基础上增添了一些工具。JRE的意思是Java运行时环境,同时也包含了JVM。还有一些库,Java应用程序等。JVM的意思是Java虚拟机,相当于在所有的操作系统上模拟了一个CPU去处理Java相关的东西。跨平台的核心就是利用了JVM。实现了一次编译,到处运行。
3. Java的优点:Java为纯面向对象的语言;平台无关性;Java也提供了很多内置的库类(比如:多线程,网络通信,垃圾回收器等);Java也提供了对web应用的开发(Servlet,Jsp);具有较好的安全性和健壮性;去除了C++的指针。
4. 为什么需要main方法?
答:main方法为Java程序的入口方法,JVM在运行程序时,首先会查找main()方法。public static void main(String[] args)static表明main方法是一个静态方法,即方法中的代码是存储在静态存储区的,只要类被加载后,就可以使用该方法而不需要通过实例化对象来访问,void表明方法没有返回值,字符串数组参数args为开发人员在命令行状态下与程序交互的一种手段。
5. 编译型和解释型
答:编译型是指将代码全部翻译成字节码(预编译),解释型是指一边写代码,一边翻译。对于Java而言,先去编译,然后去解释。
6. JVM的工作流程
答:Java程序(以.java结尾的文件)会通过Java编译器,生成一个字节码文件(以.class结尾的文件),由于不同的硬件平台上会安装有不同的JVM,JVM负责把字节码翻译成机器码,有硬件能够去执行。JVM执行的过程:首先将字节码装入类装载器,然后再由字节码校验器进行代码的校验,最后通过解释器交给操作平台,解释一段代码,执行一段代码。
7. JVM加载class文件的原理机制是什么?
答:暂时先不作答,需要更深层次了解JVM。JVM涉及到的面太广,专门做一天面试题。
8. 银行业为什么不使用float计算?
答:针对银行业或者说计算来说,float的属性具有离散性,接近某个值但不相等,会有舍入误差,所以不使用,使用时选择专门的工具BigDecimal类。例如:在这里插入图片描述

9. 实例变量,局部变量,类变量的区别
答:实例变量:从属于对象,如果不自行初始化,基本类型会输出类型的默认值0,布尔值类型是默认false,string类型是null;局部变量:必须声明和初始化。例如:不去声明a,就不能去使用它,同样的a必须去赋值。类变量:加一个关键字《static》,全局变量,静态变量,随着类一起出现一起消失。
10. 字符可以强制转换的原因
答:所有的字符本质都是数字,该数字是位于编码表Unicode上的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值