JAVA面试题集锦
1、Java跨平台的原理?
不同的操作系统是有自己的一套代码运行的环境的,而java为了使得java代码能在不同版本的操作系统上运行,java提供了应对不同版本的操作系统的JVM,来实现java接口,这样这样就屏蔽了不同操作系统之间的差异,使得Java程序能在任意平台上运行。
2、简单搭建一个java运行环境?
运行一个java,首先我们需要配置好jdk,然后对“JAVA_HOME” 进行配置。
再接下来是对编译软件的配置,一般情况下,我们采用eclipse(myeclipse)、IDEA来编译java程序,这个过程只有基本操作。
再然后就是配置tomcat,对于tomcat我们只需要和JAVA_HOME关联起来即可。
3、java中各个基本类型所占的位数、范围、默认值?
java中有8大基本数据类型:分别是byte、short、char、int、double、float、long、boolean。
数据类型 所占位数 范围 默认值
byte 8 -128~127 0
short 16 -2**15~2**15-1 0
char 16 \u0000~\uFFFF null 一个16机制占4位
float 32 -2**31~2**31-1 0.0
double 64 -2**63~2**63-1 0.0
long 64 -2**63~2**63-1 0.0
boolean 1 true/false false
4、java面向对象的几大特征?
javamian面向对象有4大特征:抽象、继承、封装、多态。
抽象:就是对现实中的某一类事物进行归类,以计算机语言的形式表象出来。 比如人是一类,我们就可以用class定义人这个lei类型。
继承:java中是单继承,不同与c++,继承是一个类衍生出很多子类,子类能获取父类的所有成员变量和方法但是不同的是,对于父类的private修饰的变量,子类不能直接访问,必须通过super来访问。这个过程就像儿子继承了父亲的全部东西,但是银行里的钱,必须通过父亲才能取,儿子不能自己去取。
封装:对一个对象进行高度自治的封装,它的行为都由它自己来决定。比如小明是一个个体,他所操作的事情他自己来决定。
多态:多态是对于实现接口而言的,不同的实现类都可以用接口来向上转型。
5、拆箱和装箱
拆箱和装箱对于封装类而言,既然有了基本数据类型,为什么还要要包装类型呢?
这是因为基本数据类型无法对很多操作进行满足,比如最大值,最小值的获取。
封装类有有8个对应基本数据类型 分别是Byte ,Long,Double,Charset,Boolean,Float,Short,Integer,这些都是引用数据类型。
这个8个包装类型的缓存范围:
boolean:true和false
byte:-128~127
char:0~127
short:-128~127
int:-128~127
long:-128~127
Integer a = 1;
Integer b = 1;
a==b true
Integer c = 666;
Integer d =666;
c==d false
比较一下int和Integer的区别;
int 的默认值为 0,而Integer 的默认值null,这样,我们在操作数据库的时候,我们尽可能的使用Integer类型来操作。
int是基本数据类型,Integer引用类型。
在JDK 1.5之后,装箱和拆箱已经不需要人来完成了。
比如说Integer a = 1; 这个就是自己装箱的过程,它实际上是Integer a = Integer.ValueOf(1);
int b = a ,这就是自动拆的过程,相当与int b = a.IntValue();
6、equals和==的区别
首先说说 == ,对于基本数据类型而言, == 就是直接比较两个值是否相等。对于引用类型而言, == 比较的是内存中引用的首地址是否相等。
equals 用来判断两个对象特征是否相同。equals在Object中有定义,我们平常所用的equals是在Object的基础上重写了equals方法。