- JDK和JRE有什么区别
- ==和equals的区别是什么
- 两个对象的hashCode()相同,则equals()夜一定为true,对么?
- final在java中有什么作用
- java中的Math.round(-1.5)等于多少
- 深拷贝和浅拷贝的区别
- String属于基础的数据类型么
- java中操作字符串都有哪些累?他们之间有什么区别
- String str=“i”与String str = new String(“i”)一样么
- 如何将字符串反转
- String类的常用方法都有哪些
- 抽象类必须要有抽象方法么
- 普通类和抽象类有哪些区别
- 抽象类能使用final修饰么
- 接口和抽象类有什么区别
- java中io流分为几种
- BIO、NIO、AIO有什么区别?
BIO是阻塞的,NIO非阻塞
BIO是面向流的,NIO面向缓冲区
NIO会轮询了解事情的进度
AIO会有提醒进度已完成
NIO核心:Channel(通道双向,同时读写),Buffer(数组),Selector(多路复用)
bio nio aio
- Files的常用方法都有哪些
- 在java中守护线程和本地线程区别
- 线程与进程的区别
- 什么是多线程中的上下文切换
- 死锁与活锁的区别,死锁与饥饿的区别
- java中用到的线程调度算法是什么
- 什么是线程组,为什么在java中不推荐使用
- 为什么使用Executor框架
- 在java中Executor和Executors的区别
- 什么是原子操作?在java Concurrency API中有哪些原子类(atomic classes)?
- java Concurrency API的Lock接口(Lock interface)是什么?对比同步它有什么优势
- 什么是Executors框架
- 什么阻塞队列?阻塞队列的原理什么?如何使用阻塞队列来实现生产者-消费者模型?
- 什么是Callable和Future
- 什么是FutureTask?使用ExecutorService启动任务。
- 什么是并发容器的实现
- 多线程同步和互斥有几种实现方式,都是什么
- 什么竞争条件?你怎样发现和解决竞争?
- 你将如何使用Thread dump?你将如何分析Thread dump?
- 为什么我们调用start()方法时会执行run()方法,为什么我们不能直接调用run()方法?
- java中你怎样唤醒一个阻塞的线程
- 在java中Cyclibarriar和CountdownLatch有什么区别?
- 什么是不可变对象,它对写并发应用有什么帮助?
- 什么时多线程中的上下文切换
- java中用到的线程调度算法是什么
- 什么是线程组,为什么在java中不推荐使用
- 为什么使用Executor框架比使用应用创建和管理线程好?
- java中有几种方法可以实现一个线程
- 如何停止一个正在运行的线程
- notify()和notifyAll()有什么区别
- 什么是Daemon线程?它有什么意义?
- CopyOnWriteArrayList可以勇于什么应用场景
- 什么叫线程安全?servlet是线程安全的么
- volatile有什么作用?能否一句话说明下volatile的应用场景
- 为什么代码会重排序
- 在java中wait和sleep方法的不同
- 一个线程运行时发生异常会怎样
- 如何在两个线程间共享数据?
- 为什么wait,notify和notifyAll这些方法不在thread类里面
- 什么时ThreadLocal变量
- java中interrupted和isInterrupted方法的区别
- 为什么wait和notify方法要在同步块中调用
- 为什么你应该在循环中检查等待条件
- java中的同步集合与并发集合有什么区别
- 什么是线程池?为什么要使用它?
- 怎么检测一个线程是否拥有锁?
- 你如何在java中获取线程堆栈信息
- Jvm中哪个参数是用来控制线程的栈堆栈小的?
- Thread类中的yield方法有什么作用
- Java中ConcurrentHashMap的并发度是什么
- java中Semaphore是什么
- java线程池中submit()和execute()方法有什么区别
- 什么是阻塞式方法
- java中的ReadWriteLock是什么
- volatile变量和atomic变量有什么不同
- 可以直接调用Thread类的run()方法么
- 如何让正在运行的线程暂停一段时间
- 你对线程优先级的理解是什么
- 什么是线程调度器(Thread Scheduler)和时间分片(Time Slicing)
- 你如何确保main()方法所在的线程是java程序最后结束的线程
- 线程之间是如何通信的
- 为什么线程通信的方法wait(),notify()和notifyAll()被定义在Object类里
- 为什么wait(),notify()和notifyAll()必须在同步方法或者同步块中被调用
- 为什么Thread类的sleep()和yield()方法是静态的
- 如何确保线程安全
- 同步方法和同步块,哪个是更好的选择
- 如何创建守护线程
- 什么是java Timer类?如何创建一个有特定时间间隔的任务?
- 为什么等待和通知实在Object类而不是Thread中声明的?
- 为什么java中不支持多重继承
- 为什么java不支持运算符重载
- 为什么String在Java中是不可变的
- 为什么char数组比java中的String更适合存储密码
- 如何使用双重检查锁定在java中创建线程安全的单例
- 编写java程序时,如何在java中创建死锁并修复它
- 如果你的Serializable类包含一个不可序列化的成员,会发生什么?你是如何解决的
- 为什么Java中的wait方法需要在synchronized的方法中调用
- 你能用Java覆盖静态方法么?如果我在子类中创建相同的方法是编译时错误
- 看过HashMap源码么
- 讲讲HashMap的实现原理么
- HashMap什么时候会进行rehash?put结束后会判断,当size>threshold=负载因子(loadFactor)x容量(capacity);
- HashMap什么时候会进行扩容?size>容量(capacity)*0.75
- 那HashMap的初始容量设置程多少比较合适呢?16啊
- 结合源码说说HashMap在高并发场景中为什么会出现死循环?
- JDK1.8中对HashMap做了哪些性能优化
- HashMap和HashTable有何不同
- HashMap和ConcurrentHashMap的区别
- ConcurrentHashMap和LinkeHashMap有什么区别
- 为什么ConcurrentHashMap中的链表转红黑树的阈值是8
- 什么是ConcurrentSkipListMap?他和ConcurrentHashMap有什么区别?
- 还看过其他的源码吗?Spring的源码有了解吗?
- java如何实现多线程之间的通讯和协作
- 什么是可重入锁(ReentrantLock)?
- 当一个线程进入某个对象的一个synchronized的实例方法后,其它线程是否可进入此对象的其它方法
- 乐观锁和悲观锁的理解及如何实现,有哪些实现方式?
- SynchronizedMap和ConcurrentHashMap有什么区别?