自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 javaweb-web基础(分层解耦)

第二步:为controller和service注入运行时所需要的依赖对象。前面的案例,是把读取,解析和返回给前端都放在了一个list方法里面了。将dao和service的实现类交给容器来管理。修改之前的代码后,发现依赖注入确实是传递进来了。代码的复用性差且后期维护困难。

2026-02-06 16:47:11 176

原创 javaweb-springboot案例

引入前端和数据源的静态资源。

2026-02-06 10:39:58 208

原创 javaweb-web基础(http协议)

http:响应数据格式。

2026-02-05 18:54:35 124

原创 javaweb-web基础(springboot入门)

spring框架有时候会报错,因为我们下载不到国外的spring框架,我们可以切换成国内阿里云的url地址:https://start.aliyun.com。紧接着就在浏览器中请求本地地址,就可以看到请求成功,并且在idea中的控制台上也会输出,到此,springboot入门程序就完成了。在start的这个依赖里面会有一个tomcat依赖,所以其实在启动main方法的时候,其实是启动了tomcat服务器。其中spring boot可以帮助我们非常快速的构建应用程序,简化开发,提供效率。

2026-02-05 17:18:41 218

原创 javaweb-maven单元测试

所有如果想设置jUnit的测试方法只能放在test文件夹下,不能放在main主程序里面,就可以通过设置scope标签。在企业级开发过程中,难免会少考虑几种情况,可以统计单元测试的覆盖率。测试:是一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。其实后续在开发测试过程中,推荐使用通译灵码来帮助编写测试类。可以利用@DisplayName描述测试类和测试方法。如果不设置,默认是compile。后面直接执行批处理脚本也可以。

2026-02-05 11:39:14 328

原创 javaweb-Maven

去maven依赖的网站https://mvnrepository.com/上找对应的版本,可以找到对应的dependency里面怎么配置的。下载完成之后,在maven的控制面板中就会出现依赖的名称,并且dependency中的名字会变成黑色。双击compile之后,就会编译java中的文件,生成class文件,生成target文件夹中。双击clean之后,就会把上一次生成的class文件都删掉(直接把target删掉)maven中的坐标是资源(jar)的唯一标识,通过该坐标可以唯一定位该资源的位置。

2026-02-03 19:23:35 308

原创 javaweb-Ajax

利用Axios来发起异步请求。

2026-01-29 14:54:45 154

原创 javaweb-Vue3

Vue是一款用于构建用户界面的渐进式的JavaScript框架,可以将服务器端返回的原始数据渲染展示在页面当中。基于数据渲染出用户看到的界面,数据驱动视图。第一部分:Vue入门。

2026-01-28 17:22:03 64

原创 javaweb-javascript

对重复的js代码模块化,抽取成一个js文件,然后在html文件中引用。反引号声明的字符串可以简化模板字符串的拼接。什么是javascript。

2026-01-28 09:49:55 44

原创 javaweb-HTML和CSS(2)

在浏览器中,get请求是有限制的,不适合提交大数据量的表单。如果表单中包含隐式数据,比如密码等,get方法不安全。第二部分:继续智能辅助系统的表单项设置。第四部分:版权展示区(全码)第一部分:顶部导航栏。

2026-01-26 18:04:41 360

原创 java基础-动态代理

new Class[]{Star.class},//参数二:指定接口,这些接口用于指定生成的代理长什么样,也就是有哪些方法。ProxyUtil.class.getClassLoader(),//参数一:用于指定哪个类加载器,去加载生成的代理类。System.out.println(name+"跳舞");System.out.println(name+"唱歌");//返回值:给对象创建的代理。//给对象创建一个代理。//形参:被代理的对象。//类的作用:创建一个代理。这里后续再来研究吧!

2026-01-21 10:56:55 340

原创 java基础-反射

/2、获取所有的成员变量(不区分public还是private,全部获取出来)//3、获取里面所有的方法,(不能获取父类的,但是可以获取子类的私有的方法)//2、获取所有public修饰的方法对象:保护父类的公共方法。//1、获取Teacher的字节码的对象。//1、获取Teacher的字节码的对象。//4、获取public单个的成员变量。//2、获取public的成员变量。//5、获取私有修饰的单个成员变量。//获取成员变量的名字。//1、获取字节码文件的对象。//3、获取所有的成员变量。

2026-01-21 09:59:40 485

原创 java基础-网络编程练习

/1、创建ServerSocket对象并绑定客户端指定的端口。//4、再用缓冲流写到需要存的本地的Serverdir。//1、创建ServerSocket对象并绑定客户端指定的端口。//1、创建ServerSocket对象,绑定客户端发送端口。//1、创建Socket对象,指定要链接的主机IP和端口。//4、再用缓冲流写到需要存的本地的Serverdir。//2、等待客户端链接,会返回客户端的链接对象。//2、等待客户端来链接,生成Socket链接通道。//2、等待客户端链接,会返回客户端的链接对象。

