Java线程安全 可见性,原子性,有序性 Java内存模型(JMM) Java内存模型(Java Memory Model)描述了Java程序中各种变量(线程共享变量)的访问规则,以及在JVM中将变量存储到内存和从内存中读取变量这样的底层细节。 所有的变量都存储在主内存中。 每个线程都有自己独立的工 ...
分类:
编程语言 时间:
2019-02-06 13:17:11
阅读次数:
200
Java 的自动内存管理主要是针对对象内存的回收和对象内存的分配。同时,Java 自动内存管理最核心的功能是 堆 内存中对象的分配与回收。 JDK1.8之前的堆内存示意图: 从上图可以看出堆内存分为新生代、老年代和永久代。新生代又被进一步分为:Eden 区+Survivor1 区+Survivor2 ...
分类:
编程语言 时间:
2019-02-04 12:52:25
阅读次数:
261
什么是事务 事务定义了一个服务操作序列,由服务器保证这些操作序列在多个客户并发访问和服务器出现故障情况下的原子性事务的属性 A --redo&undo C --undo I --lock D --redo事务编程锁的概念lock与lath的区别--对象:事务/线程--保护:数据库对象/内存结构--持 ...
分类:
数据库 时间:
2019-01-14 16:01:54
阅读次数:
232
在 HotSpot 虚拟机中,对象在内存中存储布局分为 3 块区域:对象头(Header)、实例数据(Instance Data)、对齐填充(Padding)。 对象头 HotSpot虚拟机对象的对象头一般包含两部分信息,第一部分用于存储对象自身的运行时数据,例如HashCode、GC分代年龄、锁状 ...
分类:
编程语言 时间:
2019-01-12 19:03:42
阅读次数:
182
先从操作系统角度讲:操作系统掌握所有的硬件内存,因为内存很大,所以操作系统把内存分成一个一个的页面(其实就是一个块,一般是4KB) ,然后以页面为单位来管理,页面内用更细小的方式来以字节为单位管理。操作系统内存管理的原理非常麻烦、非常复杂、非常不人性化。那么对我们这些使用操作系统的人来说,其实不需要 ...
分类:
其他好文 时间:
2019-01-12 18:59:24
阅读次数:
151
在谈到类实例化的内存过程时先说说几个概念: 对象:内存上来说是分配在堆上面的一块内存区域 类:把一类具体事物相同特征,功能/行为抽象为属性与方法过程。 类是对象的模板,对象是类的具体表现。 构造函数:与类名同名的函数,用来实例化对象并初始化成员变量。 注意:构造器、构造函数不能称为构造方法。 类的结 ...
分类:
编程语言 时间:
2019-01-05 10:12:28
阅读次数:
245
在EHCache中,可以设置maxBytesLocalHeap、maxBytesLocalOffHeap、maxBytesLocalDisk值,以控制Cache占用的内存、磁盘的大小(注:这里Off Heap是指Element中的值已被序列化,但是还没写入磁盘的状态,貌似只有企业版的EHCache支 ...
分类:
编程语言 时间:
2019-01-04 21:29:13
阅读次数:
165
以中间赋值符号为界限,先看左边。System.Windows.Forms 是命名空间,放在一边。后面是 Button btn,也就是类型名称,变量名的形式。 其实这跟 int i 没区别,因为 int i 就是类型名称,变量名的形式。 i 变量在栈上分配地址空间,因此 btn 变量也是在栈上分配地址 ...
分类:
Web程序 时间:
2019-01-02 01:20:06
阅读次数:
211
重排序:是指编译器和处理器为了优化程序性能而对指令序列进行重新排序的一种手段。 当数据依赖的时候不允许产生重排序,多线程有些情况下重排序会影响语义。 volatile 定义的的对象内存对多线程之间是立马可见的,他建立了先写后读happens-before关系,常用来在多线程中进行flag标志位的判断 ...
分类:
编程语言 时间:
2018-12-30 22:09:08
阅读次数:
215
1.如何输出Vue实例内data对象内存储的简单属性,注意Vue实例中存储在data属性中的数据。在html中都可以直接访问,而不需要this.属性名或data.属性名。即<p>{{title}}</p>。函数也可以类似访问,例如在vue中定义了一个函数:我们在html中可以直接使用sayHello函数。即<p>{{sayHello()}}</p>在
分类:
其他好文 时间:
2018-12-29 15:17:57
阅读次数:
168