Java面试题,每日一总结(1)

Java的跨平台原理

答:因为不同的操作系统支持的指令集不完全一致,因此在不同的操作系统上就需要执行不同的Java代码。

Java为了应对这种情况,就针对不同系统,不同版本,不同位数的操作系统开发了对应的Java虚拟机(JVM),来屏蔽系统之间的差异,提供统一的接口(Java API)

对于Java开发者而言,在不同的操作系统上,只需要安装对应的虚拟机,就可以按照Java的规范编写代码,无需考虑指令集不同。

搭建一个Java的开发环境

答:1.下载安装JDK。JDK安装包中包括jre,jvm和jdk源码。配置JDK环境变量。zaix在系统变量中新建变量JAVA_HOME,放入JDK安装路径。并把%JAVA_HOME%\bin放入PATH变量中。

2.安装eclipse或idea等开发工具

3.安装JavaWeb服务器,例如Tomcat

4.安装SVN或Git等版本控制工具

Java中的基本数据类型和它所占的字节

Java面向对象的特征(原则:回答比较抽象的问题,要举例说明)

答:面向对象的四个基本特征是:封装、抽象、继承、多态

封装:把对象封装成高度自治和相对封闭的个体。对象的状态(属性)由对象自己的行为(方法)来获取和改变。

例如:张三这个人,名字等属性是私有的,要自己提供获取和改变的方法。

抽象:抽象就是将一类事物的相似或共同点抽象出来成为一个类。

继承:继承就是把已经存在的类所定义的内容变成自己的内容,并可以添加若干新内容或者修改原来的内容使其适用特殊需求,就是继承。

例如:继承遗产

多态:是指程序中定义的引用变量的具体类型和该引用变量发出的方法调用,在编程时并不确定,而是在程序运行期间才确定。

即一个引用变量到底会指向哪个类的实例对象,这个引用变量发出的方法调用到底是哪个类实现的方法,只有在运行时才能确定。

例如:UserDao dao=new UserDaoImpl();

装箱和拆箱

我觉得这个问题可能是比较灵活的,根据问题来回答就好。

首先了解一下概念。

装箱:就是把基本数据类型转换成包装类型

拆箱:就是把包装类型转换成基本数据类型。

基本数据类型有8种,每一种都分别对应一个包装类。

byte——Byte     int——Integer     short——Short      long——Long,

float——Float     double——Double      char——Character      boolean——Boolean

装箱和拆箱分为自动和手动(在J2SE5.0以后就提供了自动装箱和拆箱)

装箱举例:

手动:Integer i=Integer.valueOf(1);

自动:Integer i=1;//自动装箱其实是编译时底层调用了valueOf()

拆箱举例:

手动:Integer i=100;    int j=i.intValue();

自动:Integer i=100;    int j=i;//自动拆箱实际上也是调用了intValue()

拓展的问题:为什么有了基本类型,还要有包装类型呢?

答:Javashiy是一门面向对象的语言。而基本数据类型不具有面向对象的特征。为了让其具有面向对象的特性,就有了包装类。

例如:Integer的默认初始值是null  ,而int的默认初始值是0

==和equals的区别

答:==的比较有两种情况,基本数据类型和引用数据类型。基本类型只需要比较值内容,引用类型比较的是内存地址和内容。

而equals方法,继承自Object类,只能用于比较引用类型之间的特征。至于比较内存地址和值,要看它是否被重写。

① 比较java基本类型:

  比较基本类型只能用"==",不能用"equals",这里的"=="比较的是两个基本类型的值;

② 比较包装类:

      包装类里重写了equals()方法,所以==比较地址和值,equals比较值;

③  比较String:

  "=="比较的是内存地址,"equals"比较的是值

④ 比较对象:

   这里"=="比较的是内存地址,"equals"比较的也是地址,没有重写equals方法的类都是调用的Object的equals的方法。

这部分转自https://www.cnblogs.com/Latiny/p/8099581.html,感谢作者大大啦!

猜你喜欢

转载自blog.csdn.net/elice_/article/details/83446224