自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(120)
  • 收藏
  • 关注

原创 HTTP概述以及Tomcat概述

HTTPWeb服务器Tomcat。

2023-07-02 21:21:29 739

原创 maven-依赖管理

代码演示如下:<dependencies><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.2.10</version></dependency></dependencies>注意事项:如图所示:​ 在项目当中也可以看到类似的图表,在pom.xml文件中点击右键。会显示一个Diagrams。选择Show Dependencies。​ ​ 代码演示如下:<d

2023-07-01 21:44:11 841 1

原创 MAVEN的学习

假如你的Java环境变量没有配置好,那你的maven肯定也没法配置好,因为maven的配置是依赖于jdk的。还要注意的是maven和jdk的版本不要相差太离谱。我配置的jdk版本为jdk8,maven版本为3.5.4。当你配置好以后,idea会自动进行下载文件到你配置的maven仓库里面。简单写一点,不是很详细,有时间写个详细的配置过程。这里我是跟着b站上的视频配置的,下面是视频链接。在配置过程中,有一些问题是需要注意的。这些就是自动下载的文件,第一次配置可能要下载的比较久,稍微等一段时间就好了。

2023-07-01 20:22:08 864

原创 [进阶]特殊文件:XML概述、解析

").append("从删库到跑路").append("</name>\r\n");//2.使用saxReader对象把需要解析的XML文件读成一个Decument对象。XML中书写“<”、“&”等,可能会出现冲突,导致报错,此时可以用如下特殊字符替代。<name>张无忌</name><name>敏敏男</sex><地址>光明顶</地址><sex>女

2023-06-25 13:19:31 597

原创 [进阶]动态代理模式介绍、准备工作、代码实现

举个最简单的🌰,你坤哥会唱,跳,rap,篮球。想要做这些事情就要有舞台,要有话筒,需要处理七七八八的事情。但这些事情肯定不能让坤哥来做,于是有了代理经纪人来帮忙处理,代理经纪人就负责处理这些事情。System.out.println("鸡你太美,贝贝~");System.out.println(this.name + "正在唱:" + name);System.out.println(this.name + "正在铁山靠~");参数1:用于指定一个类加载器。return "哎哟喂,你干嘛~~~";

2023-06-23 22:26:44 53

原创 [进阶]注解的应用场景:模拟junit框架

MyTest4(value = "孙悟空",aaa = 199,bbb = {"紫霞","牛夫人"})// 说明当前方法上是存在@MyTest,触发当前方法执行。//3.遍历这个数组中的每个方法,看方法上是否存在@MyTest注解,存在。@Target(ElementType.METHOD) // 只注解方法。//2.提取这个类中的全部成员方法。//判断类上是否包含了某个注解。//判断类上是否包含了某个注解。//1.得到Class对象。//2.解析类上的注解。//2.解析类上的注解。

2023-06-23 20:57:25 60

原创 [进阶]注解、自定义注解、元注解

Target({ElementType.TYPE,ElementType.METHOD}) // 当前被修饰的注解只能用于类和成员方法。@MyTest1(aaa = "铁扇公主",bbb=false,ccc ={"python","java","前端"})@MyTest1(aaa = "铁扇公主",bbb=false,ccc ={"python","java","前端"})@MyTest1(aaa = "牛魔王",ccc = {"大角牛","大青蛙"})) // 当前被修饰的注解只能用于类和成员方法。

2023-06-23 20:01:32 42

原创 [进阶]反射的作用、应用场景

Student s1 = new Student("蔡虚坤",66,'鸡',170,"唱,跳,rap,篮球");最重要的用途是:适合做Java的框架,基本上,主流的框架都会基于反射设计出一些通用的功能。//需求:把任意对象的字段名和其对应的值等信息,保存到文件中去。每收到一个对象后,使用反射获取该对象的Class对象,然后获取全部的成员变量。//5.拿到这个成员变量在对象中的数据。//目标:保存任意对象的字段和其他数据到文件中去。//2.从这个类中提取它的全部成员变量。//4.拿到成员变量的名字。

