java题总结(四)

1.StringBuffer和StringBuilder的区别?
StringBuffer是线程安全的 JDK1.0
StringBuilder是非线程安全的 JDK1.5

2.获取系统时间的毫秒数方法,从什么时候开始计算?
System.currentTimeMillis();1970年1月1号0点0分

3.格式化日期使用哪个类的哪个方法?
SimpleDateFormat类 format();

4.String Stringbuffer和StringBuilder的区别?
String不可改变字符串 当改变字符串的内容将会产生一个新的对象
StringBuffer和StringBuilder是可变字符串 当改变字符串内容不会产生一个新的对象

5.异常的体系结构,写出三个父类?
throwable Exception Error
try-catch-finally-throw-throws关键字分别的用途是什么?
try可能出现异常的代码块
catch 捕获异常
finally 不管是否出现异常都将执行的代码
throw 抛出一个异常
throws 声明异常,可以声明多个
RuntimeException和CheckedException有在处理上有什么不同?
RuntimeException不是必须处理
CheckedException必须处理 继续声明给JVM虚拟机 或者try-catch处理

6.try-catch-finally中,如果try中已经return了值,那么finally中对返回值的操作会不会影响返回值?
不会影响

7.finally不执行的唯一情况是什么?
system.exit(int status);
status为0表示正常退出
非0表示非正常退出 效果都一样

8.throw和throws的区别?
throw是在方法体内部单独作为一条语句使用 抛出异常
throws声明异常,写在形参列表之后 可以声明多个 多个之间逗号隔开

9.自定义异常的步骤?
编写异常类 继承父类(Throwable,Exception,RuntimeException)
方法中抛出自定义异常

10.静态方法中如何实现实例属性和方法?
不能,必须先new对象,然后通过对象名.访问

11.ArrayList实现了那个接口?
List

12.ArrayList集合的数据结构是什么,特点是什么?底层数据结构,是否有序,是否安全,是否允许为null
数组 有序 线程不安全 null 查询快,增删慢

13.ArrayList初始容量是多少,扩容是多少?
0,当我们第一次添加元素,赋值长度为10,扩容1.5倍

14.ArrayList和Vector的区别?
A Vector是JDK1.0就有的,ArrayList是JDK1.2才有的
B Vector无参构造直接给数组长度赋值为10,而ArrayList是第一次添加内容的时候才给数组的长度赋值为10
C Vector扩容是原来的两倍,ArrayList是原来的1.5倍
D Vector是线程安全的,ArrayList是线程不安全的

15.三种遍历ArrayList的方式是什么,有什么区别?
普通for循环 基于下标遍历 可以做一些基于下标的操作
增强for循环 不能操作下标 效率高 底层实现还是迭代器
迭代器 不能操作下标 效率高

16.是否可以在增强for循环或者迭代器中增加或者删除元素
不会,会抛出并发异常

17.ArrayList增删改查的方法是什么?
add remove set get

18.JDK8HashMap数据结构?
数组+单向链表+红黑树 当链表的长度大于8将转化为红黑树 提供查询效率

19.HashMap和Hashtable的区别?
HashMap 1.2 16 2倍 线程不安全
Hashtable 1.0 11 2倍+1 线程安全

20.HashMap是哪个接口的实现类,初始容量是多少,增长多少,负载因子是多少,什么含义?
Map接口 初始16 扩容2倍 负载因子0.75F

21.遍历HashMap的三种方式?
keySet()方法获取所有的key
获取所有的值,values()
entrySet()获取所有的条目项,数据的集合Set<Entry<key,value>>
Iterator<Entry<key,value>>it = entrySet().iterator();

22.JDK提供的数组排序为哪个类的哪个方法
Array.sort()

23.ArrayList和LinkedList区别?
ArrayList是有序的 线程不安全 基于数组 需要扩容 扩容1.5倍
LinkedList 无序的 线程不安全 基于链表 不需要扩容 拥有List接口方法之外独有的操作头和尾的方式

24.HashSet去重复的原理是什么,HashSet和HashMap的区别是什么?
Hash去重复是根据对象的hashcode和equals方法比较,都为true则认为是通一个对象
HashSet中维护的是一个HashMap的键

