码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • java学习第四步-java语法高级


    JAVA高级

    • 1 面向对象变成
      • 1.1 封装(只是1种思想)
      • 1.2 继承(子类继承父类)
        • 1.2.1(1)父类中非私有的直接被继承
        • 1.2.2 什么时候用
        • 1.2.3 可以多层继承,但是只能单继承
        • 1.2.4 super(找到父类的对象)
        • 1.2.5 super()继承父类的构造方法(只要是构造方法第一句都是它)
        • 1.2.6 重写(子类重写父类方法)
      • 1.3 多态(重写是最最要的多态实现)
        • 1.3.1
        • 1.3.2 转型(难懂)
        • 1.3.3 instanceof (判断类型)
      • 1.4 抽象类(定义父类时这个方法不好明确)
      • 1.5 模板设计模式
      • 1.6 代码块
      • 1.7 接口(方法全是抽象方法)
        • 1.7.1 接口成员
        • 1.7.2 jdk8对接口的成员方法做了修改
        • 1.7.3 接口使用思路
        • 1.7.4 接口和类
      • 1.8 内部类
        • 1.8.1 成员内部类
        • 1.8.2 局部内部类
      • 1.9 匿名内部类
      • 1.10 lambad表达式
        • 1.10.1 lambda能做的事情
        • 1.10.2 lambda表达式格式
        • 1.10.3 lambda表达式使用前提3个
        • 1.10.4 lambda简写规则
        • 1.10.5 lambda和匿名内部类的区别
    • 2 垃圾回收机制
    • 3 集合(一个容器,包括字典、集合、列表等)
      • 3.1 集合概述
        • 3.1 集合和数组是两个并列的概念
        • 3.2 对象数组
        • 3.3 集合(类似python的列表)
        • 3.4 集合元素
        • 3.5 集合的方法
      • 3.6 迭代器Iterator(遍历集合的,next轮流取出)
        • 3.6.1 创建和使用
        • 3.6.2 什么类可以使用迭代器(继承了iterable的类都可以)
        • 3.6.3 for(i:list)只能遍历不能修改元素
        • 3.6.4 集合3种遍历方式
      • 3.2 list(分为Arraylist和Linklist)
        • 3.2.1 list常用方法
        • 3.2.2 list与数组的区别
        • 3.2.3 Arraylist动态数组(底层是数组实现的)
        • 3.2.4 Linklist(底层是链表实现,可以存不同类型对象,定义为泛型就可以)
      • 3.3 set (hashSet和TreeSet,不包含重复元素)
        • 3.3.1 TreeSet
        • 3.3.2 TreeSet的底层是红黑树
        • 3.3.3 树
        • 3.3.4 红黑树
        • 3.3.5 HashSet
      • 3.4 map (hashMap和TreeMap,相当于字典,键值对)
        • 3.4.1 entry对象(就是键值对)
        • 3.4.2 主要方法
        • 3.4.3 HashMap
        • 3.4.4 TreeSet
        • 3.4.5 可变参数(...)
    • 4 编程思想
      • 4.1 分类思想(分工协作,专人干专事)
      • 4.2 分包思想
      • 4.3 可复用、可维护、可读性强
    • 5 IO操作流stream
      • 5.1 流分为字节流和字符流
        • 5.2 通过字符流和字节流进制IO操作
    • 6 异常处理Throwable
      • 6.1 系统错误Error
      • 6.2 异常Exception(编译和运行异常)
        • 6.2.1 运行时异常(一般由程序逻辑错误引起)
        • 6.2.2 非运行时异常
      • 6.3 捕获异常try...catch...finally
      • 6.4 自定义异常(定义类继承Exception)
    • 7 枚举(就是一个类)
    • 8 泛型(使用一个模糊的类型替代具体类型)
    • 9 数据库JDBC(Java DataBase Connectivity)
    • 10 递归(自己调用自己,3个注意)
    • 11 多线程
      • 11.1 并发并行
      • 11.2 进程和线程
      • 11.3 多线程的实现3种方式
      • 11.4 Run和Start方法
      • 11.5 获取和设置线程名字
      • 11.6 获取线程对象与休眠
      • 11.7 设置线程优先级(setPerior)
      • 11.8 守护线程
      • 11.9 线程安全(买票问题,需要用同步代码块)
      • 11.10 同步方法
      • 11.11 Lock锁
      • 11.12 死锁
      • 11.13 生产者和消费者
    • 12 网络编程(简单,5分钟搞懂)
      • 12.1网络数据传输3要素
      • 12.2 InetAddress(ip操作类)
      • 12.3 端口
      • 12.4 协议
      • 12.5 UDP发送数据(发送和接收)
      • 12.6 单播、组播、广播
      • 12.6 TCP发送协议
        • 12.6.1 三次握手
        • 12.6.2 四次分手
        • 12.6.3 一个小案例,客户端和服务器通信![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/48b829b7086a808cf085b24f03b12e2b.png)
        • 12.6.4 一个小案例,客户端传输文件
    • 13 日志(就是一些信息日记,替代输出语句,进行一些信息记录)
      • 13.1 日志基础
      • 12.2 Logback(框架,jar包)
      • 12.3 日志级别
    • 13 枚举
    • 14 类加载器
      • 14.1 类字节码文件加载到内存
      • 14.2 类加载器的分类
    • 15 反射(获取类对象,对象属性,对象方法)
      • 15.1 获取类对象
      • 15.2 获取对象的构造方法
      • 15.3 根据对象的构造方法获取类对象
      • 15.4 获取对象属性(Field)并赋值,可以给一个对象的属性赋值
      • 15.5 获取成员方法并运行
    • 16 注解(对文档的说明)
      • 16.1 JDK内置的注解3个
      • 16.2 自定义注解
      • 16.3 元注解
      • 16.4 注解的使用(后面好好看看)
      • 16.5 单元测试

    1 面向对象变成

    一切皆对象,先设计对象,再编程,自己编程指挥者,让对象去实现功能。

    1.1 封装(只是1种思想)

    在这里插入图片描述

    1.2 继承(子类继承父类)

    1.2.1(1)父类中非私有的直接被继承

    **加粗样式**

    1.2.2 什么时候用

    在这里插入图片描述
    在这里插入图片描述

    1.2.3 可以多层继承,但是只能单继承

    在这里插入图片描述

    1.2.4 super(找到父类的对象)

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    1.2.5 super()继承父类的构造方法(只要是构造方法第一句都是它)

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    1.2.6 重写(子类重写父类方法)

    重写是子类重写实现父类的方法;
    重载是类内部有好几个方法一样,参数不一样的方法;
    在这里插入图片描述
    在这里插入图片描述

    1.3 多态(重写是最最要的多态实现)

    在这里插入图片描述

    1.3.1

    下面这个案例比较特殊,难记:
    原因是第2张图片
    在这里插入图片描述
    在这里插入图片描述

    1.3.2 转型(难懂)

    在这里插入图片描述

    1.3.3 instanceof (判断类型)

    1.4 抽象类(定义父类时这个方法不好明确)

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    1.5 模板设计模式

    在这里插入图片描述

    1.6 代码块

    在这里插入图片描述

    1.7 接口(方法全是抽象方法)

    抽象方法没有方法体,就是没有内容。
    在这里插入图片描述
    接口全是抽象方法,你实例化它,实例化对象也不能用这个方法呀
    在这里插入图片描述

    1.7.1 接口成员

    在这里插入图片描述

    在这里插入图片描述

    1.7.2 jdk8对接口的成员方法做了修改

    在这里插入图片描述
    在这里插入图片描述

    1.7.3 接口使用思路

    在这里插入图片描述

    1.7.4 接口和类

    在这里插入图片描述

    1.8 内部类

    1.8.1 成员内部类

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    1.8.2 局部内部类

    在这里插入图片描述
    在这里插入图片描述

    1.9 匿名内部类

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    1.10 lambad表达式

    1.10.1 lambda能做的事情

    在这里插入图片描述
    使用lambad表达式的做法
    在这里插入图片描述

    1.10.2 lambda表达式格式

    在这里插入图片描述
    在这里插入图片描述

    1.10.3 lambda表达式使用前提3个

    在这里插入图片描述
    还要加1个条件,就是有一个调用这个接口类型的方法
    在这里插入图片描述
    在这里插入图片描述

    1.10.4 lambda简写规则

    在这里插入图片描述
    在这里插入图片描述

    1.10.5 lambda和匿名内部类的区别

    在这里插入图片描述

    2 垃圾回收机制

    在这里插入图片描述

    3 集合(一个容器,包括字典、集合、列表等)

    3.1 集合概述

    就是一个容器,列表list、集合set、字典map都属于集合

    3.1 集合和数组是两个并列的概念

    不同之处:
    (1)集合的长度是可变的,数组长度不可变;
    (2)数组存放基本类型的数据类型和引用类型,集合用来存放对象的引用,不能存放基本数据类型;跟python中的数组和列表一样,集合也可以存放基本类型,只不过多 了一步地址引用。
    在这里插入图片描述
    (3)数组存放的数据类型必须相同,

    3.2 对象数组

    可以将类对象存为数组,由对象组成的数组。

    3.3 集合(类似python的列表)

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    3.4 集合元素

    在这里插入图片描述

    3.5 集合的方法

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    3.6 迭代器Iterator(遍历集合的,next轮流取出)

    3.6.1 创建和使用

    很简单,3分钟掌握创建,迭代,和判断3个方法就行
    在这里插入图片描述
    在这里插入图片描述

    3.6.2 什么类可以使用迭代器(继承了iterable的类都可以)

    单列集合都可以
    双列集合不可以(因为没继承iterable)

    3.6.3 for(i:list)只能遍历不能修改元素

    在这里插入图片描述

    3.6.4 集合3种遍历方式

    在这里插入图片描述

    3.2 list(分为Arraylist和Linklist)

    3.2.1 list常用方法

    在这里插入图片描述
    在这里插入图片描述

    3.2.2 list与数组的区别

    在这里插入图片描述
    在这里插入图片描述

    3.2.3 Arraylist动态数组(底层是数组实现的)

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    3.2.4 Linklist(底层是链表实现,可以存不同类型对象,定义为泛型就可以)

    在这里插入图片描述
    在这里插入图片描述

    3.3 set (hashSet和TreeSet,不包含重复元素)

    在这里插入图片描述

    3.3.1 TreeSet

    这里的定义不难,看黑马的集合教程。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    3.3.2 TreeSet的底层是红黑树

    在这里插入图片描述

    3.3.3 树

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    插入平衡二叉树的4种情况:
    (1)左左
    (2)左右
    (3)右左
    (4)右右

    3.3.4 红黑树

    在这里插入图片描述
    在这里插入图片描述
    红黑树不是平衡二叉树

    在这里插入图片描述
    添加节点默认节点是红色效率最高
    在这里插入图片描述
    在这里插入图片描述

    3.3.5 HashSet

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    3.4 map (hashMap和TreeMap,相当于字典,键值对)

    在这里插入图片描述
    在这里插入图片描述

    3.4.1 entry对象(就是键值对)

    3.4.2 主要方法

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    3.4.3 HashMap

    在这里插入图片描述

    3.4.4 TreeSet

    在这里插入图片描述
    存对象的时候必须要定义排序规则
    第一种实现接口来定义规则
    在这里插入图片描述
    第2种使用匿名类
    在这里插入图片描述

    3.4.5 可变参数(…)

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    4 编程思想

    4.1 分类思想(分工协作,专人干专事)

    在这里插入图片描述

    4.2 分包思想

    包就是1个文件夹
    定义com.hh.luxiao,就会以,号分割,得到一个3级的文件夹目录
    在这里插入图片描述

    4.3 可复用、可维护、可读性强

    5 IO操作流stream

    不同输入输出设备之间的数据传输抽象为流

    5.1 流分为字节流和字符流

    根据流传输的数据类型:

    1. 字节流(以stream结尾);
    2. 字符流(以Reader和Writer结尾);

    根据流的操作方式:

    1. 输入流(读取:从外界文件中读取数据到程序)
    2. 输出流(写入:从程序输出到文件中)

    5.2 通过字符流和字节流进制IO操作

    java系列3 java文件IO操作
    https://blog.csdn.net/xiaotiig/article/details/126030988

    6 异常处理Throwable

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    6.1 系统错误Error

    (1)这类是你编程的时候出现的系统性错误,比如少加分号;,
    (2)这类错误无法使用异常处理语句处理

    6.2 异常Exception(编译和运行异常)

    在这里插入图片描述

    6.2.1 运行时异常(一般由程序逻辑错误引起)

    可以通过try…catch语句捕获;

    6.2.2 非运行时异常

    可以通过try…catch捕获处理,或者使用throws抛出;

    6.3 捕获异常try…catch…finally

    try: 可能会出错的代码块
    catch:try中出错了由catch来获取
    finally:可以有也可以无,只要有一定会执行。

    6.4 自定义异常(定义类继承Exception)

    7 枚举(就是一个类)

    枚举可以定义在类内部,也可以定义在类外部。
    枚举就是类,作用就是固定的定义了常量,比如男,女

    8 泛型(使用一个模糊的类型替代具体类型)

    泛型就是一个泛化模糊的概念,提升程序的泛化性能:
    你定义的时候直接就确定了数据类型,之后想用其他类型就没法用
    比如你定义了 int i; 到时候你想让i成为浮点型,你直接用一个T来代表这就是一个类型就行了。
    在这里插入图片描述

    9 数据库JDBC(Java DataBase Connectivity)

    用它来操作数据库,5步
    1 加载驱动程序
    2 建立连接
    3 向数据库发送SQL语句
    4 处理返回语句
    5 关闭连接

    10 递归(自己调用自己,3个注意)

    (1)程序结束条件
    (2)最小化问题实现,程序调用自己
    (3)程序的输出
    **加粗样式**
    方法调用是在栈里面运行
    在这里插入图片描述

    11 多线程

    在这里插入图片描述

    11.1 并发并行

    在这里插入图片描述

    11.2 进程和线程

    在这里插入图片描述
    在这里插入图片描述

    11.3 多线程的实现3种方式

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    11.4 Run和Start方法

    在这里插入图片描述

    11.5 获取和设置线程名字

    在这里插入图片描述

    11.6 获取线程对象与休眠

    在这里插入图片描述
    在这里插入图片描述

    11.7 设置线程优先级(setPerior)

    在这里插入图片描述

    11.8 守护线程

    当普通线程不存在(执行完毕)了,它也就不执行了
    在这里插入图片描述

    11.9 线程安全(买票问题,需要用同步代码块)

    让多个线程轮流去占用资源,而不是一起了
    在这里插入图片描述
    在这里插入图片描述
    锁对象一定要唯一,看黑马的锁对象唯一教程视频

    11.10 同步方法

    在这里插入图片描述

    11.11 Lock锁

    在这里插入图片描述

    在这里插入图片描述

    11.12 死锁

    在这里插入图片描述
    在这里插入图片描述

    11.13 生产者和消费者

    在这里插入图片描述
    在这里插入图片描述

    12 网络编程(简单,5分钟搞懂)

    12.1网络数据传输3要素

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    12.2 InetAddress(ip操作类)

    在这里插入图片描述

    12.3 端口

    在这里插入图片描述

    12.4 协议

    在这里插入图片描述
    在这里插入图片描述

    12.5 UDP发送数据(发送和接收)

    在这里插入图片描述

    package com.itheima.socketdemo2;
    
    
    import java.io.IOException;
    import java.net.*;
    
    public class ClientDemo {
        public static void main(String[] args) throws IOException {
            //1.找码头
            DatagramSocket ds = new DatagramSocket();
            //2.打包礼物
            //DatagramPacket​(byte[] buf, int length, InetAddress address, int port)
            String s = "送给村长老丈人的礼物";
            byte[] bytes = s.getBytes();
            InetAddress address = InetAddress.getByName("127.0.0.1");
            int port = 10000;
            DatagramPacket dp = new DatagramPacket(bytes,bytes.length,address,port);
    
    
            //3.由码头发送包裹
            ds.send(dp);
    
            //4.付钱走羊
            ds.close();
        }
    }
    
    package com.itheima.socketdemo2;
    
    import java.io.IOException;
    import java.net.DatagramPacket;
    import java.net.DatagramSocket;
    import java.net.SocketException;
    
    public class ServerDemo {
        //注意点:
            //1.要先运行接收端,再运行发送端
            //2.如果接收端再启动之后,没有接收到数据,那么会死等(阻塞).
            //3.在接收数据的时候,需要调用一个getLength方法,表示接收到了多少字节
        public static void main(String[] args) throws IOException {
            //1.找码头     ---- 表示接收端从10000端口接收数据的.
            DatagramSocket ds = new DatagramSocket(10000);
            //2,创建一个新的箱子
            byte [] bytes = new byte[1024];
            DatagramPacket dp = new DatagramPacket(bytes,bytes.length);
            //3.接收礼物,把礼物放到新的箱子中
            System.out.println("-----------接收前----------");
            ds.receive(dp);
            System.out.println("------------接收后---------");
            //4.从新的箱子里面获取礼物
           // byte[] data = dp.getData();
            int length = dp.getLength();
            System.out.println(new String(bytes,0,length));
            //5.拿完走羊
            ds.close();
        }
    }
    
    

    12.6 单播、组播、广播

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    12.6 TCP发送协议

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    12.6.1 三次握手

    在这里插入图片描述

    12.6.2 四次分手

    在这里插入图片描述

    12.6.3 一个小案例,客户端和服务器通信在这里插入图片描述

    发送端

    package com.itheima.socketdemo7;
    
    import java.io.*;
    import java.net.Socket;
    
    public class ClientDemo {
        public static void main(String[] args) throws IOException {
            Socket socket = new Socket("127.0.0.1",10000);
    
            OutputStream os = socket.getOutputStream();
            os.write("hello".getBytes());
           // os.close();如果在这里关流,会导致整个socket都无法使用
            socket.shutdownOutput();//仅仅关闭输出流.并写一个结束标记,对socket没有任何影响
    
    
            /*InputStream is = socket.getInputStream();
            int b;
            while((b = is.read()) !=-1){
                System.out.println((char) b);
            }*/
    
            BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            String line;
            while((line = br.readLine())!=null){
                System.out.println(line);
            }
            br.close();
            os.close();
            socket.close();
        }
    }
    
    
    //接收端
    package com.itheima.socketdemo7;
    
    import java.io.*;
    import java.net.ServerSocket;
    import java.net.Socket;
    
    public class ServerDemo {
        public static void main(String[] args) throws IOException {
            ServerSocket ss = new ServerSocket(10000);
    
            Socket accept = ss.accept();
    
            InputStream is = accept.getInputStream();
            int b;
            while((b = is.read())!=-1){
                System.out.println((char) b);
            }
    
            System.out.println("看看我执行了吗?");
           /* OutputStream os = accept.getOutputStream();
            os.write("你谁啊?".getBytes());*/
            BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(accept.getOutputStream()));//将字节流转换为字符流,解决中文乱码的问题
            bw.write("你谁啊?");
            bw.newLine();
            bw.flush();
    
            bw.close();
            is.close();
            accept.close();
            ss.close();
        }
    }
    

    12.6.4 一个小案例,客户端传输文件

    //上传文件
    
    public class ClientDemo {
        public static void main(String[] args) throws IOException {
            Socket socket = new Socket("127.0.0.1",10000);
    
            //是本地的流,用来读取本地文件的.
            BufferedInputStream bis = new BufferedInputStream(new FileInputStream("socketmodule\\ClientDir\\1.jpg"));
    
            //写到服务器 --- 网络中的流
            OutputStream os = socket.getOutputStream();
            BufferedOutputStream bos = new BufferedOutputStream(os);
    
            int b;
            while((b = bis.read())!=-1){
                bos.write(b);//通过网络写到服务器中
            }
            bos.flush();
            //给服务器一个结束标记,告诉服务器文件已经传输完毕
            socket.shutdownOutput();
    
    
            BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            String line;
            while((line = br.readLine()) !=null){
                System.out.println(line);
            }
            bis.close();
            socket.close();
    
    
        }
    }
    
    package com.itheima.socketdemo8;
    
    import java.io.*;
    import java.net.ServerSocket;
    import java.net.Socket;
    
    public class ServerDemo {
        public static void main(String[] args) throws IOException {
            ServerSocket ss = new ServerSocket(10000);
    
            Socket accept = ss.accept();
    
            //网络中的流,从客户端读取数据的
            BufferedInputStream bis = new BufferedInputStream(accept.getInputStream());
            //本地的IO流,把数据写到本地中,实现永久化存储
            BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("socketmodule\\ServerDir\\copy.jpg"));
    
            int b;
            while((b = bis.read()) !=-1){
                bos.write(b);
            }
            //将字节输入流FileInputStream   转成     字符输入流  Fliereader
    
            //通过转换流
            InputStreamReader inputStreamReader = new InputStreamReader(accept.getInputStream());
    
            //通过缓冲输入字符流
            BufferedReader br = new BufferedReader(inputStreamReader);
    
    
            OutputStreamWriter outputStreamWriter = new OutputStreamWriter(accept.getOutputStream());
            BufferedWriter bw = new BufferedWriter(outputStreamWriter);
            bw.write("上传成功");
            bw.newLine();
            bw.flush();
    
            bos.close();
            accept.close();
            ss.close();
    
    
        }
    }
    
    

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    这些优化看黑马程序员代码

    13 日志(就是一些信息日记,替代输出语句,进行一些信息记录)

    13.1 日志基础

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    12.2 Logback(框架,jar包)

    在这里插入图片描述

    12.3 日志级别

    在这里插入图片描述

    13 枚举

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    14 类加载器

    类的字节码加载到内存,用到的时候才加载到内存,不用的时候不加载。
    在这里插入图片描述

    14.1 类字节码文件加载到内存

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    14.2 类加载器的分类

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    15 反射(获取类对象,对象属性,对象方法)

    简单5分钟学会
    两步:
    (1)先获取类对象
    (2)再获取对象的属性、或构造方法、或对象方法

    本身属性、构造方法、对象方法也是对象,就是一个引用,获取到了可以直接用
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    15.1 获取类对象

    在这里插入图片描述

    15.2 获取对象的构造方法

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    15.3 根据对象的构造方法获取类对象

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    15.4 获取对象属性(Field)并赋值,可以给一个对象的属性赋值

    在这里插入图片描述
    在这里插入图片描述

    15.5 获取成员方法并运行

    在这里插入图片描述
    在这里插入图片描述

    16 注解(对文档的说明)

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    16.1 JDK内置的注解3个

    在这里插入图片描述

    16.2 自定义注解

    在这里插入图片描述
    在这里插入图片描述

    16.3 元注解

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    16.4 注解的使用(后面好好看看)

    在这里插入图片描述

    16.5 单元测试

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    适合程序员/软件开发者的专业编辑器/笔记软件综合评测和全面推荐
    鸿蒙HarmonyO实战-ArkUI动画(组件内转场动画)
    Python 基础学习
    WebFlux+SSE流式传输
    【C++】图片转byte
    Linux文件内容查看相关指令
    如何在Ubuntu部署Emlog,并将本地博客发布至公网可远程访问
    数据结构——堆的实现与应用
    概括23种设计模式
    安全热点|国新办发布《携手构建网络空间命运共同体》白皮书
  • 原文地址:https://blog.csdn.net/xiaotiig/article/details/125898114
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号