反射-反射的应用 反射的应用注:clazz是Class的实例,per才是Person的对象!!! 创建运行时类的对象通过Class实例调用newInstance()方法 条件1:要求运行时类中必须提供一个空参的构造器 条件2:要求提供的空参的构造器的权限要足够 在JDK9后此方法被标记为过时,替换为:Constructor调用newInstance() 获取运行时类的内部结构:所有属性、所有方法、所有构造器 2024-03-18 JAVA > JAVASE
注解 注解Annotation以 @注解名的方式在代码中存在 Annotation可以像修饰符一样使用,可用于修饰包、类、构造器、方法、成员变量、参数、局部变量的声明 还可以添加一些参数值,这些信息被保存在Annotation的”name = value”键值对中 注解和注释注解和注释是截然不同的 注释是给人看的,不参与java文件的编译 注解是给计算机看的,程序根据注解的不同,做出的响应的 2024-03-18 JAVA > JAVASE
枚举类 枚举类枚举类本质上是一个类,只不过这个类的对象是有限个的,不能让用户随便创建 枚举类的例子很多,比如说星期、月份、性别、订单状态、支付方式、线程状态等 开发中,如果针对于某个类,其实例是确定个数的,则推荐将此类声明为枚举类 如果枚举类的实例只有一个,则可以看作是单例的实现方式 枚举类方法 方法名 说明 toString() 在重写前,返回被调用的对象。可通过重写显示想要的内容 2024-03-17 JAVA > JAVASE
反射-类的加载 类的加载类的加载过程 类的装载(loading) 将类的.class文件读入内存,并位置创建一个java.lang.Class对象。此过程由类加载器完成 链接(linking) 验证(Verify):确认读取的文件是合规的文件 准备(Prepare):为类变量(static)分配内存和赋初值 解析(Res olve):将常量池内的符号引用(常量名)替换为直接引用(地址)的过程 初始化(i 2024-03-17 JAVA > JAVASE
反射 反射Java程序中,所有的对象都有两种类型:编译时类型和运行时类型,很多对象的编译时类型和运行时类型不一致。 多态: Object obj = new String(“hello”); 当程序完全知道编译时和运行时的完成信息,这种情况下不需要使用反射 当程序需要靠运行时信息来调用对象和类的真实信息时,必须要用到反射 反射的定义Reflection 是被视为动态语言的关键,反射机制允许程序 2024-03-17 JAVA > JAVASE
单例模式 单例模式单例设计模式,就是采用一定方法保证在整个软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法 饿汉式方法实现单例模式123456789101112class Bank{ //私有化构造方法 private Bank(){ } //直接声明对象 private static Bank bank = new 2024-03-17 JAVA > JAVASE
网络编程 网络编程InetAddress的使用实例化方法: InetAddressget ByName(String host) 使用IP地址或域名作为形参,生成一个IP地址的对象 InetAddressget LocalHost() 获取本机IP地址生成一个IP地址的对象 此类使用两个静态实例化方法,其对象就是一个IP地址, 常用方法: getAddress() 返回IP地址 getHostAddr 2024-03-10 JAVA > JAVASE
多线程-创建线程的扩展方式 创建线程的扩展方式Callable接口Callable接口,需重写call方法 与Runnable方式对比 call()可以有返回值,更灵活 call()可以使用throws的方式处理异常,更灵活 Callable使用了泛型参数,可以具体指明call()的返回值类型,更灵活 使用线程池使用并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程会大大降低系统效率,因 2024-03-09 JAVA > JAVASE
多线程-综合练习 消费者与生产者1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192package com.xiaoba 2024-03-09 JAVA > JAVASE
多线程-线程的通信 线程的通信当我们需要多个线程来共同完成一个任务,并且我们希望他们有规律的执行,那么多线程之间需要一些通讯机制,可以协调他们的工作,以此实现多线程共同操作一份数据. 等待唤醒机制 方法名 说明 wait() 进入等待状态,会释放对同步监视器的调用 notify() 唤醒被wait()的线程中优先级最高的一个线程(如果有多个并且优先级相同,则随机唤醒) notifyAll() 唤醒 2024-03-09 JAVA > JAVASE