03 2022 档案

摘要:反射机制 1、允许程序在执行期间借助 Reflection API 取得任何类的内部消息 2、加载完类之后,在堆中产生一个 Class 类型对象 3、一个类只有一个 Class 对象,该对象包含类的完整结构信息 反射相关的类 1、java.lang.Class<T>:Class 对象表示某个类加载后 阅读全文
posted @ 2022-03-31 15:40 半条咸鱼 编辑
摘要:1、数据通过网络在设备之间进行传输 2、java.net 包提供相关类、接口完成网络通信 IP 地址 1、用于唯一标识网络中的每台主机 2、组成:网络地址 + 主机地址 3、IPv4:4 byte(32 bit)点分十进制 4、本机地址:127.0.0.1 5、IPv6:16 byte(128 bi 阅读全文
posted @ 2022-03-30 16:12 半条咸鱼 编辑
摘要:1、InputStreamReader、OutputStreamWriter 2、InputStreamReader (1)是字符流,继承 Reader 类 (2)可以将 InputStream 转换为 Reader 3、OutputStreamWriter (1)是字符流,继承 Writer 类 阅读全文
posted @ 2022-03-29 22:40 半条咸鱼 编辑
摘要:1、System 类 public final static InputStream in = null; public final static PrintStream out = null; 标准输入、输出流 编译类型 运行类型 默认设备 System.in 标准输入 InputStream B 阅读全文
posted @ 2022-03-29 21:55 半条咸鱼 编辑
摘要:1、ObjectOutputStream 提供序列化 2、ObjectInputStream 提供反序列化 3、序列化:保存数据的值和类型 4、反序列化:恢复数据的值和类型 5、需要让某对象和其所属类支持序列化,该类必须实现以下两接口之一 (1)Serializable:标记接口,没有方法(建议) 阅读全文
posted @ 2022-03-29 21:14 半条咸鱼 编辑
摘要:1、缓冲处理流:BufferedReader、BufferedWriter、BufferedInputStream、BufferedOutputStream 2、通过构造器,传入节点流 (1)BufferedReader 本类组合 private Reader in; (2)BufferedWrit 阅读全文
posted @ 2022-03-29 20:27 半条咸鱼 编辑
摘要:FileInputStream 类 1、新建 FileInputStream 对象,若找不到文件、无法读取文件、无法关闭流都会产生异常 2、每次调用 read 方法,读取的字节会依次覆盖,read 方法传入的 byte[] 数组之前存储的字节 FileOutputStream 类 1、若调用 wri 阅读全文
posted @ 2022-03-29 15:33 半条咸鱼 编辑
摘要:1、Java 程序以流的方式进行输入 / 输出数据 2、Input:读取外部数据输入到程序(内存) 3、Output:将程序(内存)输出到外部数据 4、java.io 包提供流相关类、接口 事项 1、在 try - catch - finally 前,声明所需的流 2、IO 流的操作(包括 new) 阅读全文
posted @ 2022-03-29 10:37 半条咸鱼 编辑
摘要:1、文件流:文件在程序中是以流形式来操作的 2、Java 程序(内存) -> 输入流 -> 文件(磁盘);文件(磁盘)-> 输出流 -> Java 程序(内存) (1)流:数据在数据源(文件)和程序(内存)之间经历的路径 (2)输入流:数据从数据源(文件)到程序(内存)的路径 (3)输出流:数据从程 阅读全文
posted @ 2022-03-29 00:33 半条咸鱼 编辑
摘要:1、进程:运行中的程序,程序的一次执行过程,或正在运行的一个程序,是动态过程 2、线程:由进程创建,是进程的一个实体,一个进程可以有多个线程 (1)单线程:同一时刻,只允许执行一个线程 (2)多线程:同一时刻,可以执行多个线程 3、并发、并行同时存在 (1)并发:同一时刻,多个任务交替执行,即单核 阅读全文
posted @ 2022-03-28 22:46 半条咸鱼 编辑
摘要:1、委派事件模型 (1)当事件发生时,产生事件对象,把此信息传递到事件监听者进行处理 (2)信息:java.wat.event 事件类库中某个类创建的对象 2、事件源 -> 事件监听者 -> 事件处理方法 (1)事件源:一个产生事件的对象,如键盘、窗口、鼠标 (2)事件:承载事件源状态改变时的对象, 阅读全文
posted @ 2022-03-28 17:53 半条咸鱼 编辑
摘要:1、参数化类型,解决数据类型的安全性问题 2、在声明时,通过一个标识,表示某个属性的类型 / 某个方法返回值的类型 / 参数类型 3、事项 (1)泛型的具体数据类型在定义对象时(编译阶段)指定 (2)泛型只能是引用数据类型 (3)泛型指定具体数据类型后,可以传入该类型或其子类类型(向上转型) (4) 阅读全文
posted @ 2022-03-28 17:44 半条咸鱼 编辑
摘要:1、是对集合对象进行操作的工具类 2、提供 static 方法对集合进行排序、查询、修改等操作 排序 1、反转指定列表中元素的顺序 public static void reverse(List<?> list) 2、使用默认的随机源随机排列指定的列表,所有排列都以大致相等的可能性发生 public 阅读全文
posted @ 2022-03-28 16:53 半条咸鱼 编辑
摘要:概述 1、TreeSet 底层是 TreeMap,维护红黑树 2、相同 (1)有序集合,存储的值都有序,不传入 Comparator 的情况下,默认按键自然排序 (2)非同步集合,不能在多线程之间共享,可以使用方法 Collections.synchroinzedMap() 实现同步 (3)运行速度 阅读全文
posted @ 2022-03-28 16:11 半条咸鱼 编辑
摘要:1、继承 HashTable 类,实现 Map 接口 2、无序(添加、取出顺序不一致)、无索引,不保证映射顺序 3、key、value 不允许 null;key 不可重复,value 可重复 4、用于从 .properties 配置文件,加载数据到 Properties 类对象 5、该类用于读写配置 阅读全文
posted @ 2022-03-28 14:34 半条咸鱼 编辑
摘要:1、key- value 存放元素,key、value 可以是任意引用数据类型 2、无序(添加、取出顺序不一致)、无索引,不保证映射顺序 3、维护一个哈希表:数组 + 单向链表 4、key 不允许重复,value 允许重复,key、value 不允许为 null 5、添加 key - value,若 阅读全文
posted @ 2022-03-28 14:22 半条咸鱼 编辑
摘要:1、是 Map 接口使用频率最高的实现类 2、无序(添加、取出顺序不一致)、无索引,不保证映射顺序 3、维护一个哈希表:数组 + 单向链表 + 红黑树 4、key、value 可以是任意引用数据类型 5、key 不允许重复,key 只允许一个 null,value 允许重复,value 允许多个 n 阅读全文
posted @ 2022-03-28 10:53 半条咸鱼 编辑
摘要:1、Map、Collection 并列 2、Map 保存具有映射关系的数据:key - value(双列元素) 3、key、value 可以是任意引用数据类型,常用 String 对象作为 key 4、key 不允许重复,key 只允许一个 null,value 允许重复,value 允许多个 nu 阅读全文
posted @ 2022-03-27 22:31 半条咸鱼 编辑
摘要:1、是 HashSet 的子类,不允许重复元素、允许最多一个 null 元素 2、底层是 LinkedHashMap,维护:HashMap + 双向链表 3、双向链表维护元素次序 (1)插入有序:先添加在前,后添加在后,修改不影响顺序 (2)访问有序:get / put 操作,其对应键值对移到链表末 阅读全文
posted @ 2022-03-27 17:26 半条咸鱼 编辑
摘要:1、无序(添加、取出顺序不一致)、无索引、不允许重复元素、允许最多一个 null 元素 2、底层为 HashMap,维护一个哈希表:数组 + 单向链表 + 红黑树 private transient HashMap<E,Object> map; 3、PRSENT 作为底层 HashMap 的 val 阅读全文
posted @ 2022-03-27 16:29 半条咸鱼 编辑
摘要:1、无序(添加、取出顺序不一致)、无索引、不允许重复元素 2、是 Collection 接口的子接口 Set 接口遍历元素 1、使用 Iterator(迭代器) Iterator<E> iterator = 集合对象名.iterator(); while (iterator.hasNext()) { 阅读全文
posted @ 2022-03-27 11:03 半条咸鱼 编辑
摘要:1、由双向链表实现数据存储 2、元素有序、可重复、允许多个 null 元素 3、线程不安全,没有实现同步、互斥 4、一般情况下 80% - 90% 为查询,所以大部分情况下选择 ArrayList 底层结构 增删效率 改查效率 ArrayList 可变数组 较低 较高 LinkedList 双向链表 阅读全文
posted @ 2022-03-27 10:08 半条咸鱼 编辑
摘要:1、由数组实现数据存储 2、元素有序、可重复、允许多个 null 元素 3、线程安全,但效率低,多线程下使用 底层 1、维护一个 Object 类型的数组 protected Object[] elementData; 2、创建 Vector 对象 (1)无参构造器,调用其他构造器,构造初始容量为 阅读全文
posted @ 2022-03-27 09:54 半条咸鱼 编辑
摘要:1、由数组实现数据存储 2、元素有序、可重复、允许多个 null 元素 3、效率高,但线程不安全,单线程下使用 4、一般情况下 80% - 90% 为查询,所以大部分情况下选择 ArrayList 底层结构 增删效率 改查效率 ArrayList 可变数组 较低 较高 LinkedList 双向链表 阅读全文
posted @ 2022-03-27 09:23 半条咸鱼 编辑
摘要:1、是 Collection 接口的子接口 2、List 接口的实现子类,集合中的元素有序、可重复、允许多个 null 元素 3、List 接口的实现子类,集合中每个元素都有对应的顺序索引,索引从 0 开始 List 接口遍历方式 1、使用 Iterator(迭代器) Iterator<E> ite 阅读全文
posted @ 2022-03-26 22:41 半条咸鱼 编辑
摘要:实现类的特点 1、可以存放多个 Object 类型元素 2、没有直接实现子类,是通过子接口 Set、List 来实现 Collection 接口遍历元素 1、使用 Iterator(迭代器) (1)Iterator 对象称为迭代器,主要用于遍历 Collection 集合中的元素 (2)只要是 Co 阅读全文
posted @ 2022-03-26 21:54 半条咸鱼 编辑
摘要:单例集合:Iterable 接口 -> Collection 接口 1、List 接口 (1)ArrayList 类 (2)Vector 类 (3)LinkedList 类 2、Set 接口 (1)HashSet 类 -> LinkedHashSet 类 (2)TreeSet 类 双列集合:Map 阅读全文
posted @ 2022-03-26 21:09 半条咸鱼 编辑
摘要:第一代 1、Date 类:精确到毫秒,代表特定瞬间 (1)获取当前系统时间 public Date() (2)获取自 1970.1.1 00:00:00 GMT 起,指定毫秒数的时间,date 为正数表示日期之后,为负数表示日期之前 public Date(long date) 2、SimpleDa 阅读全文
posted @ 2022-03-26 19:08 半条咸鱼 编辑
摘要:1、BigDecimal 类型可以存放精度大于 double 的浮点数 2、BigInteger 类型可以存放超过 Long 类中属性:MAX_VALUE、MIN_VALUE 的整数 构造器 public BigDecimal(String val) public BigInteger(String 阅读全文
posted @ 2022-03-26 15:14 半条咸鱼 编辑
摘要:1、终止当前运行的 JVM,该参数作为状态代码,非零状态码表示异常终止 public static void exit(int status) 2、src 中位置 srcPos 至 srcPos + length - 1,共 length 个元素,替换 dest 中位置 destPos 至 dest 阅读全文
posted @ 2022-03-25 23:02 半条咸鱼 编辑
摘要:1、用于管理或操作数组 2、所有方法都为 static 常用方法 1、返回指定数组的内容的字符串表示形式,字符串表示由数组元素的列表组成,括在方括号("[]")中,相邻的元素由字符“,”分隔(逗号后跟一个空格),元素将转换为字符串,若 a 为 null,返回“null” public static 阅读全文
posted @ 2022-03-25 22:32 半条咸鱼 编辑
摘要:1、包含用于执行基本数学运算的方法 2、所有方法都是 static Math 类常用方法 1、返回绝对值 public static double abs(double a) public static float abs(float a) public static int abs(int a) 阅读全文
posted @ 2022-03-25 21:38 半条咸鱼 编辑
摘要:1、可变字符序列 2、提供一个与 StringBuffer 兼容的 API,即两个类的方法相同 3、StringBuilder 类的方法没有互斥处理,即没有 synchronized,不保证同步,线程不安全 3、是 StringBuffer 的一个简易替换 4、直接父类 AbstractString 阅读全文
posted @ 2022-03-25 20:41 半条咸鱼 编辑
摘要:1、实现接口 Serializable,即 StringBuffer 对象可以串行化,进行网络传输 2、直接父类是 AbstractStringBuilder 3、AbstractStringBuilder 存在属性:char[] value,value 数组位于堆中,存放字符串内容,当字符串内容变 阅读全文
posted @ 2022-03-25 13:51 半条咸鱼 编辑
摘要:1、String 对象是一组字符序列,用于保存字符串 2、字符串常量对象是双引号括起的字符序列 3、字符用 Unicode 编码,一个字符(不区分字母、汉字)占用两个字节 4、String 类实现 Serializable 接口,可以串行化,在网络传输;实现 Comparable 接口,对象之间可以 阅读全文
posted @ 2022-03-25 00:44 半条咸鱼 编辑
摘要:1、包装类是八种基本数据类型相应的引用类型 基本数据类型 boolean char byte short int long float double 包装类 Boolean Character Byte Short Integer Long Float Double 2、包装类类型、基本数据类型相互 阅读全文
posted @ 2022-03-24 20:18 半条咸鱼 编辑
摘要:Throwable 类是 Java 语言中所有错误和异常的 Throwable 类 1、Error:JVM 无法解决的严重问题,程序崩溃 2、Exception:因编程错误或偶然的外在因素导致的一般性问题 (1)运行异常(RuntimeException):非必须处理,JVM 的正常操作期间可以抛出 阅读全文
posted @ 2022-03-24 17:47 半条咸鱼 编辑
摘要:概述 1、可以被编译或运行,不影响程序逻辑,相当于嵌入代码的补充信息 2、JDK 内置的基本注解类型 (1)@Override (2)@Deprecated (3)@SuppressWarnings 3、@interface 不是代表接口 interface,而是表示注解 @Override @Ta 阅读全文
posted @ 2022-03-24 15:45 半条咸鱼 编辑
摘要:1、枚举是一组常量集合,属于一种特殊类,只包含一组有限的特殊对象 2、自定义类实现枚举 (1)构造器 private 化,防止直接创建 (2)不需要 set 方法,防止属性被修改 (3)定义 public static final 常量对象 (4)大写字母组成常量名,下划线连接多单词 (5)定义 p 阅读全文
posted @ 2022-03-24 13:07 半条咸鱼 编辑
摘要:内部类的本质 1、内部类只是 Java 编译器的概念,对于 Java 虚拟机而言,它是不知道内部类这回事的,每个内部类最后都会被编译为一个独立的类,生成一个独立的字节码文件 2、也就是说,每个内部类其实都可以被替换为一个独立的类。当然,这是单纯就技术实现而言。内部类可以方便地访问外部类的私有变量,可 阅读全文
posted @ 2022-03-23 22:43 半条咸鱼 编辑
摘要:interface 接口名 { 接口体; } 访问修饰符 类名 implements 接口名 { 类体; } 1、接口不能被实例化 2、接口的修饰符只能为 public 或默认 3、接口允许存在属性,接口中的属性隐式声明为 public static final,且声明不能更改 4、接口的方法 (1 阅读全文
posted @ 2022-03-23 00:07 半条咸鱼 编辑
摘要:1、抽象类 访问修饰符 abstract class 类名 { 类体; } 2、抽象方法 访问修饰符 abstract 返回数据类型 方法名(形参列表); 3、抽象类不能实例化,允许定义构造方法,只能由子类调用构造器 4、抽象类允许没有抽象方法 5、类含有抽象方法,该类必须为抽象类 6、abstra 阅读全文
posted @ 2022-03-22 20:04 半条咸鱼 编辑
摘要:1、final 可以修饰类、属性、方法、局部变量 2、作用 (1)类不能被继承 (2)父类方法不能被子类重写 (3)属性不能被修改 (4)局部变量不能被修改 4、普通常量赋值位置 (1)定义时 (2)构造器中 (3)代码块中 5、静态常量赋值位置 (1)定义时 (2)静态代码块中 6、非 final 阅读全文
posted @ 2022-03-22 17:09 半条咸鱼 编辑
摘要:修饰符 { 方法体; }; 1、修饰符可选,且只能选择 static 2、分号可以省略 3、属于类中成员,类似于方法,将逻辑语句封装在方法体内 4、与方法不同,无方法名、返回值、参数,只有方法 5、不需要通过对象、类进行显式调用,而是加载类时或创建对象时进行隐式调用 6、相当于另外一种形式的构造器, 阅读全文
posted @ 2022-03-22 16:33 半条咸鱼 编辑
摘要:类变量 / 静态变量 / 静态属性 1、static 变量是同一个类的所有对象所共享 2、在类加载时就生成了,不需要对象实例也能访问 3、存放位置 (1)JDK 8 版本以前,静态域存在方法区 (2)JDK 8 版本(包含 JDK 8)以后,静态域在定义类型 Class 对象中,Class 对象在 阅读全文
posted @ 2022-03-22 15:32 半条咸鱼 编辑
摘要:1、可以查看包括 Java 源码在内,程序执行的过程 2、断点调试的过程中,是运行状态,即以对象运行类型来执行 3、在程序的某一行设置断点,断点的位置没有限定,调试过程时,程序可以直接跳跃到断点,支持动态下断点 4、调试过程中可以查看各个变量的值 5、快捷键 (1)F7:跳入,进入方法内 (2)F8 阅读全文
posted @ 2022-03-22 12:32 半条咸鱼 编辑
摘要:equals 方法、== 1、equals 方法 (1)Object 类的方法,底层是比较操作符 == public boolean equals(Object obj) { return (this == obj); } (2)默认判断引用地址是否相等,即判断引用的是否为同一对象 (3)子类往往重 阅读全文
posted @ 2022-03-22 11:53 半条咸鱼 编辑
摘要:1、多态的基础是封装、继承 2、方法的多态:重载、重写 3、对象的多态 (1)前提:两个对象(类)存在继承关系 (2)一个对象的编译类型和运行类型可以不一致 (3)编译类型在定义对象时,就确定了,不能更改 (4)运行类型可以更改 (5)“=”的左方:编译类型;“=”的右方:运行类型 多态的向上转型 阅读全文
posted @ 2022-03-21 22:30 半条咸鱼 编辑
摘要:访问修饰符 class 子类名 extends 父类名 { 方法体; } 1、父类 / 基类 / 超类;子类 / 派生类 2、子类继承父类所有属性、方法(包括 private) (1)子类可以访问父类非 private 属性、方法 (2)子类不可以直接访问父类 private 方法、private 阅读全文
posted @ 2022-03-21 14:57 半条咸鱼 编辑
摘要:1、抽象出数据(属性)、对数据的操作(方法),并保护在内部(封装),程序只有被授权才能对数据进行操作 2、作用 (1)隐藏实现细节 (2)对数据进行验证,保证安全 3、实现 (1)private 化属性,不能直接修改属性 (2)提供 public set 方法 ,对验证属性并赋值 (3)提供 pub 阅读全文
posted @ 2022-03-21 10:02 半条咸鱼 编辑
摘要:修饰符 当前类 同一包内 子孙类(同一包) 子孙类(不同包) 其他包 public Y Y Y Y Y protected Y Y Y Y/N N default Y Y Y N N private Y N N N N 1、访问修饰符控制类、方法、属性的访问权限 2、外部类(顶层类)只能使用 pub 阅读全文
posted @ 2022-03-20 17:34 半条咸鱼 编辑
摘要:package 关键字 package 包名; 1、表示打包 2、声明当前类所在的包,需要在类最上方声明,一个类中最多一个 package 3、本质:创建不同文件夹,保存类文件 包的作用 1、区分相同名字的类 2、类较多时,易管理 3、控制访问范围 常用包 1、基本包,默认引入,不需要再次导入:ja 阅读全文
posted @ 2022-03-20 15:28 半条咸鱼 编辑
摘要:this 1、JVM 会给每个对象分配 this,代表当前对象 2、哪个对象调用,this 就代表那个对象 3、this 用于访问本类属性、方法、构造器,区分当前类的属性和局部变量 (1)访问属性 this.属性名 (2)访问方法 this.方法名(参数列表) (3)访问构造器:this 必须是第一 阅读全文
posted @ 2022-03-20 11:33 半条咸鱼 编辑
摘要:访问修饰符 类名(形参列表) { 方法体; } 1、类的特殊方法 2、没有返回值,不需要注明 void 3、方法名必须与类名一致 4、形参列表的规则与普通方法一致 5、创建对象时,自动调用该类的构造器完成对象的初始化 6、一个类可以定义多个构造器,实现构造器重载 7、构造器是完成对象初始化,而不是创 阅读全文
posted @ 2022-03-20 11:21 半条咸鱼 编辑
摘要:全局变量 1、属性 / 成员变量 / field(字段) 2、可以不赋值直接使用,有默认值 3、作用域:整个类体,本类直接使用,其他类通过创建对象调用 4、可使用访问修饰符,可以使用 static 修饰 5、生命周期长,随对象创建 / 销毁而创建 / 销毁 局部变量 1、除属性以外的其他变量,一般指 阅读全文
posted @ 2022-03-20 10:54 半条咸鱼 编辑
摘要:调用机制 1、程序执行方法时,开辟一个独立空间(栈空间) 2、方法执行完毕或 return,返回到调用该方法的位置,继续执行余下代码 3、main 方法(栈)执行完毕,退出程序 4、同类的方法调用:直接调用,不需要创建对象 5、不同类的方法调用:通过对象调用 6、跨类调用方法,与方法的访问修饰符、方 阅读全文
posted @ 2022-03-19 22:08 半条咸鱼 编辑
摘要:访问修饰符 返回数据类型 方法名(形参列表) { 方法体; return 返回值; } 1、访问修饰符:控制方法的使用范围 2、返回数据类型 (1)表示成员方法的输出,void 表示没有返回值 (2)一个方法最多一个返回值 (3)返回值可以为任意类型(基本数据类型、引用数据类型) (4)若返回数据类 阅读全文
posted @ 2022-03-19 20:58 半条咸鱼 编辑
摘要:1、类:自定义数据类型,抽象概念 2、对象:类的具体实例 属性 / 成员变量 / field(字段) 1、类的组成部分,是类的特性 2、定义:访问修饰符 数据类型 属性名; 3、访问:对象名.属性名; 4、属性不赋值,则有默认值 (1)byte、short、int、long:0 (2)float、d 阅读全文
posted @ 2022-03-19 17:19 半条咸鱼 编辑
摘要:动态初始化 1、声明 + 创建(建议) 数据类型[] 数组名 = new 数据类型[大小]; 数据类型 数组名[] = new 数据大小[大小]; 2、先声明、后创建 (1)声明数组,此时数组指向 null 数据类型 数组名[]; 数据类型[] 数组名; (2)创建数组,分配内存空间 数组名 = n 阅读全文
posted @ 2022-03-19 16:35 半条咸鱼 编辑
摘要:标签 1、标签位置在嵌套外层,标签名可指定 2、break 在多层嵌套中,可以通过标签指明终止哪一层代码块 3、实际开发不使用标签,可读性差 break 1、退出循环 2、用于 switch、while、for、do while 3、break 不指定标签,默认退出最近的循环体 4、break 在代 阅读全文
posted @ 2022-03-19 15:27 半条咸鱼 编辑
摘要:for for (循环变量初始化; 循环条件; 循环变量迭代) { 循环操作; } 1、若循环操作只有一条语句,{} 可以省略(不建议) 2、循环条件返回一个 boolean 值 3、循环初始变量可以有多条语句,要求数据类型一致,用逗号分隔 4、循环变量迭代可以有多条语句,用逗号分隔 5、for ( 阅读全文
posted @ 2022-03-19 14:40 半条咸鱼 编辑
摘要:顺序控制 1、程序从上到下逐行执行,中间无任何判断、跳转 2、Java 中定义变量时,采用合法的前向引用 //正确 int a = 1; int b = a + 1; //错误 int d = c + 1; int c = 1; 分支控制 if else 1、单分支 if (条件表达式){ 代码块; 阅读全文
posted @ 2022-03-19 13:41 半条咸鱼 编辑
摘要:1、二进制的最高位是符号位:0 表示正数,1 表示负数 2、正数的原码、反码、补码相同 3、负数的反码:原码的符号位不变,其他位进行取反操作 4、负数的补码:反码 + 1 5、负数的反码:补码 - 1 6、Java 中的数值都是带符号的 7、计算机以补码方式进行运算、存储 8、以原码方式显示运算结果 阅读全文
posted @ 2022-03-18 21:06 半条咸鱼 编辑
摘要:1、二进制:0、1,满 2 进 1,以 0b 或 0B 开头 2、八进制:0 - 7,满 8 进 1,以 0 开头 3、十进制:0 - 9,满 10 进 1 4、十六进制:0 - 9、A(10)- F(15),A - F 不区分大小写,满 16 进 1,以 0x 或 0X 开头 整数进制转换 1、其 阅读全文
posted @ 2022-03-18 21:00 半条咸鱼 编辑
摘要:1、概念:对变量、方法、类等命名时,所使用的字符 2、规则 (1)由 26 个字母大小写、0 - 9、_ 或 $ 组成 (2)不可以用数字开头 (3)不可以使用关键字、保留字,但可以包含关键字、保留字 (4)Java 严格区分大小写 (5)标识符不能包含空格 3、规范 (1)包名:由多单词组成,所有 阅读全文
posted @ 2022-03-18 17:53 半条咸鱼 编辑
摘要:算术运算符 1、+ (1)左、右都为数值型,则做加法运算 (2)左、右其中一方为字符串,则做拼接运算 (3)运算顺序从左至右 (4)char 类型在运算时,转换成对应码值 2、- (1)负号 (2)减法运算 3、* (1)乘法运算 4、/ (1)除法运算 System.out.println(10 阅读全文
posted @ 2022-03-18 17:44 半条咸鱼 编辑
摘要:自动类型转换 1、Java 程序进行赋值或运算时,精度小的数据类型自动转换为精度大的数据类型 2、数据类型精度(容量)按大小排序 (1)char -> int -> long -> float -> double (2)byte -> short -> int -> long -> float -> 阅读全文
posted @ 2022-03-17 22:52 半条咸鱼 编辑
摘要:基本数据类型 1、数值型 (1)整数类型:byte、short、int、long (2)浮点类型:float、double 2、字符型:char 3、布尔型:boolean 引用数据类型:如,class、interface、数组等 整数类型 占用存储空间 范围 byte(字节) 1 字节 -27 ~ 阅读全文
posted @ 2022-03-17 21:03 半条咸鱼 编辑
摘要:基本介绍 1、变量是程序的基本组成单位 2、基本要素:类型,名称,值 3、变量相当于内存中一个数据存储空间的表示,通过变量名可以访问变量(值) 4.步骤 (1)声明 (2)赋值 (3)使用 5、变量表示内存中的一个存储区域,不同变量占的大小不同 (1)该区域有自己的变量名、类型 (2)该区域的数据可 阅读全文
posted @ 2022-03-17 17:01 半条咸鱼 编辑
摘要:转义字符 1、\t:一个制表位,实现对齐功能 2、\n:换行符, 3、\r:一个回车,光标回到行首,并把该行输出依次替换 4、\:输出 \,\\:输出 \,\':输出 ',\":输出 " 5、转义字符不论单引号、双引号都可以输出 \r\n 和 \n 1、Windows系统中有如下等价关系: 阅读全文
posted @ 2022-03-17 16:07 半条咸鱼 编辑
摘要:JDK(Java Development Kit)组成 1、Java 开发工具包 (1)javac:编译器,将源程序转成字节码 (2)jar:打包工具,将相关的类文件打包成一个文件 (3)javadoc:文档生成器,从源码注释中提取文档 (4)jdb:debugger,查错工具 (4)java:运行 阅读全文
posted @ 2022-03-17 13:47 半条咸鱼 编辑
摘要:基本介绍 1.用于从客户端向服务器一次性传递带有多个属性的数据 2.角色 (1)Business Object:业务对象,通常从数据库读取数据,为 Transfer Object 填充数据的业务服务,并把它发送到 Client 或按值传递它 (2)Transfer Object:传输对象,普通 Ja 阅读全文
posted @ 2022-03-16 17:21 半条咸鱼 编辑
摘要:基本介绍 1.考虑到为某个服务查找 JNDI 的代价很高,服务定位器模式充分利用了缓存技术,在首次请求某个服务时,服务定位器在 JNDI 中查找服务,并缓存该服务对象,当再次请求相同的服务时,服务定位器会在它的缓存中查找,这样可以在很大程度上提高应用程序的性能 2.角色 (1)Service:实际处 阅读全文
posted @ 2022-03-16 15:50 半条咸鱼 编辑
摘要:基本介绍 1.用于对应用程序的请求或响应做一些预处理 / 后处理,定义过滤器,并在把请求传给实际目标应用程序之前,应用在请求上,过滤器可以做认证 / 授权 / 记录日志,或者跟踪请求,然后把请求传给相应的处理程序 2.角色 (1)Filter:过滤器,在请求处理程序执行请求之前或之后,执行某些任务 阅读全文
posted @ 2022-03-16 14:56 半条咸鱼 编辑
摘要:基本介绍 1.提供一个集中的请求处理机制,所有的请求都将由一个单一的处理程序处理,该处理程序可以做认证 / 授权 / 记录日志,或者跟踪请求,然后把请求传给相应的处理程序 2.角色 (1)Front Controller:前端控制器,聚合 Dispatcher,处理应用程序所有类型请求的单个处理程序 阅读全文
posted @ 2022-03-16 11:40 半条咸鱼 编辑
摘要:基本介绍 1.DAO(Data Access Object)模式用于把低级的数据访问 API 或操作从高级的业务服务中分离出来 2.角色 (1)Data Access Object Interface:数据访问对象接口,该接口定义了在一个模型对象上要执行的标准操作 (2)Data Access Ob 阅读全文
posted @ 2022-03-16 11:08 半条咸鱼 编辑
摘要:基本介绍 1.对表示层和业务层解耦,用来减少通信或对表示层代码中的业务层代码的远程查询功能 2.角色 (1)Client:客户端的表示层代码可以是 JSP、servlet 或 UI java 代码 (2)Business Delegate:业务代表,一个为 Client 提供的入口类,提供了对业务服 阅读全文
posted @ 2022-03-15 23:31 半条咸鱼 编辑
摘要:基本介绍 1.Model - View - Controller(模型 - 视图 - 控制器)模式 2.应用场景:程序的分层开发 3.角色 (1)Model:模型,代表一个存取数据的对象或普通 JavaBeans,它也可以带有逻辑,在数据变化时更新 Controller (2)View:视图,代表 阅读全文
posted @ 2022-03-15 22:34 半条咸鱼 编辑
摘要:基本介绍 1.创建一个指定各种要执行的操作的抽象类和扩展该类的实体类,还创建一个未对该类做任何实现的空对象类,该空对象类将无缝地使用在需要检查空值的地方 2.一个空对象取代 null 对象实例的检查,null 对象不是检查空值,而是反应一个不做任何动作的关系,这样的 null 对象也可以在数据不可用 阅读全文
posted @ 2022-03-15 22:19 半条咸鱼 编辑
摘要:基本介绍 1.允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式把它们连接起来,它结合多个标准来获得单一标准 代码示例 import java.util.LinkedList; import java.util.List; public class Filter {//客户端 pub 阅读全文
posted @ 2022-03-15 21:53 半条咸鱼 编辑
摘要:基本介绍 1.一个抽象类公开定义了执行它的方法的方式/模板,它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行 2.通常每个接收者都包含对另一个接收者的引用,如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推 角色 1.Handler:抽象处理者,定义了一个处理 阅读全文
posted @ 2022-03-15 15:25 半条咸鱼 编辑
摘要:基本介绍 1.策略模式中,定义算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户 2.一个类的行为或其算法可以在运行时更改,创建表示各种策略的对象和一个行为随着策略对象改变而改变的 Context 对象,策略对象改变 Context 对象的执行算法 角色 1.Con 阅读全文
posted @ 2022-03-15 12:24 半条咸鱼 编辑
摘要:基本介绍 1.主要解决对象在多种状态转换时,需要对外输出不同的行为的问题 2.状态之间可以相互转换,当一个对象的内在状态改变时,允许改变其行为,行为可能引起状态的改变 3.状态和行为是一一对应的,同一个行为,在不同状态下,有不同的实现 角色 1.Context:环境角色,维护一个 ConcreteS 阅读全文
posted @ 2022-03-14 23:49 半条咸鱼 编辑
摘要:基本介绍 1.解释器模式:指给定一个语言(表达式),定义它的文法的一种表示,并定义一个解释器,使用该解释器来解释语言中的句子(表达式) 2.在编译原理中,一个算术表达式通过词法分析器形成词法单元,而后这些词法单元再通过语法分析器构建语法分析树,最终形成一颗抽象的语法分析树,这里的词法分析器和语法分析 阅读全文
posted @ 2022-03-14 22:35 半条咸鱼 编辑
摘要:基本介绍 1.备忘录模式:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以后就可将该对象恢复到原先保存的状态 2.备忘录对象主要用来记录一个对象的某种状态,或者某些数据,当要做回退时,可以从备忘录对象里获取原来的数据进行恢复操作 角色 1.Originator:源对象, 阅读全文
posted @ 2022-03-13 22:11 半条咸鱼 编辑
摘要:基本介绍 1.一个中介对象来封装一系列的对象交互,中介者使各个对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互 2.代码易于维护 3.应用场景:如 MVC 模式,C(Controller控制器)是M(Model模型)和V(View视图)的中介者,在前后端交互时起到了中间人 阅读全文
posted @ 2022-03-13 21:13 半条咸鱼 编辑
摘要:基本介绍 1、对象之间多对一依赖的一种设计方案,被依赖对象为 Subject,依赖对象为 Observer,Subject 通知 Observer 变化 角色 1.Subject:主体接口,管理 ConcreteSubject,依赖 Observer (1)registerObserver:登记注册 阅读全文
posted @ 2022-03-13 14:30 半条咸鱼 编辑
摘要:基本介绍 1.提供一种遍历集合元素的统一接口,用一致的方法遍历集合元素,不需要知道集合对象的底层表示,即:不暴露其内部的结构 2.如果集合元素是用不同的方式实现的,当客户端要遍历这些集合元素的时,就要使用多种遍历方式,而且还会暴露元素的内部结构 角色 1.Iterator:迭代器接口,由JDK提供, 阅读全文
posted @ 2022-03-13 00:26 半条咸鱼 编辑
摘要:基本介绍 1.定义:把对数据的操作都封装到访问者类中,无需改变结构类,调用不同的访问者访问这个对象都会呈现出不同的处理方式 2.目的:解决类结构不变但操作处理逻辑易变的问题 3.原理:在被访问的类里面加一个对外提供接待访问者的接口 角色 1.Visitor:抽象访问者,接口 / 抽象类,为每个 Co 阅读全文
posted @ 2022-03-12 20:53 半条咸鱼 编辑
摘要:基本介绍 1.将 Invoker 与 Receiver 解耦,Invoker 只要调用 ConcreteCommand 对象的 execute 方法让接收者执行请求的动作,ConcreteCommand 对象起到了纽带桥梁的作用,即解耦是通过命令对象实现的 2.将一个请求封装为一个对象,以便使用不同 阅读全文
posted @ 2022-03-12 01:21 半条咸鱼 编辑
摘要:基本介绍 1.在一个抽象类公开定义了执行它的方法的模板,子类重写抽象方法,调用将以抽象类中定义的方式进行 2.作用:将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构,就可以重定义该算法的某些特定步骤 角色 1.AbstractClass:抽象类 / 接口,定义了算法的骨架 2.Concret 阅读全文
posted @ 2022-03-11 20:38 半条咸鱼 编辑
摘要:基本介绍 1.为一个对象提供一个替身,以控制对这个对象的访问,即通过代理对象访问目标对象. 2.被代理的对象可以是远程对象、创建开销大的对象或需要安全控制的对象 3.形式, (1)静态代理:需要实现接口 (2)动态代理 / 接口代理 / JDK 代理 :需要实现接口 (3)Cglib 代理 / 子类 阅读全文
posted @ 2022-03-11 01:20 半条咸鱼 编辑
摘要:基本介绍 1.享元模式,又称蝇量模式: 2.运用共享技术实现大量细粒度对象的复用 应用 1.享元模式是池技术的重要实现方式 2.池技术:String 常量池、数据库连接池、缓冲池 3.常用于系统底层开发,解决系统的性能问题:如数据库连接池,池中是创建好的连接对象,若池中有符合需求的对象时直接用,避免 阅读全文
posted @ 2022-03-10 17:44 半条咸鱼 编辑
摘要:基本介绍 1.外观模式,又称过程模式 2.原理:定义了一个高层接口,为子系统中的一组接口提供一个一致的接口(外观类),用以屏蔽内部子系统的细节,使得调用端只需调用高层接口,无需关心这个子系统的内部细节 角色 1.外观类(Facade):为调用端提供统一的调用接口,外观类知道不同子系统负责处理何种请求 阅读全文
posted @ 2022-03-10 15:29 半条咸鱼 编辑
摘要:基本介绍 1.组合模式,又称部分整体模式 2.创建了对象组的树形结构,将对象组合成树状结构来表示“整体 - 部分”的层次关系 3.组合模式使得用户对单个对象和组合对象的访问具有一致性,即:让客户以一致的方式处理个别对象以及组合对象 角色 1.Component:抽象构件,是 Leaf 与 Compo 阅读全文
posted @ 2022-03-10 00:46 半条咸鱼 编辑
摘要:基本介绍 1.动态的将新功能附加到对象上,在对象功能扩展方面,比继承更有弹性 2.体现了开闭原则 角色 1.Component:抽象主体,被装饰者 (1)是 Decorator 的父类,被组合进 Decorator 2.ConcreteComponent:具体主体,抽象主体的实现子类 3.Decor 阅读全文
posted @ 2022-03-09 21:57 半条咸鱼 编辑
摘要:基本介绍 1.将实现与抽象放在两个不同的层次中,使两个层次可以独立改变 2.基于类的最小设计原则,通过封装、集合及继承等行为让不同的类承担不同的职责 3.主要特点:把抽象与行为实分离,从而可以保持各部分的独立性以及其应对的功能扩展 角色 1.Client类:客户端,桥接模式的调用者 2.Abstra 阅读全文
posted @ 2022-03-09 15:11 半条咸鱼 编辑
摘要:基本介绍 1.将某个类的接口转换成客户端期望的另一个接口表示,即将一个类的接口转换成另一种接口 2.目的:让原本接口不兼容的类可以兼容,因接口不匹配,不能一起工作的两个类可以协同工作 3.分类:类适配器模式、对象适配器模式、接口适配器模式 4.工作原理:用户调用适配器转化出来的目标接口方法,适配器再 阅读全文
posted @ 2022-03-08 23:10 半条咸鱼 编辑
摘要:基本介绍 1.建造者模式,又叫生成器模式 2.将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象 事项 1.优点 (1)易于解耦:客户端不需要知道内部的具体构建细节,将产品本身与创建过程进行解耦,允许用户只通过指定复杂对象的类型和内容就构建对象,使 阅读全文
posted @ 2022-03-08 18:31 半条咸鱼 编辑
摘要:介绍 1、用原型实例指定创建对象的种类,并且通过拷贝这些原型,创建新的对象 2、允许一个对象再创建另外一个可定制的对象,无需知道如何创建的细节 3、工作原理 (1)Java 中 Object 类是所有类的根类,Object 类提供了一个 clone 方法,该方法可以将一个对象复制一份,但是需要实现 阅读全文
posted @ 2022-03-07 22:28 半条咸鱼 编辑
摘要:概念 1.产品族:位于不同产品等级结构中,功能相关联的产品组成的家族;抽象产品是一个或多个,从而构成一个或多个产品族 2.抽象工厂:是具体工厂角色必须实现的接口或者必须继承的父类,它与应用程序无关,由抽象类或者接口来实现 3.具体工厂:含有和具体业务逻辑有关的代码,由应用程序调用以创建对应的具体产品 阅读全文
posted @ 2022-03-06 22:28 半条咸鱼 编辑
摘要:介绍 1、提供了一种创建对象的最佳方式 2、涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建 3、类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象 4、单例模式采取一定的方法保证在整个的软件系统中,对某一个类只能存在一个对象实例,并且该类只提供一个取得其 阅读全文
posted @ 2022-03-06 00:13 半条咸鱼 编辑
摘要:1.数量:23种 2.类型 (1)创建型模式:单例模式、抽象工厂模式、原型模式、建造者模式、工厂模式 (2)结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式 (3)行为型模式:模版方法模式、命令模式、访问者模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器 阅读全文
posted @ 2022-03-05 16:50 半条咸鱼 编辑
摘要:UML 1.Unified modeling language(统一建模语言),是一种用于软件系统分析和设计的语言工具,用于帮助软件开发人员进行思考和记录思路的结果 2.一套符号的规定,符号用于描述软件模型中的各个元素和他们之间的关系,比如注释、类、接口、依赖(使用)、关联、泛化(继承)、实现、聚合 阅读全文
posted @ 2022-03-05 16:42 半条咸鱼 编辑
摘要:单一职责原则 1.基本介绍 (1)对类来说的,一个类应该只负责一项职责 (2)如类 A 负责两个不同职责:职责 1,职责 2,当职责 1 需求变更而改变 A 时,可能造成职责 2 执行错误,所以需要将类 A 的粒度分解为 A1,A2 2.事项 (1)降低类的复杂度,一个类只负责一项职责 (2)提高类 阅读全文
posted @ 2022-03-04 17:23 半条咸鱼 编辑
摘要:介绍 1、对一个有向无环图G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边<u,v>∈E(G),则u在线性序列中出现在v之前 2、这样的线性序列称为满足拓扑次序的序列,简称拓扑序列 3、只有有向无环图才存在拓扑序列 4、对于一个有向无环图,可能存在多个拓扑序列 概念 阅读全文
posted @ 2022-03-03 21:03 半条咸鱼 编辑
摘要:介绍 1.树型的数据结构 2.可进行操作 (1)查询元素p和元素q是否属于同一组 (2)合并元素p和元素q所在的组 结构 1. 每个元素都唯一的对应一个结点 2. 每一组数据中的多个元素都在同一颗树中 3. 一个组中的数据对应的树和另外一个组中的数据对应的树之间没有任何联系 4. 元素在树中并没有子 阅读全文
posted @ 2022-03-02 23:18 半条咸鱼 编辑
摘要:介绍 1、利用堆实现,逻辑结构:堆,储存结构:数组 2、入队、出队时间复杂度O(logn) 3、对于一个含有 N 个元素的基于堆的优先队列 (1)插入元素操作只需不超过(lgN + 1)次比较 (2)删除最大元素的操作需要不超过 2 * lgN 次比较 4、用堆实现的优先队列在现代应用程序中越来越重 阅读全文
posted @ 2022-03-02 18:06 半条咸鱼 编辑
摘要:介绍 1、堆是顺序储存的完全二叉树,即树是逻辑上的存储结构,数组是实际的存储结构 2、分类 (1)大顶堆:每个结点的值都大于或等于其左右孩子结点的值,arr[i]>=arr[2i+1]&&arr[i]>=arr[2i+2](i 对应节点下标,i从0开始编号),升序使用大顶堆 (2)小顶堆:每个结点的 阅读全文
posted @ 2022-03-02 15:15 半条咸鱼 编辑
摘要:快慢指针应用 1.求链表的中间结点 (1)最开始slow与fast都指向链表的第 1 个有效结点 (2)fast的移动步长为slow的两倍:slow移动一格,fast移动两格 (3)当fast移动到最后一个结点时,slow移动到中间位置 (4)当链表有效节点个数为偶数:中间结点是第 length / 阅读全文
posted @ 2022-03-01 23:48 半条咸鱼 编辑
摘要:介绍 1.马踏棋盘算法,也称骑士周游问题 2.规则:将马随机放在国际象棋的 8×8 棋盘[0~7][0~7]的某个方格中,马按走棋规则(马走日字)进行移动,要求每个方格只进入一次,走遍棋盘上全部 64 个方格 3.基本思想:图的深度优先搜索 + 贪心算法(优化) 步骤 1.创建一个二维数组代表棋盘 阅读全文
posted @ 2022-03-01 18:26 半条咸鱼 编辑

点击右上角即可分享
微信分享提示