2026-01-20 15:55:21 530

原创 java基础-网络编程-TCP

TCP:TCP通信协议是一种可靠的网络协议,它在通信的两端各建立一个Socket对象。os.write("你好".getBytes("UTF-8"));//1、创建sercerSocket。//2、可以从链接通道中获取输出流。//1、创建Socket对象。通过Socket产生IO流来进行网络通信。//2、监听客户端的链接。//3、从链接通道中获取。//将字节流变为字符流。在通信之前一定要保证通信已经建立。

2026-01-19 18:08:53 418

原创 java基础-网络编程-UDP

System.out.println("ip为:"+ip+"主机名为"+hostName+"发送了数据"+new String(data,0,dp.getLength()));System.out.println("该数据是从"+address+"这台电脑中的"+port+"端口发出的");//细节:在接收的时候一定要绑定端口,而且绑定的端口要和发送的端口保持一致。协议:数据在网络中传输的规则,常见的协议有UDP、TCP、Http、https、ftp。//这里的消息是阻塞的,程序会在这里一直死等。

2026-01-19 16:36:11 629

原创 java基础-线程池

Executors.defaultThreadFactory(),//创建线程工厂。new ArrayBlockingQueue<>(3),//指定排队的队伍长度。6,//最大线程数量,不能小于0,最大线程数量大于等于核心线程数量。TimeUnit.SECONDS,//时间单位。3,//核心线程数量,不能小于0。60,//空闲线程最大存活时间。3、所有的任务全部执行完毕,关闭线程池。//获取线程池的对象。最大并行数:四核8线程。

2026-01-17 22:51:49 339

原创 java基础-多线程练习

System.out.println("在本次抽奖中"+Thread.currentThread().getName()+"总共产生了"+boxList.size()+"个奖项");System.out.println("分别为:"+list1+","+"最高奖项为"+list1max+","+"总计额为"+list1sum);System.out.println("分别为:"+list2+","+"最高奖项为"+list2max+","+"总计额为"+list2sum);

2026-01-16 18:51:49 617

原创 java基础-多线程等待唤醒机制(生产者和消费者)

/同样需要锁对象来调用wait,目的是绑定锁对象和线程。System.out.println("吃货在吃面条,还能吃"+Desk.count+"碗");System.out.println("生产者开始制作食物");System.out.println("生产者生产了食物");//吃完之后需要修改桌子上食物FoodFlag的状态。//吃完需要,唤醒生产者,还需要把吃的总数减一。//3、生产完之后,就要修改桌子上食物的状态。//1、判断桌子上是否有食物,如果有就等待。//2、如果没有食物,就生产。

2026-01-15 13:50:14 574

原创 java基础-多线程的安全问题和同步代码块

细节一:synchronized需要写在循环里面,如果写在循环外面,就会导致只有一个线程在工作,这个线程在工作的时候,synchronized是锁住的,只有当这个线程工作完,锁才会打开。如果锁对象不唯一,就会导致进程1进来锁住的锁,这个锁是没有办法阻挡进程2进来的。注意:如果线程sleep被唤醒之后,是不会立刻执行run()里面的代码的,而是需要重新抢夺cpu的执行权,抢到才可以执行代码。比如下面的this,每个进程调用的时候都会执行不一样的锁对象,就会导致锁对象不唯一。

2026-01-14 17:49:43 57

原创 java基础-多线程的三种实现方式和成员方法

注意看下面,线程2只打印了3,4后面的就不打印了,是因为,虚拟机检测到线程1已经结束了,所以就会陆续终止线程2了。线程:线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中实际运作的单位。这里需要注意的是:这种方式呢,需要利用Thread的静态方法currentThread,这个方法是可以查看执行到当前这段代码是哪个进程。//main线程,这个线程的作用就是调用main方法,执行里面的代码。//3、当时间到了之后,线程会自动醒来,继续执行下面的代码。优先级越高,抢占到资源的概率就越高。

2026-01-14 10:55:31 312

原创 java基础-IO流(随机点名器)

/结果应该是{0.0~0.1,0.1~0.2,0.2~0.3,0.3~0.4,0.4~0.5,0.5~0.6,0.7~0.8,0.9~1.0}System.out.println("男孩的概率 "+String.format("%.2f", i)+"%");System.out.println("=========第"+i1+"轮=============");//如果要查找的数据不存在,会返回负的插入点减一。

2026-01-13 15:16:58 574

原创 java基础-IO流(网络爬虫/工具包生成假数据)

