温故而知新,可以装逼矣。。。

1、静态内部类
2、System.out 与System.err

package com.yexue.example.small;

/**
 * 静态内部类的优点:降低包的深度,不受外部类实例影响
 * 非静态内部类优点:可以自由使用外部类的所有变量和方法
 * @author yexue
 * @expl
 * @time 2017年9月1日 上午11:33:29
 */
public class StaticTest {
    public static void main(String[] args) {
        Test2.TestSub1 sub1 = new Test2().new TestSub1();
        Test2.TestSub2 sub2 = new Test2.TestSub2();
        Test2.TestSub1 sub11 = Test2.getInstance().new TestSub1();
        Test2.TestSub1 sub12 = Test2.getInst().new TestSub1();
        /**
         * 

* err 与 out * err:标准错误输出,没有缓存,及时输出 * out:标准输出,带缓存 * 现象:下面例子中,out按顺序输出,err不一定 *

*/ System.out.println("start..."); System.err.println("middle..."); System.out.println("end..."); } } class Test2 { class TestSub1 { public String getA() { return a; } public String getB() { return b; } } static class TestSub2 { public String getA() { return a; } //BAD // public String getB() { // return b; // } } TestSub2 getTestSub2(){ return new TestSub2(); } static String a = "aaaa"; String b = "bbbb"; /** * 单例模式 * @return */ public static Test2 getInst() { return InnerInstance.test2; } static class InnerInstance { static Test2 test2 = new Test2(); } /** * 懒汉模式,不建议写在有静态属性的类里面 */ private static Test2 INSTANCE = new Test2(); public static Test2 getInstance() { return INSTANCE; } }

你可能感兴趣的:(温故而知新,可以装逼矣。。。)