随笔分类 - Java
记录有关Java的一切
摘要:试想一个问题:如果我们需要给一个超类的方法实现一种更强的功能,也就是加强版的超类,一般会怎么做?继承?Too young too simple!看看下面的例子:当我们需要一个类,需要HashSet类的所有方法,但是随时需要知道在其创建到目前,已经加入过多少元素,该如何实现?一般使用继承,覆盖add(...
阅读全文
摘要:package com.rainfool.quicksort;public class Test2 { public static void main(String[] args) { Integer[] a = { 2, 8, 7, 1, 3, 5, 6, 4 }; ...
阅读全文
摘要:String的源码中有很多Arrays的方法使用,建议先参阅Arrays的类库基本介绍: String是一个比较特殊的类,有很多种建立的方法。 如果使用传统的构造方法比如 String s = new String("字符串");这时的对象会在堆上分配,这时候比较两个字符串地址就不相等,而用""...
阅读全文
摘要:类加载过程 一个类从编写完成后,编译为字节码之后,它要装载进内存有七个阶段: 加载 => (验证-> 准备-> 解析)=> 初始化=> 使用=> 卸载 括号中的三个步骤可以整合成为 “连接”步骤。其中的步骤并不是一个阶段结束,一个阶段才开始的。只是说他们的开始阶段基本遵循此顺序(解析阶段更是可能在使
阅读全文
摘要:垃圾回收 垃圾回收的三个问题: 哪些内存需要回收? 什么时候回收? 如何回收? 1.哪些对象需要回收? 判断对象是否存活的办法: 引用计数算法:给对象中添加一个引用计数器,有一个地方引用就+1,引用失效就-1.只要计数器为0则对象已死。 优点:简单易实现; 缺点:无法解决对象之间相互引用的问题。(J
阅读全文
摘要:主要参考资料:《深入理解Java虚拟机》,未经本人及原书作者同意禁止转载。 JVM中的数据区域 JVM中给数据分了这么几个区域: 其中: 1.程序计数器: 程序计数器是一块较小的内存空间,为当前线程所执行的字节码的行号指示器。也就是说,程序再翻译成为字节码了之后,分支、循环、跳转、异常处理、线程恢复
阅读全文
摘要:System提供了一个静态方法arraycopy(),我们可以使用它来实现数组之间的复制。其函数原型是: public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)src:源数组...
阅读全文
摘要:Class.forName(xxx.xx.xx) 返回的是一个类首先你要明白在java里面任何class都要装载在虚拟机上才能运行。这句话就是装载类用的(和new 不一样,要分清楚)。至于什么时候用,你可以考虑一下这个问题,给你一个字符串变量,它代表一个类的包名和类名,你怎么实例化它?只有你提到的这...
阅读全文
摘要:多态,又可以称为动态绑定,即在运行时确定类型,比如: 1 class A { 2 void draw(){ 3 //输出“A” 4 } 5 } 6 class B { 7 void draw(){ 8 //输出“B” 9 }10 11 }这种关系里,如果调用A a...
阅读全文
摘要:在Java中一共有8种基本数据类型,其中有4种整型,2种浮点类型,1种用于表示Unicode编码的字符单元的字符类型和1种用于表示真值的boolean类型。(一个字节等于8个bit)1.整型类型 存储需求 bit数 取值范围 备注int 4字节 4*8short 2字节 2...
阅读全文
摘要:集合 有序否 允许元素重复否 Collection 否 是 List 是 是 Set AbstractSet 否 否 HashSet TreeSet 是(用二叉树排序) Map AbstractMap 否 使用key-value来映射和存储数据,Ke...
阅读全文
摘要:如果,需要一个函数来判断传入值的奇偶性,你会怎么做?这样?public boolean isOdd(int i) { return i % 2 == 1;}还是这样?public boolean isOdd(int i) { return i % 2 != 0;}很遗憾,第一种方式会错掉...
阅读全文
摘要:String、StringBuilder和StringBuffer哪个更优?String和StringBuilder:StringBuilder是可变的,也就是说用StringBuilder创建的字符串你可以随时改变它。StringBuilder和StringBuffer:StringBuffer是...
阅读全文

浙公网安备 33010602011771号