avatar

Java面试题2

1.List和Set的区别

1
2
相同点: 都是接口,两个接口都实现了Collection父接口,
不同点: List是可重复集合,Set是不可重复集合;list容器是有序的,set容器是无序的

2.HashMap和Hashtable的区别

1
2
相同点: 都实现了Map接口
不同点: Hashtable继承自Dictionary类,HashMap继承自AbstractMap类;Hashtable实现了同步处理,HashMap没有等等

3.线程run和start的区别,怎么实现线程,继承和实现接口哪个好

1
2
3
4
5
6
7
8
9
线程run和start的区别:
相同点: 都实现了Map接口
不同点: start方法来启动线程,真正实现了多线程运行,start方法启动后,start后续的代码立马执行,无论run方法体有没有被cpu进行调度;run()方法当作普通方法的方式调用.这是一种同步的调用,没有多线程的异步特征;
实现线程的三种方式:
1.继承Thread类
2.实现Runnable接口
3.使用Callable和FutureTask
多线程使用继承或接口哪个好
接口,开发都是以面向接口编程的,并且直接去继承Thread类会存在单继承的局限,实现接口则没有

4.==和equals的区别

1
2
==用于基本数据类型的比较,是直接比较的两个对象的堆内存地址,如果相等,则说明这两个引用实际是指向同一个对象地址的
equals用于判度断两个变量是否是对同一个对象的引用,即堆中的内容是否相同,返回值为布尔类型

5.hashCode和equals的区别

1
2
相同点:equals()和hashcode()都是从object类中继承过来的
不同点:equals()是对两个对象的地址值进行的比较(即比较引用是否相同),hashCode()是一个本地方法,它的实现是根据本地机器相关联的

6.怎么开启事务

1
使用@Transactional

7.@Restcontroller和@Controller的区别

1
2
3
@RestController注解等价于@ResponseBody@Controller;
相同点: @RestController@Controller的共同点是都用来表示Spring某个类是否可以接收HTTP请求
不同点: @RestController无法返回指定页面,而@Controller可以;前者可以直接返回数据,后者需要@ResponseBody辅助

8.@Requestbody和@Responsebody的区别

1
@Responsebody表示该方法的返回结果直接写入HTTP response body中,一般在异步获取数据时使用,在使用@RequestMapping后,返回值通常解析为跳转路径;加上@Responsebody后返回结果不会被解析为跳转路径,而是直接写入HTTP response body中,比如异步获取json数据,加上@Responsebody后,会直接返回json数据;@RequestBody一般用于在提交ajax时所带的请求参数插入到方法中。 简单的说就是帮你把提交的数据直接放到你定义的变量中

9.@Autowired 和@Resource的区别

1
2
相同点: @Resource的作用相当于@Autowired,均可标注在字段或属性的setter方法上
不同点: @Autowired默认按类型装配 ,依赖对象必须存在,如果要允许null值,可以设置它的required属性为false,也可以使用名称装配,配合@Qualifier注解;@Resource 默认按名称进行装配,通过name属性进行指定

10.事务的隔离级别

1
2
3
4
1.原子性(Atomicity): 事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节.事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样.也就是说事务是一个不可分割的整体,就像化学中学过的原子,是物质构成的基本单位
2.一致性(Consistency): 事务开始前和结束后,数据库的完整性约束没有被破坏.比如A向B转账,不可能A扣了钱,B却没收到
3.隔离性(Isolation):同一时间,只允许一个事务请求同一数据,不同的事务之间彼此没有任何干扰.比如A正在从一张银行卡中取钱,在A取钱的过程结束前,B不能向这张卡转账
4.持久性(Durability): 事务完成后,事务对数据库的所有更新将被保存到数据库,不能回滚
文章作者: 123
文章链接: https://gao5805123.github.io/123/2020/05/08/Java%E9%9D%A2%E8%AF%95%E9%A2%982/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 123
打赏
  • 微信
    微信
  • 支付宝
    支付宝