2023-06-23 15:34:51 62

原创 [进阶]反射-获取成员变量和方法对象并使用

/调用无参数的run方法,用cat对象出发调用的。System.out.println("有参数构造器执行了~");System.out.println("有参数构造器执行了~");System.out.println("无参构造器执行了~");System.out.println("无参构造器执行了~");System.out.println("🐈跑的好快~");System.out.println("🐈爱吃猫粮~");

2023-06-23 14:54:13 347

原创 [进阶]反射-认识反射、获取类、获取构造器对象并使用

System.out.println("有参数构造器执行了~");//1.反射第一步:必须先得到这个类的Class对象。//1.反射第一步:必须先得到这个类的Class对象。//1.反射第一步:必须先得到这个类的Class对象。//1.反射第一步:必须先得到这个类的Class对象。//2.获取类的某个构造器,无参数构造器。//2.获取类的某个构造器,无参数构造器。//2.获取类的全部构造器。//2.获取类的全部构造器。

2023-06-22 22:26:08 145

原创 [进阶]junit单元测试框架详解

System.out.println("名字长度是:" + name.length());System.out.println("test11 BeforeClass 执行了");System.out.println("test22 AfterClass 执行了");System.out.println("test1 Before 执行了");System.out.println("test2 After 执行了");@Test // 测试方法。@Test // 测试方法。@Test //测试方法。

2023-06-22 22:05:53 332

原创 [进阶]TCP通信实现BS架构,网站开发的原理,线程池优化BS架构

System.out.println("有人上线了:" + socket.getRemoteSocketAddress());//2.使用serverSocket对象,调用一个accept方法,等待客户端的连接请求。//2.使用serverSocket对象,调用一个accept方法,等待客户端的连接请求。//3.把这个客户端对应的socket通信管道,交给一个对立的线程负责处理。//3.把这个客户端对应的socket通信管道,交给一个对立的线程负责处理。//创建出一个线程池,负责处理通信管道的任务。

2023-06-22 16:07:23 263

原创 [进阶]TCP通信综合案例:群聊

System.out.println("有人下线了:"+ socket.getRemoteSocketAddress());System.out.println("有人上线了:" + socket.getRemoteSocketAddress());//3.把这个客户端对应的socket通信管道,交给一个对立的线程负责处理。//创建一个独立的线程,负责随时从socket中接收服务端发送过来的消息。System.out.println("请输入:");System.out.println("服务端开启!

2023-06-22 15:20:38 124

原创 [进阶]网络通信:TCP通信-支持与多个客户端同时通信

System.out.println("有人下线了:"+ socket.getRemoteSocketAddress());System.out.println("有人上线了:" + socket.getRemoteSocketAddress());//3.把这个客户端对应的socket通信管道,交给一个对立的线程负责处理。System.out.println("请输入:");//1.创建Socket对象,并同时请求与服务端程序的连接。System.out.println("服务端开启!

2023-06-22 14:48:45 1495

原创 [进阶]网络通信:TCP通信,一发一收,多发多收

System.out.println(socket.getRemoteSocketAddress() + "离线了~");//2.使用serverSocket对象,嗲用一个accept方法,等待客户端的连接请求。//2.使用serverSocket对象,嗲用一个accept方法,等待客户端的连接请求。System.out.println("请输入:");//1.创建Socket对象,并同时请求与服务端程序的连接。//1.创建Socket对象,并同时请求与服务端程序的连接。

2023-06-22 13:14:53 576

原创 [进阶]网络通信:UDP通信,一发一收、多发多收

