java中高级面试题, 虚拟机,JVM调优,垃圾回收,多线程,内存模型

面试问题:

一、Java基础方面:
1、Java面相对象的思想的理解(主要是多态):
http://blog.csdn.net/zhaojw_420/article/details/70477636

2、集合:ArrayList,LinkedList,HashMap,LinkedHashMap,ConcurrentHashMap,HashTable,HashSet的底层源码实现原理

3、Java虚拟机
(1)组成以及各部分作用:
http://blog.csdn.net/zhaojw_420/article/details/70477953
(2)类加载器——ClassLoader:
http://blog.csdn.net/zhaojw_420/article/details/53373898
(3)类加载器的父亲委托机制深度详解:
http://blog.csdn.net/zhaojw_420/article/details/53284225
(4)JVM调优:
http://blog.csdn.net/zhaojw_420/article/details/70527138
(5)垃圾回收:
http://blog.csdn.net/zhaojw_420/article/details/70527232

4、异常
http://blog.csdn.net/zhaojw_420/article/details/70477751

5、String,StringBuffer,StringBuilder区别
http://blog.csdn.net/zhaojw_420/article/details/70477718

6、值传递与引用传递:
http://blog.csdn.net/zhaojw_420/article/details/70477680

7、Java中的equals和hashCode方法详解
http://blog.csdn.net/zhaojw_420/article/details/70477705

8、TCP的三次握手和四次挥手

9、多线程
(1)实现线程同步:
http://blog.csdn.net/zhaojw_420/article/details/67823750
(2)生产者消费者问题:
http://blog.csdn.net/zhaojw_420/article/details/67826902
(3)线程安全
(4)线程死锁
(5)Synchronize实现原理
(7)happen-before规则:
http://blog.csdn.net/zhaojw_420/article/details/70477874
(8)线程池
(9)DCL失效原因以及解决办法:
http://blog.csdn.net/zhaojw_420/article/details/70477921
(10)线程实现方式:Thread,Runable,Callable的区别

10、IO
http://blog.csdn.net/zhaojw_420/article/details/70524353

11、NIO
http://blog.csdn.net/zhaojw_420/article/details/70526695

12、网络编程

13、Java内存模型
http://blog.csdn.net/zhaojw_420/article/details/70477903

二、数据库(MySql)
1、面试题:
http://blog.csdn.net/zhaojw_420/article/details/70530664
2、sql优化:
http://blog.csdn.net/zhaojw_420/article/details/70532017
3、搜索引擎

三、设计模式
单例模式,工厂模式,建造者模式,观察者模式,适配器模式,代理模式等等

四、数据结构与算法:
1、链表,栈,队列,二叉树:
http://blog.csdn.net/zhaojw_420/article/details/68485474
2、八大排序算法:
3、查找算法

五、高并发与海量数据
1、大型网站应用之海量数据解决方案
http://blog.csdn.net/zhaojw_420/article/details/70881230

2、大型网站应用之高并发情况下的解决方案
http://blog.csdn.net/zhaojw_420/article/details/70881266

3、在一个千万级的数据库查寻中,如何提高查询效率?
http://blog.csdn.net/zhaojw_420/article/details/69367682

六,Struts,Spring,Hibernate,Mybatis,Springmvc

七、前端:javascript,Jquery
http://blog.csdn.net/zhaojw_420/article/details/70880977

八、Jsp+Servlet
http://blog.csdn.net/zhaojw_420/article/details/70880968

九、linux操作命令(重点服务器方面操作)

十、tomcat调优

十一、Redis/MongoDB等NoSql
http://blog.csdn.net/zhaojw_420/article/details/68066305

十二、Nginx的配置与使用

原文地址:http://blog.51cto.com/13917525/2174879

时间: 2024-08-08 07:04:19

java中高级面试题, 虚拟机,JVM调优,垃圾回收,多线程,内存模型的相关文章

JVM调优-新生代

JAVA虚拟机新生代,包括eden space+2个survivor空间. 新生代用来存放新近创建的对象,新生代的特点是对象更新速度快,在短时间内产生大量的"死亡对象".对年轻代的垃圾回收称作次级回收 (minor gc) 1.新生代与次级回收 新生代分为三个区域,  一个eden spac , 2个大小相同的survivor,  应用程序只能使用一个eden和一个survivor, 当发生初级垃圾回收的时候,gc挂起程序, 然后将eden和survivorA中的存活对象复制到另外一个

tomcat jvm调优

