zoukankan      html  css  js  c++  java
  • Java Web总结一反射、单例模式

    一、Eclipse快捷键

      1、Alt+/:智能提示

      2、Ctrl+Shift+F:格式化代码

      3、Ctrl+/:注释代码

      4、Ctrl+1:提示代码错误

      5、Ctrl+Shift+X:转大写

      6、Ctrl+Shift+Y:转小写

      7、Ctrl+Shift+O:一次导入多个对应的包

      8、Ctrl+Shift+/:多行注释

      9、选中行+Alt+上下方向键:移动行

    二、Eclipse的Debug调试

      1、step over:粗粒度调试,一行一行调试。

      2、step into:细粒度调试,可以进入调用的方法内部。

    三、Junit调试

      1、在需要调试的方法前面加上@Test。

      2、@Before和@After会在@Test方法执行前后各执行一次。比如在执行数据库时,可以在@Before里执行打开数据库操作,在@After里执行关闭数据库操作。

      3、@BeforeClass和@AfterClass会在调试类执行前后各执行一次。

    四、可变参数

      1、参数的个数不确定。

      2、可变参数智能放在参数的最后边。

      3、可变参数最少0个,最多一个。

      4、编译器将可变参数当作一个一维数组来对待。

    五、枚举

      1、当取值是某范围中的之一,这时可以使用枚举。

      2、当向用户提示严重错误时,尽可能使用抛出异常的方式通知客户端。

      3、枚举类与普通类一样,可以继承或实现,如果有抽象方法的话,可以利用每个枚举值以匿名内部类的方式实现。

      4、枚举值可以用在switch()语句中。

      5、如果枚举类只有一个枚举值,则可以当做单态设计模式使用。

      6、枚举类常用方法:

        1)name():显示枚举值

        2)ordinal():显示枚举值对应的索引,从0开始。

        3)valueOf():判段某个字符串是否属性枚举值之一

        4)values():取得该枚举类对应的所有枚举值,是一个数组

    六、反射

      1、解析一个类的各个部分,形成一个对象。

      2、外存中的类,加载到内存中,会形成该对象的Class类,例如:String类,加载到内存中,就是StringClass对象。

      3、得到某个class文件对应的class对象的三种方法:

        1)类名.class

        2)对象.getClass()

        3)Class.forName("类名")

      4、使用不同的方式,取得同一个类型的字节码对象Class是相同的。

      5、通过getXxxx()只能取得该类public的类型,通过getDeclaredXxxxxx()可以取得该类非public的类型。如果要获得非public类型,还需设置设置非public类型的可访问性,默认为false,不可       访问。constructor.setAccessible(true);

      6、反射可以反射private/public的构造方法,字段,普通方法。

      7、在反射main方法时,编译器会将数组自动拆分,取第一个值。

        解决方案:

        //m.invoke(null,(Object)new String[]{"A","B","C","D"});,将数组当作对象,此时编译器不进行拆分
          m.invoke(null,new Object[]{new String[]{"A1","B1","C1","D1"}});在数组中嵌入另一个数组

    小提示:

    1、集合有两大类:Collection和Map。Collection包括Set和List。

    2、对Map集合的两种迭代:keySet()和entrySet()。通常使用的是entrySet()进行遍历。

    枚举参考代码:

    package com.gnnuit.enumration2;
    
    public enum Season {
        SPRING {
            public void show() {
                System.out.println("春天");
            }
        },
        SUMMER {
            public void show() {
                System.out.println("夏天");
            }
        },
        AUTUMN {
            public void show() {
                System.out.println("秋天");
            }
        },
        WINTER {
            public void show() {
                System.out.println("冬天");
            }
        };
        // 枚举里有抽象方法
        public abstract void show();
    
    }

     单例模式参考代码:

    package com.gnnuit.model;
    
    /**
     * 单例/态/值设计模式(在单线程情况下)
     * 
     * @author 杨伦义
     * 
     */
    public class Singleton {
        // 1、构造方法私有化
        private Singleton() {
    
        }
    
        // 2、向外部提供一个获取实例的方法
        public static Singleton getInstance() {
            if (instance == null) {
                instance = new Singleton();
            }
            return instance;
        }
    
        // 3、创建一个私有变量存储这个实例
        private static Singleton instance;
    }
  • 相关阅读:
    css 三种布局定位
    居中布局注意的要点
    CSS盒子3D模型
    SpringMVC中JSP取不到ModelAndView的数据原因
    如何让 height:100%; 起作用
    css形变
    消除html元素之间空白
    h5移动端网页头部标签模板
    大数据之Hadoop核心之HDFS
    大数据之Hadoop集群搭建
  • 原文地址:https://www.cnblogs.com/FlySheep/p/3600141.html
Copyright © 2011-2022 走看看