System.out.println("客户端数据发送完毕~~~");//2.创建一个数据包对象,用于接收数据的(创建一个韭菜盘子)System.out.println("请输入:");//2.创建一个数据包对象,用于接收数据的(创建一个韭菜盘子)//2.创建数据包对象封装要发出去的数据(创建一个韭菜盘子)//2.创建数据包对象封装要发出去的数据(创建一个韭菜盘子)//1.创建一个服务端对象(创建一个接韭菜的人)注册端口。//1.创建一个服务端对象(创建一个接韭菜的人)注册端口。

2023-06-21 23:21:18 1649

原创 [进阶]网络通信:端口和协议

注意:我们自己开发的程序一般选择使用注册端口,且一个设备中不能出现两个程序的端口号一样,否则出错。TCP协议:三次握手建立可靠连接。可靠连接是指:确定通信双方,收发消息都是正常无问题的!TCP协议:四次挥手断开连接。目的是:确保双方数据的收发都已经完成!特点:无连接、不可靠通信。特点:面向连接、可靠通信。

2023-06-21 21:55:25 372

原创 [进阶]网络通信:概述、IP地址、InetAddress

/2.获取指定IP或者域名的IP地址对象。* 目标:掌握InetAddress类的使用。//1.获取本机IP地址对象的。Java提供的网络编程解决方案就是。网络通信的关键三要素。

2023-06-21 11:18:39 456

原创 [进阶]Java:多线程的并发、并行、生命周期

是指在同一个时刻上,同时有多个线程在被CPU调度执行。进程中的多个线程其实是并发和并行执行的。

2023-06-20 22:57:04 240

原创 [进阶]Java:线程池、处理Runnable、Callable任务、使用Executors得到线程池

System.out.println(Thread.currentThread().getName() + "===> 输出666~");// 线程池会自动创建一个新线程,自动处理这个任务,自动执行的!// 线程池会自动创建一个新线程,自动处理这个任务,自动执行的!// 线程池会自动创建一个新线程,自动处理这个任务,自动执行的!// 等着线程池的任务全部执行完毕后,再关闭线程池。//计算密集型的任务:核心线程数量 = CPU的核数 + 1。// 描述线程的任务,返回线程执行返回后的结果。

2023-06-20 22:48:13 1356

原创 【进阶]Java:线程通信(了解)

System.out.println(name + "吃了:" + list.get(0));//需求:3个生产者线程,负责生产包子,每个线程每次只能生产1个包子放在桌子上。// 2个消费者线程负责吃包子,每人每次只能从桌子上拿一个包子吃。}, "厨师1").start();}, "厨师2").start();}, "厨师3").start();// 创建2个消费者线程(2个吃货)}, "吃货1").start();}, "吃货2").start();//创建3个生产者线程(3个厨师)

2023-06-20 15:58:10 209

原创 [进阶]Java:多线程:线程同步

System.out.println(name + "来取钱后,余额剩余:" + this.money);System.out.println(name + "来取钱后,余额剩余:" + this.money);System.out.println(name + "来取钱" + money + "成功~");System.out.println(name + "来取钱" + money + "成功~");System.out.println(name + "来取钱" + money + "成功~");

2023-06-20 15:07:37 538

原创 [进阶]Java:线程安全问题、取钱模拟

System.out.println(name + "来取钱后,余额剩余:" + this.money);System.out.println(name + "来取钱" + money + "成功~");System.out.println(name + "来取钱,余额不足~");new DrawThread(acc,"小明").start();//2.创建两个线程,分别代表小明 小红,再去同一个账户。//1.创建一个账户对象,代表两个人的共享账户。//取钱(小明 小红)//小明 小红同时过来的。

2023-06-20 11:19:15 215

原创 [进阶]Java:线程概述、线程创建方式

System.out.println("子线程1执行输出:" + i);System.out.println("子线程2执行输出:" + i);System.out.println("子线程3执行输出:" + i);System.out.println("主线程执行输出:" + i);System.out.println("子线程执行输出:" + i);System.out.println("主线程执行输出:" + i);System.out.println("子线程执行输出:" + i);