JVM调优总结 堆(Heap)内存和非堆(Non-heap)内存 堆内存就是Java代码的,留给开发人员使用: 非堆内存是留给JVM自己使用的(方法区.JVM内部处理或优化所需要的内存.每个类结构以及方法和构造方法的代码) Xms:JVM初始内存 默认是物理内存的1/64 Xmx:JVM最大可用内存,默认是物理内存的1/4 Xmn:设置年轻带大小 Xss:设置每个线程的堆栈大小 默认空余堆内存小于40%时,对内存会增大到Xmx的最大值:空余堆内存大于70%时,会减小到Xmx的最小值. 因此,服务

JVM调优及参数设置

(1)参数 -Xms:初始堆大小 -Xmx :最大堆大小 此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存 -Xmn :年轻代大小 整个堆大小=年轻代大小 + 年老代大小 + 持久代大小.持久代一般固定大小为64m,所以增大年轻代后,将会减小年老代大小.此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8. -XX:NewSize:设置年轻代大小 -XX:MaxNewSize:年轻代最大值 -XX:NewRatio 年老代与年轻代的比值 -XX:SurvivorRat

java虚拟机学习-JVM调优总结-分代垃圾回收详述(9)

为什么要分代 分代的垃圾回收策略,是基于这样一个事实:不同的对象的生命周期是不一样的.因此,不同生命周期的对象可以采取不同的收集方式,以便提高回收效率. 在Java程序运行的过程中,会产生大量的对象,其中有些对象是与业务信息相关,比如Http请求中的Session对象.线程.Socket连接,这类对象跟业务直接挂钩,因此生命周期比较长.但是还有一些对象,主要是程序运行过程中生成的临时变量,这些对象生命周期会比较短,比如:String对象,由于其不变类的特性,系统会产生大量的这些对象,有些对象甚至

java虚拟机学习-JVM调优总结-调优方法(12)

JVM调优工具 Jconsole,jProfile,VisualVM Jconsole : jdk自带,功能简单,但是可以在系统有一定负荷的情况下使用.对垃圾回收算法有很详细的跟踪.详细说明参考这里 JProfiler:商业软件,需要付费.功能强大.详细说明参考这里 VisualVM:JDK自带,功能强大,与JProfiler类似.推荐. 如何调优 观察内存释放情况.集合类检查.对象树 上面这些调优工具都提供了强大的功能,但是总的来说一般分为以下几类功能 堆信息查看 可查看堆空间大小分配(年轻代

Java虚拟机(五):JVM调优-命令篇

运用jvm自带的命令可以方便的在生产监控和打印堆栈的日志信息帮忙我们来定位问题!虽然jvm调优成熟的工具已经有很多:jconsole.大名鼎鼎的VisualVM,IBM的Memory Analyzer等等,但是在生产环境出现问题的时候,一方面工具的使用会有所限制,另一方面喜欢装X的我们,总喜欢在出现问题的时候在终端输入一些命令来解决.所有的工具几乎都是依赖于jdk的接口和底层的这些命令,研究这些命令的使用也让我们更能了解jvm构成和特性. Sun JDK监控和故障处理命令有jps jstat j

java虚拟机学习-JVM调优总结-新一代的垃圾回收算法(11)

垃圾回收的瓶颈 传统分代垃圾回收方式,已经在一定程度上把垃圾回收给应用带来的负担降到了最小,把应用的吞吐量推到了一个极限.但是他无法解决的一个问题,就是Full GC所带来的应用暂停.在一些对实时性要求很高的应用场景下,GC暂停所带来的请求堆积和请求失败是无法接受的.这类应用可能要求请求的返回时间在几百甚至几十毫秒以内,如果分代垃圾回收方式要达到这个指标,只能把最大堆的设置限制在一个相对较小范围内,但是这样有限制了应用本身的处理能力,同样也是不可接收的. 分代垃圾回收方式确实也考虑了实时性要求而

《深入理解Java虚拟机》(五)JVM调优 - 工具

JVM调优 - 工具 JConsole:Java监视与管理控制台 JConsole是一个机遇JMX(Java Management Extensions,即Java管理扩展)的JVM监控与管理工具,监控主要体现在:堆栈内存.线程.CPU.类.VM信息这几个方面,而管理主要是对JMX MBean(managed beans,被管理的beans,是一系列资源,包含对象.接口.设备等)的管理,不仅能查看bean的属性和方法信息,还能够在运行时修改属性或调用方法. 直接在jdk/bin目录下点击jcon

《Java程序性能优化》学习笔记 Ⅳ JVM调优

第五章 JVM调优5.1 Java虚拟机内存模型1.JVM虚拟机将其内存数据分为程序计数器.虚拟机栈,本地方法栈,Java堆,和方法去等部分.5.2 JVM内存分配参数5.3 垃圾收集基础5.4 常用调优案例和方法5.5 使用JVM参数5.6 实战JVM调优 <Java程序性能优化>学习笔记 Ⅳ JVM调优