25.TreeMap和TreeSet特点,关系?
两个都是有序的,TreeSet中维护的是TreeMap的键

26.ArrayList、LinkedList、Vector三个类的关系?
都实现与List接口
ArrayList和Vector都是数组的结构 ArrayList是线程不安全的Vector是线程安全的
LinkedList是双向链表 增删快 查询慢 线程不安全

27.Collection和Collections的区别 如何实现集合排序,对排序的类型有什么要求?
Collection是集合父接口
Collections是集合工具类
Collections.sort()排序的类型必须实现Comparable接口,重写compareTo方法

28.如果需要对一个泛型为自定义类型的集合进行排序,需要做什么操作?
排序的类型必须实现Comparable接口,重写compareTo方法

29.可以保证顺序的set集合是哪些类?插入顺序和排序顺序?
LinkedHashSet和TreeSet

30.Properties应该使用的添加数据的方法是什么?为什么不能使用put或者putAll?
setProperty()
因为Properties集合键和值都是String类型的 而使用put或者putAll可以插入其他的类型

31.Set<?extends Animal>和Set<?super Animal>分别表示什么含义?

<?extends Animal>表示泛型的类型可以是Animal或者Animal的子类
<?super Animal> 表示泛型的类型可以是Animal或者Animal的父类

32.线程的状态
创建 就绪 运行 阻塞 死亡

33.创建线程的方式 两种方式的区别
继承Thread类 重写run方法 书写简单 适用于单继承
实现Runnable接口 重写run方法 可以实现数据共享
多用组合 少用继承

34.调用start和调用run方法的区别
start方法开启新线程
run方法不会开启新线程

35.线程调度的方法
sleep 休眠 join 插入 yield 礼让 stop 中断 start 开始 interrupt设置中断标识为true isAlive 是否存活

36.进程和线程的区别
进程是cpu最小的分配资源单位
进程可以有多个线程

37.书写同步关键字
Synchronized

38.礼让和插队有什么区别?
礼让不一定会礼让
插队一定会插队

39.判断是否是文件?
isFile();

40.判断是否是目录?
isDirectory();

41.判断是否存在?
exists();

42.删除文件的方法?
delect();

43.文件的相对路径?
getPath();

44.文件的绝对路径?
getAbsolutePath();

45.FileInputStream是什么流?
字节读取流

46.字节写入流是哪个对象?
FileOutputStream

47.字节流写入的方法是什么,支持参数是什么?
write();
byte数组
Int num 显示对应的ASCII
FileInputStream如何每次读取两个字节
Byte[]datas = new byte[2];
Read(byte[]datas);返回值是每次读取的长度,内容存放在datas数组中

48.读取图片应该使用什么对象?
DataInputStream

49.BufferedReader独有的读取文件的方法是什么?
readLine();

50.什么是序列化,什么是反序列化,序列化的对象有什么要求?
将对象以二进制的形式存储在文件中
将存储在对象的二进制文件读取出来转化为对象
实现Serializable

51.实现序列化的步骤是什么?
先实现Serializable接口,然后使用ObjectOutputStream写入对象,再使用ObjectInputStream读取对象

52.写入对象使用哪个对象的哪个方法?
使用ObjectOutputStream写入对象,writeObject();

53.读取一个对象是什么方法?
readObject();

54.如何根据全限定名获取一个Class对象
Class.forName(“包名 + 类名”)

55.根据Class对象调用无参构造创建一个实例
Class cl = Class.forName(“包名 + 类名”);
Constructor con = cl.getConstructor();
Object obj = con.newInstance();

56.获取当前类对象的所有构造方法
Class cl = Class.forName(“包名 + 类名”);
Constructor[] cons = cl.getConstructors();

57.获取当前类对象的所有方法
Class cl = Class.forName(“包名 + 类名”);
Method [ ] ms = cl.getMethods();

58.根据名字获取一个类对象的方法并且调用
Class cl = Class.forName(“包名 + 类名”);
Method method = cl.getMethod(“methodname”,parameterType…)

60.获取一个类对象的所有字段
Class cl = Class.forName(“包名 + 类名”);
Field [] fields = getFields();

61.根据名字获取一个类对象的某个字段,设置值并且访问
Class cl = Class.forName(“包名 + 类名”);
Filed f= cl.getField(“fieldname”);
f.set(obj,value);
f.get(obj);

