- 博客(11)
- 收藏
- 关注
原创 JVM学习(3)-判断对象存活
Java虚拟机中GC回收主要针对的是堆中的对象,对象在回收前应该判断是否需要回收。判断方法主要是两种:引用计数算法和可达性分析算法。java虚拟机采用的是可达性分析算法。引用计数算法 算法原理:给对象添加一个引用计数器,每有一个地方引用它时,计数器值就加1。当引用失效时,计数器值就减1,任何时候计数器值为0的对象就是不在被使用的对象。 优缺点:实现简单、判定效率很高但是不能解决对象之间相互循环引用的
2017-04-11 10:32:45 277
原创 JVM学习(2)-HotSpot对象
本文中的对象限于HotSpot虚拟机中对象创建 虚拟机遇到new指令,先去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并检查这个符号引用代表的类是否已被加载、解析和初始化 如果没有,先执行相应的的类加载过程,在类加载检查通过后,虚拟机为新生对象分配内存 内存分配完成后,虚拟机需要将分配到的内存空间都初始化为零值,保证对象的实例字段在Java代码中不赋初始值就能直接引用 虚拟机对对象进行
2017-04-09 11:25:53 262
原创 JVM学习(4)-垃圾回收算法
java语言的一大特点就是可以进行自动垃圾回收处理,垃圾收集器可以有多种不同的实现,本文主要介绍一下回收算法。1.引用计数法:对于一个对象,判断是否有引用,如果有计数器+1。引用失效则计数器-1。缺点在于存在两个或多个该回收的对象互相引用的情况,此时按照引用计数法无法处理。2.标志-清除算法:该方法将垃圾回收分为两个阶段,标记阶段和清除状态。在标记阶段,首先通过根节点,标记所有从根节点开始的可达状态
2017-04-02 22:06:56 320
原创 JVM学习(1)-组成
java虚拟机主要分为程序计数器、虚拟机栈、本地方法栈、java堆、方法区。程序计数器(PC):因线程之间需要根据时间片轮询抢夺CPU资源,所以一个线程需要一个程序计数器用于记录下一条要运行的指令。虚拟机栈:和java线程在同一时间创建,保存方法的局部变量、部分结果、参与方法调用及返回。运行时使用栈帧保存上下文数据,包括局部变量表、操作数栈、动态链接、返回地址。栈帧中性能调优主要关注局部变量表。本地
2017-04-02 21:01:41 211
原创 java中的单例模式
java中可能会遇到对象只需创建一个的情况来节省内存空间,所以诞生出了单例模式,单例模式分为饿汉式和懒汉式两种,饿汉式就是在类初始化时直接创建一个对象,而懒汉式是在需要使用对象时才创建一个对象。
2016-07-18 23:00:02 152
原创 选择排序和冒泡排序
1.之前写过插入排序,排序方法是从第二个开始与之前的数进行比较,不用依次比较,最好时间为O(n),最坏时间是O(n2),而选择排序的方法是从第一个开始和后面的数字依次比较,最好最坏时间都为O(n2). 2.选择排序的案例package day03;public class ChooseSort { public static void main(String[] args) {
2016-07-10 20:54:21 178
原创 IO操作
根据视频学习总结记录一下IO操作 1:File可以操作文件以及创建文件目录 2:OutputStream和InputStream主要操作字节数据,以文件拷贝为主 3:如果程序输出数据使用PrintWriter(PrintStream),而输入数据则使用Scanner(BufferReader) 文件拷贝:
2016-07-05 08:25:25 193
原创 插入排序
插入排序是比较简单的排序,从第二个数开始与其前面的数进行比较,按照递增或递减的要求进行数字大小对比,所以整体需要两次循环,假设数组长度为n,全部逆序的情况下所需时间是等差数列求和,最坏时间是O(n2).代码实现: public class InsertSort { public static void main(String args[]){ //定义中间变量,用于前后
2016-07-03 09:36:58 183
原创 创建线程的尝试
创建线程三种方法是1.继承Thread类,2.实现Runnable接口,3.使用Executor框架创建线程池,主要实现前两个经常用到的方法。 1:继承Threadpublic class ThreadDemo1 extends Thread{ public int ticket=5; public ThreadDemo1(String name){ super(na
2016-06-23 21:07:30 292
原创 进程与线程的区别
1.进程的基本概念 程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就称之为进程,是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念。进程至少有 5 种基本状态,它们是:初始态,执行态,等待状态,就绪状态,终止状态。2.线程的基本概念 线程是进程中执行运算的最小单位,是进程中的一个实体,是被系统独立调度和分派的基本单位,线程
2016-06-19 17:24:30 245
原创 用AXIS2发布WebService的方法
用AXIS2发布WebService的方法由于项目需要,决定学习一下接口开发,找到一个比较简单的WebService方法实践一番,并将注意点列出来,本文主要借鉴自http://www.cnblogs.com/javawebsoa/archive/2013/05/19/3087234.html的文章,谢谢原博的分享!开发工具:tomcat6.0,myeclipse 引用包:axis2-1.6.1-w
2016-06-02 13:59:29 308
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人