
java
文章平均质量分 77
colin_yjz
从事大数据研发工作
展开
-
JVM原理、架构—类加载器
JVM体系结构大概分为三部分:(1)类加载器,用来加载.class文件(2)执行引擎,用来执行字节码文件或本地方法(3)运行时数据区,包括堆、栈、方法区、pc寄存器、本地方法栈类加载器:JVM类加载整体分为三步分装载:将字节码文件装载到JVM中,由类名、包名通过ClassLoader进行装载。同样,通过类名、包名、ClassLoader ID来区分已经装载的字节码文原创 2015-06-21 08:56:54 · 1145 阅读 · 0 评论 -
java之多线程
什么叫做进程?进程是操作系统中的一个任务,他是包含了某些资源的内存区域。一个进程可以包含了一个或多个执行单元称作线程,这些线程可以被看做是同时执行的(实际是轮流占用CPU资源,快速切换,达到看似同时执行)。每个进程还有一个私有虚拟的地址空间,该空间只能被包含的线程所访问。当操作系统创建一个进程之后,该进程会自动申请一个名为主线程的线程。什么叫做线程?一个线程是进程的一个顺序执行流,同类原创 2015-07-15 19:49:45 · 882 阅读 · 0 评论 -
java之IO处理
File文件基础文件与目录抽象路径名称的表示,其构造方法有四个File(File parent,String child):从抽象父目录下创建一个File实例。File(String parent,String child):从父目录下创建一个File实例。File(String pathname):从指定路径下创建一个File实例。File(URI path):从URI转换成原创 2015-07-17 11:15:38 · 6278 阅读 · 6 评论 -
Java关键字final、static使用总结
本文转自:http://lavasoft.blog.51cto.com/62575/18771/Java关键字final、static使用总结 一、final 根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。你可能出于两种理解而需要阻止改变:设计或效率。 fina转载 2015-08-29 22:04:37 · 485 阅读 · 0 评论 -
JVM学习—内存方区域与内存溢出异常
Java与C++中存在的一堵高墙就是又内存动态分配和垃圾回收技术所围成的,墙外面的人想进去,墙里面的人想出去。Java将内存控制权交给了JVM,所以程序员无需为每个对象手动释放空间,所以不容易出现内存泄露与溢出。但是一旦出现内存泄露或溢出,如果不了解虚拟机怎样分配内存的,那么排查将非常困难。Java虚拟机将执行java程序过程中管理的内存划分成若干个区域,每个区域有各自的用途以及创建和销毁的时原创 2015-08-30 08:50:36 · 1061 阅读 · 0 评论 -
数据结构—排序总结
排序根据是否使用外存分为内排序和外排序,内排序只使用内存进行数据存储,外排序由于数据量比较大需要借助外存。排序的稳定性:排序的稳定性是指排序之后相同的数据元素相对位置不变则为稳定排序,否则为不稳定排序。插入排序直接插入排序思想:将一个记录插入到已经排序的有序表中,从而得到一个新的、个数加1的有序表。这个过程在查找位置过程中进行记录移动,而不用显示的交换元素public原创 2015-08-18 16:47:37 · 693 阅读 · 0 评论 -
SQL详解
SQL基础SQL DML和DDL可以把Sql分为两部分:数据操作语言(DML)和数据定义语言(DDL)查询和更新构成了SQL的DMLSELECT、UPDATE、DELETE、INSERT INTOSQL的定义语言使我们能够创建和删除表格,也可以定义索引(键),规定表链接CREATE DATABASEALTER DATABASECREATE TABLEALTER原创 2015-09-08 17:08:15 · 641 阅读 · 1 评论 -
深入理解java注解
推荐阅读:http://www.cnblogs.com/peida/archive/2013/04/26/3038503.html注解系列文章转载 2016-01-14 10:16:34 · 418 阅读 · 0 评论 -
Log4J使用详解
本文转自:http://blog.youkuaiyun.com/java_pengjin/article/details/6179095 背景 在应用程序中添加日志记录总的来说基于三个目的:监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析工作;跟踪代码运行时轨迹,作为日后审计的依据;担当集成开发环境中的调试器的作用,向文件或控制台打印代码的调试信息。 最普通的转载 2016-02-15 10:49:59 · 754 阅读 · 0 评论 -
java之ArrayList源码解析
public class ArrayList extends AbstractList implements List, RandomAccess, Cloneable, java.io.Serializable{ private static final long serialVersionUID = 8683452581122892189L; //默认列表长度原创 2015-07-14 11:21:05 · 869 阅读 · 0 评论 -
Java中克隆机制
首先了解一下什么叫做拷贝?Employ e1 = new Employ();Employ e2 = e1;这就是拷贝,原始变量与拷贝变量指向相同的引用对象,如果改变其中一个对象的状态,其他的对象变量的对象状态也会随之改变。什么叫做克隆?Employ e1 = new Employ();Employ e2 = e1.clone();克隆之后的变量,各自指向自己的对象,这个原创 2015-07-12 09:28:56 · 1233 阅读 · 2 评论 -
JVM原理、架构—整体架构
首先了解一下java程序的运行过程:java源程序首先经过编译生成JVM识别的字节码.class文件,然后JVM加载.class字节码文件并相应的解释为当前系统识别的机器码。由这个过程可以看出,不同OS平台只是JDK只是对应的JVM有所不同。再来看下java的整体架构:这张图也说明了JDK与JRE区别,JDK有对应的开发工具及其API。JVM位于JDK和JRE的底层原创 2015-06-19 17:41:14 · 895 阅读 · 0 评论 -
JVM原理、架构—垃圾回收机制
搞java的都知道在编写java程序的时候不需要要考虑资源的释放,因为JVM会自动将不是用的对象GC掉。这里自动是个什么原因呢?就是程序员不能对垃圾进行回收,垃圾回收并不会及时清理内存,即便有时候程序需要需要的额外内存,垃圾回收不会随时发生。所以如果想写出高校的程序,需要根据垃圾回收的原则,合理的分配内存。为什么要进行垃圾回收?随着程序的运行,对象、变量占据的内存不断增多,如果不及时的回收原创 2015-06-22 10:33:26 · 890 阅读 · 0 评论 -
JVM原理、架构—JVM运行区域
JVM运行时区域有PC寄存器、java栈、堆(heap)、方法区域(method area)、运行时常量池、本地方法堆栈PC寄存器pc寄存器中存放着JVM下一步要执行的指令,如果该方法为native,则pc寄存器不存储任何信息JVM栈JVM栈是线程私有的,每当创建一个线程都会申请一个栈,线程每执行一个方法都会在栈中申请一个栈帧,栈帧是由局部变量区域和操作数栈组成,局部变量区域存放着原创 2015-06-21 16:50:40 · 565 阅读 · 0 评论 -
泛型程序设计
泛型介绍泛型程序设计(Generic programming):可以被很多不同的类型的对象所重用。比那些直接使用Object变量,然后强制类型的转换的代码具有更好的安全性和可读性。使用类型参数(type parameters)可以将需要使用的类型,提前声明。如:ArrayList list = new ArrayList();使用类型参数可以告知这个类适用于什么类型,当调用对应原创 2015-06-27 19:18:07 · 2205 阅读 · 0 评论 -
Java中Iterator与Iterable的区别
Iterable的定义:java.lang包/** * Implementing this interface allows an object to be the target of * the "foreach" statement. * * @param the type of elements returned by the iterator * * @since原创 2015-06-28 18:59:48 · 4950 阅读 · 1 评论 -
Java集合汇总(一)
java中,提供的集合关系:首先感觉这张图,开头有点问题,如果Collection发出的虚线箭头是实现关系那么,不应该是Iterator,而应该是Iterable。Collection类Collection是集合类最基本的接口,List、Set都是实现Collection接口。Collection中方法: public interface Collection ex原创 2015-06-28 19:19:53 · 956 阅读 · 0 评论 -
java中反射机制
什么是Java反射(Reflection)?程序在运行时(不是编译时)能够自我检查,并且能够对内部成员进行操作。例如它允许一个java类获取他所有的变量和方法。利用java中反射机制可以通过Reflection API获取该类的内部信息,如superclass、interfaces、modifiers(修饰public、private等)、以及field和methods,并且运行中能够修改fi原创 2015-07-05 08:57:53 · 1077 阅读 · 0 评论 -
java中顶级父类Object
Object作为java中所有类的父类,是因为在其中存放了一些使用频率非常高的方法,为了避免重复编写,所以写了一个顶级父类。public class Object { private static native void registerNatives(); static { registerNatives(); } public fina原创 2015-07-04 09:35:40 · 3894 阅读 · 1 评论 -
log4j+slf4j日志管理系统
背景当我们在项目中想使用日志系统帮我们进行日志记录管理时可以使用log4j+slf4j,这两个日志框架(slf4j其实并不是日志框架,而是一个日志facade)。log4j日志管理框架log4j是Apache下面的日志记录管理框架,它可以将日志输出到控制台、文件、数据库、邮件等等。这些只需要简单的配置一下配置文件即可完成。log4j有两种配置文件格式:log4j.xml和log4j.p原创 2016-02-15 17:48:34 · 1185 阅读 · 0 评论