62.反射的概念
在程序执行过程中(RUNTIME)动态的获取类的信息并且调用
1.元注解都有哪些,表示什么含义
@Target 注解的位置
@Documented
在doc文档是否保留
@Retention 生命周期
@Inherited
注解是否被子类保留

63.注解中属性的写法,注解中属性支持的数据类型
数据类型 + 属性名 ();
八种基本 + String + Class + 枚举和其对应的数组

64.注解属性什么情况下可以直接写值
属性名为value并且属性只有一个

65.获取一个方法上声明的所有注解
1.先获取当前类对象
2.获取类中所有的方法
3.根据方法对象获取到所有的注解

66.注解中能不能写普通方法,能不能写枚举类
不能,没有普通方法,可以写枚举类

67.ip地址的组成包含什么?
网络地址+ 主机地址

68.http是什么协议?
超文本传输协议是基于tcp的

69.tcp和udp的区别是什么?
tcp面向连接的可靠的安全的效率低的
udp非面向连接的不安全可靠的效率高 的

70.描述tcp三次握手和四次挥手
三次握手:
第一次握手:客户端向服务器发送连接请求,此时客户端处于SYN-
SENT状态
第二次握手:服务器接收到客户端的请求,向客户端发送允许连接
的响应,此时服务器处于SYN-RECEIVED
第三次握手:客户端向服务器发送连接请求,此时双方处于SYN-
ESTABLISHED 状态
四次挥手:
第一次:客户端向服务器发送断开连接请求
第二次:服务器向客户端响应收到断开连接请求,此时服务器依然
可以向客户端发送数据
第三次:服务器数据传输完毕,向客户端确认已断开连接请求
第四次:客户端向服务器确认断开连接

71.JDK8新特性有哪些
接口相关:可以使用default关键字编写普通方法,也可以书写静态
方法
Lambda表达式解决匿名内部类阅读性差的问题
Stream函数式编程
方法引用

72.手写单例模式
1.构造方法私有化
2.定义一个私有的当前类对象
3.在静态方法中返回此对象

73.三种方法引用的写法
前提,接口必须是函数式接口
构造方法:类名 :: new;
普通方法:对象名 :: 方法名
静态方法:类名 :: 方法名

mysql

1.模糊查询关键字,%和_的含义
% 表示匹配0个或者多个任意字符
_表示匹配一个字符

2.排序关键字,升序、降序
order by asc desc

3.分组关键字,having的作用
group by having 用于过滤查询后的结果集

4.分页关键字,参数的含义
limit m,n 从m+1 条开始显示 显示n条

5.常用的聚合函数和含义
count() 求记录数
sum()求和
avg()求平均值
max()最大值
min()最小值

6.子查询关键字
in

7.连接的类型和区别
内连
外连 左外 右外
自连接

8.关于删除表和数据的三种方式以及区别
drop 删除整个表
truncate 删除表数据,清空索引,保留表结构
delete 删除数据 保留索引

9.去除重复关键字
distinct

JDBC

1.使用jdbc操作数据库的步骤是什么?
加载驱动
获取连接对象
获取执行sql对象
获取结果
关闭资源

2.使用jdbc执行dml语句返回值是什么
受影响的行数 int类型

3.使用jdbc执行dql语句返回值是什么
结果集 ResultSet

4.事务的特性和含义
原子性 一个事务是不可拆分 要么执行 要么都不执行
一致性 通过事务执行的数据必须要保持一致完整
隔离性 事务在执行过程中 为提交的数据 外界不可访问
持久性 通过事务提交的数据将持久化到数据库

5.分别说明DQL,DML,DDL,DCL都属于什么语句
DQL 查询语句 select
DML 操作语句 insert into ,update ,delete
DDL 定义语句 create 创建数据库 ,表,视图
DCL 控制语句 授权grant,撤销权限 revoke ,删除用户

6.写明查询语句相关的关键字,尽量多写
select distinct 聚合函数 from where not like in and or order by
group by having limit

7.事务回滚和提交的命令分别是什么
rollback
commit
autocommit = 0 关闭自动提交
autocommit = 1 开启自动提交

8.有哪些常见的数据库
sqlserver oracle mysql db2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值