简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
Java语言从诞生之时就宣称一次编写,到处运行的跨平台特性,其实现原理是源码文件并没有直接编译成机器指令,而是编译成Java虚拟机可以识别和运行的字节码文件(Class类文件,*.class),字节码文件是一种平台无关的中间编译结果,字节码文件由java虚拟机读取,解析和执行,java虚拟机屏蔽了不同操作系统和硬件平台的差异性。 如今的java虚拟机已经称为一种通用平台,不但能够运行java语言
一、什么是注解我们大家都知道Java代码中使用注释是为了向以后阅读这份代码的人解释说明一些事情,注解是注释的升级版,它可以向编译器、虚拟机等解释说明一些事情。比如我们非常熟悉的@Override就是一种元注解,它的作用是告诉编译器它所注解的方法是重写父类的方法,这样编译器就会去检查父类是否存在这个方法,以及这个方法的签名与父类是否相同。也就是说,注解是描述Java代码的代码,它能够被编译器解析,注
Java堆内存被划分为新生代和年老代两部分,新生代主要使用复制和标记-清除垃圾回收算法,年老代主要使用标记-整理垃圾回收算法,因此java虚拟中针对新生代和年老代分别提供了多种不同的垃圾收集器,JDK1.6中Sun HotSpot虚拟机的垃圾收集器如下:图中如果两个垃圾收集器直接有连线,则表明这两个垃圾收集器可以搭配使用。虚拟机所处的区域,则表示它是属于新生代收集器还是老年代收集器。1、Seria
我们知道java虚拟机启动时会带有很多的启动参数,Java命令本身就是一个多参数的启动命令。那么具体JVM启动包含哪些参数呢?这篇文章针对java8的情况做一篇汇总解读,包含大多数常见和不常见的命令参数,过于小众的就不写了。JVM参数官网:http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.ht...
前言最近了解了下什么是Docker,本篇也只是介绍下Docker的作用,对其有个了解,关于Docker的安装,运用什么的可以找其它的详细教程,以下几个是我个人为以后具体学习Docker保存的资料:docker中文网站教程docker菜鸟教程Docker学习笔记找资料在网上看到最多的是Docker的好处。比如:1、Docker 容器的启动可以在秒级实现,这相比传统的虚拟机方式要快得多2、Docker
本文转载自:《深入理解java虚拟机》学习笔记2——Java内存溢出实例注意:本文对方法区和常量池内存溢出实例是基于JDK1.6,对于HotSpot虚拟机,Java jdk1.7中的常量池被移到了堆中,在jdk1.8中移除整个永久代,取而代之的是一个叫元空间(Metaspace)的区域,如果想了解更多可以参考—— Java 8: 元空间(Metaspace)。通过简单的小例子程序,演示Jav
java虚拟机在执行java程序的过程中将它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁。javaSE 7 版中java虚拟机所管理的内存讲会包括以下几个运行时数据区域,如下图所示:其中方法区和堆是由所有线程共享的数据区。Java虚拟机栈,本地方法栈和程序计数器是线程隔离的
Java虚拟机的内存区域中,程序计数器、虚拟机栈和本地方法栈三个区域是线程私有的,随线程生而生,随线程灭而灭;栈中的栈帧随着方法的进入和退出而进行入栈和出栈操作,每个栈帧中分配多少内存基本上是在类结构确定下来时就已知的,因此这三个区域的内存分配和回收都具有确定性。垃圾回收重点关注的是堆和方法区部分的内存。GC需要完成的三件事情:1、哪些内存需要回收?2、什么时候回收?3、如何回收?判断
前言 类加载器虽然只用于实现类的加载动作,但它在java程序中起到的作用却远远不限于类加载阶段。对于任意一个类,都需要由加载它的类加载器和这个类本身一同确立其在java虚拟机中的唯一性,每一个类加载器,都拥有一个独立的类名称空间。两个类被同一虚拟机加载,即时这两个类来源于同一个Class文件,只要加载它们的类加载器不同,那这两个类就必定不想等。 这里所指的“相等“,包括代表类的Class
序言项目涉及基于UDP的socket通信,该部分的基本情况如下:发端程序:主函数开启4个发包线程,每个线程发送一定量的数据,通过限制发包速率限制发包流量。收端程序:主函数对应开启4个收包线程,每个线程收取对应端口的数据,收到数据包即时封装处理。其他说明:本地收发。如果不限制发包速率将会非常快基于UDP。使用recvfrom()函数收包recvfrom()接收后立即将包加...