Java其他面经题(未整理)

  1. 介绍一下Syncronized锁。如果用这个关键字修饰一个静态方法,锁住了什么?如果修饰成员方法,锁住了什么?
    答:Syncronized锁是同步锁,如果关键字修饰静态方法的话是一个类锁(当前类的所有线程都必须等待同步线程执行), 如果关键字修饰成员方法的话是一个对象锁(当前对象的所有进程必须等待同步进程执行完,释放锁)。

  2. Java线程面试题 Top 50
    40个多线程问题总结

  3. 多线程同步的方法?
    Java实现线程同步的几种方式

  4. ConcurrentHashMap锁加在了哪些地方?
    彻头彻尾理解 ConcurrentHashMap

  5. 单例模式和多线程有关系吗?
    单例对象通常作为程序中的存放配置信息的载体,因为它能保证其他对象读到一致的信息。一个单例模式创建的对象是可以同时被多个线程处理的,如果一个对象被多个线程同时处理的话,很有可能出现线程同步问题。一个单例模式的方法可以同时被多个线程处理,多个线程如果不是同时处理一个对象的共有属性,则不会出现线程问题,即使是方法中的属性如果两个线程同时访问同一个方法的时候,如果这个方法中没有共有的属性,则不需要加锁,反之则需要加锁。

  6. 说一说对Java io的理解?
    IO,其实意味着:数据不停地搬入搬出缓冲区而已(使用了缓冲区)。

  7. Java并发的理解?
    Java是一种多线程编程语言,我们可以使用Java来开发多线程程序。 多线程程序包含两个或多个可同时运行的部分,每个部分可以同时处理不同的任务,从而能更好地利用可用资源,特别是当您的计算机有多个CPU时。多线程使您能够写入多个活动,可以在同一程序中同时进行操作处理。

  8. Java如何实现线程安全?
    锁机制:synchronized,Lock;
    concurrent包:atomic,容器等。

  9. Java中都有什么锁?
    隐式锁(并不需要显示的加锁和解锁的过程,所以称之为隐式锁):synchroniezed;显示锁:Lock(ReentrantLock,ReentrantReadWriteLocK);
    按照其性质分类:
    (1)公平锁/非公平锁
    (2)乐观锁/悲观锁:乐观锁在Java中的使用,是无锁编程,常常采用的是CAS算法,典型的例子就是原子类,通过CAS自旋实现原子操作的更新。
    (3)独享锁/共享锁
    (4)互斥锁/读写锁

  10. CAS如何实现?

  11. 线程池原理?
    线程池的排队策略和拒绝策略的试用条件和具体内容。
    线程池的类型,详细介绍cached和fixed

  12. Java并发包里面的CountdownLatch怎么使用?

  13. 一般线程和守护线程的区别?
    他们两个是依赖关系。所谓守护线程,是指在程序运行的时候在后台提供一种通用服务的线程,比如垃圾回收线程就是一个很称职的守护者,并且这种线程并不属于程序中不可或缺的部分。因此,当所有的非守护线程结束时,程序也就终止了,同时会杀死进程中的所有守护线程。反过来说,只要任何非守护线程还在运行,程序就不会终止。

  14. 一致性Hash原理,实现负载均衡?

  15. 消息队列了解吗?
    通俗的说,就是一个容器,把消息丢进去,不需要立即处理。然后有个程序去从容器里面把消息一条条读出来处理。也就是你有一个程序在产生内容然后入队(生产者),另一个程序读取内容,内容出队(消费者)。也就是说当你不需要立即获得结果,但是并发量又不能无限大的时候,差不多就是你需要使用消息队列的时候。

  16. 多线程问题,有10个线程,每个线程作自增到10000,怎么保证不出错!

  1. 两种锁的区别:synchronized、ReentrantLock?
    这两种方式最大区别就是对于Synchronized来说,它是java语言的关键字,是原生语法层面的互斥,需要jvm实现。而ReentrantLock它是JDK 1.5之后提供的API层面的互斥锁,需要lock()和unlock()方法配合try/finally语句块来完成。

  2. 并发常用方法,一个方法创建多个线程,这样保证线程全部结束后再结束方法;

  3. 线程池有几种,工作队列可以重写嘛,java中什么类不可以重写;

  4. java中哪些类是线程安全的?

  5. java线程与操作系统中的线程有什么区别?
  6. jvm中堆内存泄漏时怎么定位到导致内存泄漏的代码?
  1. 异步队列的实现

  2. 你老家是哪里的,工作地点在北京接受吗,你实习主要做什么,学到了什么,项目里面的登陆验证是怎么做的,验证码的模块是你自己写的还是用的开源的,session和token, 分布式集群, redis有什么数据类型,redis里面的zset和set有什么区别,底层怎么实现的,redis的List能用做什么场景,注解的原理,拦截器的原理,对IoC和AOP的理解,AOP有什么用处,除了日志和事务管理你还知道他的其他用途吗,AOP的原理,动态代理有哪几种实现方式,JDK动态代理有哪几个类,有什么参数,看过什么的源码,怎么看的,知道正则表达式吗,正则表达式的group有什么用,数据库用的是mysql吗,索引了解吗,B+树的工作原理是什么,全文索引知道原理和数据结构吗,倒排索引知道吗,给你设计一个搜索系统你要怎么设计,elasticSearch了解吗,java多线程了解吗,线程池用过吗,原理知道吗,让你设计一个数据库连接池你需要对数据库连接进行怎么样的封装,要设计哪些模块,怎么解决长时间无操作服务器把某连接置为不可用但是客户端还是以为是可用的问题,Java的并发包下面的用过哪些,AtomicInteger有什么特性,底层是怎么实现的知道吗,CAS是什么介绍一下,ConcurrentHashMap了解多少,说下工作原理,怎么解决哈希冲突,红黑树了解吗,数据结构没有学过吗,那你知道平衡二叉树吗,有什么特性,插入是怎么插入的,和二叉查找树相比效率有什么差别,Java中的锁知道多少,平常看什么书,有计划吗,怎么看的,中途还穿插了负载均衡和设计模式的小问题。

  3. JUnit知道吗,写你知道的命令
    解释运行字节码程序 消除平台相关性。
    jvm将java字节码解释为具体平台的具体指令。一般的高级语言如要在不同的平台上运行,至少需要编译成不同的目标代码。而引入JVM后,Java语言在不同平台上运行时不需要重新编译。Java语言使用模式Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。

  4. 请求失败怎么办,加锁失败怎么办,回滚失败怎么办。

  5. 公平锁和非公平锁的区别。

  6. 问我对Java7、8的新特性有什么了解

  7. 死锁,写一个死锁的例子

  8. 进程间通信是怎么实现的(我回答了信号量,共享内存,无名管道,命名管道,消息队列),然后让我详细说一下用管道是怎么实现的

  9. ConcurrentHashMap 1.7和1.8的实现有什么不同。

  10. 泛型在编译期和运行期的作用。
  11. 线程池是如何创建的?需要几个参数?分别是什么含义?
  12. 乐观锁和悲观锁的实现。(数据库、Java)
  13. CAS syncronized实现有什么区别。
  14. 讲一下线程池工作原理,结合源码来谈
  15. Java 10

  16. 对象内存布局,然后讲下对象的死亡过程?

  17. 一致性哈希是干嘛的?
  18. 线程池,如何设计的,里面的参数有多少种,里面的工作队列和线程队列是怎样的结构,如果给你,怎样设计线程池?
  19. AQS原理,ReentranLock源码,设计原理,整体过程。

  20. 怎么认为一个类是线程安全?线程安全的定义是什么?Java有多少个关键字进行同步?为什么这样设计?

  21. 两个线程设计题。记得一个是:t1,t2,t3,让t1,t2执行完才执行t3,原生实现。
  22. 写个后缀表达式,为什么要设计后缀表达式,有什么好处?然后写下中缀。

  23. 把所有认识熟用的JUC下的类写出来,讲下使用,然后讲下原生的线程操作

  24. 涉及OOM、JVM优化、源码问题、数据库优化、多线程等问题

  25. cyclicbarrier和countdownlatch的区别

  26. 如何判断一段代码的好坏

  27. 锁机制

  28. 描述一下微信支付的过程
  29. 文件上传
  30. 线程共享进程哪些资源?
  31. 说说es分词算法
  32. es倒排索引;es分词选型。ik分词器
  33. bio和nio
  34. 如何保证集群环境下抢购的并发安全?如何设计一个定时器定时完成某个任务?
  35. kafka的作用
  36. java原子类使用和实现原理
  37. netty是什么?netty可以干什么?有哪些优点?
  38. 可重入锁的设计思路是什么
  39. 常问的知识点总结
  40. 多个用户抢购同一件商品,如何保证不会出错。——乐观锁,
  41. 了解连接池吗
  42. MySQL你了解些什么?索引(聚簇、非聚簇、最左匹配),范式,explain,processlist指令,慢查询日志等
  43. lock的源码实现?多线程中断的原理?数据库索引的实现原理
  44. kafka的topic、partion能解释一下吗
  45. 线程池的几种实现你知道吗?
  46. 线程是不是越多越好,一般设置多少个?电脑CPU为4…。适合设置多少个线程
  47. 线程里面有什么是独立的?
  48. synchronize 与reentralock哪个是公平锁
  49. 如果 fork() 的父進程掛了,那麼子進程還會存在嗎
  50. 分别介绍一下NIO,AIO,BIO(非阻塞,同步非阻塞,阻塞)
  51. 微信紅包,隨機算法怎麼分?
  52. 什么是restful

  53. String a = “abc” + “def”在jvm中有几个对象

  54. 如何在秋招拿到offer的?
  55. 悲观锁和乐观锁,应用中的案例,mysql当中怎么实现,java中的实现

  56. CurrentHashMap的特点和实现原理(按源码讲)

  57. ReentrantLock的底层实现机制(讲源码)

  58. 使用Iterator遍历HashMap,删除值为a的元素会发生什么?
    快速失败:在用迭代器遍历一个集合对象时,如果遍历过程中对集合对象的内容进行了修改(增加、删除、修改),则会抛出Concurrent Modification Exception。

  59. 怎么解决你这个系统高并发的问题?
    我说可以用负载均衡来平衡流量,扩大服务器规模,面试官说你数据库服务器不要处理嘛,我赶紧补了一句可以用缓存

  60. IO流熟悉吗,用的什么设计模式。