2016JAVA经典基础面试题(一)

1、基本数据类型

数值型:byte 、short、int、long(浮点类型:double float)

字符型:char

布尔值:boolean

2、标识符的命名规则?

字母,数字、下划线或者美元符号组成!

首字母不能以数字开头

不能用关键字,布尔值 ,null

区分大小写,没有长度限制,坚持见名知义的原则!

3、引用数据类型

String 类、接口、数组

4、抽象类和接口的区别?

抽象类可以有抽象方法,和普通方法、还可以包含普通类成员的一切成员。

接口里面全部是静态常量、一个类只能继承一个抽象类。一个类可以实现多个接口!简单来说,

接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的,而抽象类是可以有私有方法或私有变量的,

另外,实现接口的一定要实现接口里定义的所有方法,而实现抽象类可以有选择地重写需要用到的方法,一般的应用里,

最顶级的是接口,然后是抽象类实现接口,最后才到具体类实现。

还有,接口可以实现多重继承,而一个类只能继承一个超类,但可以通过继承多个接口实现多重继承

5、重写和重载?

重载涉及同一个类的同名方法,要求方法名相同,参数列表不同,与返回值类型无关

重写是子类和父类之间的同名方法,要求方法名相同,参数列表相同,返回值类型相同!

6、string stringbuff stringbuding区别

在单机非多线程(Multithread)的情况下使用StringBuilder会有较好的效率,因为StringBuilder没有处理同步(Synchronized)问题

。StringBuffer则会处理同步问题,如果StringBuilder会在多线程下被操作,则要改用StringBuffer,让对象自行管理同步问题。

7、集合类?

java的集合类主要有Map接口和Collection接口派生

Collection是集合类的一个顶级接口,其直接继承接口有List与Set

list集合继承Collection接口,是有序接口!List中允许重复的元素,也就是说List是一组不唯一,有序的对象!

list接口的实现类有arrayList和LinkedList.

arraylist内存分配连续的空间 善于查找比较快!

LinkedList采用链表,删除和插入效率比较高!

ArrayList 是一个可改变大小的数组.当更多的元素加入到ArrayList中时,其大小将会动态地增长.内部的元素可以直接通过get与set方法进行访问,因为ArrayList本质上就是一个数组.

LinkedList 是一个双链表,在添加和删除元素时具有比ArrayList更好的性能.但在get与set方面弱于ArrayList.

Set

set接口可以存储一组唯一。无序的对象

set的实现类有hashSet

hashSet的优点是集合的元素是无序的排列、允许集合的元素为null,查找效率高!

Map是一组键值对(key、value)

key不要求有序,不允许重复

value不要求有序,但允许重复的!

优点在与查询指定的元素比较高!

8、Hashmap 和hashtabie的区别

1)继承与实现的不同

HashTable是基于陈旧的Dictionary类,完成了Map接口;HashMap是Java1.2引进的Map接口的一个实现(HashMap继承于AbstractMap,AbstractMap完成了Map接口)

2)线程安全不同

HashTable的方法是同步的,HashMap的方法是未同步的。

3)对null的处理不同

HashTable不允许null值的存在,HashMap允许null值的存在

9、final, finally, finalize的区别。

final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。

finally是异常处理语句结构的一部分,表示总是执行。

finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。

10、char型变量中能不能存贮一个中文汉字?为什么?.

可以啊。JAVA默认的编码是unicode

11、静态变量和实例变量的区别?

静态变量属于类,该类不生产对象,通过类名就可以调用静态变量。

实例变量属于该类的对象,必须产生该类对象,才能调用实例变量。

2016JAVA经典基础面试题(一)

12、单例模式?

静态变量属于类,该类不生产对象,通过类名就可以调用静态变量。

实例变量属于该类的对象,必须产生该类对象,才能调用实例变量。

单例模式?

单例模式就是确保一个类只能有一个实例,并且提供一个全局访问点

1、单例类确保自己只有一个实例。

2、单例类必须自己创建自己的实例。

3、单例类必须为其他对象提供唯一的实例。

public class Singleton {

private static Singleton instance;

private Singleton() {

}

public static Singleton getInstance() {

if (instance == null) {

instance = new Singleton();

}

return instance;

}

}

13、数据库的分页查询?

Oracle分页查询格式:

以下是代码片段:

SELECT * FROM

(

SELECT A.*, ROWNUM RN

FROM (SELECT * FROM TABLE_NAME) A

WHERE ROWNUM <= 40

)

WHERE RN >= 21

mysql> SELECT * FROM table LIMIT 5,10; // 检索记录行 6-15 ,注意,10为偏移量

14、序列化和反序列化分别用于什么场合?

主要用于存储对象状态为另一种通用格式,比如存储为二进制、xml、json等等,把对象转换成这种格式就叫序列化,而反序列化通常是从这种格式转换回来。

使用序列化主要是因为跨平台和对象存储的需求,因为网络上只允许字符串或者二进制格式,而文件需要使用二进制流格式,如果想把一个内存中的对象存储

下来就必须使用序列化转换为xml(字符串)、json(字符串)或二进制(流)

序列化是将对象状态转换为可保持或传输的格式的过程。与序列化相对的是反序列化,它将流转换为对象。

这两个过程结合起来,可以轻松地存储和传输数据。

15、什么是ORM?

对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。

简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。

16、面试怎么说我优点缺点?

做事情认真负责、坚持原则、有一定的团队精神,对人热情,对工作认真,勤奋,具有同情心。

我什么知识或专业都想学,什么也没学精。

对自己从事工作存在的困难,自己琢磨的多,向同事或领导请教的少

有时候意志力不是很坚强

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页