JVM学习笔记(一):运行时数据区

运行时数据区 java虚拟机定义了若干种程序运行时使用到的运行时数据区 1.有一些是  随虚拟机的启动而创建,随虚拟机的退出而销毁 2.第二种则是与线程一一对应,随线程的开始和结束而创建和销毁。 java虚拟机所管理的内存将会包括以下几个运行时数据区…

继续阅读 →

关于类加载器

写在前面 每个java开发人员对java.lang.ClassNotFoundExcetpion这个异常肯定都不陌生,这背后就涉及到了java技术体系中的类加载。Java的类加载机制是java技术体系中比较核心的部分,虽然平时没又怎么接触,虽然和大部…

继续阅读 →

JDK8内存模型—消失的PermGen

一、JVM 内存模型 根据 JVM 规范,JVM 内存共分为虚拟机栈、堆、方法区、程序计数器、本地方法栈五个部分。 1、虚拟机栈: 每个线程有一个私有的栈,随着线程的创建而创建。栈里面存着的是一种叫“栈帧”的东西,每个方法会创建一个栈帧,栈帧中存放了…

继续阅读 →

Java Zip压缩实现

最近在自学javaWeb,先复习一下java,把还给老师的东西再找回来(知识如果不用很快就会忘记啊)。。 今天看到了zip压缩,决定要整理一下。 java将有关zip压缩的内容都封装在java.util.zip宝中,用java实现zip压缩,不用考虑…

继续阅读 →

Java类加载器总结

1.类的加载过程   JVM将类加载过程分为三个步骤:装载(Load),链接(Link)和初始化(Initialize)链接又分为三个步骤,如下图所示: 1) 装载:查找并加载类的二进制数据; 2)链接: 验证:确保被加载类的正确性; 准备:为类的静…

继续阅读 →

Maven简介&&Maven优点和缺点

Maven这个单词来自于意第绪语,意为知识的积累,最早在Jakata Turbine项目中它开始被用来试图简化构建过程。当时有很多项目,它们的Ant build文件仅有细微的差别,而JAR文件都由CVS来维护。于是Maven创始者开始了Maven这个…

继续阅读 →

Netty4.x中文教程系列(六) 从头开始Bootstrap

Netty4.x中文教程系列(六) 从头开始Bootstrap 其实自从中文教程系列(五)一直不知道自己到底想些什么。加上忙着工作上出现了一些问题。本来想就这么放弃维护了。没想到有朋友和我说百度搜索推荐了我的文章。瞬间有点小激动啊。决定自己要把这个教…

继续阅读 →

Netty4.x中文教程系列(五)编解码器Codec

上一篇文章详细解释了ChannelHandler的相关构架设计,版本和设计逻辑变更等等。 这篇文章主要在于讲述Handler里面的Codec,也就是相关的编解码器。原本想把编解码器写在上一篇文章里面的。后来想想Netty里面的编解码器太多了。想要一次…

继续阅读 →

Netty4.x中文教程系列(二) Hello World !

在中国程序界。我们都是学着Hello World !慢慢成长起来的。逐渐从一无所知到熟悉精通的。 第二章就从Hello World 开始讲述Netty的中文教程。 首先创建一个Java项目。引入一个Netty 框架的包。这个步骤我在本系列教程的后面就…

继续阅读 →