1、java的基本数据类型有哪些?有几种?分别是什么?
有四种类型,有八个,分别为
整型:byte、short、int、long
浮点型:float、double
字符型:char
布尔型:boolean
2、String与StringBuffer的区别是什么?StringBuffer与StringBuilder的区别是什么?
String是常量,不可进行修改
StringBuffer是变量,可以进行修改,速度比StringBuilder慢,但是线程安全
StringBuilder是变量,执行速度快,但是线程不安全
3、switch能否作用在byte、String、long为参数?
byte可以,在java1..7以后String也可以,但是long是不可以作为参数的
4、数组与String是否有长度,区别是什么?
数组与String 都是有长度的,但是数组相当于是一个容器,存在length属性
String是一个类,存在Length()方法
5、下面的语句正确吗?
short s1 = 1;
short s2 = s1 + 1;
不正确,第二步中的1为整型int,与short类型的s1相加时候报错的,这里需要将int类型的1强制类型转换为short,或者使用+=的方式,+=的方式中包含了强制类型转换
6、float类型float f = 3.4是否正确?
不正确,精度不准确,应该用强制类型转换
float f = (float)3.4
或者这样写
float f = 3.4f
7、源文件是否可以包含多个类?
可以包含多个类,但是只能有一个入口类,就是只有一个public修饰的类,其余无修饰符
8、讲一下&与&&的区别?
&与&&都是逻辑与,&&是存在短路的效果,当两个条件,第一个条件不满足的时候就直接得 到不满足的结果,不会执行第二表达式,&是两个表达式条件都会执行
9、在java中如何跳出当前的循环?
这里说是break与continue的区别,continue是跳出当前的循环不会终止循环,而break是终止当前的循环
10、int与Interger的区别是什么?
int是就基本数据类型,但是为了能够将类似int的基本数据类型当做对象去操作,就引入了包装类型,从java5开始引入自动装箱与拆箱的机制
基本数据类型:boolean、char、byte、short、int、long、float、double
包装数据类型:Boolean、Character、Byte、Short、Interger、Long、Float、Double
除了char与int不同,其他的基本数据类型都是首字母大写,比较好记
11、常见的自动装箱与拆箱举个例子?
//自动装箱
Integer total = 99;
//自动拆箱
Int totalprim = total;
12、==与.equals()之间的区别?
"=="是用来比较基本数据类型的值或者引用数据类型的对象引用是否指的是同一方向,而equals方法是用来比较两个对象内部的内容是否相等,也就是说“==”是用来比较地址的,equals是用来比较内容(字面量)
13、重载与重写的方法?
重载(Overloading)
重载发生在本类,方法名相同,参数列表不同,与返回值无关,只和方法名,参数列表,参数的类型有关.
重载(Overload):首先是位于一个类之中或者其子类中,具有相同的方法名,但是方法的参数不同,返回值类型可以相同也可以不同。
(1):方法名必须相同
(2):方法的参数列表一定不一样。
(3):访问修饰符和返回值类型可以相同也可以不同。
其实简单而言:重载就是对于不同的情况写不同的方法。 比如,同一个类中,写不同的构造函数用于初始化不同的参数。
重写(Overriding)
重写发生在父类子类之间,比如所有类都是继承与Object类的,Object类中本身就有equals,hashcode,toString方法等.在任意子类中定义了重名和同样的参数列表就构成方法重写.
重写(override):一般都是表示子类和父类之间的关系,其主要的特征是:方法名相同,参数相同,但是具体的实现不同。
重写的特征:
(1):方法名必须相同,返回值类型必须相同
(2):参数列表必须相同
(3):访问权限不能比父类中被重写的方法的访问权限更低。例如:如果父类的一个方法被声明为public,那么在子类中重写该方法就不能声明为protected。
(4):子类和父类在同一个包中,那么子类可以重写父类所有方法,除了声明为private和final的方法。
(5):构造方法不能被重写,
简单而言:就是具体的实现类对于父类的该方法实现不满意,需要自己在写一个满足于自己要求的方法。