- 博客(121)
- 收藏
- 关注
原创 Commons-io工具包
加入到项目之后,需要关联上,在关联上之后就可以打开看见里面写的文件了。将第一个jar包放入到项目的lib文件夹中。FileUtils类(文件/文件夹相关)
2024-09-30 12:04:56
435
原创 spring简短注入
在实际开发中,我们一般不会把Date当做简单类型,虽然它是简单类型。一般会采用ref给Date类型的属性赋值。xml里面进行数据填入。在test里面进行测试。
2024-09-29 20:53:04
399
1
原创 依赖注入之set注入
set注入,基于set王法实现的,底层通过反射机制调用属性对应的set方法,然后给属性赋值,这种方法要求属性必须对外提供set方法。2. name属性怎么指定值:set方法的方法名,去掉set,然后把剩下的单词首字母变小写,写到这里。3.ref翻译为引用。ref后面指定的是要注入的bean的id。这里的name实际上是set方法通过去除set然后第一个大写字母变成小写,来实现的name。1. 想让Spring调用对应的set方法,需要配置property标签。和这个userDao以及vipDao没有关系。
2024-09-28 18:40:15
226
原创 spring6启用Log4j2日志
配置 说明%d{HH:mm:ss.SSS} 输出日志打印的时间,精确到毫秒[%t] 输出当前线程名称%-5level 输出日志级别,-5表示左对齐并且固定输出5个字符,不足在右边补空格%logger{36} 输出logger名称,一般是类的全限定路径名%msg 输出要打印的业务日志信息%n 日志换行Log4j2共有8种日志级别,-- 运行日志位置-->-- info日志滚动仓库-->-- 错误日志滚动仓库-->--日志格式-->--文件过期时间-->--单文件大小-->
2024-09-28 18:39:26
539
原创 依赖倒转原则(DIP)
依赖倒转原则(DIP):Dependency Inversion Principle,模块之间要依赖抽象,不依赖实现,要面向接口编程,不要面向实现编程。7.之后如还需改为“HuaweiComputer”,只需添加“HuaweiCpu”和8.“HuaweiMemery”,并在测试类中做修改即可。5.创建“InterCpu”和“AmdCpu”类,使其实现Cpu接口;1.有个“Computer”类,与它关联的有“InterCpu”和“InterMemory”类,直接面向实现类编程,实现启动电脑。
2024-09-26 22:04:08
315
原创 字节打印流&&字符打印流
分类:打印流一般是指:PrintStream,PrintWriter两个类。特点3:特有的写出方法,可以实现自动刷新,自动换行。特点1:打印流只操作文件目的地,不操作数据源。特点2:特有的写出方法可以实现,数据原样写出。打印一次数据 = 写出+换行+刷新。打印流不能读,只能写。
2024-09-26 22:03:13
262
原创 开闭原则(OCP)
7.这些类中有实现自己计算功能的方法,之后如果想要增加其他的计算功能,如“乘法”、“除法”,就可以直接增加 “乘法”、“除法”的类,去继承于“计算”类即可,无需修改“计算”类中的内容,即对扩展开放,对修改关闭。当进行系统功能扩展的时候,如果动了之前稳定的程序,修改了之前的程序,之前所有程序都需要进行重新测试。反之,如果在扩展系统功能的时候,你修改了之前的代码,那么这个设计是失败的,违背OCP原则。OCP原则是最核心的,最基本的,其他的六个原则都是为这个原则服务的。4.所以需要对扩展开放,对修改关闭。
2024-09-25 22:02:12
472
原创 序列化流(对象操作输出流)&&反序列化流(对象操作输入流)
可以把Java中的对象写到本地文件中使用对象输出流将对象保存到文件会出现NotSerializableException异常解决方案:需要让Javabean类实现Serializable接口StudentObjectStreamDemo反序列化流(对象操作输入流)构造方法在这个里面需要注意的是版本号的问题,这样在更改之后不会报错自动生成这个版本号复制Serializable点击Settings在里面搜索Settings把下面的这两个勾选上这样应用到idea中就可以自动生成
2024-09-25 22:00:40
423
原创 Java转换流
转换输出流:OutputSteamWriter。转换输入流:InputStreamReader。InputStreamReader输入流。文件从GBK转换成UTF-8。是字符流和字节流之间的桥梁。
2024-09-24 21:45:02
213
原创 IO流体系(FiletOutputStream)
细节1:参数是字符串表示的路径或者是File对象都是可以的细节2:如果文件不存在会创建一个新的文件,但是要保证父级路径是存在的。细节3:如果文件已经存在,则会清空文件。
2024-09-20 15:46:10
302
原创 file的判断和获取,创建和删除
1.length 返回文件的大小(字节数量)细节1:这个方法只能获取文件的大小,单位是字节如果单位我们要是M,G,可以不断的除以1024细节2:这个方法无法获取文件夹的大小如果我们要获取一个文件夹的大小,需要把这个文件夹里面所有的文件大小都累加在一起。
2024-09-19 17:26:40
332
原创 File异常(获取并遍历)
5.当调用者File表示的路径是一个有隐藏文件的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回,包含隐藏文件。4.当调用者File表示的路径是一个有内容的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回。6.当调用者File表示的路径是需要权限才能访问的文件夹时,返回null。3.当调用者File表示的路径是一个空文件夹时,返回一个长度为0的数组。1.当调用者File表示的路径不存在时,返回null。2.当调用者File表示的路径是文件时,返回null。
2024-09-19 17:25:39
268
原创 初识File
file对象就是表示一个路径,可以是文件的路径,也可以是文件夹的路径。相对路径 :不带盘符,默认当前项目下去找。这个路径可以是存在的,也允许是不存在的。
2024-09-19 17:24:35
166
原创 Java异常(小练习)
/技巧//NameFormat 当前异常的名字,表示姓名格式化问题//Exception 表示当前类是一个异常类//运行时异常:RuntimeException 核心 由于参数错误的异常//编译时异常:Exception核心 提醒程序员检查本地信息。
2024-09-19 17:23:46
270
原创 java抛出异常
注意:写在方法内,结束方法,手动抛出异常对象,交给调用者,方法中下面的代码不再执行。注意:写在方法定义处,表示声明一个异常告诉调用者,使用本方法可能会有哪些异常。编译时异常:必须要写。运行时异常:可以不写。
2024-09-18 16:44:27
914
原创 异常在代码中的两个作用,如何处理异常
JVM默认的处理方式把异常的名称,异常原因出现的位置等信息输出在控制台程序停止执行,下面的代码不会再执行自己处理异常(捕获异常)try{可能出现异常的代码;}catch(异常类名 变量名){异常处理代码;目的:当代码出现异常的时候,可以程序继续往下执行好处:可以让程序继续往下执行,不会停止。
2024-09-18 16:38:10
388
原创 Java(异常)
Error:代表的系统级别错误(属于严重问题,系统一旦出现问题,sun公司会把这些错误封装成Error对象,Error是给sun公司自己用的,不是给我们程序员用的。运行时异常:RuntimeException及其子类,编译阶段不会出现异常提醒。运行时出现的异常(如:数组索引越界异常)Exception:叫做异常,代表程序可能出现的问题,我们通常会用Exception以及他的子类来封装程序出现的问题,Java不会运行代码,只会检查语法是否错误,或者做一些性能的优化。编译时异常:编译阶段就会出现异常提醒的。
2024-09-17 16:00:36
415
原创 方法引用(Java)
1.引用处必须是函数式接口2.被引用的方法必须已经存在3.被引用的方法形参的返回值需要跟抽象方法保持一致4.被引用方法的功能要满足当前需求。
2024-09-17 15:59:22
772
原创 Stream练习
男生查找姓名长度为三,并且选择前两个人,女生查找姓名姓杨,并且跳过第一个人,将两个查找到的人,一起放入到一个链表当中,创建Actor,给姓名和年龄赋值。
2024-09-15 14:38:09
558
原创 Java不可变集合
2.当使用Map的时候,键不能重复,数量有上限只能容纳10个键值对,如果超过10个,只能用ofEntries方法,JDK>=10可以使用copyof的方法。在List Set Map接口中,都存在静态的of方法,可以获取一个不可变的集合。1.如果某个数据不能被修改,把它防御性地拷贝到不可变集合中是个很好的实践。1.当我们要获取一个不可变的Set集合时,里面的参数一定要保证唯一性。2.当集合对象被不可信的库调用时,不可变形式是安全的。创建不可变集合 的应用场景。创建不可变集合 的书写格式。
2024-09-14 20:40:15
279
原创 java 可变参数
可变参数的底层就是一个数组,只不过不需要我们自己创建了,Java会帮我们创建好。2.除了可变参数以外,还有其他形参,那么可变参数写在最后。方法形参的个数是可以发生变化的,0,1,2,3...1.方法的形参中,最多定义一个可变参数。格式:属性类型...名字。
2024-09-13 10:11:29
233
原创 HashMap底层原理2
两个线程,假设HashMap的size为15,线程A从主内存获得15,准备进行++的操作的时候,被挂起,然后线程B拿到size并执行++操作,并写回主内存,这时size是16,然后线程A继续执行(这时A线程内存size还是15)++操作,然后写回主内存,即线程A和线程B都进行了put操作,然后size值增加了1,所以数据被覆盖了。继续执行线程A,执行 newTable[i] = e,因为当时 e = 3,所以将3放到对应位置,此时执行 e = next,因为 next = 7(第②步),所以 e = 7。
2024-09-12 10:38:19
1460
原创 HashMap源码超详细解析
数组的名字Node[ ] table数组默认长度16DEFAULT_ LOAD_ FACTOR: //默认加载因子0.75。
2024-09-12 10:27:30
1007
原创 LinkedHashMap,TreeMaps
原理:底层数据结构是依然哈希表,只是每个键值对元素又额外的多了一个双链表的机制记录存储的顺序。TreeMap跟TreeSet底层原理一样,都是红黑树结构的。注意:默认按照键的从小到大进行排序,也可以自己规定键的排序规则。创建集合时传递Comparator比较器对象,指定比较规则。这里的有序指的是保证存储和取出的元素顺序一致。实现Comparable接口,指定比较规则。由键决定特性:不重复、无索引、可排序。由键决定:有序、不重复、无索引。可排序:对键进行排序。代码书写两种排序规则。
2024-09-10 21:29:10
205
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人