摘要:
子类(父类的外部包)中访问父类的protetcted属性或者方法,是不可以通过创建父类对象调用的。注意:此处不讨论同包下的父类子类,因为同包下所有类都可访问protected属性或者方法。 请参见Java官方文档:Chapter 6. Names中的6.6.2.1. Access to a prot 阅读全文
摘要:
1 class MultipleQUestion extends Question{ //多选题类 2 3 private char[] answer; //多选题答案属性 4 5 public char[] getAnswer() { 6 return answer; 7 } 8 9 public ... 阅读全文
摘要:
下面是子类 还有一个困惑,假设父类没有有参构造方法,子类的构造方法里不一定会有super();方法 , 上面的Test2(){ this(3) }构造方法中,并没有直接调用父类的无参构造方法,可以通过反编译软件查看 阅读全文
摘要:
第一种(懒汉,线程不安全): 这种写法lazy loading很明显,但是致命的是在多线程不能正常工作。 第二种(懒汉,线程安全): 这种写法能够在多线程中很好的工作,而且看起来它也具备很好的lazy loading,但是,遗憾的是,效率很低,99%情况下不需要同步。 第三种(饿汉): 这种方式基于 阅读全文
摘要:
static是静态的意思; static修饰的成员变量,在内存中存在于方法区中,只有一份,非静态的成员变量在堆中,每个对象中都有一份 如上代码控制台会输出 " t1的id: 12 t1的classNo25 t2的id: 25 t2的classNo: 25 " ,静态成员变量存在于方法区内且只有一份, 阅读全文
摘要:
JAVA的JVM的内存可分为3个区:堆(heap)、栈(stack)和方法区(method) 堆区: 1.存储的全部是对象,每个对象都包含一个与之对应的class的信息。(class的目的是得到操作指令) 2.jvm只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对象引用,只存放对象本身 阅读全文
摘要:
this:所在方法的调用者对象 this关键字: 1:如果存在成员变量和局部变量同名,方法中默认访问局部变量(就近原则),可以通过this关键之指定访问成员变量的数据 2:如果在一个方法中访问了一个变量,且该变量只存在成员变量的情况下,java编译器会在该变量的前面添加this关键字 3: 在一个构 阅读全文
摘要:
构造代码块: 直接在类中定义且没有加static关键字的代码块称为{}构造代码; 作用:给对象统一初始化数据 以下例子统计了所有构造函数一共被调用了多少次(构造代码块的使用) 构造代码块注意点: 1:java编译器编译java类时,会先将成员属性的声明放到类的前端 2:成员变量的初始化工作放到构造函 阅读全文