Java SE
文章平均质量分 75
Java SE板块包含了Java基础语法知识,Java面向对象编程基础知识,Java核心库,以及Java新特性等概念和用法。
江桥诗
未见星月,如遇山河
展开
-
【06 新特性 2.Java9&Java10 11新特性】
文章目录3.2 Java 9 的新特性3.2.1 模块化的使用(1)语法格式(2)模块化的优势3.2.2 钻石操作符的使用升级3.2.3 集合工厂方法(1)基本概念(2)实际意义3.2.4 InputStream 的增强3.3 Java 10 的新特性3.3.1 Java10的概述3.3.2 局部变量类型推断(1)基本概念(2)实际意义3.4 Java 11 的新特性3.4.1 Java 11 的概述3.4.2 简化的编译运行操作3.4.3 String类新增方法3.2 Java 9 的新特性3原创 2022-03-17 21:28:32 · 548 阅读 · 0 评论 -
【06 新特性 1.Java8的新特性】
文章目录3. 新特性3.1 Java 8 的新特性3.1.1 Java 8的概述3.1.2 函数式接口3.1.3 Lambda表达式(1). Runnable 接口(2). Comparator 接口(3). Consumer 接口(4). Supplier 接口(5). Function 接口(6). Predicate 接口3.1.4 方法的引用3.1.5 Stream接口(1)基本概念(2)使用步骤(3)创建方式(4)中间操作(5)终止操作3.1.6 Optional类(1)基本概念(2)常用的方原创 2022-03-17 21:26:59 · 304 阅读 · 0 评论 -
【05 Java开发模式 7.装饰器模式&代理模式&模板方法模式】
文章目录2.2.5 装饰器模式(1)基本概念(2)类图结构(3)实际意义(4)代码演示2.2.6 代理模式(1)基本概念(2)类图结构(3)实际意义(4)代理模式和装饰器模式的比较(5)代码演示2.2.7 模板方法模式(1)基本概念(2)类图结构(3)代码演示(3)实际意义2.2.5 装饰器模式(1)基本概念装饰器模式就是给一个对象动态的增加一些新功能,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例。(2)类图结构(3)实际意义可以实现一个类功能的扩展。可以动态的增加原创 2022-03-17 21:24:51 · 305 阅读 · 0 评论 -
【05 Java开发模式 6.抽象工厂模式】
2.2.5 抽象工厂模式(1)类图结构(2)代码演示//接口public interface Sender { //自定义方法描述发送的行为 void send();}//实现接口一public class MailSender implements Sender{ @Override public void send() { System.out.println("正在发送邮件..."); }}//实现接口二public c原创 2022-03-17 21:22:28 · 610 阅读 · 0 评论 -
【05 Java开发模式 5.静态工厂方法模式】
2.2.4 静态工厂方法模式(1)类图结构(2)实际意义工厂方法模式适合:凡是出现了大量的产品需要创建且具有共同的接口时,可以通过工厂方法模式进行创建。(3)主要缺点工厂方法模式有一个问题就是,类的创建依赖工厂类,也就是说,如果想要拓展程序生产新的产品,就必须对工厂类的代码进行修改,这就违背了开闭原则。(4)代码演示//接口public interface Sender { //自定义方法描述发送的行为 void send();}//实现接口一package de原创 2022-03-17 21:20:49 · 462 阅读 · 0 评论 -
【05 Java开发模式 4.多个工厂方法模式】
2.2.3 多个工厂方法模式(1)类图结构(2)主要缺点在多个工厂方法模式中,为了能够正确创建对象,先需要创建工厂类的对象才能调用工厂类中的生产方法。(3)代码演示//接口public interface Sender { //自定义方法描述发送的行为 void send();}//实现接口一package demo02;public class MailSender implements Sender{ @Override public void原创 2022-03-17 21:19:12 · 180 阅读 · 0 评论 -
【05 Java开发模式 3.普通工厂模式】
2.2.2 普通工厂模式(1)基本概念普通工厂方法模式就是建立一个工厂类,对实现了同一接口的不同实现类进行实例的创建。(2)类图结构(3)主要缺点在普通工厂方法模式中,如果传递的字符串出错,则不能正确创建对象,并且可能出现空指针异常。(4)代码演示//接口public interface Sender { //自定义方法描述发送的行为 void send();}//实现接口一package demo02;public class MailSender imple原创 2022-03-17 21:17:27 · 387 阅读 · 0 评论 -
【05 Java开发模式 2.单例开发模式】
2.2 设计模式详解(重点)2.2.1 单例设计模式单例设计模式主要分为:饿汉式 和 懒汉式,懒汉式需要对多线程进行同步处理。package demo01;//单例设计模式public class Singleton { //2.声明本类类型的引用指向本类类型的引用并使用private static private static Singleton sin = null; //懒汉式 //1.私有化构造方法,使用private关键字修饰 private原创 2022-03-17 21:15:17 · 256 阅读 · 0 评论 -
【05 Java开发模式 1.软件设计原则】
文章目录1.常用的设计原则1.1 软件开发流程1.2 常用的设计原则2. 常用的设计模式2.1 基本分类1.常用的设计原则1.1 软件开发流程需求分析文档 => 概要设计文档详细设计文档 => 编码和测试 => 安装和调试 => 维护和升级1.2 常用的设计原则开闭原则(Open Close Principle)对扩展开放对修改关闭,为了使程序的扩展性好,易于维护和升级。里氏代换原则(Liskov Substitution Principle)任何基类可以出原创 2022-03-17 21:13:19 · 55 阅读 · 0 评论 -
【04 核心类库 7.反射机制】
文章目录7. 反射机制7.1 基本概念7.2 Class类7.2.1 基本概念7.2.2 获取Class对象的方式7.2.3 常用的方法(掌握)7.3 Constructor类7.3.1 基本概念7.3.2 Class类的常用方法7.3.3 Constructor类的常用方法7.4 Field类7.4.1 基本概念7.4.2 Class类的常用方法7.4.3 Field类的常用方法7.5 Method类7.5.1 基本概念7.5.2 Class类的常用方法7.5.3 Method类的常用方法7.6原创 2022-03-14 18:58:54 · 236 阅读 · 0 评论 -
【04 核心类库 6.网络编程】
文章目录6. 网络编程6.1 七层网络模型6.2 相关的协议(笔试题)(1)协议的概念(2)TCP协议(3)UDP协议6.3 IP地址(重点)6.4 端口号(重点)6.5 基于tcp协议的编程模型(重点)6.5.1 C/S架构的简介6.5.2 编程模型6.5.3 相关类和方法的解析(1)ServerSocket类(2) Socket类(3)注意事项6.6 基于udp协议的编程模型(熟悉)6.6.1 编程模型6.6.2 相关类和方法的解析(1)DatagramSocket类(2)DatagramPacket类原创 2022-03-14 18:55:11 · 75 阅读 · 0 评论 -
【04 核心类库 5. 线程同步机制】
文章目录5. 线程同步机制5.1 基本概念5.2 解决方案5.3 实现方式5.4 静态方法的锁定5.5 注意事项5.6 线程安全类和不安全类5.7 死锁的概念5.8 使用Lock(锁)实现线程同步5.8.1 基本概念5.8.2 常用的方法5.8.3 与synchronized方式的比较5.9 线程池(熟悉)(1)实现Callable接口(2)FutureTask类(3)线程池的由来(4)概念和原理(5)相关类和方法5.10 生产者,消费者问题5. 线程同步机制5.1 基本概念当多个线程同时访问同一原创 2022-03-14 18:51:44 · 742 阅读 · 0 评论 -
【04 核心类库 4. 多线程】
文章目录4. 多线程4.1 基本概念4.1.1 程序和进程的概念4.1.2 线程的概念4.2 线程的创建(重中之重)4.2.1 Thread类的概念4.2.2 创建方式4.2.3 相关的方法4.2.4 执行流程4.2.5 方式的比较4.2.6 匿名内部类的方式4.3 线程的生命周期(熟悉)4.4 线程的编号和名称(熟悉)4.5常用的方法(重点)4. 多线程4.1 基本概念4.1.1 程序和进程的概念程序 = 数据结构 + 算法,主要指存放在硬盘上的可执行文件。进程 - 主要指运行在内存中的原创 2022-03-14 18:50:15 · 751 阅读 · 0 评论 -
【04 核心类库 3. IO流】字节流和RandomAccessFile类
文章目录3.3.2 字节流3.3.2.1 FileOutputStream类(重点)(1)基本概念(2)常用的方法3.3.2.2 FileInputStream类(重点)(1)基本概念(2)常用的方法3.3.2.3 BufferedOutputStream类(重点)(1)基本概念(2)常用的方法3.3.2.4 BufferedInputStream类(重点)(1)基本概念(2)常用的方法3.3.2.5 PrintStream类(1)基本概念(2)常用的方法3.3.2.6 DataOutputStream类原创 2022-03-14 18:45:37 · 910 阅读 · 0 评论 -
【04 核心类库 3. IO流:分类和体系结构】字符流
文章目录3. IO流3.1 基本分类3.2 体系结构3.3 相关流的详解3.3.1 字符流3.3.1.1 FileWriter类(重点)(1)基本概念(2)常用的方法3.3.1.2 FileReader类(重点)(1)基本概念(2)常用的方法字符流实现文件的复制3.3.1.3 BufferedWriter类(重点)(1)基本概念(2)常用的方法3.3.1.4 BufferedReader类(重点)(1)基本概念(2)常用的方法3.3.1.5 PrintWriter类(1)基本概念(2)常用的方法3.3.1.原创 2022-03-14 18:42:27 · 347 阅读 · 0 评论 -
【04 核心类库】2.File类
文章目录2. File类(重点)2.1 基本概念2.2 常用的方法2.2.1 实现对文件的操作2.2.2 实现对目录的操作2.3 注意事项2. File类(重点)2.1 基本概念java.io.File类主要用于描述文件或目录路径的抽象表示信息,可以获取文件或目录的特征信息。2.2 常用的方法方法声明功能概述File(String pathname)根据参数指定的路径名来构造对象File(String parent, String child)根据参数指定的父路径和子原创 2022-03-08 21:15:38 · 210 阅读 · 0 评论 -
【04 核心类库(下)】1.异常机制
文章目录1. 异常机制(重点)1.1 基本概念1.2 异常的分类1.3 异常的避免1.4 异常的捕获1.5 异常的抛出1.6 自定义异常1.6.1 基本概念1.6.2 异常类的定义1.6.3 实现流程1.6.4 异常的产生实例一实例二1. 异常机制(重点)1.1 基本概念异常就是"不正常"的含义,在Java语言中主要指程序执行中发生的不正常情况。java.lang.Throwable类是Java语言中错误(Error)和异常(Exception)的超类。其中Error类主要用于描述Java虚拟机原创 2022-03-08 21:14:21 · 247 阅读 · 0 评论 -
【03 核心类库 7.9 Set集合&7.10 Map集合&7.11 Collections类】
文章目录7.9 Set集合(熟悉)7.9.1 基本概念7.9.2 常用的方法7.9.3 元素放入HashSet集合的原理7.9.4 TreeSet集合的概念7.10 Map集合(重点)7.10.1 基本概念7.10.2 常用的方法7.10.3 元素放入HashMap集合的原理7.10.4 相关的常量7.11 Collections类7.11.1 基本概念7.11.2 常用的方法7.9 Set集合(熟悉)7.9.1 基本概念java.util.Set集合是Collection集合的子集合,与Lis原创 2022-03-07 20:08:10 · 176 阅读 · 0 评论 -
【03 核心类库 7.8 泛型机制】
7.8 泛型机制(熟悉)7.8.1 基本概念通常情况下集合中可以存放不同类型的对象,是因为将所有对象都看做Object类型放入的,因此从集合中取出元素时也是Object类型,为了表达该元素真实的数据类型,则需要强制类型转换,而强制类型转换可能会引发类型转换异常。为了避免上述错误的发生,从Java5开始增加泛型机制,也就是在集合名称的右侧使用**<数据类型>**的方式来明确要求该集合中可以存放的元素类型,若放入其它类型的元素则编译报错。泛型只在编译时期有效,在运行时期不区分是什么类型原创 2022-03-07 20:00:32 · 52 阅读 · 0 评论 -
【03 核心类库 7.6List集合&7.7Queue集合】
文章目录7.6 List集合(重中之重)7.6.1 基本概念7.6.2 常用的方法案例题目7.7 Queue集合7.7.1 基本概念7.7.2 常用的方法7.6 List集合(重中之重)7.6.1 基本概念java.util.List集合是Collection集合的子集合,该集合中允许有重复的元素并且有先后放入次序。该集合的主要实现类有:ArrayList类、LinkedList类、Stack类、Vector类。其中ArrayList类的底层是采用动态数组进行数据管理的,支持下标访问,增原创 2022-03-07 19:59:22 · 217 阅读 · 0 评论 -
【03 核心类库 7. 核心集库】7.5 常见的数据结构
文章目录7.5 常见的数据结构(1) 栈(2) 队列(3) 数组(4) 链表(5) 红黑树7.5 常见的数据结构数据存储的常用结构有:栈、队列、数组、链表和红黑树。我们分别来了解一下:(1) 栈栈:stack,又称堆栈,它是运算受限的线性表,其限制是仅允许在标的一端进行插入和删除操作,不允许在其他任何位置进行添加、查找、删除等操作。简单的说:采用该结构的集合,对元素的存取有如下的特点先进后出(即,存进去的元素,要在后它后面的元素依次取出后,才能取出该元素)。例如,子弹压进弹夹,先压进去的原创 2022-03-07 19:45:00 · 48 阅读 · 0 评论 -
【03 核心类库 7. 集合类库(上)】
7. 集合类库7.1 集合的概述(重点)7.1.1 集合的由来当需要在Java程序中记录单个数据内容时,则声明一个变量。当需要在Java程序中记录多个类型相同的数据内容时,声明一个一维数组。当需要在Java程序中记录多个类型不同的数据内容时,则创建一个对象。当需要在Java程序中记录多个类型相同的对象数据时,创建一个对象数组。当需要在Java程序中记录多个类型不同的对象数据时,则准备一个集合。7.1.2 集合的框架结构Java中集合框架顶层框架是:java.util.Collect原创 2022-03-07 19:34:23 · 57 阅读 · 0 评论 -
【03 核心类库 6. 可变字符串类和日期相关类】
6. 可变字符串类和日期相关类6.1 可变字符串类6.1.1 基本概念 由于String类描述的字符串内容是个常量不可改变,当需要在Java代码中描述大量类似的字符串时,只能单独申请和存储,此时会造成内存空间的浪费。 为了解决上述问题,可以使用java.lang.StringBuilder类和java.lang.StringBuffer类来描述字符序列可以改变的字符串,如:“ab”。StringBuffer类是从jdk1.0开始存在,属于线程安全的类,因此效率比较低。StringBui原创 2022-03-07 19:30:40 · 62 阅读 · 0 评论 -
【03 核心类库 5.5 正则表达式的概念和使用】
5.5 正则表达式的概念正则表达式本质就是一个“规则字符串”,可以用于对字符串数据的格式进行验证,以及匹配、查找、替换等操作。该字符串通常使用^运算符作为开头标志,使用$运算符作为结尾标志,当然也可以省略。 String reg = "^[0-9]{6}$"; String reg = "[0-9]{6}";5.5.1 正则表达式的规则正则表达式说明[abc]可以出现a、b、c中任意一个字符[^abc]可以出现任何字符,除了a、b、c的任意字符原创 2022-03-07 19:28:34 · 83 阅读 · 0 评论 -
【03 核心类库 5. String类的概述和使用】
5. String类的概述和使用5.1 String类的概念(重点)java.lang.String类用于描述字符串,Java程序中所有的字符串字面值都可以使用该类的对象加以描述,如:“abc”。该类由final关键字修饰,表示该类不能被继承。从jdk1.9开始该类的底层不使用char[]来存储数据,而是改成 byte[]加上编码标记,从而节约了一些空间。该类描述的字符串内容是个常量不可更改,因此可以被共享使用。如:String str1 = “abc”; - 其中"abc"原创 2022-03-07 19:26:00 · 176 阅读 · 0 评论 -
【03 核心类库 4.2&4.3 BigInteger类和BigDecimal类】
4.2 BigInteger类的概念4.2.1 基本概念若希望表示比long类型范围还大的整数数据,则需要借助java.math.BigInteger类型描述。4.2.2 常用的方法方法声明功能介绍BigInteger(String val)根据参数指定的字符串来构造对象BigInteger add(BigInteger val)用于实现加法运算BigInteger subtract(BigInteger val)用于实现减法运算BigInteger mu原创 2022-03-07 19:20:04 · 334 阅读 · 0 评论 -
【03 核心类库 4. 数学处理类】4.1 Math类
4. 数学处理类4.1 Math类的概述4.1.1 基本概念java.lang.Math类主要用于提供执行数学运算的方法,如:对数,平方根。4.1.2 常用的方法方法声明功能介绍static int max(int a, int b)返回两个参数中的最大值static int min(int a, int b)返回两个参数中的最小值static double pow(double a, double b)返回第一个参数的幂static int abs(i原创 2022-03-05 13:24:20 · 225 阅读 · 0 评论 -
【03 核心类库 3.7 Boolean类的概述】
3.7 Boolean类的概述3.7.1 基本概念java.lang.Boolean类型内部包装了一个boolean类型的变量作为成员变量,主要用于实现对boolean类型的包装并提供boolean类型到String类之间的转换等方法。3.7.2 常用的常量常量类型和名称功能介绍public static final Boolean FALSE对应基值为false的对象public static final Boolean TRUE对应基值为true的对象pub原创 2022-03-05 13:20:11 · 75 阅读 · 0 评论 -
【03 核心类库 3.6 Character类的概述】
3.6 Character类的概述3.6.1 基本概念java.lang.Character类型内部包装了一个char类型的变量作为成员变量,主要用于实现对char类型的包装并提供字符类别的判断和转换等方法。3.6.2 常用的常量常量类型和名称功能介绍public static final int SIZE表示char类型的二进制位数public static final int BYTES表示char类型的字节个数public static final Cla原创 2022-03-05 13:17:13 · 88 阅读 · 0 评论 -
【03 核心类库 3.5 Double类的概述】
3.5 Double类的概述3.5.1 基本概念java.lang.Double类型内部包装了一个double类型的变量作为成员变量,主要用于实现对double类型的包装并提供double类型到String类之间的转换等方法。3.5.2 常用的常量常量类型和名称功能介绍public static final int SIZE表示double类型的二进制位数public static final int BYTES表示double类型的字节个数public st原创 2022-03-05 13:16:20 · 140 阅读 · 0 评论 -
【03 核心类库 3.4 Integer类的概述】
3.4 Integer类的概述3.4.1 基本概念概念:java.lang.Integer类内部包装了一个int类型的变量作为成员变量,主要用于实现对int类型的包装并提供int类型到String类之间的转换等方法。3.4.2 常用的常量常量类型和名称功能介绍public static final int MAX_VALUE表示int类型可以描述的最大值,即2^31-1public static final int MIN_VALUE表示int类型可以描述的最小值,即原创 2022-03-05 13:15:20 · 323 阅读 · 0 评论 -
【03 核心类库 3.包装类】3.1~3.3
3. 包装类3.1 概述Java提供了两个类型系统,基本类型与引用类型,使用基本类型在于效率,然而很多情况,会创建对象使用,因为对象可以做更多的功能,如果想要我们的基本类型像对象一样操作,就可以使用基本类型对应的包装类,如下:基本类型对应的包装类(位于java.lang包中)byteByteshortShortintIntegerlongLongfloatFloatdoubleDoublecharCharacterboolea原创 2022-03-05 13:13:55 · 42 阅读 · 0 评论 -
【03 核心类库 2.2 常用的方法】toString方法
2.2.2 toString方法1. 方法摘要public String toString():返回该对象的字符串表示。toString方法返回该对象的字符串表示,其实该字符串内容就是对象的类型+@+内存地址值。由于toString方法返回的结果是内存地址,而在开发中,经常需要按照对象的属性得到相应的字符串表现形式,因此也需要重写它。2. 覆盖重写如果不希望使用toString方法的默认行为,则可以对它进行覆盖重写。例如自定义的Person类:public class Person {原创 2022-03-05 13:00:03 · 286 阅读 · 0 评论 -
【03 核心类库 2.2 常用的方法】equals方法
2.2.1 equals方法(1)方法摘要public boolean equals(Object obj):指示其他某个对象是否与此对象“相等”。调用成员方法equals并指定参数为另一个对象,则可以判断这两个对象是否是相同的。这里的“相同”有默认和自定义两种方式。(2)默认地址比较如果没有覆盖重写equals方法,那么Object类中默认进行==运算符的对象地址比较,只要不是同一个对象,结果必然为false。//封装类package demo01;public class Stud原创 2022-03-05 12:58:37 · 107 阅读 · 0 评论 -
【03 核心类库 2.Object类的概述】
2. Object类的概述(重点)2.1 概述java.lang.Object类是Java语言中的根类,即所有类的父类。它中描述的所有方法子类都可以使用。在对象实例化的时候,最终找的父类就是Object。如果一个类没有特别指定父类, 那么默认则继承自Object类。例如:public class MyClass /*extends Object*/ { // ...}2.2 常用的方法方法声明功能介绍Object()使用无参方式构造对象boolean equ原创 2022-03-05 12:57:25 · 273 阅读 · 0 评论 -
【03 核心类库 1.常用的包】
文章目录1. 常用的包(熟悉)1.1 包的名称和功能1. 常用的包(熟悉)1.1 包的名称和功能java.lang 包 - 该包是Java语言的核心包,并且该包中的所有内容由Java虚拟机自动导入。如:System类、String类、…java.util 包 - 该包是Java语言的工具包,里面提供了大量工具类以及集合类等。如:Scanner类、Random类、List集合、…java.io 包 - 该包是Java语言中的输入输出包,里面提供了大量读写文件相关的类等。如:File原创 2022-03-05 12:52:30 · 59 阅读 · 0 评论 -
【02 Java 面向对象编程:5.7 元注解】
文章目录5.7 元注解5.7.1 元注解@Retention5.7.2 元注解@Documented5.7.3 元注解@Target5.7.4 元注解@Inherited5.7.5 元注解@Repeatable5.7.6 常见的预制注解5.7 元注解概念:元注解是可以注解到注解上的注解,或者说元注解是一种基本注解,但是它能够应用到其它的注解上面。分类:元注解主要有 @Retention、@Documented、@Target、@Inherited、@Repeatable。5.7.1 元注解@Rete原创 2022-03-02 21:14:36 · 205 阅读 · 0 评论 -
【02 Java 面向对象编程:5.6 注解】
文章目录5.6 注解5.6.1 概念5.6.2 注解的语法格式5.6.3 注解的使用方式5.6 注解5.6.1 概念注解(Annotation)又叫标注,是从Java5开始增加的一种引用数据类型。注解本质上就是代码中的特殊标记,通过这些标记可以在编译、类加载、以及运行时执行指定的处理。5.6.2 注解的语法格式访问修饰符 @interface 注解名称 { 注解成员;}自定义注解自动继承java.lang.annotation.Annotation接口。通过@注解名称的方式可以修原创 2022-03-02 21:12:46 · 64 阅读 · 0 评论 -
【02 Java 面向对象编程:5.5 枚举类】
文章目录5.5 枚举类5.5.1 基本概念5.5.2 定义5.5.3 Enum类的方法和概念5.5.4 Enum类实现接口的方式5.5 枚举类5.5.1 基本概念一年中的所有季节:春季、夏季、秋季、冬季。所有的性别:男、女。键盘上的所有方向按键:向上、向下、向左、向右。在日常生活中这些事物的取值只有明确的几个固定值,此时描述这些事物的所有值都可以一一列举出来,而这个列举出来的类型就叫做枚举类型。实例:编程实现所有方向的枚举package demo04;//编程实现所有方向的原创 2022-03-02 17:52:52 · 249 阅读 · 0 评论 -
【02 Java 面向对象编程:5.4 内部类】
5.4 内部类概念:当一个类的定义出现在另外一个类的类体中时,那么这个类叫做内部类(Inner),而这个内部类所在的类叫做外部类(Outer)。• 类中的内容:成员变量、成员方法、构造方法、静态成员、构造块和静态代码块、内部类。实际作用: 当一个类存在的价值仅仅是为某一个类单独服务时,那么就可以将这个类定义为所服务类中的内部类,这样可以隐藏该类的实现细节并且可以方便的访问外部类的私有成员而不再需要提供公有的get和set方法。内部类的分类:普通内部类 - 直接将一个类的定义放在另外一个类的类体原创 2022-03-02 12:15:10 · 141 阅读 · 0 评论