05 2022 档案
摘要:1 将软件添加到右键菜单 https://blog.csdn.net/weixin_43853855/article/details/120096357 2将软件添加到右键下的发送 https://jingyan.baidu.com/article/a948d6515e0d804b2dcd2e98.
阅读全文
摘要:import java.lang.reflect.Method; public class ClassTest { public static void main(String[] args) { Method[] methods = Class.class.getDeclaredMethods()
阅读全文
摘要:import java.io.File; import java.net.URL; import java.net.URLClassLoader; /** 类加载器 一 类加载器机制 1 所有的类都有类加载器加载 2 同一个类的标准 java: 包名 + 类名(全限定名) JVM: 类加载器 + 包
阅读全文
摘要:public class 类加载器 { public static void main(String[] args) throws IOException { //获取系统类加载器 ClassLoader systemClassLoader = ClassLoader.getSystemClassL
阅读全文
摘要:/** 类的加载机制(这里的类指泛类:普通类,接口,枚举,注解...等一切类) 一 JVM和类 1 当调用java命令运行java程序时,该命令会启动一个java虚拟机进程, 不管该java程序多么复杂,该程序启动了多少进程,它们都在该java虚拟机进程里. 2 JVM进程被终止(jvm进程结束,该
阅读全文
摘要:/** * 异常处理 一 分类 Throwable Error(不要处理Error错误) AWTError IOError LinkageError ThreadDeath Exception(分为两大类check和RuntimeException异常,它们都可以显式处理和throws声明处理) c
阅读全文
摘要:class MyException extends RuntimeException{ public MyException(){} public MyException(String message){super(message);} } public class 异常处理 { public st
阅读全文
摘要:九 使用throw手动抛出异常 用法: throw new Exception("使用throw手动抛出异常"); 注意: 1 只能抛出运行时异常 2 java7开始 java编译器可以检查throw语句抛出的异常的类型,并提示提示警告出来 实际上是,java编译器检查出的是捕捉异常对象时的编译类型
阅读全文
摘要:/** 六 java9增强的自动关闭资源的try语句块(java7事实上已经有了自动关闭try语句块) 写法: try(){}-catch-finally 综上:需要关闭的资源,数据库连接,网络连接 1 要么在小括号里声明且初始化(java7)注意'且'字 2 (推荐)要么在try自动关闭语句之前初
阅读全文
摘要:/** 泛型(?为通配符,上限为Object类型) 一 菱形语法如下(java7开始)赋值号的左右只要一边带有泛型即可. List<String> list = new ArrayList(); List list2 = new ArrayList<String>(); 1 var 声明类型也可使用
阅读全文
摘要:/** 三 多异常捕捉(java7开始一个catch块可以捕捉多种类型的异常) 1 多个异常用'|'竖线隔开 2 捕捉多种类型的异常,异常变量有隐式的final修饰,因此不可以对异常变量重新赋值. 3 多种类型的异常之间不可存在父子关系 正常 catch(ClassCastException | I
阅读全文
摘要:// 类型的自动推断 // 1 通过调用方法的上下文来推断泛型的目标类型(就是通过参数类型推断的或返回值的变量类型) //2 调用静态泛型方法也可以传入泛型实参(Good.<String>info(); class MyUtil<E> { public static <Z> Z nil2(){ re
阅读全文
摘要:import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotati
阅读全文
摘要:/** * 七 Lambda表达式和匿名内部类的相同点和区别 * 相同点 * 1 两者内部一样可以访问成员变量,局部变量,且访问局部变量后就会变成final变量 * 2 两者对象都可以调用来自接口的默认方法 * 区别 * 1 匿名内部类可以为任何类(包括抽象类),接口创建对象,而Lambda表达式只
阅读全文
摘要:/** * * 以下是我的个人理解 * *一 创建一个类的对象时,触发该继承树的初始化 * 继承树的执行过程 * 总体上先初始化静态树,在初始化实例树 * 初始化静态树: 总体:Object到目标类,当前类:静态变量和静态代码块按先后顺序, * 初始化实例树: 总体:Object到目标类,当前类:实
阅读全文
摘要:/** * 只有继承关系才会按照树的初始化步骤进行, * 树的初始化,各个部分执行先后顺序,总是先初始化静态树,在初始化实例树 * 初始化静态树: 总体上从Object到目标类,局部上静态变量和静态代码块按先后顺序, * 初始化实例树: 总体上从Object到目标类,局部上实例变量和实例代码块按先后
阅读全文
摘要:import java.lang.annotation.*; import java.util.Arrays; /** * 注解 * 我个人认为其实就是接口,从接口变过来的,只不过他不可以定义方法, * 通过@interface限制了它包含了它独有的语法 * 一 要点 * 1 注解属于静态类,其中内
阅读全文
摘要:/** * Math方法的内容为int ,long,double,float等基本类型 * */ public class MathTest { public static void main(String[] args) { //三角函数 System.out.println("返回一个值的反正弦
阅读全文
摘要:/** * 匿名内部类 * * 一 定义: * new 接口(){//重写或实现抽象方法} * new 父类([实参列表]){//重写或实现抽象方法} * * 二 要求 * 1 仅且实现一个接口或继承一个父类 * 2 不可以是抽象类,必须实现所有的抽象方法(来自实现树或继承树) * 3 不可以定义构
阅读全文
摘要:/** * 枚举的实例注意点: * 1 提供类体部分时:该实例其实就是匿名内部类的实例比如SPRING,SUMMER * 2 没有提供类体时该实例才是枚举类的实例.比如AUTUMN,WINTER. * * 查看类的编译,可以证明如上结论无论 >怎样他们都统称为枚举类的实例. * */ //测试: 枚
阅读全文
摘要:* 六内部类的class文件的名字(所有的内部类都带有$符号)* 成员内部类: 外部类$类名* 匿名内部类: 外部类$N 'N'为类序号,类加载的序号,从1开始,先代码块,在构造器,在执行方法* 局部内部类: 外部类$N类名 'N'为类序号,类加载的序号,从1开始,先代码块,在构造器,在执行方法 *
阅读全文
摘要://访问外部实例成员 //类名.this(父路径上可以继续向上访问,匿名内部类,局部内部类也在类路径上,所以也符合这种形式) public class 内部类 { public String name = "tom"; public static void main(String[] args) {
阅读全文