java基础 数据类型 集合与数据结构 关键字(static,rty ...) IO和网络 多线程(并发与锁,死锁) 异常 简单算法,复杂度 JVM 类加载 java内存模型 对象监听器字节码 垃圾回收 内存分析命令 常用框架,结合设计模式 spring,springMVC 和 struts(设计和 ...
分类:
编程语言 时间:
2019-02-27 01:30:37
阅读次数:
204
如果Java内存模型中所有的有序性都仅仅靠volatile和synchronized来完成,那么有一些操作将会变得很烦琐,但是我们在编写Java并发代码的时候并没有感觉到这一点,这是因为 Java语言中有一个“先行发生”(happens-before)的原则。这个原则非常重要,它是判断数据 是否存在 ...
分类:
其他好文 时间:
2019-02-23 20:43:43
阅读次数:
451
volatile和synchronized特点 首先需要理解线程安全的两个方面:执行控制和内存可见。 执行控制的目的是控制代码执行(顺序)及是否可以并发执行。 内存可见控制的是线程执行结果在内存中对其它线程的可见性。根据Java内存模型的实现,线程在具体执行时,会先拷贝主存数据到线程本地(CPU缓存 ...
分类:
其他好文 时间:
2019-02-21 16:12:53
阅读次数:
136
转: http://www.hollischuang.com/archives/489 阿里大牛珍藏架构资料,点击链接免费获取 针对本文,博主最近在写《成神之路系列文章》 ,分章分节介绍所有知识点。欢迎关注。 一、基础篇 JVM JVM内存结构 堆、栈、方法区、直接内存、堆和栈区别 Java内存模型 ...
分类:
编程语言 时间:
2019-02-21 12:53:09
阅读次数:
176
参考https://www.cnblogs.com/zhengbin/p/5654805.html 阅读目录 一、基本概念 二、Volatile原理 一、基本概念 先补充一下概念:Java 内存模型中的可见性、原子性和有序性。 可见性: 可见性是一种复杂的属性,因为可见性中的错误总是会违背我们的直觉 ...
分类:
编程语言 时间:
2019-02-14 11:45:20
阅读次数:
148
六、java内存模型 1.线程独占部分 (1)程序计数器 (2)Java虚拟机栈 (3)本地方法栈 (4)递归为什么会引发java.lang.StackOverFlowError异常吗 2.线程共享部分 (1)MetaSpace和PermGen本质区别 (2)java堆 ...
分类:
编程语言 时间:
2019-02-12 22:04:25
阅读次数:
177
七、JVM面试小知识 1.JVM三大性能调优参数 -Xms -Xmx -Xss 的含义 2.java内存模型中堆和栈的区别 3.不同JDK版本中的intern()方法的区别 ...
分类:
其他好文 时间:
2019-02-12 21:50:17
阅读次数:
187
目录 1.什么是JMM 2.JMM的主内存和工作内存 3.JMM如何解决可见性问题-指令重排序 4.Volatile 十、JMM(Java内存模型)(暂时没有理解) 1.什么是JMM 2.JMM的主内存和工作内存 (1)主内存 (2)工作内存 (3)主内存和工作内存数据存储类型以及操作方式归纳 (4 ...
分类:
编程语言 时间:
2019-02-11 20:00:02
阅读次数:
213
1. JMM的介绍 在上一篇文章中总结了线程的状态转换和一些基本操作,对多线程已经有一点基本的认识了,如果多线程编程只有这么简单,那我们就不必费劲周折的去学习它了。在多线程中稍微不注意就会出现线程安全问题,那么什么是线程安全问题?我的认识是,在多线程下代码执行的结果与预期正确的结果不一致,该代码就是 ...
分类:
移动开发 时间:
2019-02-08 20:18:41
阅读次数:
197
volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。 由于 ...
分类:
编程语言 时间:
2019-02-07 22:15:30
阅读次数:
149