2023-06-19 09:06:54 498

原创 [进阶]Java:打印流、Properties、common-io框架

IOUtils.copy(new FileInputStream("H:\\A桌面\\mac.jpg"),new FileOutputStream("H:\\A桌面\\mac02.jpg"));FileUtils.copyFileToDirectory(new File("H:\\A桌面\\mac.jpg"),new File("H:/"));Files.copy(Path.of("H:\\A桌面\\mac.jpg"),Path.of("H:\\A桌面\\mac03.jpg"));

2023-06-18 16:26:35 300

原创 [进阶]Java:对象序列化、反序列化

Student s = new Student("陈磊","chenlei","666666",21);作用:以内存为基准、把存储到磁盘文件中的去的对象数据恢复成内存中的对象,称为对象反序列化。//transient修饰的成员变量不参与序列化了 ---> 小知识。//2.对象序列化:使用对象字节输出流包装字节输出流管道。// 注意:序列化版本号与反序列化的版本号要一致才不会出错!//2.调用对象字节输入流的反序列化方法。//3.直接调用序列化方法。//1.创建学生对象。// 申明序列化的版本号码。

2023-06-17 19:51:40 265

原创 [进阶]Java:缓冲流分类,字节缓冲流使用

OutputStream os = new FileOutputStream("H:\\A桌面\\mac111.jpg");InputStream is = new FileInputStream("H:\\A桌面\\mac.jpg");//b.把原始的字节输出流包装成高级的缓冲字节输出流管道。//a.把原始的字节输入流包装成高级的缓冲字节输入流。//1.创建一个字节输出流管道与原文件接通。作用:缓冲流自带缓冲区、可以提高原始字节流、字符流读写数据的性能。//1.创建一个字节输出流管道与原文件接通。

2023-06-15 21:14:03 91

原创 [进阶]Java:文件字符输入流、文件字符输出流

/e.public void write(char[] buffer , int pos, int len):写字符数组的一部分出去。//d.public void write(String c , int pos , int len):写字符串的一部分出去。//c.public void write(char[] buffer):写一个字符串出去。//b.publi void write(String c)写一个字符串出去。//a.publi void write(int c):写一个字符出去。

2023-06-15 11:05:45 196

原创 [进阶]Java:文件字节输出流、文件拷贝、资源释放

