深入理解Java虚拟机之虚拟机字节码执行引擎 发表于 2018-12-02 | 分类于 深入理解java虚拟机 运行时栈帧结构 i. 栈帧是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区中的虚拟机栈的栈元素。 ii. 每一个栈帧都包括了 局部变量表,操作数栈,动态连接,方法返回地址和一些额外的附加信息 iii. 每一个方法从调用开始至执行完成的过程,都对应着一个栈帧在虚拟机栈里面 ... 阅读全文 »
深入理解Java虚拟机之垃圾收集器与内存分配策略 发表于 2018-12-01 | 分类于 深入理解java虚拟机 对象存活判断算法引用计数算法给对象添加一个引用计数器,有一个地方引用它计数值就加1,引用失效时减1,任何时刻计数器为0则不可能再被使用 实现简单,判定效率高,但很难解决对象之间相互循环引用的问题,主流Java虚拟机没有选用这种方式管理内存 可达性分析算法通过一系列的称为”GC Roots”的对象 ... 阅读全文 »
深入理解Java虚拟机之虚拟机类加载机制 发表于 2018-11-30 | 分类于 深入理解java虚拟机 类加载的时机 类从被加载到虚拟机内存中开始,到卸载出内存为止,他的生命周期包括:加载、验证、准备、解析、初始化、使用和卸载,其中验证、准备、解析3个部分统称为 连接 加载、验证、准备、初始化、卸载这5个阶段的顺序是固定的,但是解析阶段则不一定,有些情况下可在初始化阶段之后再开始(为了支持Java语言 ... 阅读全文 »
五层体系结构之运输层 发表于 2018-11-18 | 分类于 计算机网络 运输层协议概述进程之间的通信 运输层的重要功能:复用和分用 复用: 应用层所有的应用进程都可以通过运输层再传送到IP层 分用: 运输层从IP层收到数据后必须交付给指明的应用进程 网络层与运输层的区别 网络层: 为主机之间提供逻辑通信 运输层: 为应用进程之间提供端到端的逻辑通信 运输层 ... 阅读全文 »
Java并发 发表于 2018-11-15 | 分类于 JavaSE 基本的线程机制定义一个线程 实现Runnable接口,重写run()方法,并传递给Thread构造器 继承Thread类,重写run()方法 调用Thread.start()方法时,其实是创建一个线程,并初始化之后,再去调run()方法 使用Executor Executor从来管理Threa ... 阅读全文 »
Java中的锁优化 发表于 2018-11-12 | 分类于 深入理解java虚拟机 自旋锁: 让请求锁的线程执行一个忙循环(自旋),不放弃处理器的执行时间,看看持有锁的线程是否很快就会释放锁 自选等待时间必须要有一定的限度,如果自旋超过了限定的次数仍然没有成功获得锁,就应当使用传统方式挂起线程 自旋适应锁: 自旋的时间不在固定,而是由前一次在同一个锁上的自旋时间及锁的拥有者的 ... 阅读全文 »
Java内存模型 发表于 2018-11-12 | 分类于 深入理解java虚拟机 主内存与工作内存 主内存: Java内存模型规定了所有的变量都存储在主内存中。 这里的主内存与物理硬件的主内存可以类比,但这里的主内存仅是指虚拟机内存的一部分。 工作内存: 每条线程都有自己的工作内存,线程的工作内存中保存了被该线程使用到的变量的主内存副本拷贝,线程对变量的所有操作(读取、赋值等 ... 阅读全文 »
数据库事务管理 发表于 2018-11-05 | 分类于 数据库 事务的ACID特性 原子性: 事务的所有操作在数据库中要么全部正确反映出来,要么完全不反映。 一致性: 隔离执行事务时(即不考虑其他事务并发执行)保持数据库的一致性。 在数据库系统中由恢复系统负责。 隔离性: 尽管多个事务可能并发执行,但系统保证对于多个事务,如T1和T2,对于T1来说,T1要么 ... 阅读全文 »
Java中的XML之与HTML的区别验证,定位信息,命名空间 发表于 2018-07-30 | 分类于 JavaSE HTML与XML的区别 HTML对大小写不敏感,XML大小写敏感 HTML结束标签可以省略,如</p>,XML不能 XML只有单个标签而没有结束标签的元素必须以/结束 XML属性值必须用引号括起来 HTML属性可以没有值,XML所有属性必须有值 验证XML文档需要指定文档结构 ... 阅读全文 »
Java中的XML之四种方式生成XML文档:DOM,SAX,JDOM,DOM4J 发表于 2018-07-30 | 分类于 JavaSE 现有以下XML文档books.xml,下面的示例生成此文档部分内容123456789101112131415<?xml version="1.0" encoding="UTF-8"?><bookstore> <book id="1"> <name>冰 ... 阅读全文 »