Java常见笔试题(99.9%必问)
一.java基础1.JDK和JRE有什么区别?JDK是java开发工具包,JRE是java运行时环境(包括Java基础类库,java虚拟机)2.==和equals的区别是什么?==比较的是两者的地址值,equals比较的是两者的内容是否一样3.两个对象的hashcode()相同,则equals()也一定为true吗?两个对象的equals返回true,那么hashcode一定相等;两个对象的has
一.java基础
1.JDK和JRE有什么区别?
JDK是java开发工具包,JRE是java运行时环境(包括Java基础类库,java虚拟机)
2.==和equals的区别是什么?
==比较的是两者的地址值,equals比较的是两者的内容是否一样
3.两个对象的hashcode()相同,则equals()也一定为true吗?
两个对象的equals返回true,那么hashcode一定相等;
两个对象的hashcode相等,那么equals不一定为true;
4.final在java中的作用?
修饰类:表明该类不可被继承,类中的所有成员方法都隐式的被指定为final方法
修饰方法:不可被重写,JVM会尝试将其内联,以提高运行效率
修饰变量:不可被改变,修饰引用变量表示引用不可变,引用指向的内容可变
修饰常量:在编译阶段会存入常量池中
5.java中操作字符串都有哪些类?有什么区别?
String:是只读字符串,每次对string的操作都会产生一个新的对象
StringBuilder:可变的字符数组,线程不安全
StringBuffer:可变的字符数组,对方法加了同步锁,线程安全
6.如何将字符串反转?
1.使用StringBuilder的reverse()方法
2.使用字符串数组,实现从尾部开始逐个逆序放入字符串
3.使用String的CharAt方法,调用StringBuilder的insert方法进行操作
4.使用递归的方法
7.string类的常用方法有哪些?
1.获取字符串长度length()
2.获取位置上的某个字符charAt()
3.获取字符的位置indexOf()
4.判断是否包含某个字符contains()
5.判断字符串中是否有内容isEmpty()
6.判断字符串是否一指定字符开头结尾startsWith(),endsWith()
7.判断字符串内容是否相同equals()
8.切割split()
8.抽象类必须要写抽象方法吗?
不一定有抽象方法,但抽象方法一定在抽象类中,抽象类不能实例化
9.普通类和抽象类有哪些区别?
1.抽象类不能被实例化
2.抽象类允许普通方法有主体,抽象方法只需要申明不需要实现
3.抽象类一定有abstract关键词修饰
4.抽象的子类必须实现抽象类中的所有抽象方法,否则的话,这个子类也是抽象类
10.抽象类能使用final修饰吗?
不能,final是最终类不能被继承,而抽象类是必须被继承才有其意义
11.接口和抽象类的区别?
1.抽象类中可以定义构造器,接口不能
2.抽象类可以有抽象方法和具体方法,接口不能有具体方法
3.抽象类中可以定义成员变量,接口中只能是常量
4.抽象类中可以包含静态方法,接口中不能有静态方法
12.IO流分几种?
按照流的流向:输入流,输出流
按照操作单元:字节流和字符流
按照流的角色:节点流和处理流
13.java容器有哪些?
ArrayList,LinkedList,HashSet,HashMap
14.List,Set,Map之间的区别?
list:是个有序的集合,元素可以重复,可以索引访问
set:元素不能重复,无序
map:使用键值对KV,不允许重复,无序
15.HashMap与HashTable的区别?
1.两者父类不同:map继承abstractMap类,table继承Dictionary类
2.对外提供的接口不同:table比map多提供了elments和contains方法
3.对null的支持不同:tableK和V都不能为null,mapK可以为null,但必须保证K唯一
4.安全性不同:map不安全,会产生死锁,table每个方法上加了锁
5.初始容量大小和每次扩充容量的大小不同
6.计算hash值的方法不同
16.HashMap的实现原理?
基于hash算法实现,通过put(key,value)储存,get(key)来获取
17.HashSet的实现原理?
基于hashmap实现,使用hashmap来保存所有元素,不允许重复的值
18.ArrayList和LinkedList的区别?
arraylist:基于动态数组的数据结构,地址连续,查询效率高
linkedlist:基于链表的数据结构,地址无序,新增删除效率高
19.怎么实现数组和list之间的转换?
数组转list:使用asList方法
list转数组:使用toArray方法
20.数组有没有length()方法?String有没有length()方法?
数组是没有length()这个方法的,有length这个属性,可以计算数组的长度
String是有length()这个方法的,用来计算字符串的长度。
更多推荐
所有评论(0)