自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 问答 (6)
  • 收藏
  • 关注

原创 读书笔记JVM探秘之四:类加载器

类加载器并不是JVM固定的一部分,之所以这么说是因为JVM内部有他们自己实现的类加载器,这表明:外部的类加载器是可以自定义的。对于JAVA来说,没有什么不可能,就算去写自己的VM也完全没问题。 类加载器是非常重要的一部分,它描述了class文件是如何进入虚拟机内存的,为此产生了哪些行为等一系列重要的问题。JAVA本身提供了三个类加载器,分别应对不同等级的类文件(比如说VM内部的类文件和你写的类文件

2016-04-22 19:30:24 337

原创 通过反射操作标识为包内访问权限的类

package reflecttest.li;class Test { private String as = "It's fucking reflecting too!"; public String bs = "Reflect please!"; protected String cs = "Wait for reflecting."; private void

2016-04-21 20:47:42 1051

原创 读书笔记JVM探秘之三:Class文件

什么是class文件恩,开始写。 众所周知,JAVA源文件会被编译成class文件,虚拟机运行的也是class文件。JVM从发布之初就一直贯彻的两个特性,其一,平台无关性,其二,语言无关性。 并不是只有java代码才可以被编译成class文件,仅仅只是虚拟机运行的是class文件,这不是因果关系。换言之,只要可以编译成class文件,任意语言都可以在虚拟机上运行(注意:理论上是这样的)。 cl

2016-04-18 22:18:21 389

原创 三个线程轮流输出ABC各十次(另附两个线程轮流循环若干次)

三个线程轮A,B,C,轮流输出ABC,顺序不可打乱,各十次。 我写了两种方法,第一种太慢了就写了第二种,没啥好说的直接上代码:package thread.li;/** * Created by Lee Y on 2016/4/6. * 三个线程轮番输出ABC */public class ThreadABC { public static void main(String[] a

2016-04-12 20:38:05 1372

原创 JAVA I/O读书笔记

关键字:流,字节,字符,通道,缓冲区,持久化,序列化,交互,标准I/O,压缩旧I/O包字节流读写,字符流读写(请先分清字节与字符的差别)。 区别:后者更快,但某些东西只能用字节读写(大概取决于它的数据存储方式) 区分:Reader、Wirter结尾是字符流,Stream是字节流。JAVA针对各种类型读写做有专用类,例如:File~ String~ Buffer~ 注意带缓冲的往往读写效率更快一些

2016-04-11 21:52:33 397

原创 JAVA容器效率分析表,很全面(List,Map,Set)

PS: Array as List是数组 这是手写的=。=,请不要吐槽。 以上数据仅供参考,摘于JAVA编程思想。

2016-04-07 20:37:49 468

原创 JAVA容器功能汇总(Map,Set)

以上摘自于JAVA编程思想。

2016-04-07 20:33:56 254

原创 C++实现之归并排序

说说思路归并排序实际上就是分治法,插句题外话,归并排序比快排、堆排序的实现难度微大。大体思路就是将待排数列分组,一分二二分四…….说白了就是把数列建成树,直到每个节点分不下为止(剩一个数,就不能再分了)。然后回溯,回溯的同时排序,也就是说,通过整个孩子节点的数列对父节点的数列进行排序,比如: 数列:3 1 9 7 建树如下 回溯的时候,从叶子节点开始,将左右孩子的数列按顺序合并(从小到大)

2016-04-05 21:23:51 1663

原创 堆排序(JAVA实现)

继上一篇,堆的实现,PS:上次的代码没有判断堆是否为空=。= 回归正题,无论是最大堆还是最小堆,只要一直取数,把堆取空,那么取出的数列一定是有序的(从大到小或从大到小),因此堆排序就是用待排的数据建个堆,然后不断取数,取到空,就好了。 上代码:import java.util.ArrayList;import java.util.List;import java.util.Vector;/*

2016-04-04 14:31:54 280

原创 二叉堆(JAVA实现)

定义二叉堆(简称堆,当然还有别的堆),是一种具有特定规则的树形结构,二叉堆规定:父节点的值必定大于(小于)其孩子节点,因此可以称其为最大堆(最小堆),堆是维护极值的非常快速的一种数据结构。实现思路堆一般都是数组实现的(不明白用数组怎么写树的,请自己脑补,很容易想的)。 拿最小堆来说,堆的根节点一定是最小的,堆只可以从根节点取值,所以堆的调整是最重要的工作。 比如对数列: 10 1 11 9 6

2016-04-04 13:18:43 744

原创 JAVA泛型擦除

泛型泛型,字面意思将一个类泛化,让它适应多种情况(包括未知情况),使其更具兼容性扩展性。public class HeapSort<T> { T item; public HeapSort(){ }}看代码,JAVA中的泛型定义和C++的很是类似,不过相比于C++泛型的强大,JAVA泛型却很是纠结。 因为目前,除了写数据结构之外,JAVA泛型几乎可有可无。这是因为JAVA的一

2016-04-03 13:32:38 483

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除