01 2019 档案
摘要:13.2 线程安全 13.2.1 Java语言中的线程安全 13.2.2 线程安全的实现方法 主要包括两个方面的内容一个是从程序员的角度如何写线程安全的代码,另一个是虚拟机底层如何实现线程安全。 如果多个线程一起读写一个共享的数据,在不加额外措施的情况下一定会产生并发问题,这是一个老生常谈的问题了。
阅读全文
摘要:7.1 概述 不同于传统的语言,java在编译的时候不需要连接,类型的连接、初始化的过程是在运行期间完成的,符号的入口是保留在常量池里的,这给java提供了很大的灵活性,支持动态扩展。比如一个面向接口的程序,可以在运行的时候在指定接口的实现类。 7.2 类加载时机 虽然java在编译的时候不需要连接
阅读全文
摘要:6.1 概述 传统的语言编译后的结果是native code,直接交给计算机去执行,Java编译后是class文件是交给虚拟机执行,编译后的结果是平台无关的中立的格式。 6.2 无关性的基石 各种平台下Java编译后的格式都是一样的,所以称为平台中立的,这个格式就是字节码(Byte Code)。Ja
阅读全文
摘要:2.1 概述 主要介绍Java虚拟机内存是如何划分的。 2.2 运行时数据区域 Java虚拟机就是一个进程,它被分配了自己的内存空间,在JVM执行Java程序的时候会把自己分配到的内存区域划分成若干不同功能的区域。 2.2.1 程序计数器 类似于CPU寄存器里的IP的作用,用于指示下一条要执行的指令
阅读全文
摘要:10.1 原子操作 竞争条件造成不确定的后果原因是一条指定编译后是多条机器指令,在执行多个机器指令的时候会被打断,如果我一条指令编译后只有一个机器指令,执行一个机器指令的过程中是不会被打断的,这样不会被打断的操作称为原子操作。Linux提供了两组原子操作接口,一组是针对整数进行操作,一组针对单独的位
阅读全文
摘要:1.1 Unix的历史 unix的优点 简介,没有繁冗的系统调用 所有东西都被当成了文件对待,对文件和对设备的操作是通过同样的系统调用的接口实现的 内核和相关工具使用C编写,具有很高的可移至性 创建新的进程非常迅速 进程间的通信简单稳定 1.2 追寻Linux足迹 linux和unix并不一样,他并
阅读全文

浙公网安备 33010602011771号