![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
jackphang
这个作者很懒,什么都没留下…
展开
-
静态块,匿名构造方法,构造方法执行顺序
先看段代码: public class Static_Super_Conustruct { static class Base{ { System.out.println("Base匿名构造方法"); } public Base() { System.out.println("Base()构造方法"); } static{ System.out.pri原创 2013-03-30 10:11:15 · 940 阅读 · 2 评论 -
几种不同类型的Singleton
废话不多说,直接上代码。 public class Singleton { private Singleton() { } /** * 方式1(饿汉模式) 通过反射会得到不同的instance */ private static final Singleton instance = new Singleton(); public static Singleton ge原创 2013-03-23 13:17:43 · 568 阅读 · 0 评论 -
Java (Builder 模式) 解决Contruct构造器中参数过长的问题
直接上代码,比较容易懂 Builder 模式 public class BeanContruct { /** * 必要参数 */ private final Integer id; private final String name; /** * 可选参数 */ private final String sex; private final String a原创 2013-03-23 13:55:34 · 1108 阅读 · 0 评论 -
Java 优先使用基本类型而非装箱基本类型
Java中存在两种类型的数据,1、基本数据类型(primitive type),包含八种:byte,char,boolean,short,int,long,float,double 它们所对应的包装类型分别为:Byte , Character , Boolean , Short , Integer , Long , Floag , Double 2、引用类型 (reference type原创 2013-03-23 14:45:11 · 857 阅读 · 0 评论 -
Java中对象的构建过程
如下代码: public class Contruct { private int value; public Contruct() { value=setValue(); System.out.println("value=="+value); System.out.println("Contruct"); } public int setValue() { Sys原创 2013-03-23 13:45:12 · 541 阅读 · 0 评论 -
继承的约束:构造器不可调用被覆盖的方法
下面这个类就违反了此条规则,例子如下: public class Super { public Super() { // 构造器中调用被覆盖的方法 overrideMe(); } public void overrideMe() { } static final class Sub extends Super { private final Date date;翻译 2013-03-24 18:34:18 · 740 阅读 · 0 评论 -
Java 关键字static和final
static 1. static变量 按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量;另一种是没有被static修饰的变量,叫实例变量。两者的区别是: 对于静态变量在内存中只有一个拷贝(节省内存),JVM只为静态分配一次内存,在加载类的过程中完成静态变量的内存分配,可用类名直接访问(方便),当然也可以通过对象来访问(但是这翻译 2013-03-24 12:51:31 · 471 阅读 · 0 评论 -
关键字final 在继承体系中所处于的地位
先看几个有趣的例子: public class Contruct { private int value; public Contruct() { value = setValue(); System.out.println("Contruct"); } public int setValue() { System.out.println("setValue()");原创 2013-03-24 19:19:42 · 428 阅读 · 0 评论 -
通用的Java hashCode重写方案
Google首席Java架构师Joshua Bloch在他的著作《Effective Java》中提出了一种简单通用的hashCode算法 1. 初始化一个整形变量,为此变量赋予一个非零的常数值,比如int result = 17; 2. 选取equals方法中用于比较的所有域,然后针对每个域的属性进行计算: (1) 如果是boolean值,则计算f ? 1:0 (翻译 2016-12-14 14:07:15 · 397 阅读 · 0 评论