![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JavaSE
文章平均质量分 91
笔记
小夫敲代码
这个作者很懒,什么都没留下…
展开
-
Java---XML、XML解析、设计模式等
XML概述XML是可扩展标记语言(eXtensibleMarkupLanguage)的缩写,它是是一种数据表示格式,可以描述非常复杂的数据结构,常用于传输和存储数据。XML的几个特点和使用场景一是纯文本,默认使用UTF-8编码;二是可嵌套;如果把XML内容存为文件,那么它就是一个XML文件。XML内容经常被当成消息进行网络传输,或者作为配置文件用于存储系统的信息。1.XML是什么?XML的全称为(EXtensibleMarkupLanguage),是一种可扩展的标记语言。什么是XML解析。...原创 2022-07-15 21:55:13 · 557 阅读 · 0 评论 -
java---注解、动态代理
注解概述、作用Java注解(Annotation)又称Java标注,是JDK5.0引入的一种注释机制。Java语言中的类、构造器、方法、成员变量、参数等都可以被注解进行标注。注解的作用是什么呢?对Java中类、方法、成员变量做标记,然后进行特殊处理,至于到底做何种处理由业务需求来决定。例如JUnit框架中,标记了注解@Test的方法就可以被当成测试方法执行,而没有标记的就不能当成测试方法执行。注解的作用对Java中类、方法、成员变量做标记,然后进行特殊处理。例如2.自定义注解/**...原创 2022-07-15 12:50:54 · 768 阅读 · 0 评论 -
Java---单元测试、反射
单元测试单元测试就是针对最小的功能单元编写测试代码,Java程序最小的功能单元是方法,因此,单元测试就是针对Java方法的测试,进而检查方法的正确性。前测试方法是怎么进行的,存在什么问题只有一个main方法,如果一个方法的测试失败了,其他方法测试会受到影响。无法得到测试的结果报告,需要程序员自己去观察测试是否成功。无法实现自动化测试。Junit单元测试框架JUnit是使用Java语言实现的单元测试框架,它是开源的,Java开发者都应当学习并使用JUnit编写单元测试。JUnit优点反射概述方式一。...原创 2022-07-14 21:11:14 · 692 阅读 · 0 评论 -
Java---TCP通信
目录1.TCP通信-快速入门编写客户端代码步骤:客户端发送消息总结:需求:服务端实现步骤总结:2.TCP通信-多发多收消息案例:使用TCP通信实现:多发多收消息总结:*3.TCP通信-同时接受多个客户端消息[重点]总结:4.TCP通信-使用线程池优化总结:5.TCP通信实战案例-即时通信总结:6.TCP通信实战案例-模拟BS系统[了解]总结:TCP协议:TCP是一种面向连接,安全、可靠的传输数据的协议传输前,采用“三次握手”方式,点对点通信,是可靠的在连接中可进行大数据量的传输TCP通信模式演示:Socke原创 2022-07-14 14:30:24 · 4098 阅读 · 1 评论 -
Java---网络通信三要素与UDP通信
目录1.网络通信三要素三要素概述、要素一:IP地址总结:IP地址操作类-InetAddressInetAddress API如下总结:要素二:端口号总结:要素三:协议TCP/IP参考模型(或TCP/IP协议):事实上的国际标准。TCP协议特点UDP协议:总结:2.UDP通信2.1UDP通信基础知识案例:使用UDP通信实现:发送消息、接收消息总结:2.2UDP通信:多发多收案例:使用UDP通信实现:多发多收消息总结:2.3UDP通信-广播、组播总结:什么是网络编程?网络编程可以让程序与网络上的其他设备中的程原创 2022-07-14 13:14:00 · 373 阅读 · 0 评论 -
多线程相关知识
目录1.1多线程的创建方式一:继承Thread类总结:1.2方式二:实现Runnable接口多线程的实现方案二:实现Runnable接口总结:多线程的实现方案二:实现Runnable接口(匿名内部类形式)1.3方式三:JDK 5.0新增:实现Callable接口多线程的实现方案三:利用Callable、FutureTask接口实现。总结: 2.Thread的常用方法Thread常用API说明总结: 3.线程安全线程安全问题是什么、发生的原因总结:4.线程同步同步思想概述方式一:同步代码块总结:方式二:同步方原创 2022-07-13 16:28:05 · 150 阅读 · 0 评论 -
Java笔记---IO流
目录1.缓冲流1.1缓冲流概述1.2字节缓冲流字节缓冲流性能优化原理:1.3字节缓冲流的性能分析分别使用不同的方式复制大视频观察性能情况1.4字符缓冲流字符缓冲输入流字符缓冲输出流案例:2.转换流2.1问题引出:不同编码读取乱码问题2.2字符输入转换流2.3字符输出转换流3.1对象反序列化4.打印流4.1 PrintStream、PrintWriterPrintStreamPrintWriter补充知识:Properties补充知识:IO框架缓冲流概述缓冲流也称为高效流、或者高级流。之前学习的字节流可以称为原创 2022-07-12 20:08:03 · 312 阅读 · 0 评论 -
黑马笔记---字符集与IO流
目录1.字符集1.1常见字符集介绍字符集基础知识:ASCII字符集:GBK:Unicode码表: 总结:1.2字符集的编码、解码操作String编码String解码2.IO流2.1IO流概述IO流的分类总结流的四大类:* 2.2字节流的使用文件字节输入流:每次读取一个字节文件字节输入流:每次读取一个字节数组文件字节输入流:一次读完全部字节文件字节输出流:写字节数据到文件文件拷贝2.3资源释放的方式try-catch-finallytry-with-resource3.字符流的使用3.1文件字符输入流-一次读原创 2022-07-11 14:41:37 · 265 阅读 · 0 评论 -
黑马笔记---File与方法递归
目录1.File类1.1File类概述总结:1.2File类的常用API1.2.1判断文件类型、获取文件信息1.2.2创建文件、删除文件功能总结:1.2.3遍历文件夹总结:2.方法递归2.1递归的形式和特点总结:2.2递归的算法流程、核心要素案例:计算1~n的阶层2.3递归的经典问题案例:猴子吃桃问题2.4非规律化递归案例-文件搜索案例:文件搜索2.5非规律化递归案例-啤酒问题案例:啤酒问题案例:删除文件夹File类概述File类在包java.io.File下、代表操作系统的文件对象(文件、文件夹)。Fil原创 2022-07-09 21:42:20 · 338 阅读 · 0 评论 -
Java小项目---电影购票系统
目录步骤1.系统角色准备总结:步骤2.首页、登录、商家界面、用户界面实现总结:步骤3.商家功能-展示详情、影片上架&下架&修改、退出总结:步骤4.用户功能-展示全部影片、评分功能、购票功能话不多说,先上代码!以下为相关类: 以下为具体功能实现的代码:步骤1.系统角色准备1.集成日志框架、用于后期记录日志信息。2.定义一个电影类Movie类,Movie类包含:片名、主演、评分、时长、票价、余票3.系统包含2个用户角色:客户、商家。存在大量相同属性信息。4.定义User类作为原创 2022-07-08 15:31:50 · 3591 阅读 · 2 评论 -
黑马笔记---日志框架
目录1.1日志技术的概述日志输出语句的弊端日志技术具备的优势总结:1.2日志技术体系体系结构总结:1.3Logback概述Logback日志框架Logback主要分为三个技术模块:总结:1.4Logback快速入门需求:导入Logback日志技术到项目中,用于纪录系统的日志信息1.5Logback配置详解-输出位置、格式设置Logback日志输出位置、格式设置:1.6Logback配置详解-日志级别设置日志级别想清楚的知道一个系统运行的过程和详情怎么办?生活中的日志: 生活中的日志就好比日记,可以记录你生活原创 2022-07-08 12:46:43 · 302 阅读 · 0 评论 -
黑马笔记---异常处理
目录1.异常处理1.1异常概述、体系什么是异常?为什么要学习异常?异常体系编译时异常和运行时异常总结:1.3常见编译时异常编译时异常编译时异常示例2.4异常的默认处理流程2.6编译时异常的处理机制编译时异常的处理形式有三种:异常处理方式1 —— throws异常处理方式2 —— try…catch…异常处理方式3 —— 前两者结合总结:2.6运行时异常的处理机制2.7异常处理使代码更稳健的案例2.8自定义异常自定义异常的分类1、自定义编译时异常2、自定义运行时异常异常是程序在“编译”或者“执行”的过程中可能原创 2022-07-03 16:45:10 · 576 阅读 · 0 评论 -
黑马笔记---创建不可变集合与Stream流
目录1.不可变集合1.1什么是不可变集合?1.2如何创建不可变集合?总结:2.Stream流2.1Stream流的概述什么是Stream流?案例:Stream流的作用Stream流式思想的核心:总结:2.2Stream流的获取Stream流的三类方法集合获取Stream流的方式数组获取Stream流的方式2.3Stream流的常用APIStream流的常用API(中间操作方法)Stream流的常见终结操作方法总结:2.4Stream流的综合应用2.5收集Stream流Stream流的收集操作Stream流的原创 2022-07-02 21:38:52 · 292 阅读 · 0 评论 -
黑马笔记---Map集合体系
目录1.Map集合体系1.1Map集合的概述Map集合概述和使用Map集合整体格式:1.2Map集合体系特点Map集合体系1.3Map集合常用APIMap集合Map API如下:1.4Map集合的遍历方式一:键找值Map集合的遍历方式有:3种。Map集合的遍历方式一:键找值键找值涉及到的API:1.5Map集合的遍历方式二:键值对Map集合的遍历方式二:键值对*1.6Map集合的遍历方式三:lambda表达式Map集合的遍历方式三:LambdaMap结合Lambda遍历的API案例:1.7Map集合的实现类原创 2022-07-02 00:05:22 · 221 阅读 · 0 评论 -
黑马笔记---Set系列集合
目录1.Set系列集合1.1Set系列集合概述Set系列集合特点Set集合实现类特点1.2HashSet元素无序的底层原理:哈希表HashSet底层原理哈希表的组成哈希值Object类的API对象的哈希值特点*HashSet1.7版本原理解析:数组 + 链表 +(结合哈希算法)*JDK1.8版本开始HashSet原理解析总结:4.当数组存满到16*0.75=12时,就自动扩容,每次扩容原先的两倍。1.3HashSet元素去重复的底层原理HashSet去重复原理解析案例:1.4实现类:LinkedHashS原创 2022-07-01 23:25:48 · 437 阅读 · 0 评论 -
黑马笔记---List系列集合与泛型
目录1.List系列集合1.1List集合特点、特有APICollection集合体系 List系列集合特点List集合特有方法1.2List集合的遍历方式小结List集合的遍历方式有几种?1.3ArrayList集合的底层原理ArrayList集合底层原理1.4LinkedList集合的底层原理LinkedList的特点LinkedList集合的特有功能 2.集合的并发修改异常问题3.泛型深入3.1泛型的概述和优势泛型概述泛型的好处: 3.2自定义泛型类泛型类的概述3.3自定义泛型方法泛型方法的概述3.4原创 2022-06-29 19:49:05 · 195 阅读 · 0 评论 -
黑马笔记---常见数据结构
目录1.常见数据结构1.1数据结构概述、栈、队列数据结构概述常见的数据结构1.2数组1.3链表链表的特点链表的种类 1.4二叉树、 二叉查找树二叉树概述二叉树的特点 二叉查找树的特点1.5平衡二叉树1.6红黑树红黑树概述红黑规则添加节点红黑树小结:各种数据结构的特点和作用是什么样的1.数据结构是计算机底层存储、组织数据的方式。是指数据相互之间是以什么方式排列在一起的。2.通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。1.栈2.队列3.数组4.链表5.二叉树6.二叉查找树7.平衡二叉树8.红原创 2022-06-29 18:48:13 · 543 阅读 · 0 评论 -
黑马笔记---集合(Collection的常用方法与遍历方式)
目录1.集合1.1集合的概述集合的特点1.2集合的体系特点Collection集合特点集合对于泛型的支持1.3Collection集合常用API1.4Collection集合的遍历方式方式一:迭代器方式二:foreach/增强for循环方式三:lambda表达式 1.5Collection集合存储自定义类型的对象集合和数组都是容器。数组定义完成并启动后,类型确定、长度固定,适合元素的个数和类型确定的业务场景,不适合做需要增删数据操作。集合的大小不固定,启动后可以动态变化,类型也可以选择不固定。集合更像气球。原创 2022-06-28 22:52:59 · 561 阅读 · 0 评论 -
黑马笔记---常见算法与Lambda表达式
目录1.常见算法1.1冒泡排序1.2选择排序1.3二分查找2.Lambda表达式2.1Lambda概述2.2Lambda实战-简化常见函数式接口2.3Lambda表达式的省略规则冒泡排序的思想:每次从数组中找出最大值放在数组的后面去。实现冒泡排序的关键步骤:1.确定总共需要做几轮: 数组的长度-1。2.每轮比较几次:3.当前位置大于后一个位置则交换数据。 代码如下:1.2选择排序选择排序的思想:每轮选择当前位置,开始找出后面的较小值与该位置交换。选择排序的关键:确定总共需要选择几轮: 数组的长度-原创 2022-06-27 23:00:23 · 949 阅读 · 0 评论 -
黑马笔记---包装类,正则表达式,Arrays类
目录1.包装类2.正则表达式2.1正则表达式概述、初体验*2.2正则表达式的使用详解2.3正则表达式的常见案例2.4正则表达式在方法中的应用*2.5正则表达式爬取信息3.Arrays类3.1Arrays类概述,常用功能演示*3.2Arrays类对于Comparator比较器的支持包装类:其实就是8种基本数据类型对应的引用类型。为什么提供包装类?Java为了实现一切皆对象,为8种基本类型提供了对应的引用类型。后面的集合和泛型其实也只能支持包装类型,不支持基本数据类型。自动装箱:基本类型的数据和变量可以直接赋值原创 2022-06-27 22:01:08 · 244 阅读 · 0 评论 -
黑马笔记---常用日期API
目录1.日期与时间1.1Date1.2SimpleDateFormat1.3Calendar2.JDK8新增日期类2.1概述,LocalTime / LocalDate / LocalDateTime2.2Instant2.3DateTimeFormatter2.4Duration / Period(LocalDateTime / LocalDate)2.5ChronoUnitDate类概述:Date类代表当前所在系统的日期时间信息。Date的构造器Date的常用方法 案例:请计算出当前时间往后走1小时1原创 2022-06-27 21:27:27 · 835 阅读 · 0 评论 -
黑马笔记---常用API
1.Object类的方法是一切子类对象都可以直接使用的;2.一个类要么默认继承了Object类,要么间接继承了Object类,Object类是Java中的祖宗类。父类toString()方法存在的意义就是为了被子类重写,以便返回对象的内容信息,而不是地址信息!父类equals方法存在的意义就是为了被子类重写,以便子类自己来定制比较规则。下面以具体的代码说明toString和equals方法:2.ObjectsObjects概述Objects是一个工具类,提供了一些方法去完成一些功能原创 2022-06-25 23:36:49 · 305 阅读 · 0 评论 -
Java---内部类(超详细)
内部类就是定义在一个类里面的类,里面的类可以理解成(寄生),外部类可以理解成(宿主)。1.当一个事物的内部,还有一个部分需要一个完整的结构进行描述,而这个内部的完整的结构又只为外部事物提供服务,那么整个内部的完整结构可以选择使用内部类来设计。2.内部类通常可以方便访问外部类的成员,包括私有的成员。3.内部类提供了更好的封装性,内部类本身就可以用private protectecd等修饰,封装性可以做更多控制。2.内部类之一:静态内部类[了解]1.有static修饰,属于外部类本身。2.它的特点和使用与普通类原创 2022-06-25 21:17:47 · 246 阅读 · 0 评论 -
面向对象三大特征之三:多态
同类型的对象,执行同一个行为,会表现出不同的行为特征。父类类型 对象名称 = new 子类构造器;接口 对象名称 = new 实现类构造器;多态中成员访问特点方法调用:编译看左边,运行看右边;变量调用:编译看左边,运行也看左边。(多态侧重行为多态)有继承/实现关系:有父类引用指向子类对象:有方法重写。1.在多态形式下,右边对象可以实现解耦合,便于扩展和维护。例如:当new Dog这个对象改变时,后续的业务行为也会随着改对象改变,那么后续的代码无需修改。2.定义方法的时候,使用原创 2022-06-25 19:55:35 · 144 阅读 · 0 评论 -
超详细(Java)枚举--抽象类--接口
目录1.枚举1.1枚举的概述1.2定义枚举类的格式:1.3枚举的特征2抽象类2.1抽象类概述2.2抽象的使用总结与注意事项2.3抽象类的案例2.4抽象类的特征,注意事项小结2.5final和abstract是什么关系?2.6抽象类的应用知识:模板方法模式2.7模块案例2.8模块方法为什么建议使用final修饰?3接口3.1接口概述,特点3.2接口的基本使用:被实现2.4JDK8开始接口新增方法2.5使用接口的注意事项枚举是Java中的一种特殊类型。枚举的作用:"是为了做信息的标志和信息的分类"。修饰符 en原创 2022-06-21 11:44:36 · 1498 阅读 · 0 评论 -
超详细(java)包--权限修饰符--final--常量
包是用来分门别类的管理各种不同类的,类似文件夹,建包利于程序的管理和维护。建立包的语法格式:package 公司域名倒写.技术名称。报名建议全部英文小写,且具备意义。建立包的语句必须在第一行,一般IDEA工具会帮助创建。相同包下的类可以直接访问,不同包下的类必须导包,才可以使用!导包格式:import 包名.类名。假如一个类中需要用到不同类,而这个两个类的名称是一样的,那么默认只能导入一个类,另一个类要带包名访问。权限修饰符:是用来控制一个成员能够被访问的范围的。可以修饰成员变量,方法,构造器,内部类,不同原创 2022-06-20 20:08:31 · 237 阅读 · 0 评论 -
面向对象的三大特征之二:继承
目录1.继承概述,使用继承的好处2.继承的设计规范和内存运行原理3.继承的特点继承的特点:4.继承后:成员变量,成员方法的访问特点5.继承后:方法重写方法重写:方法重写的应用场景:@Override重写注解:方法重写注意事项和要求:6.继承后:子类构造器的特点7.继承后:子类构造器访问父类有参构造器继承:1.Java中提供一个关键字extends,用这个关键字,我们可以让一个类和另一个类建立起父子关系。2.例如: Student称为子类(派生类),people称为父类(基类或超类)。使用继承的好处:当子类继原创 2022-06-12 21:58:16 · 150 阅读 · 0 评论 -
黑马程序员笔记--静态关键字:static
目录1.静态关键字static1.1.static的作用,修饰成员变量的用法static关键字的作用:成员变量分为两类:1.2.static修饰成员变量的内存原理1.3.static修饰成员方法的基本用法根据有无static修饰的成员方法可分为两类:两者的使用场景:1.4.static修饰成员方法的内存原理1.5.static实际应用案例:定义工具类练习:定义数组工具类1.6.static的注意事项2.static应用知识:代码块2.1代码块的分类,作用代码块概述:代码块的分类:2.2静态代码块的应用案例3原创 2022-06-12 15:17:54 · 1821 阅读 · 1 评论