
语法
文章平均质量分 90
包含了java基础语法、面向对象思想、异常体系、java集合、多线程、IO、反射、jdk8/jdk17新特性等内容
1.01^1000
记录一些给自己看的笔记,不断的总结积累
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
[1-01-01].第01章:Java基础语法
笔记整理面试题目原创 2024-11-28 14:08:35 · 935 阅读 · 0 评论 -
[1-01-02].第02章:JavaFX
IDEA配置JavaFX。原创 2025-06-12 10:58:47 · 56 阅读 · 0 评论 -
[1-01-01].第19节:面向对象中的关键字 - 接口 + 抽象类 + 抽象方法 + Object类
权限修饰符] abstract class 类名{[权限修饰符] abstract class 类名 extends 父类{[其他修饰符] abstract 返回值类型 方法名([形参列表]);注意:抽象方法没有方法体有多个类,需要完成不同的任务job,要求能够得到各自完成任务的时间解决办法一:创建不同的类,然后写方法,最后实现统计接口就是规范,定义的是一组规则,体现了现实世界中“如果你是/要…则必须能…”的思想。继承是一个"是不是"的is-a关系,而接口实现则是 "能不能"的has-a关系。原创 2025-06-06 12:16:04 · 1022 阅读 · 0 评论 -
反射机制API
下面的这4个类都在中Class对象。原创 2025-06-05 08:49:40 · 415 阅读 · 0 评论 -
[1-01-01].第43节: 集合源码 - Map集合的数据结构
【代码】[1-01-01].第43节: 集合源码 - Map集合的数据结构。原创 2025-05-23 11:07:29 · 673 阅读 · 0 评论 -
[1-01-01].第08节:基础语法 - 流程控制 - 循环语句
说明:程序设计中规定的三种if…elseforwhiledo-whileforeach。原创 2025-04-16 16:21:04 · 881 阅读 · 0 评论 -
[1-01-01].第10节:基础语法 - 数组常见算法 + Arrays工具类 + 数组中常见异常
这里的数值型数组特征值统计:平均值、最大值、最小值、总和等定义排序:假设含有n个记录的序列为{R1,R2,…,Rn},其相应的关键字序列为{K1,K2,…,Kn}。将这些记录重新排序为{Ri1,Ri2,…,Rin},使得相应的关键字值满足条Ki1<=Ki2<=…<=Kin,这样的一种操作称为排序。通常来说,排序的目的是快速查找。时间复杂度:分析关键字的比较次数和记录的移动次数常见的算法时间复杂度由小到大依次为:Ο(1)<Ο(log2n)<Ο(n)<Ο(nlog2n)<Ο(n2)<Ο(n3。原创 2025-04-14 23:48:31 · 780 阅读 · 0 评论 -
[1-01-01].第09节:基础语法 - 数组
1.数组(Array)的理解:是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理2.数组的常见概念:数组名下标(或索引)元素数组的长度。原创 2024-05-08 21:32:42 · 555 阅读 · 0 评论 -
[1-01-46].第46节:注解 - 实现自定义注解
1.自定义注解自动继承了java.lang.annotation.Annotation接口2.Annotation的属性(成员变量)在 Annotation 定义中以无参数方法的形式来声明。其方法名和返回值定义了该成员的名字和类型。我们称为配置参数。类型只能是八种基本数据类型、String类型、Class类型、enum类型、Annotation类型以上所有类型的数组3.可以在定义 Annotation 的成员变量时为其指定初始值, 指定成员变量的初始值可使用 default 关键字4.如果只有一个。原创 2024-08-17 08:51:46 · 669 阅读 · 0 评论 -
[1-01-52].第52节:反射机制 - 应用4:获取指定的注解信息
Inherited@Retention(RetentionPolicy.RUNTIME) // 值是RUNTIME时,才可以使用反射获取注解@Inherited@Target(ElementType.FIELD) //设置为适用于 属性的注解@Retention(RetentionPolicy.RUNTIME) // 值是RUNTIME时,才可以使用反射获取注解。原创 2025-04-14 13:58:21 · 332 阅读 · 0 评论 -
[1-01-50].第50节:反射机制 - 创建运行时类的对象
【代码】[1-01-50].第50节:反射机制 - 创建运行时类的对象。原创 2025-04-14 11:25:28 · 286 阅读 · 0 评论 -
[1-01-01].第38节: 集合体系 - Map接口的子接口及主要的实现类
/创建双列集合存储键和值,键放字符,值放次数。//将字符串转换成字符数组。:WordCount统计需求:统计字符串中每个字符出现的次数。两个key相等的标准。原创 2025-02-19 16:56:47 · 669 阅读 · 0 评论 -
[1-01-48].第48节:IO流 - 字节流FileInputStream与FileOutputStream的使用
类是文件输入流,从文件中读取字节: 通过打开与实际文件的连接来创建一个 FileInputStream ,该文件由文件系统中的 File对象 file命名。: 通过打开与实际文件的连接来创建一个 FileInputStream ,该文件由文件系统中的路径名 name命名类是文件输出流,用于将数据写出到文件。:创建文件输出流,写出由指定的 File对象表示的文件。: 创建文件输出流,指定的名称为写出文件。: 创建文件输出流,指明是否在现有文件末尾追加内容。原创 2024-10-16 14:31:11 · 252 阅读 · 0 评论 -
[1-01-01].第03节:java中的基本概念 - 注释 + 关键字 + 保留字 + 标识符
1.被Java语言赋予了特殊含义,用做专门用途的字符串(单词)1.java对各种变量、方法、和类等要素命名时使用的字符序列(单词)叫做标识符2.也就是说:凡是自己可以起名字的地方都叫标识符。原创 2025-01-09 10:52:13 · 780 阅读 · 0 评论 -
[1-01-75].第75节:Java8新特性–方法引用与构造器引用
1.当要传递给Lambda体的操作,已经有实现的方法了,可以使用方法引用!就是给Lambda体的操作,然后println(str)就是已有的实现方法,所以下面这段Lambda表达式就可以升级为方法引用2.方法引用可以看做是Lambda表达式深层次的表达。换句话说,方法引用本质就是Lambda表达式,所以说方法引用其实就是函数式接口的一个实例。通过方法的名字来指向一个方法,可以认为是Lambda表达式的一个语法糖3.方法引用使用的要求。原创 2024-10-10 14:08:22 · 416 阅读 · 0 评论 -
[6-04-06].第06节:并发编程 - 线程间的通信
一旦执行此方法,当前线程就进入阻塞状态,并释放同步监视器使用方式1.在当前线程中调用方法:对象名.wait()2.使当前线程进入等待(某对象)状态 ,直到另一线程对该对象发出 notify (或notifyAll) 为止3.调用方法的必要条件:当前线程必须具有对该对象的监控权(加锁)4.调用此方法后,当前线程将释放对象监控权 ,然后进入等待5.在当前线程被notify后,要重新获得监控权,然后从断点处继续代码的执行。原创 2024-09-13 00:11:32 · 336 阅读 · 0 评论 -
C++提高编程-泛型编程
函数模板利用关键字 template自动类型推导显示指定类型模板的目的是为了提高复用性,将类型参数化。原创 2024-11-12 10:55:42 · 923 阅读 · 0 评论 -
[260].第37节:表结构的优化
一个好的数据库设计方案对于数据库的性能常常会起到事半功倍的效果。合理的数据库结构不仅可以使数据库占用更小的磁盘空间,而且能够使查询速度更快。数据库结构的设计需要考虑是否合理等多方面的内容。原创 2024-09-14 09:27:32 · 1078 阅读 · 0 评论 -
9.如何给字符串添加索引
也就是说使用前缀索引,定义好长度,就可以做到既节省空间,又不用额外增加太多的查询成本。结论:使用前缀索引就用不上覆盖索引对查询性能的优化了,这也是你在选择是否使用前缀索引时需要考虑的一个因素。原创 2024-09-14 08:53:09 · 491 阅读 · 0 评论 -
[260].第37节:优先考虑覆盖索引
这里需要解释一下,前面的第 2 节总结的索引失效的情况指的是一般规律,并非完全绝对的。InnoDB 是以聚集索引的顺序来存储的,对于 InnoDB 来说,二级索引在叶子节点中所保存的是行的主键信息,如果是用二级索引查询数据,在查找到相应的键值后,还需通过主键进行二次查询才能获取我们真实所需要的数据。由于覆盖索引是按键值的顺序存储的,对于 I/O 密集型的范围查找来说,对比随机从磁盘读取每一行的数据 I/O 要少的多,因此利用覆盖索引在访问时也可以把磁盘的随机读取的 I/O 转变成索引查找的顺序 I/O。原创 2024-09-14 08:52:35 · 477 阅读 · 0 评论 -
优化分页查询
MySQL学习大纲我的数据库学习大纲原创 2024-10-21 10:54:37 · 271 阅读 · 0 评论 -
[000-002-01].排序优化
由上图可知,索引 idx_age_classid_name 被使用了,其原因在于要查询的字段不是全部的字段,而只是部分索引上的字段,此时不需要回表就能查到,其成本较小,此时索引 idx_age_classid_name 也被称为覆盖索引。由于 limit 限制了要查询的数量,所以此时的回表操作的成本就低了许多,所以使用上了索引 idx_age_classid_name。由上图可知,索引 idx_age_classid_name 失效,其原因在于优化器估计了使用与不适用该索引的成本,如果使用该索引,原创 2024-09-14 08:42:56 · 815 阅读 · 0 评论 -
[000-002-01].第37节:关联查询优化
MySQL学习大纲我的数据库学习大纲1、数据准备use atguigudb2;# 分类表CREATE TABLE IF NOT EXISTS `type` (`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,`card` INT(10) UNSIGNED NOT NULL,PRIMARY KEY (`id`));# 图书表CREATE TABLE IF NOT EXISTS `book` (`bookid` INT(10) U原创 2024-08-18 20:32:48 · 188 阅读 · 0 评论 -
[2034]. 第7-02节:数据库服务器的优化步骤(废弃)
我们可以通过观察了解数据库整体的运行状态,通过性能分析工具可以让我们了解执行慢的 SQL 都有哪些,查看具体的 SQL 执行计划,甚至是 SQL 执行中的每一步的成本代价,这样才能定位问题所在,找到了问题,再采取相应的行动。原创 2024-08-18 12:59:15 · 528 阅读 · 0 评论 -
[1-01-73].第73节:Java8新特性–Lambda表达式
1.JDK各版本下载链接1.Java 8 (又称为 jdk 1.8) 是 Java 语言开发的一个主要版本2.Java 8 是oracle公司于2014年3月发布,可以看成是自Java 5 以来最具革命性的版本3.Java 8为Java语言、编译器、类库、开发工具与JVM1.Lambda 是一个匿名函数,我们可以把 Lambda 表达式理解为是一段可以传递的代码(将代码像数据一样进行传递)2.使用Lambda 表达式可以写出更简洁、更灵活的代码。原创 2024-10-10 14:01:01 · 1005 阅读 · 0 评论 -
[1-01-01].第16节:面向对象成员 - 类和对象
1.现实世界中,事物与事物之间具有共同特征,例如:刘德华和梁朝伟都有姓名、身份证号、身高等状态,都有吃、跑、跳等行为,将这些共同的状态和行为提取出来,形成了一个模板,称为类类实际上是人类大脑思考总结的一个模板类是一个抽象的概念2.类中包含着一组状态(属性)和行为,这是类中最基本的两个成员,类的组成 = 属性 + 方法 + 其他成员类中的状态在程序中对应属性,用变量(成员变量)来表示属性类中的行为在程序中对应方法,用方法来描述行为1.对象是实际存在的该类事物的每个个体,因而也称为。原创 2024-10-16 17:31:51 · 412 阅读 · 0 评论 -
[1-01-01].第06节:基础语法 - 运算符
||表示:当左边为真,右边不参与运算,,但是|是继续执行右侧的。要求必须返回一个结果。原创 2024-10-16 17:06:47 · 589 阅读 · 0 评论 -
[1-01-01].第05节:基础语法 - 数据类型及转换
bit:计算机中的最小存储单位byte计算机中基本存储单元1.整型包括:byte、short、int、long,可如下图方式类比记忆:2.Java各整数类型有固定的表数范围和字段长度,不受具体OS的影响,以保证java程序的可移植性3.java的整型常量默认为 int 型声明long型常量须后加‘l’或‘L’4.java程序中变量通常声明为int型,除非不足以表示较大的数,才使用long5.其实1个字节就是代表了8位:1.String类型是属于引用数据类型2.使用方式与基本数据类型一致。原创 2024-10-16 17:03:50 · 1105 阅读 · 0 评论 -
[1-01-01].第02节:开发环境搭建
bin:该目录主要存放命令lib:该目录主要存放JDK的类库lib/src.zip:JDK源码1.Java源文件以“java”为扩展名。源文件的基本组成部分是类(class),如本例中的HelloWorld类2.Java应用程序的执行入口是main()方法。3.Java语言严格区分大小写4.Java方法由一条条语句构成,每个语句以“;”结束5.大括号都是成对出现的,缺一不可6.一个源文件中最多只能有一个public类。原创 2024-10-16 15:07:08 · 500 阅读 · 0 评论 -
[1-01-49].第49节:IO流 - 处理流中缓冲流的使用
1.为了提高数据读写的速度,Java API提供了带缓冲功能的流类:缓冲流2.缓冲流要“套接”在相应的节点流之上,根据数据操作单位可以把缓冲流分为:字节缓冲流字符缓冲流。原创 2024-10-16 14:51:48 · 915 阅读 · 0 评论 -
[1-01-47].第47节:IO流 - 字符流FileReader与FileWriter的使用
1.java.io.FileReader 类用于读取字符文件,构造时使用系统默认的字符编码和默认字节缓冲区: 创建一个新的 FileReader ,给定要读取的File对象。: 创建一个新的 FileReader ,给定要读取的文件的名称。1.java.io.FileWriter类用于写出字符到文件,构造时使用系统默认的字符编码和默认字节缓冲区。: 创建一个新的 FileWriter,给定要读取的File对象。: 创建一个新的 FileWriter,给定要读取的文件的名称。原创 2024-10-16 14:07:36 · 438 阅读 · 0 评论 -
[1-01-46].第46节:IO流 - IO流概述 + 流的分类
1.水分子的移动形成了水流,程序中数据的流动2.在Java程序中,对于各种各样的数据的输入/输出操作以 流(stream)的方式进行,可以看做是一种数据的流动3.Java中IO流最基本的作用是:完成文件的读和写,用于处理设备之间的数据传输。如读/写文件,网络通讯等输入input读取外部数据(磁盘、光盘等存储设备的数据)到程序(内存)中输出output将程序(内存)数据输出到磁盘、光盘等存储设备中。原创 2024-10-16 13:49:52 · 1029 阅读 · 0 评论 -
[1-01-19]. 第19节:其他常用类
1.System类代表系统,系统级的很多属性和控制方法都放置在该类的内部。该类位于java.lang包2.由于该类的构造器是private的,所以无法创建该类的对象,也就是无法实 例化该类。其内部的成员变量和成员方法都是static的,所以也可以很方便 的进行调用1.Integer类作为int的包装类,能存储的最大整型值为2~ 31-1,Long类也是有限的, 最大为2~ 63-1。如果要表示再大的整数,不管是基本数据类型还是他们的包装类 都无能为力,更不用说进行运算了。原创 2024-10-11 15:10:02 · 655 阅读 · 0 评论 -
[1-01-18]. 第18节:比较器类
1.定义类:2.排序:继承Comparable接口,且重写compareTo方法/*Good类继承了Comparable接口,重写compareTo()方法指明商品比较大小的方式* 在compareTo方法中如何判断当前类对象的大小,假设我们指明商品的比较大小方式是按照价格的高低*/@Override// 方式一:return 1;return -1;// 方式二://参数顺序很重要,前面这个参数去和后面的参数进行对比。原创 2024-10-11 14:19:50 · 610 阅读 · 0 评论 -
[1-01-16].第16节:常用类 - 字符串相关类之可变字符序列:StringBuffer、StringBuilder
不可变的字符序列;底层结构使用char[]存储在jdk9之后,底层使用byte[]进行存储。原创 2024-10-11 11:06:46 · 774 阅读 · 0 评论 -
[1-01-17].第17节:常用类 - 日期相关的类
1.Java 8 以一个新的开始为 Java 创建优秀的 API。新的日期时间API包含:java.time– 包含值对象的基础包– 提供对不同的日历系统的访问。– 格式化和解析时间和日期– 包括底层框架和扩展特性– 包含时区支持的类。原创 2024-10-11 08:58:10 · 1033 阅读 · 0 评论 -
[1-01-01].第39节: 集合体系 - Collection的子接口-Set特点及其实现类
最多包含一个null。按照equals()原创 2024-10-10 22:26:12 · 567 阅读 · 0 评论 -
[1-01-01].第42节: 集合源码 - List集合的数据结构
ArrayList底层数据结构是动态数组,在JDK7中和JDK8中略有不同ArrayList与Vector底层的结构相似,它们的底层物理结构都是数组,我们称为动态数组对于数据的查询效率较高,对于元素的删除和插入效率低ArrayList是新版的动态数组,线程不安全,效率高,Vector是旧版的动态数组,线程安全,效率低,比如随便看下其中的一个方法:在add()方法中没有,所以说线程是不安全的动态数组的扩容机制不同,ArrayList默认扩容为原来的1.5倍,Vector默认扩容增加为原来的2倍。原创 2024-10-10 18:12:39 · 481 阅读 · 0 评论 -
[1-01-01].第38节: 集合体系 - Collection的子接口-List特点及其实现类
【代码】[1-01-35].第35节: 集合 - Collection的子接口List特点及其实现类。原创 2024-10-10 18:12:08 · 692 阅读 · 0 评论 -
[1-01-01].第39节: 集合操作 - Collection接口的常用方法
1.Iterator对象称之为:迭代器,主要用于遍历Collection集合中的元素2.设计模式中的迭代器模式的定义为:提供一种方法访问一个容器(container)对象中各个元素,而又不需暴露该对象的内部细节。迭代器模式,就是为容器而生3.Collection接口继承了接口,该接口有一个iterator()方法,那么所有实现了Collection接口的集合类都有一个iterator()方法,用以返回一个实现了Iterator接口的对象4.Iterator仅仅用于遍历集合。原创 2024-10-10 17:36:15 · 704 阅读 · 0 评论