Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Coudy Hou
JavaGuide
提交
6a3c5b94
J
JavaGuide
项目概览
Coudy Hou
/
JavaGuide
与 Fork 源项目一致
从无法访问的项目Fork
通知
5
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
J
JavaGuide
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
6a3c5b94
编写于
5月 30, 2019
作者:
S
SnailClimb
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
修复图片链接
上级
569d73d5
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
38 addition
and
10 deletion
+38
-10
docs/java/J2EE基础知识.md
docs/java/J2EE基础知识.md
+12
-2
docs/java/Multithread/JavaConcurrencyBasicsCommonInterviewQuestionsSummary.md
...d/JavaConcurrencyBasicsCommonInterviewQuestionsSummary.md
+3
-1
docs/java/collection/Java集合框架常见面试题.md
docs/java/collection/Java集合框架常见面试题.md
+23
-7
未找到文件。
docs/java/J2EE基础知识.md
浏览文件 @
6a3c5b94
...
...
@@ -300,4 +300,14 @@ Cookie 和 Session都是用来跟踪浏览器用户身份的会话方式,但
Cookie 数据保存在客户端(浏览器端),Session 数据保存在服务器端。
Cookie 存储在客户端中,而Session存储在服务器上,相对来说 Session 安全性更高。如果使用 Cookie 的一些敏感信息不要写入 Cookie 中,最好能将 Cookie 信息加密然后使用到的时候再去服务器端解密。
\ No newline at end of file
Cookie 存储在客户端中,而Session存储在服务器上,相对来说 Session 安全性更高。如果使用 Cookie 的一些敏感信息不要写入 Cookie 中,最好能将 Cookie 信息加密然后使用到的时候再去服务器端解密。
## 公众号
如果大家想要实时关注我更新的文章以及分享的干货的话,可以关注我的公众号。
**《Java面试突击》:**
由本文档衍生的专为面试而生的《Java面试突击》V2.0 PDF 版本
[
公众号
](
#公众号
)
后台回复
**"Java面试突击"**
即可免费领取!
**Java工程师必备学习资源:**
一些Java工程师常用学习资源公众号后台回复关键字
**“1”**
即可免费无套路获取。
![
我的公众号
](
https://user-gold-cdn.xitu.io/2018/11/28/167598cd2e17b8ec?w=258&h=258&f=jpeg&s=27334
)
\ No newline at end of file
docs/java/Multithread/JavaConcurrencyBasicsCommonInterviewQuestionsSummary.md
浏览文件 @
6a3c5b94
...
...
@@ -77,7 +77,9 @@ public class MultiThread {
下图是 Java 内存区域,通过下图我们从 JVM 的角度来说一下线程和进程之间的关系。如果你对 Java 内存区域 (运行时数据区) 这部分知识不太了解的话可以阅读一下这篇文章:
[
《可能是把 Java 内存区域讲的最清楚的一篇文章》
](
<
https://github.com/Snailclimb/JavaGuide/blob/3965c02cc0f294b0bd3580df4868d5e396959e2e/Java%E7%9B%B8%E5%85%B3/%E5%8F%AF%E8%83%BD%E6%98%AF%E6%8A%8AJava%E5%86%85%E5%AD%98%E5%8C%BA%E5%9F%9F%E8%AE%B2%E7%9A%84%E6%9C%80%E6%B8%85%E6%A5%9A%E7%9A%84%E4%B8%80%E7%AF%87%E6%96%87%E7%AB%A0.md
>
)
![](
https://diycode.b0.upaiyun.com/photo/2019/ff96fed0e2a354bb16bbc84dcedf503a.png
)
<div
align=
"center"
>
<img
src=
"https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/2019-3/JVM运行时数据区域.png"
width=
"600px"
/>
</div>
从上图可以看出:一个进程中可以有多个线程,多个线程共享进程的
**堆**
和
**方法区 (JDK1.8 之后的元空间)**
资源,但是每个线程有自己的
**程序计数器**
、
**虚拟机栈**
和
**本地方法栈**
。
...
...
docs/java/collection/Java集合框架常见面试题.md
浏览文件 @
6a3c5b94
...
...
@@ -3,7 +3,7 @@
-
[
剖析面试最常见问题之Java基础知识
](
#剖析面试最常见问题之java基础知识
)
-
[
说说List,Set,Map三者的区别?
](
#说说listsetmap三者的区别
)
-
[
Arraylist 与 LinkedList 区别?
](
#arraylist-与-linkedlist-区别
)
-
[
**补充内容:RandomAccess接口**
](
#补充内容randomaccess接口
)
-
[
补充内容:RandomAccess接口
](
#补充内容randomaccess接口
)
-
[
补充内容:双向链表和双向循环链表
](
#补充内容双向链表和双向循环链表
)
-
[
ArrayList 与 Vector 区别呢?为什么要用Arraylist取代Vector呢?
](
#arraylist-与-vector-区别呢为什么要用arraylist取代vector呢
)
-
[
说一说 ArrayList 的扩容机制吧
](
#说一说-arraylist-的扩容机制吧
)
...
...
@@ -28,7 +28,6 @@
-
[
2. Set
](
#2-set
)
-
[
Map
](
#map
)
-
[
如何选用集合?
](
#如何选用集合
)
-
[
集合的选用
](
#集合的选用
)
<!-- /TOC -->
...
...
@@ -88,7 +87,7 @@ ArrayList 实现了 RandomAccess 接口, 而 LinkedList 没有实现。为什
**双向循环链表:**
最后一个节点的 next 指向head,而 head 的prev指向最后一个节点,构成一个环。
![](
https://ws1.sinaimg.cn/large/006rNwoDgy1g2dp8a1hxej30eu06zgmd.jpg
)
![
双向循环链表
](
https://ws1.sinaimg.cn/large/006rNwoDgy1g2dp8a1hxej30eu06zgmd.jpg
)
## ArrayList 与 Vector 区别呢?为什么要用Arraylist取代Vector呢?
...
...
@@ -252,9 +251,17 @@ ConcurrentHashMap 和 Hashtable 的区别主要体现在实现线程安全的方
图片来源:
<http://www.cnblogs.com/chengxiao/p/6842045.html>
HashTable:
[
![img
](
https://camo.githubusercontent.com/b8e66016373bb109e923205857aeee9689baac9e/687474703a2f2f6d792d626c6f672d746f2d7573652e6f73732d636e2d6265696a696e672e616c6979756e63732e636f6d2f31382d382d32322f35303635363638312e6a7067
)
](https://camo.githubusercontent.com/b8e66016373bb109e923205857aeee9689baac9e/687474703a2f2f6d792d626c6f672d746f2d7573652e6f73732d636e2d6265696a696e672e616c6979756e63732e636f6d2f31382d382d32322f35303635363638312e6a7067)
**HashTable:**
**JDK1.7的ConcurrentHashMap:**
[
![img
](
https://camo.githubusercontent.com/443af05b6be6ed09e50c78a1dca39bf75acb106d/687474703a2f2f6d792d626c6f672d746f2d7573652e6f73732d636e2d6265696a696e672e616c6979756e63732e636f6d2f31382d382d32322f33333132303438382e6a7067
)
](https://camo.githubusercontent.com/443af05b6be6ed09e50c78a1dca39bf75acb106d/687474703a2f2f6d792d626c6f672d746f2d7573652e6f73732d636e2d6265696a696e672e616c6979756e63732e636f6d2f31382d382d32322f33333132303438382e6a7067)
**JDK1.8的ConcurrentHashMap(TreeBin: 红黑二叉树节点 Node: 链表节点):**
[
![img
](
https://camo.githubusercontent.com/2d779bf515db75b5bf364c4f23c31268330a865e/687474703a2f2f6d792d626c6f672d746f2d7573652e6f73732d636e2d6265696a696e672e616c6979756e63732e636f6d2f31382d382d32322f39373733393232302e6a7067
)
](https://camo.githubusercontent.com/2d779bf515db75b5bf364c4f23c31268330a865e/687474703a2f2f6d792d626c6f672d746f2d7573652e6f73732d636e2d6265696a696e672e616c6979756e63732e636f6d2f31382d382d32322f39373733393232302e6a7067)
![
HashTable全表锁
](
https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/2019-6/HashTable全表锁.png
)
**JDK1.7的ConcurrentHashMap:**
![
JDK1.7的ConcurrentHashMap
](
https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/2019-6/ConcurrentHashMap分段锁.jpg
)
**JDK1.8的ConcurrentHashMap(TreeBin: 红黑二叉树节点 Node: 链表节点):**
![
JDK1.8的ConcurrentHashMap
](
https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/2019-6/JDK1.8
ConcurrentHashMap.jpg)
## ConcurrentHashMap线程安全的具体实现方式/底层具体实现
...
...
@@ -434,6 +441,14 @@ Output:
## 如何选用集合?
## 集合的选用
主要根据集合的特点来选用,比如我们需要根据键值获取到元素值时就选用Map接口下的集合,需要排序时选择TreeMap,不需要排序时就选择HashMap,需要保证线程安全就选用ConcurrentHashMap.当我们只需要存放元素值时,就选择实现Collection接口的集合,需要保证元素唯一时选择实现Set接口的集合比如TreeSet或HashSet,不需要就选择实现List接口的比如ArrayList或LinkedList,然后再根据实现这些接口的集合的特点来选用。
## 公众号
如果大家想要实时关注我更新的文章以及分享的干货的话,可以关注我的公众号。
**《Java面试突击》:**
由本文档衍生的专为面试而生的《Java面试突击》V2.0 PDF 版本
[
公众号
](
#公众号
)
后台回复
**"Java面试突击"**
即可免费领取!
**Java工程师必备学习资源:**
一些Java工程师常用学习资源公众号后台回复关键字
**“1”**
即可免费无套路获取。
![
我的公众号
](
https://user-gold-cdn.xitu.io/2018/11/28/167598cd2e17b8ec?w=258&h=258&f=jpeg&s=27334
)
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录