
Java
文章平均质量分 66
记录个人Java学习笔记及个人总结
幺洞两肆
这个作者很懒,什么都没留下…
展开
-
SpringBoot+MyBatis+lombok进行数据库操作的小案例
记录一下个人整理的一个SpringBoot+MyBatis+lombok进行数据库增删改查的小案例,可以用于理解学习原创 2024-11-27 13:20:03 · 975 阅读 · 0 评论 -
3.模块化
1.模块的基本使用,模块的基础使用步骤创建模块(按照以前的讲解方式创建模块,创建包,创建类,定义方法)为了体现模块的使用,创建两个模块:myOne和myTwo在模块的src目录下新建一个名为module-info.java的描述性文件,该文件专门定义模块名,访问权限,模块依赖等信息描述性文件中使用模块导出和模块依赖来进行配置并使用。模块中所有未导出的包都是模块私有的,他们是不能在模块之外被访问的在myOne这个模块下的描述性文件中配置模块导出模块导处格式:exports原创 2021-12-28 14:40:40 · 119 阅读 · 0 评论 -
2.Java-反射
1.反射概述Java反射机制:是指在运行时去获取一个类的变量和方法信息。然后通过获取到的信息来创建对象,调用方法的一种机制。由于这种动态性,可以极大的增加程序的灵活性,程序不用在编译期就完成确定,在运行期任然可以扩展。2.获取Class类的对象想通过反射去使用一个类,首先需要获取到该类的字节码文件对象,也就是类型为Class类型的对象三种获取Class类型的对象使用类的class()属性来获取该类对应的Class对象。举例:Student.class将会返回Student调用对象的getCl原创 2021-12-24 10:46:17 · 442 阅读 · 0 评论 -
1.类加载器
1. 类加载当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过类的加载,类的连接,类的初始化这三个步骤来对类进行初始化。如果不出意外,JVM将会连续完成这三个步骤,所有有时也把这三个步骤统称为类加载活类初始化。类的加载就是指将class文件读入内存,并为之创建一个java.lang.Class任何类被使用时,系统都会为之创建一个java.lang.Class对象类的连接验证阶段:用于检验被加载的类是否有正确的内部结构,并和其他类协调一致。准备阶段:负责为类的类变量分配原创 2021-12-22 09:27:28 · 115 阅读 · 0 评论 -
5.Stream流
1.Stream流1.体验Stream流需求:按照下面的要求完成集合的创建和遍历创建一个集合,存储多个字符串元素把集合中所有以“张”开头的元素存储到一个新的集合把“张”开头的集合中的长度为3的元素存储到一个新的集合遍历上一步得到的集合代码:package Study05;import java.util.ArrayList;/*需求:按照下面的要求完成集合的创建和遍历- 创建一个集合,存储多个字符串元素- 把集合中所有以“张”开头的元素存储到一个新的集合- 把“张”开头的原创 2021-12-21 14:45:37 · 428 阅读 · 0 评论 -
4.函数式接口
1. 函数式接口概述函数式接口:有且仅有一个抽象方法的接口Java中的函数式编程体现的就是Lambda表达式,所以函数式接口就是可以适用于Lambda使用的接口。只有确保接口中有且仅有一个抽象方法,Java中的Lambda才能顺利的进行推导。如何检测一个接口是不是函数式接口:@FunctionalInterface放在接口定义的上方:如果接口是函数式接口,编译通过;如果不是,编译失败注意:自己定义函数式接口时@FunctionalInterface是可选的,就算不写这个注解,只要保证满足函原创 2021-12-20 15:48:57 · 362 阅读 · 0 评论 -
3.方法引用
1.体验方法引用在Lambda中所指定的操作方案,已经有地方存在相同的方案时,可以通过方法引用来使用已经存在的方案。代码:接口package Study01;public interface Printable { void printString(String s);}测试类package Study01;/*需求- 定义一个接口(Printable):里面定义一个抽象方法:void printString(String s);- 定义一个测试类(Printab原创 2021-12-13 16:30:50 · 139 阅读 · 0 评论 -
2.接口新特性
1.接口组成更新概述接口的组成常量public static final抽象方法public abstract默认方法(Java 8)静态方法(Java 8)私有方法(Java 9)2.接口中的默认方法接口中默认方法的定义格式:格式:public default 返回值类型 方法名(参数列表){ }范例:public default void show3(){ }接口中默认方法的注意事项默认方法不是抽象方法,所以不强制重写。但是可以被原创 2021-12-09 14:26:45 · 390 阅读 · 0 评论 -
1.Lambda表达式
1.体验Lambda表达式函数式编程思想概述函数式思想则尽量忽略面向对象的复杂语法:“强调做什么,而不是以什么形式去做”Lambda表达式就是函数式思想的体现。体验Lambda表达式需求:启动一个线程,在控制台输出一句话:多线程程序启动了方式一:定义一个类MyRunnable实现Runnable接口,重写run()方法创建MyRunnable类的对象创建Thread类的对象,把MyRunnable的对象作为构造参数传递启动线程方式二:匿名内部类的方式改进方式三:原创 2021-12-08 15:37:05 · 289 阅读 · 0 评论 -
2-4网络编程-TCP通信练习
1.练习1:客户端:发送数据,接收服务器反馈服务器:接收数据,给出反馈代码:客户端package Study12;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.Socket;/*客户端:发送数据,接收服务器反馈*/public class ClientDemo { public static void main(St原创 2021-12-07 16:15:09 · 1441 阅读 · 0 评论 -
2-3网络编程-TCP通信
1.TCP客户端发送数据TCP通信原理TCP通信协议是一种可靠的网络协议,它在通信的两端各建立一个Socket对象,从而在通信的两端形成网络虚拟链路,一旦建立了虚拟的网络链路,两端的程序就可以通过虚拟链路进行通信。Java对基于TCP协议的网络提供了良好的封装,使用Socket对象来代表两端的通信端口,并通过Socket产生IO流来进行网络通信。Java为客户端提供了Socket类,为服务器端提供了ServerSocket类TCP发送数据发送数据的步骤创建客户端的Socket对象(原创 2021-12-07 16:14:28 · 152 阅读 · 0 评论 -
2-2网络编程-UDP通信
1.UDP发送数据UDP通信原理UDP协议是一种不可靠的网络协议,它在通信的两端各建立一个Socket对象,但是这两个Socket只是发送,接收对象;因此对于基于UDP协议的通信双方而言,没有所谓的客户端和服务器的概念。Java提供了DatagramSocket类作为基于UDP协议的SocketUDP发送数据发送数据的步骤创建发送端的Socket对象(DatagramSocket)DatagramSocket()创建数据,并把数据打包DatagramPacket(byt原创 2021-12-07 09:19:55 · 312 阅读 · 0 评论 -
2-1网络编程概述
1.网络编程概述计算机网络:是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。网络编程在网络通信协议下,实现网络互连的不同计算机上运行的程序间可以进行数据交换。2.网络编程三要素IP地址要想让网络中的计算机能够互相通信,必须为每台计算机指定一个标识号,通过这个标识号来指定要接收数据的计算机和识别发送的计算机,而IP地址就是这个标识号。也就是设备的标识。端口原创 2021-12-07 09:18:34 · 593 阅读 · 0 评论 -
1.多线程
1.线程和进程进程进程:是正在运行的程序是系统进行资源分配和调用的独立单位每一个进程都有它自己的内存空间和系统资源线程线程:是进程中的单个顺序控制流,是一条执行路径单线程:一个进程如果只有一条执行路径,则称为单线程程序多线程:一个进程如果有多条执行路径,则称为多线程程序2.多线程的实现方式方式1:继承Thread类定义一个类MyThread继承Thread类在MyThread类中重写run()方法创建MyThread类的对象启动线程两个小问题为原创 2021-12-03 15:55:42 · 136 阅读 · 0 评论 -
8.Properties类
1.Properties1.Propertiesg概述:是一个Map体系的集合类Properties可以保存到流中或从流中加载2.练习:Properties作为Map集合使用package Study09;import java.util.Properties;import java.util.Set;/*Properties作为Map集合使用*/public class PropertiesDemo { public static void main(String[] a原创 2021-12-01 11:04:03 · 3287 阅读 · 0 评论 -
7.对象序列化流
1.概述对象序列化:就是将对象保存到磁盘中,或者在网络中传输对象这种机制就是使用一个字节序列表示一个对象,该字节序列包含:对象的类型,对象的数据和对象中存储的属性等信息字节序列写到文件之后,相当于文件中持久保存了一个对象的信息反之,该字节序列还可以从文件中读取回来,重构对象,对它进行反序列化。要实现序列化和反序列化就要使用对象序列化流和对象反序列化流:对象序列化流:ObjectOutputStream对象反序列化流:ObjectInputStream2. 对象序列化流对象序列化流:Ob原创 2021-11-30 15:27:06 · 373 阅读 · 0 评论 -
6.标准流&打印流
1.案例:集合到文件(数据排序改进版)需求:键盘录入五个学生信息(姓名,语文成绩,数学成绩,英语成绩)。要求按照成绩总分从高到低写入文本文件格式:姓名,语文成绩,数学成绩,英语成绩举例:迪丽热巴,99,98,100思路:定义学生类创建TreeSet集合,通过比较器排序进行排序键盘录入学生数据创建学生对象,将键盘录入的数据对应赋值给学生对象的成员变量把学生对象添加到TreeSet集合创建字符缓冲输出流对象遍历集合,得到每一个学生对象把学生对象的数据拼接成指定格式的字符串调用字符缓冲原创 2021-11-30 11:36:56 · 406 阅读 · 0 评论 -
5.IO练习
1.IO小结字节流小结:小结:字节流可以复制任意文件数据,有4种方式,一般采取字节缓冲流一次读写一个字节数组的方式。字符流小结:小结:字符流只能复制文本数据,有5种方式,一般采用字符缓冲流的特有功能。2.案例:集合到文件需求:把ArrayList集合中的字符串数据写入到文本文件。要求:每一个字符串元素作为文件的一行数据。思路:创建ArrayList集合往集合中存储字符串元素创建字符缓冲输出流对象遍历集合,得到每一个字符串数据调用字符缓冲输出流对象的方法写数据释放资源原创 2021-11-23 17:31:54 · 512 阅读 · 2 评论 -
4.IO字符流
1.字符流由于字节流操作中文不是特别方便,所以Java就提供字符流字符流=字节流+编码表用字节流复制文本文件时,文本文件也会有中文,原因是最终底层操作会自动进行字节拼接成中文,如何识别是中文呢?汉字在存储的时候,无论选择哪种编码存储,第一个字节都是负数2.编码表基础知识计算机中存储的信息都是用二进制数表示的;我们在屏幕上看到的英文,汉字等字符是二进制数转换之后的结果。按照某种规则,将字符存储到计算机中,称为编码。反之,将存储在计算机中的二进制数按照某种规则解析出来,称为解原创 2021-11-23 09:59:12 · 205 阅读 · 2 评论 -
3.IO字节流
1. IO流概述和分类IO流概述IO:输入/输出(Input/Output)流:是一种抽象概念,是对数据传输的总称。也就是说数据在设备间的传输称为流,流本质是数据传输IO流就是用来处理设备间数据传输问题的常见的应用:文件复制;文件上传;文件下载等IO流的分类按照数据的流向输入流:读数据输出流:写数据按照数据类型来分字节流字节输入流;字节输出流字符流字符输入流;字符输出流一般情况下,IO流的分类是按照数据类型来分的字节流和字符原创 2021-11-10 13:56:35 · 86 阅读 · 0 评论 -
2.Java递归
1.递归递归概述:以编程的角度来看,递归指的是方法定义中调用方法本身的现象。package Study02;/*递归概述:以编程的角度来看,递归指的是方法定义中调用方法本身的现象。*/public class DIGUIdemo { public static void main(String[] args) { /*回顾不死神兔问题,求第20个月兔子的对数 每个月得兔子对数:1,1,2,3,5,8……*/ int []arr = new in原创 2021-11-03 14:10:08 · 153 阅读 · 0 评论 -
1.File类
1. File类概述和构造方法File:它是文件和目录路径名的抽象表示文件和目录是可以通过File封装成对象的对于File而言,其封装的并不是一个真正存在的文件,仅仅是一个路径名而已。他可以是存在的,也可以是不存在的额。将来是要通过具体的操作把这个路径的内容转换为具体存在的。方法名说明File(String pathname)通过将给定路径名字符串转换为抽象路径名来创建新的File实例File(String parent,String child)从父路径名字符串和原创 2021-11-02 20:52:32 · 101 阅读 · 0 评论 -
6.Map集合
1.Map集合概述和使用Map集合概述:Interface Map<K,V> K:键的类型; V:值的类型将键映射到值的对象;不能包含重复的键;每个键可以映射到最多一个值举例:学生的学号和姓名mingming001 明明mingming002 小明mingming003 小小明创建Map集合的对象多态的方式具体的实现类HashMappackage Map.Study01;import java.util.HashMap;import java原创 2021-10-21 11:52:57 · 157 阅读 · 0 评论 -
5.泛型学习
1. 泛型概述和好处泛型概述:泛型是JDK5中引入的特性,它提供了编译时类型安全监测机制,该机制允许在编译时监测到非法的类型,它的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。参数化类型:将类型由原来的具体的类型参数化,然后在使用/调用时传入具体的类型。这种参数类型可以用在类,方法,接口中,分别被称为泛型类,泛型方法,泛型接口。泛型定义格式:<类型>:指定一个类型的格式。这里的类型可以看成是形参。<类型1,类型2,……类型n>:指定多种类型的格式原创 2021-10-20 16:07:15 · 125 阅读 · 0 评论 -
4.Set集合
1. Set集合的概述和特点Set集合特点不包含重复元素的集合没有带索引的方法,所以不能使用普通for循环遍历package SetStudy.study01;import java.util.HashSet;import java.util.Set;/*Set集合特点- 不包含重复元素的集合- 没有带索引的方法,所以不能使用普通for循环遍历HashSet:对集合的迭代顺序不做任何保证*/public class SetDemo { public static原创 2021-10-14 15:30:45 · 243 阅读 · 0 评论 -
3.List集合
1.List集合概述和特点List集合概述有序集合(也称为序列),用户可以精准控制列表中每个元素的插入位置。用户可以通过整数索引访问元素并搜索列表中的元素。与Set集合不同,列表通常允许重复的元素List集合特点有序:存储和取出的元素顺序一致可重复:存储的元素可以重复package LIstStudy.study01;import java.util.ArrayList;import java.util.Iterator;import java.util.List;原创 2021-10-14 15:27:47 · 132 阅读 · 0 评论 -
2.Collection集合
1.集合知识回顾集合类的特点:提供了一种存储空间可变的存储模型,存储的数据容量可以随时发生改变。集合类体系结构2.Collection集合概述和使用Collection集合概述是单例集合的顶层接口,它表示一组对象,这些对象也称为Collection的元素。JDK不提供此接口的任何直接实现,它提供更具体的子接口(如Set和List)实现创建Collection集合的对象多态的方式具体的实现类ArrayList代码示例package study;i原创 2021-10-14 15:26:04 · 159 阅读 · 0 评论 -
1.Java异常
1.异常异常概述异常:就是程序出现了不正常的情况异常体系Error:严重问题,不需要处理Exception:称为异常,它表示程序本身可以处理的问题RuntimeException:在编译期间是不检查的,出问题后,需要我们回来修改代码。非RuntimelyException:在编译期间必须处理,否则程序不能通过编译,就更不能正常运行了。2.JVM的默认处理方案注:JVM(Java Virtual Machine,Java虚拟机)package study06;publ原创 2021-10-14 15:23:36 · 74 阅读 · 0 评论 -
5.Java常用API——Date类
1.时间日期类1.Date类常用方法方法名说明public long getTime()获取的是日期对象从1970年1月1日00:00:00到现在的毫秒值public void setTime(long time)设置时间,给的是毫秒值示例代码package study02;import java.util.Date;public class DateDemo { public static void main(String[] args)原创 2021-09-29 11:29:48 · 137 阅读 · 0 评论 -
4.Java常用API——基本类型包装类
1. 包装类1. 基本类型包装类基本类型包装类的作用将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据常用的操作之一:用于基本数据类型与字符串之间的转换基本类型对象的包装类基本数据类型包装类byteByteshortShortintIntegerlongLongfloatFloatdoubleDoublecharCharacterbooleanBoolean2.Intege原创 2021-09-29 11:29:12 · 151 阅读 · 0 评论 -
3.Java常用API——冒泡排序
1. 冒泡排序原理冒泡排序概述一种排序的方式,要对进行排序的数据中相邻的数据进行两两比较,将较大的数据放在后面,依次对所有的数据进行操作,直至所有数据按要求完成排序。如果有n个数据进行排序,总共需要比较n-1次每一次比较完毕,下一次的比较就会少一个数据参加2.冒泡排序代码实现代码package maopao;public class ArrayDemo { public static void main(String[] args) { //原创 2021-09-29 11:28:27 · 367 阅读 · 0 评论 -
2.Java常用API——Object类
1.Object类的toString方法Object类概述Object是类层次结构的根,每个类都可以将Object作为超类。所有类都直接或间接的继承自该类,换句话说,该类所具备的方法,所有类都会有一份。查看方法源码的方式选中方法,按下Ctrl+B重写toString方法的方式ALT+Insert选择toString在类的空白区域,左键–>Generate –>选择toStringtoString方法的作用以良好的格式,更方便的展示对象中的属性值原创 2021-09-29 11:26:23 · 108 阅读 · 0 评论 -
1.Java常用API——Math&System类
1.Math1.Math类概述Math包含执行基本数字运算的方法没有构造方法如何使用类中的成员:看类的成员是否都是静态的,如果是,通过类名就可以直接调用方法名说明public static int abs(int a)返回参数的绝对值public static double ceil(double a)返回大于或等于参数的最小double值,等于一个整数public static double floor(double a)返回小于或等于参数的最大double值原创 2021-09-29 11:25:20 · 110 阅读 · 0 评论 -
4.面向对象--内部类
1.形参和返回值1.类名作为形参和返回值方法的形参是类名、其实需要的是该类的对象方法的返回值是类名、其实返回的是该类的对象//Cat类package internal.study01;public class Cat { public void eat(){ System.out.println("猫吃鱼"); }}//CatOperator类package internal.study01;public class CatOperator {原创 2021-09-14 10:16:53 · 74 阅读 · 0 评论 -
3.面向对象. 接口
1.接口概述概述接口就是一种公共的规范标准,只要符合规范标准,大家都可以通用。java中的接口更多的体现在对行为的抽象。2.接口的特点接口用关键字interface修饰 public interface 接口名{}类实现接口用implement表示 public class 类名 implement 接口名{}接口不能实例化 接口如何实例化呢?参照多态的方式,通过实现类对象实例化,这叫接原创 2021-09-13 10:54:27 · 184 阅读 · 0 评论 -
2.面向对象-多态和抽象类
1. 多态概述同一个对象,在不同时刻表现出来的不同形态。举例:猫可以说猫是猫:猫 cat = new 猫();也可以说猫是动物:动物 animal = new 猫();这里猫在不同时刻表现出来了不同形态,这就是多态多态的前提和体现①、有继承/实现关系②、有方法重写③、有父类引用指向子类对象//父类animalpackage com.study;public class animal { public void eat(){ System.out.p原创 2021-09-09 16:34:22 · 161 阅读 · 0 评论 -
1.面向对象-继承
1.继承继承概述继承是面向对象三大特征之一。可以使得子类具有父类的属性和方法,还可以在子类中重新定义,追加属性和方法继承的格式//格式:public class 子类名 extends 父类名{}//范例public class Zi extends Fu{}//FU:是父类,也被称为基类,超类//Zi:是子类,也被称为派生类//父类public class Fu { public void show(){ System.out.println("s原创 2021-08-31 17:30:02 · 344 阅读 · 0 评论 -
5-学生管理系统
需求:利用JAVA实现学生信息系统管理;要求:①、实现学生信息的增删改查以及管理系统的退出②、学生的学号信息不允许重复。③、除了退出操作,其他操作完成后重新进入系统主界面④、删除操作时,若无数据则直接提示,并进入主界面/* 学生类*/public class student { //成员变量 //学号 private String sid; //姓名 private String name; //年龄 private int原创 2021-08-23 08:19:44 · 137 阅读 · 0 评论 -
3-Java常用API第一部分--ArrayList集合
1.集合基础集合概述 集合类的特点:提供一种存储空间可变的存储模型,存储的数据容量可以发生改变。-------- ArrayListArrayList ①:可调整大小的数组实现 ②:是一种特殊的数据类型,泛型。使用:在出现E的地方使用引用数据类型替换即可 举例:ArrayList, ArrayList2.ArrayList原创 2021-08-19 11:02:33 · 125 阅读 · 0 评论 -
2-Java常用API第一部分-StringBuilder类
1. StringBuilderStringBuilder 概述 StringBuilder是一个可变的字符串类,我们可以把它看成是一个容器,这里的可变指的是StringBuilder对象中的内容是可变的。String和StringBulider的区别 ①:String:内容是不可变的 ②:StringBuilder:内容是可变的。2. StringBuilder 构造方法方法名说明public StringBuild原创 2021-08-16 17:14:44 · 123 阅读 · 0 评论