文件字节输出流(FileOutputStream)写数据出去的API 流的关闭和刷新代码演示如下:​​​​​​​public class OutputStreamDemo04 { public static void main(String[] args) throws Exception { //1.创建一个文件字节输出流管道与目标文件接通 OutputStream os = new FileOutputStream("/Users/birdbird/Docume

2023-06-15 10:11:35 311

原创 [进阶]Java:IO流分类、文件字节输入流、读取字节数据、避免乱码问题

/ System.out.println("读取了几个字节" + len3);// 读取完毕返回-1。// System.out.println("读取了几个字节:" + len1);// System.out.println("读取了多少个字节:" + len);// System.out.println("读取了几个字节:" + len);// System.out.println("读取了几个字节" + len2);

2023-06-13 22:30:59 136

原创 [进阶]Java:IO前置内容:字符集

/ 以当前代码默认字符集进行编码(UTF-8)//byte[] bytes = name.getBytes("GBK");// 指定GBK编码。//2.解码:把字节转换成对应的中文形式(编码前 和 解码后的字符集必须一致,否则乱码)// 默认的UTF-8。Unicode是万国码,以UTF-8编码后一个中文一般以三个字节的形式存储。//1.编码:把文字转换成字节(使用指定的编码)编码前和编码后的字符集需要一致,否则会出现中文乱码。

2023-06-13 10:12:16 62

原创 [进阶]Java:非规律化递归问题:文件搜索、啤酒问题

System.out.println("找到了:" + file.getAbsolutePath());System.out.println("剩余瓶子数:" + lastBottleNumber);System.out.println("剩余盖子数:" + lastCoverNumber);//记录每次剩余的瓶子数量。//记录每次剩余的盖子数量。System.out.println("总数:" + totalNumber);//6.判断当前遍历的一级文件对象是文件 还是 目录。

2023-06-12 22:24:48 45

原创 [进阶]Java:方法递归形式、算法流程总递归案例

System.out.println("====test被执行====");公式:f(x) - f(x)/2 -1 = f(x+1)递归的方式:f(n) = f(n-1)*n;终结点:f(10) = 1。递归的方向必须走向终结点。与原问题相似的规模较小。递归的终结点:f(1)

2023-06-12 15:40:08 105

原创 [进阶]Java:File类常用方法

System.out.println("最后修改时间:" + new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(time));//获取当前目录下所有的"一级文件对象"到一个文件对象数组中去返回(重点)//a.创建新文件,创建成功返回true,反之。//b.获取文件定义的时候使用的路径。//d.获取文件的大小:字节个数。//e.获取文件的最后修改的时间。//f.判断文件是文件还是文件夹。//c.获取文件的名称:带后缀。//d.删除文件或者空文件夹。

2023-06-12 14:48:32 52

原创 [进阶]Java:File概述、File对象的创建

/ 判断这个路径是否存在。// 是文件的字节大小。//路径写法:/Users/birdbird/Desktop/...//2.File创建对象,支持绝对路径 支持相对路径(重点)//相对路径:一般定位模块中的文件的。//3.File创建对象,可以是文件也可以是文件夹。//1.创建File对象(指定了文件的路径)默认直接到当前工程下的目录寻找文件。但是不能读写文件内容。

2023-06-11 21:57:18 308

原创 [进阶]Java:阶段项目02——首页、登录、客户操作页

System.out.println(loginUser.getLoginName() + (loginUser.getSex()=='男'?System.out.println("============黑马电影商家界面===================");System.out.println("============黑马电影客户界面===================");System.out.println("========黑马电影首页========");

2023-06-09 20:20:10 51

原创 [进阶]Java:阶段项目01——日志框架搭建

/ 假名 不能重复。b2.setAddress("火星8号8B八层");b2.setShopName("巧克力国际影城");b.setAddress("火星6号2B二层");b.setShopName("甜甜圈国际影城");c1.setUserName("黑马关之琳");b2.setUserName("黑马包租婆");c.setUserName("黑马刘德华");b.setUserName("黑马包租公");// 注意,商家一定需要加入到店铺排片信息中去。// 注意,商家一定需要加入到店铺排片信息中去。

2023-06-09 19:25:31 40

原创 [进阶]Java:Logback日志框架的快速入门、日志级别设置等

作用:用于控制系统中哪些日志级别是可以输出的,只输出级别不低于设定级别的日志信息。Logback日志系统的特性都是通过核心配置文件logback.xml控制的。一个是控制台、一个是系统文件中。

2023-06-08 23:03:25 348

原创 [进阶]Java:日志概述、日志技术体系

可以将系统执行的信息选择性的记录到指定的位置(控制台、文件中、数据库中)。:牛人或者第三方公司已经做好的日志记录实现代码,后来者直接可以拿去使用。可以随时以开关的形式控制是否记录日志,无需修改源代码。

2023-06-07 20:16:31 84

原创 [进阶]Java:异常的强大演示、自定义异常

System.out.println("定价:" + price);System.out.println("价格必须是正数~");System.out.println("年龄合法:推荐商品给其购买~");System.out.println("请输入合法的价格:");System.out.println("请输入合法价格!//throw:在方法内部直接创建一个异常对象,并从此点抛出。//throws:用在方法申明上的,抛出方法内部的异常。作用:编译时异常是编译阶段就报错,提醒更加强烈,一定需要处理!

2023-06-07 19:24:33 51

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除