java学习笔记(2) java内存和GC

背景知识

Java GC(Garbage Collection,垃圾收集,垃圾回收)机制:
1. 确定哪些内存需要回收,确定什么时候需要执行GC,如何执行GC。
2. 该机制对JVM(Java Virtual Machine)中的内存进行标记,并确定哪些内存需要回收,根据一定的回收策略,自动的回收内存,永不停息(Nerver Stop)的保证JVM中的内存空间,防止出现内存泄露和溢出问题。

关于JVM,需要说明一下的是,目前使用最多的Sun公司的JDK中,自从1999年的JDK1.2开始直至现在仍在广泛使用的JDK6,其中默认的虚拟机都是HotSpot。2009年,Oracle收购Sun,加上之前收购的EBA公司,Oracle拥有3大虚拟机中的两个:JRockit和HotSpot,Oracle也表明了想要整合两大虚拟机的意图,但是目前在新发布的JDK7中,默认的虚拟机仍然是HotSpot,因此本文中默认介绍的虚拟机都是HotSpot,相关机制也主要是指HotSpot的GC机制。

继续阅读“java学习笔记(2) java内存和GC”

java学习笔记(1)

类加载

  • 当程序创建了第一个对类的静态成员的引用(如类的静态变量、静态方法、构造方法——构造方法也是静态的)时,才会加载该类。
  • RTTI
    • 向上转型或向下转型(upcasting and downcasting),在java中,向下转型(父类转成子类)需要强制类型转换
    • Class对象(用了Class对象,不代表就是反射,如果只是用Class对象cast成指定的类,那就还是传统的RTTI)
    • instanceof或isInstance()

继续阅读“java学习笔记(1)”

Mac下部署JAVA开发环境

Mac到手好久了,一直做的是业务侧的工作,后面可能需要分担一部分开发任务,所以打算在Mac下面做开发,需要配置一些用到的开发环境,在这里做一些纪录。

  1. 下载Eclipse,地址:http://www.eclipse.org/downloads/,因为个人需求,所以下载的是Java EE IDE,下载完成后,运行提示需要JDK 6.0环境,这时需要到Oracle官网下载JDK,我当时下载的是最新版本(8u45),地址: 继续阅读“Mac下部署JAVA开发环境”