Java基础题(待定)
2017-02-12 12:53
141 查看
1. String类为什么是final的。
2. HashMap的源码,实现原理,底层结构。
3. 说说你知道的几个Java集合类:list、set、queue、map实现类
4. 描述一下ArrayList和LinkedList各自实现和区别
5. Java中的队列都有哪些,有什么区别。
6. 反射中,Class.forName和classloader的区别
Java7、Java8的新特性
8. Java数组和链表两种结构的操作效率
Java内存泄露的问题
10. string、stringbuilder、stringbuffer区别
11. hashtable和hashmap的区别
13 .异常的结构,运行时异常和非运行时异常,各举个例子
String a= “abc” String b = “abc” String c = new String(“abc”) String d = “ab” + “c” .他们之间用 == 比较的结果
String 类的常用方法
16. Java 的引用类型有哪几种
17. 抽象类和接口的区别
java的基础类型和字节大小。
21. Hash冲突怎么办?哪些解决散列冲突的方法?
访问修饰符public,private,protected,以及不写(默认)时的区别?
修饰符 当前类 同 包 子 类 其他包
public √ √ √ √
protected √ √ √ ×
default √ √ × ×
private √ × × ×
24. hashCode() 与 equals() 生成算法、方法怎么重写
“`
主要是为了“效率” 和 “安全性” 的缘故。若 String允许被继承, 由于它的高度被使用率, 可能会降低程序的性能,所以String被定义成final。
2. HashMap的源码,实现原理,底层结构。
HashMap和Hashtable的底层实现都是数组+链表结构实现的,
3. 说说你知道的几个Java集合类:list、set、queue、map实现类
List是一个元素有序、可重复的集合,集合中每个元素都有其对应的顺序索引。 set:类似于一个罐子。放进去的对象没有顺序,也不能包含重复元素。 Queue:用于模拟"队列"的先进先出的数据结构 Map:用于保存具有"映射关系"的数据
4. 描述一下ArrayList和LinkedList各自实现和区别
LinkedList是双向链表,插入数据时十分方便 ArrayList是动态数组,基于索引访问,速度快 Vector非常类似ArrayList,但是Vector是同步的 Stack继承自Vector,实现一个后进先出的堆栈。
5. Java中的队列都有哪些,有什么区别。
队列是一种特殊的线性表, 它只允许在表的前端进行删除操作,而在表的后端(rear)进行插入操作,
6. 反射中,Class.forName和classloader的区别
java中class.forName和classLoader都可用来对类进行加载。 class.forName除了将类的.class文件加载到jvm中之外,还会对类进行解释,执行类中的static块。 而classLoader只干一件事情,就是将.class文件加载到jvm中,不会执行static中的内容,只有在newInstance才会去执行static块。
Java7、Java8的新特性
8. Java数组和链表两种结构的操作效率
数组: 数组就像一个班级一样,一个班多少人,每个人的学号啥的都是确定的啦,根据学号,喊一个学号就会有个人答应, 链表: 链表就像一个铁链,一环扣一环,不能跳过一个,直接去找下一个,必须挨个找,根据节点的next的指向,查找,要查找就得一个个查。
Java内存泄露的问题
内存泄漏的定义:对象已经没有被应用程序使用,但是垃圾回收器没办法移除它们,因为还在被引用着。 1像HashMap、ArrayList的集合对象,当它们被声明为static时,它们的生命周期就会和应用程序一样长。 2.事件监听和回调函数。当一个监听器在使用的时候被注册,但不再使用之后却未被反注册。 3.通常一些成员变量引用其他对象,初始化的时候需要置空。
10. string、stringbuilder、stringbuffer区别
string:final是不可变长度字符串,使用字符数组保存字符串 stringbuilder、stringbuffer是可变长度的字符串,也使用字符数组保存字符串 stringbuilder、stringbuffer都有一个抽象的公共的父类 string,stringbuffer是线程安全的,stringbuilder是非线程安全的
11. hashtable和hashmap的区别
hashtable不允许key和value为null,线程安全的 hashmap允许key和value为null,非线程安全的
13 .异常的结构,运行时异常和非运行时异常,各举个例子
Exception异常是程序运行时发生的错误 Error是指java虚拟机相关的问题,如系统崩溃,虚拟机出错。一般无法捕获 4.运行时异常和非运行时异常 (1)运行时异常都是不检查异常,一般是由程序逻辑错误引起的, (2)非运行时异常是RuntimeException以外的异常,如 IOException、SQLException 等。对于这种异常,JAVA编译器强制要求我们必需对出现的这些异常进行catch并处理,否则程序就不能编译通过。 常见 RuntimeException : 空指针,参数不合法,数学异常,数组下标越界,类型强转异常
String a= “abc” String b = “abc” String c = new String(“abc”) String d = “ab” + “c” .他们之间用 == 比较的结果
String 类的常用方法
16. Java 的引用类型有哪几种
4种, 对象的强、软、弱和虚引用4种
17. 抽象类和接口的区别
答:抽象类和接口都不能够实例化,但可以定义抽象类和接口类型的引用。 抽象类中可以定义构造器,可以有抽象方法和具体方法,定义成员变量类型可以是各种修饰符 接口中定义的方法全部都是抽象方法。接口中定义的成员变量必须是public,实际上都是常量。
java的基础类型和字节大小。
21. Hash冲突怎么办?哪些解决散列冲突的方法?
1.开发地址法2.拉链法3.多重散列
访问修饰符public,private,protected,以及不写(默认)时的区别?
修饰符 当前类 同 包 子 类 其他包
public √ √ √ √
protected √ √ √ ×
default √ √ × ×
private √ × × ×
24. hashCode() 与 equals() 生成算法、方法怎么重写
equals表示的两个变量是否是对同一个对象的引用 ==操作比较的是两个变量的值是否相等 hashcode()方法约定声明相等对象必须具有相等的哈希码
“`
相关文章推荐
- Java(JVM)虚拟机结构基础,和JAR文件包及jar命令详解
- Java动画编程基础第二部分
- 回复:学习java必须有c++基础么?
- (原创) 脚踏实地学Java之:基础篇
- Java 应了解的基础知识(转载)
- 基于Java的动画编程基础
- Java 101之线程基础
- Java Swing入门基础
- Java Swing入门基础 (转)
- Java动画编程基础第一部分
- Java基础之关键字
- 学java也快半年了,一直在看基础的东西,终于决定开始转J2ee了……
- Eclipse基础--java环境变量设置
- 第二讲 Java语言基础知识
- Java动画编程基础第四部分
- JAVA调试技术--基础
- Java初学及基础问题
- JAVA面试基础试题[转贴]
- Java 应了解的基础知识(转载)
- JAVA相关基础知识(1)