JAVA基础复习(四)

JAVA基础复习(四),第1张

1.异常

异常Throwable分为Exception和Error。

Exception可以捕获,包括CheckException和UncheckedException,checkExcption不处理(try catch)无法编译,UncheckException可以throw如越界,空指针等

Error,程序无法处理的错误,一般会导致线程终止。

Throwable常用的方法包括:getMessage(简单描述),toString(详细),printStackTrace(完整异常信息)

例如空指针:

2.try-catch-finally

finally不执行的情况:1.System.exit先执行 2.程序所在线程死亡 3.关闭cpu

资源类(需要close)可以使用try-with-resources替代,在执行完后会自动关闭资源。

3.泛型

泛型类,泛型接口,泛型方法。泛型只在编译阶段有效

泛型类实例化的时候必须指定类型。

泛型接口实现可以不指定具体类型。

泛型方法 静态泛型方法只能使用泛型类型,不能指定具体类型,只有声明了的方法才是泛型方法。

自定义接口通用方法可以用泛型类。

public class GenericDemo {
    /**
     * 泛型类
     * @param 
     */
    public class Generic {
        private T key;
        public Generic(T key) {
            this.key = key;
        }

        /**
         * 不是泛型方法,只是用了已经声明过得泛型T
         * @return
         */
        public T getKey(){
            return key;
        }

        /**
         * 这是泛型方法,public 和返回值之间存在
         * @param generic
         * @param 
         * @return
         */
        public  T getKey(Generic generic){
            System.out.println("key is :" + generic.getKey());
            return generic.getKey();
        }

        /**
         * 这也是泛型方法
         * @param t
         * @param 
         */
        public  void show(T t){
            System.out.println(t);
        }
    }

4.反射

灵活,但是性能稍差,有安全问题,反射可以随意访问和修改类的所有状态和行为,破坏了类的封装性,如果不熟悉被反射类的实现原理,随意修改可能导致潜在的逻辑问题。可以通过反射访问类的私有属性,相当于关闭了安全检查。

 public static void main(String[] args) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException {
        ReflectModel demo = new ReflectModel();
        Class clazz = demo.getClass();
        Method method = clazz.getDeclaredMethod("test",null);
        //通过setAccessible 访问私有方法
        method.setAccessible(true);
        method.invoke(demo);
    }

注解,框架,代理都会用到反射

5.注解

注解本质是一个继承了Annotation 的特殊接口

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/787078.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-05
下一篇2022-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存