- 博客(1)
- 资源 (25)
- 收藏
- 关注
java面试常见基础(深层次,高级研发)
绝对想你所想,超乎想象!够详细,够给力!
目录
1. Jvm内存空间结构是什么样的? 1
程序计数器 1
Java栈 1
本地方法栈 2
堆 2
方法区 3
2. Jvm堆内存的划分结构和优化 3
2.1. 原理 6
2.1.1. 年轻代 6
2.1.2. 年老代 6
2.1.3. 持久代 7
2.2. 参数说明 8
2.3. 疑问解答 9
2.4. 垃圾回收器选择 10
2.4.1. 串行收集器 10
2.4.2. 并行收集器(吞吐量优先) 10
2.4.3. 并发收集器(响应时间优先) 11
2.4.4. 其它垃圾回收参数 11
2.5. 辅助信息参数设置 12
2.6. 关于参数名称等 13
3. JVM服务参数调优实战 14
3.1. 大型网站服务器案例 14
3.2. 内部集成构建服务器案例 15
4. 常量池在jvm的哪个空间里边? 17
5. jvm垃圾回收是什么时候触发的? 17
5.1. 那究竟GC为我们做了什么操作呢? 17
5.1.1. Jvm怎么判断对象可以回收了? 18
5.2. 下面我们来看一下几种垃圾收集算法 18
5.2.1. 在JDK1.2之前,使用的是引用计数器算法, 18
5.2.2. 根搜索算法 19
5.2.3. 引用的分类 19
5.3. 方法区也是会被回收的 20
5.4. 下面我们来逐一介绍一下每个垃圾回收器。 22
5.4.1. 1、 Serial收集器 22
5.4.2. 2、 ParNew收集器 23
5.4.3. 3、 ParallelScavenge 23
5.4.4. 4、 ParallelOld 24
5.4.5. 5、 SerialOld 24
5.4.6. 6、CMS 24
5.4.7. 7、 GarbageFirst(G1 ) 26
6. 常量池如何触发的垃圾回收? 28
7. 垃圾回收从哪里开始检测树进行回收?根节点是什么? 28
7.1. 目前java中可作为GC Root的对象有 29
8. Redis怎么判断对象可以清理了? 29
9. Redis怎么提高命中率? 29
10. Finalize中调用垃圾回收方法,再调用方法会回收么? 29
11. Int进行自增操作,如何保证线程安全? 30
12. Int a=1是原子方法,布尔类型进行赋值是原子方法么? 30
12.1. 多线程原子操作的安全性 31
13. Cas怎么实现unsafe? 32
13.1. Unsafe 32
13.2. CAS 32
13.3. 由CAS分析AtomicInteger原理 33
13.4. CAS的缺点 35
14. Map数据结构? 35
14.1. 一、定义 36
14.2. 二、构造函数 36
14.3. 三、数据结构 36
14.4. 四、存储实现:put(key,vlaue) 38
14.5. 五、读取实现:get(key) 41
15. 一百万数据放Arraylist数组,怎么放? 在哪个代? 42
15.1.1. 调整数组容量 42
16. Hashmap和 concurrentHashmap除了线程安全 还有什么区别,put的时候是怎么处理的。 43
17. 数据库组合索引,储存在一个叶子节点还是多个? 44
17.1. 索引的利弊与如何判定,是否需要索引: 44
17.1.1. 索引的好处 44
17.1.2. 索引的弊端 44
17.1.3. 如何判定是否须要创建索引 44
17.2. 复合索引优化 45
17.3. 下面是一些常见的索引限制问题 45
17.3.1. 使用不等于操作符(<>, !=) 45
17.3.2. 使用 is null 或 is not null 45
17.3.3. 使用函数 45
17.3.4. 比较不匹配的数据类型 46
17.4. 关于索引的排序 46
18. 数据库没有orderby默认如何排序。 46
19. 分布式事务如何实现。 46
19.1. 1 事务/分布式事务 47
19.1.1. 1.1 事务 47
19.1.2. 1.2 分布式事务与 XA 规范 47
19.2. 2 两阶段提交协议 47
19.2.1. 2.1 预提交阶段 48
19.2.2. 2.2 提交阶段 48
19.3. 3 分布式事务应用框架 48
19.3.1. 3.1 角色 48
19.3.2. 3.2 交互时序 49
19.3.3. 3.3 关键点 50
19.3.4. 参考 50
20. Jvm底层源码 51
21. 二叉树怎么实现的? 51
22. Executourservice 数据结构。哪种只能执行一个线程。 Cache怎么实现的 fixed线程如果中断,线程回自己销毁么? 51
23. 栅栏的原理和实现。 51
23.1. 1. CyclicBarrier简介 51
23.2. 2. CyclicBarrier数据结构 52
23.3. 3. CyclicBarrier源码分析(基于JDK1.7.0_40) 52
23.3.1. 3.1 构造函数 52
23.3.2. 3.2 等待函数 53
23.4. 4. CyclicBarrier的使用示例 57
23.4.1. 示例1 57
23.4.2. 示例2 59
24. Blockingqueue有几种形式?各自的编码方式。 72
24.1. Queue接口 72
24.2. BlockingQueue接口 73
24.2.1. ArrayBlockingQueue 74
24.2.2. LinkedBlockingQueue 78
24.2.3. LinkedBlockingDeque(双向并发阻塞队列) 84
24.2.4. PriorityBlockingQueue(优先阻塞队列) 85
24.2.5. 总结一下阻塞队列 90
25. Tomcat 如何管理servlet? 90
26. Servlet生命周期 90
27. 没有缓存,如何实现领券并发操作? 92
2016-10-12
Python3 简明教程(中文版)带源码
新整理的Python3简明教程 中文版,带书源码 ,网上都是在线阅读的,多有不便。整理成文档好多了 Python3和2区别很大,不兼容,学习的看最新的吧
2014-07-24
spring 结合 Redis 例子,简单入门例子
spring 结合 Redis 例子,简单入门例子http://blog.csdn.net/sunny243788557/article/details/34431357
2014-06-25
sqlyog 10.4.2 官方版,付:注册码
在网上搜索一下sqlyog 已经出到10.5.1 但是没有找到破解,甚至是完整无限制安装包也没有。这个是我找到的最新的官方版本完整安装包,附带注册码。
2013-01-05
java 读取excel文件97-2007等格式
这是我自己写的一个独立的方法,里边有上传方法,判断文件名方法,和读取excel方法,本方法支持97-2003的xls格式的文件,也支持2007的xlsx格式的文件。
可以直接拷贝到项目中,用到时直接调用readexcel()方法即可!
2012-03-18
Intellij 11.0.2 svn1.7插件
intellij idea11.0.2 上支持svn1.7的集成插件。
操作步骤:
1下载 svn4idea后,本地安装此插件,再把以前的停用了。启用新的就可以了。
2 完成以上操作后在命令行执行: sed -i 's/vcs="svn"/vcs="svn17"/' /path/to/project/.idea/vcs.xml
其中/path/to/project就是项目的目录
2012-03-18
最新myeclipse10 高权限注册机
这个是最新的myeclipse注册机。适用于9和10.权限不再是999这种低权限了,
而是unlimited(无限的)也就是传说中的最高权限完全版。这个比替换文件那种要稳定,而且是自己的公钥私钥,而不是替换为别人的。那种老是出各种错误。
这个是java写的程序。所以需要安装jdk。我想这对用myeclipse的都是已经安装了的。
2011-11-11
适合subversion server 1.7.0 的eclipse&myeclipse插件
适合subversion server 1.7.0 的eclipse&myeclipse插件,不同的svn服务器需要配套的eclipse插件才能在myeclipse工具里使用,这个就是用于svn1.7.0 的eclipse插件。官方没有给出1.7.x的插件,但是这个1.8.x支持svn1.7.0
2011-10-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人