
java
TinySun
一只正在蛹中挣扎蜕变的生物
展开
-
JVM系列(二)——类加载
Java 运行环境为了优化系统,提高程序的执行速度,在 JRE 运行的开始会将 Java 运行所需要的基本类采用预先加载( pre-loading )的方法全部加载要内存当中,因为这些单元在 Java 程序运行的过程当中经常要使用的,主要包括 JRE 的 rt.jar 文件里面所有的 .class 文件。当 java.exe 虚拟机开始运行以后,它会找到安装在机器上的 JRE 环境,然后把控制原创 2012-09-27 19:55:19 · 873 阅读 · 0 评论 -
JVM系列(一)——内存管理
一、JVM介绍JVM(Java Virtual Machine)作为JDK的必需品,是运行java程序是不可少的一个元素。它是java得以跨平台的核心组件,包揽了从java代码的编译、优化到内存管理的多种功能。Java之所以比C高级,是因为他屏蔽了一些C进行底层操作的功能,例如指针。Java使用自动化的方式进行内存管理,一切与内存有关的琐事都交予JVM来管理。使得开发人员无需使用诸如:释放原创 2012-09-21 21:31:07 · 1100 阅读 · 0 评论 -
JVM系列(三)——方法的调用
Java代码在执行的时候,分为解释执行(通过解释器)和编译执行(通过编译器) 一、栈帧栈帧是用于支持虚拟机进行方法调用和方法执行的数据结构,在每次进入一个方法的时候,都会生成该方法的栈帧,并入栈。当方法执行完时,则将对应的栈帧出栈。每个方法对应一个栈帧,每次只有栈顶的栈帧有效,这样,各个方法的调用、内部变量的使用便不会相互干扰。 在一个栈帧中,包含了局部原创 2012-11-08 20:35:45 · 964 阅读 · 0 评论 -
JVM系列(四)——优化
JVM要执行一个java文件,需要经过两步:编译、执行。在这两个过程中,JVM都会进行优化,编译时的优化称为早期(编译期)优化,发生使用javac将.java文件编译为.class文件的时候或者静态提前编译器(AOT编译期)直接把.java文件编译成本地机器码的优化,本文中讨论的是前者。执行时的优化称为晚期(运行期)优化,是使用即时编译器(JIT编译期),将.class 文件的字节码转变为机器原创 2012-12-09 14:26:33 · 1043 阅读 · 0 评论 -
Java NIO
Java NIO NIO是New IO的缩写,顾名思义,是用于输入输出的新的API,那么,这个NIO相较于旧的IO有什么差别呢? 1、“阻塞”的通信机制 在原有的IO下,我们要与A进行通信时,会怎么做呢?先创建一个线程,然后建立连接,然后不断轮询等待接收消息。当需要与另一个B进行通信时,仍然先创建一个线程,然后建立连接(accept),不断轮询等待接收消息(read)…原创 2013-10-21 21:30:39 · 1889 阅读 · 0 评论 -
Java虚拟机
java虚拟机Java支持平台无关性、安全性和网络移动性。而Java平台由Java虚拟机和Java核心类所构成,它为纯Java程序提供了统一的编程接口,而不管下层操作系统是什么。正是得益于Java虚拟机,它号称的“一次编译,到处运行”才能有所保障。java虚拟机主要完成了几大任务:将java文件编译为.class文件、解析并执行.class,借助他,使得java能够实现平台无关的特性。实现了自动原创 2016-03-30 21:25:29 · 1072 阅读 · 0 评论 -
也讲Java NIO
也讲Java NIO一点开场白百度搜索java nio,前面的几个帖子总是从各种基础概念介绍起,通道、缓冲区、选择器… 然后看着看着就晕了,所以,经过一晚上的研究,我想从自己的理解讲讲nio。一、单线程的通信在没有nio之前,java妥妥的可以进行CS项目间的通信,来个最简单的例子。(懒得写,抄了段)server 端package nio.nonio;import java.io.BufferedR原创 2016-05-08 20:31:07 · 1372 阅读 · 0 评论 -
Spring
SpringSpring 是啥?Spring是个大家都听过的东西,或者在许多web项目中都有看到过的东西,然而,要清楚地说出Spring是个啥?Spring存在的意义?可能大多数人只能够照本宣科的说出一些。我希望能够更简单的去解释Spring。其实,在我看来,Spring的众多特性,想要达到的目的是:让开发者更好的基于POJO编程。将重复性、依赖性的代码从类中剥离出来。 什么是上面所说的POJO原创 2016-05-08 20:33:17 · 743 阅读 · 0 评论