8.06 腾讯 一面 运营开发 Java
1.Java有什么集合
Set、List、Map
2.ConcurrentHashMap的线程安全是怎么实现的
跟HashTable对比了一下,HashTable是一把大锁,而ConcurrentHashMap是分段锁所以并发度会上去
3.HashMap的顶层接口有哪些方法
这里答到了基本的get、set、size
4.如何遍历HashMap的键值
keySet
5.如何自己实现keySet
这里的意思是已经有一个HashMap里面有东西了,不使用keySet方法如何遍历键值,这里答得不是很好,隐隐约约记得Map有个EntrySet的方法可以获得底层的实现结构即Entry,再去遍历
6.线程和线程池的理解
①先说了线程和进程的区别
②说了线程池对于线程的好处
7.Java如何创建一个线程
继承Thread、实现Callable、实现Runnable,这里扯到了要实现run方法然后调用start方法
8.run方法和start方法的区别,为什么不直接调用run而是要调用start
run只是一个类方法,调用start会为线程准备系统资源如内存
9.Java线程池的使用
10.线程安全如何避免死锁
这里自己把问题整理了一遍,使用多线程可以提高性能,但是对一些情况会出现线程不安全的问题,为了避免线程不安全问题一般我们是加锁,然后加锁就会出现死锁问题,一般我们Syncronize或ReentrantLock给代码加锁,Syncronize锁住代码块时JVM级别的,会自己解锁,但是使用ReentrantLock的时候一般是搭配try,catch代码块使用
11.如何实现三个窗口并发卖票安全
就是上面那个问题的拓展
12.项目
13.spring的核心设计理念
①ioc基于反射
②aop基于动态代理
14.动态代理是什么意思
15.mysql的事务
事务的四个特性 ACID
事务的功能
事务并发带来的问题
#腾讯##面经##校招##Java工程师#