/获取百家姓的网址: // https://hanyu.baidu.com/shici/detail?//获取男孩姓名http://www.haoming8.cn/baobao/10881.html。//获取女孩姓名http://www.haoming8.cn/baobao/7641.html。//获取女孩姓名http://www.haoming8.cn/baobao/7641.html。list.add(girl+"-女-"+girlAge);list.add(girl+"-女-"+girlAge);

2026-01-12 15:23:43 387

原创 java基础-IO流(hutool)

/另外一个方法是readUtf8Lines():按照UTF-8的方式把数据读取到文件中,和readlines中指定字符编码一样的效果。//3、writelines:把集合中的数据写到文件中,覆盖模式,可以写一个true续写。// //2、touch:根据参数创建文件,如果父级路径不存在,会把父级路径一起创建出来。//4、appendlines:把集合中的数据写到文件中,可以追加。//5、readlines:指定字符编码,把文件中的数据读到集合中。//file:根据参数创建一个file对象。

2026-01-07 10:10:02 328

原创 java基础-IO流(Commons-io)

在日常开发过程中,大部分的时候,我们都不会自己写IO流,一来是太复杂,容易和核心的业务代码混淆,二来自己写的IO流往往效率低,存在问题,给后续项目二次开发带来很多不必要的麻烦。//copyDirectoryToDirectory和copyDirectory的区别在于,copyDirectoryToDirectory会把源文件的文件夹复制到目的地。//E:\test\\test.txt复制生成E:\doc\doc.txt下面。//E:\test\test1复制到E:\doc下,生成一个test2文件夹。

2026-01-06 18:54:42 682

原创 java基础-IO流(压缩流和解压缩流)

/压缩包的原理,其实是把test文件放在了一个test.zip当中,这个test.zip压缩包本身并不是这个文件。//获取数据源里面的数据,变成zipentry对象,并放到压缩包中,递归。//2、创建File对象,表示压缩包的位置(你压缩完文件后,放的位置)//获取src里面的每个对象,变成Zipentry对象,放入到压缩包当中。//读取文件,写到压缩包里面。

2026-01-06 16:35:00 762

原创 java基础-IO流(打印流)

ps.printf("%s爱上了%s","阿珍","阿强");

2026-01-04 19:13:49 130

原创 java基础-IO流(序列化流和反序列流)

如果javabean中有一些属性,你不想序列化,比如student类中,有name,age,address,你不想序列化address,这个时候可以添加关键字。细节一:如果使用反序列化流在解析数据的时候,JAVAbean类是不能修改的,一旦修改就会导致两边的标识不一样。设置IDEA之后,如果不记得写,IDEA会有一个深色背景在类名的背后,你可以自己写一个。需求:将多个自定义对象序列化到文件中,但是对象的个数不确定,该如何操作的?序列化流/对象操作输出流:可以把JAVA中的对象写到本地文件中。

2026-01-04 17:33:16 251

原创 java基础-IO流(转换流)

3、将本地GBK文件转化为UTF-8,两种方式,JDK11之后会不需要单独new一个字符基本流,也不用在做字符转换了。//同样的在JDK11之后,字符输出流也可以指定字符编码了。//利用字节流读取文件,每次读取一整行,并且不能乱码。//将本地GBK转化为UTF-8字符编码。// osw.write("你好");//利用转换流按照指定字符编码读取。//利用转换流按照指定字符编码写出。//1、创建对象并指定字符编码。//方式二:JDK11之后的。// //写出数据。

2025-12-31 18:16:26 811

原创 java基础-IO流(缓冲流)

System.out.println("欢迎使用本软件,第"+count+"次使用免费");System.out.println("本软件只能免费使用3次,欢迎注册会员后继续使用");//4、字节缓冲流一次读取一个字节数组,拷贝文件。//1、利用字节流一次读写一个字节,拷贝文件。//3、字节缓冲流一次读取一个字节,拷贝文件。//创建字节缓冲输入流对象。//一次读取一个字节数组。//2、利用字节数组读写文件,拷贝文件。

2025-12-31 15:26:46 543

原创 java基础-IO流练习

可以继续用上面的加密算法,把起始文件清空,然后把起始文件和目的文件路径换一下,就可以把加密后的数据解密写入到起始文件中。//遍历begSource里面的子文件/文件夹。//修改文件数据:将2-1-9-4-7-8排序重新写入。//E:\file及其子文件夹,拷贝到E:\test。//如果起始文件是一个文件夹,在目标地址上要新建目录。//这个就是要写入到原本的test.txt文件中。//起始路径是一个文件,直接写到新的路径下。//拷贝一个文件夹,考虑子文件夹。//2、创建对象关联加密文件。

2025-12-30 11:56:03 747

原创 java基础-IO流(字符流)

/写出一个字符数组。//截取字符数组写入。//fw.write("哈喽");//也可以一次读取多个,按照数组来读取。//FileWriter:字符输出流。//关联本地文件路径,默认是不续写的。//用file路径的对象来处理。//1、用地址来创建。// //读取文件。// //关闭资源。// //创建对象。// //读取文件。

2025-12-29 10:40:36 758

原创 java基础-IO流(字符集)

/IDEA中默认是UTF-8。//利用String的构造方法来解码,指定解码的方式。//利用String的构造方法来解码。String str="汉字";//JAVA的编码方式。

2025-12-26 10:28:00 217

原创 java基础-IO流-2(了解)

/利用try catch finally拷贝文件中代码出现的异常。//一次读取一个字节数组的数据。

2025-12-25 17:09:08 245

原创 java基础-IO流-1(重要)

/第三种:从字节数组b的2索引处,写入2个长度。//细节:IO流中,每一种流使用完都需要释放资源,释放资源后可以解除资源的占用,便于其他的应用来获取资源。//2、如果文件不存在,会创建一个新的空文件,但是要保证父级文件是存在的,如果父级路径不存在,会报错。//第二种:这里是写入字节数组的全部。//细节1:write中参数是整数,但是写入到文件内的是整数对应的ASCII对应的数据。/*操作步骤:1、创建对象,2、写出数据,3、释放资源*///细节:1、参数是字符串表示的路径或者File对象。

2025-12-25 15:57:56 460

原创 java基础-File

/createNewFile:创建一个新的空的文件(注意是文件不是文件夹,如果文件已经存在,会返回false)这里的路径包含文件夹和文件夹的路径。//比如当前已经存在一个E:\file\file2这个路径,再创建E:\file\file2文件夹是就会失败。//细节2:如果删除的是空文件夹,则直接删除同样不走回收站,如果删除的是非空文件夹,那么会删除失败。//length()表示文件的大小:注意只能表示文件的大小,没有办法表示文件夹的大小。//getAbsolutePath()返回文件/文件夹的绝对路径。

2025-12-24 09:42:49 583

原创 java基础-异常

问二:如果try中遇到多个问题,会第一个异常发生的时候,就去catch中查找是否有对应的捕获代码,如果有就紧接着执行catch和之后的代码。如果try中遇到了异常,直接就会去执行catch中的内容,不会再继续执行try异常后续的代码,如果catch中有捕获到,那就正常执行catch里面的内容,如果没有捕获到,那就JVM帮你默认捕获。问一:如果try中没有遇到问题,就会把try中的全部代码都执行完毕,不会执行catch中的代码,所以只有当出现了异常,才会执行catch中的代码。

2025-12-22 17:05:49 924

原创 java基础-方法引用

/需要特别注意:因为在static中没有this,所以在静态的main方法中是没有办法直接用this调用的 //你可以有两种方法:1、还是创建本类的对象,2、单独写一个非静态的方法,就可以用this::getstr了。Collections.addAll(list,"张无忌,15","周芷若,16","灭绝师太,30","张三丰,100");Collections.addAll(list,"张三,23","李四,24","王五,25");//集合中存储一些字符串的数据,比如"张三,23",

2025-12-21 18:06:33 979

原创 java基础-stream流练习

Collections.addAll(actorWoman,"赵丽颖,21","杨幂,22","迪丽热巴,23","杨澜,24","杨紫,25","赵露思,26");Collections.addAll(actorMan,"刘昊然,22","张成,22","侯昊,23","王安宇,24","林一,25","王鹤棣,26");.filter(s -> s.getName().startsWith("杨"))//定义一个集合,存储整数1,2,3,4,5,6,7,8,9,10。

2025-12-19 17:00:48 812

原创 Java基础-Stream流

Collections.addAll(st1,"张三丰-男-16","张四丰-男-17","赵六-女-18","张无忌-男-17","张翠山-男-19","张大炮-女-20");Map<String, Integer> collect = st1.stream().filter(s -> "男".equals(s.split("-")[1]))Collections.addAll(st,"张三丰","张三丰","赵六","张无忌","张翠山","张大炮","张三","李四","王五");

2025-12-19 11:55:41 873

原创 java基础-集合练习

Collections.addAll(name,"张浩然","李宇轩","王子轩","刘博文","张甜甜","李心心","王笑笑","陈睿哲","赵晨曦","周天宇");Collections.addAll(name,"张浩然","李宇轩","王子轩","刘博文","张甜甜","李心心","王笑笑","陈睿哲","赵晨曦","周天宇");Collections.addAll(boyname,"张浩然","李宇轩","王子轩","刘博文","陈睿哲","赵晨曦","周天宇");//用来存放抽取到的学生信息。

2025-12-15 11:18:08 604

空空如也

空空如也

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

TA关注的人

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