- 博客(27)
- 收藏
- 关注
原创 javaweb XML DOM4J
tips1:新建resources目录,并将src中的jdbc.properties移到resourcs中,并且右键标记为源代码根目录,这样运行src时就会和properties文件编译到一起。类等提供的 API 来操作 Java 类的信息。通过反射,你可以在运行时获取类的信息,如构造方法、字段、方法以及接口等,而无需在编译时知道这些信息。XML作用就是配置文件,properties使用不了较复杂的需求,xml应运而生。重温一下反射,反射的底层原理主要是通过 Java 的。这是jdbc.xml。
2025-09-15 22:09:00
145
原创 javaweb CSS
1.行内式2.内嵌式3.外部样式表注意左侧有一个专门的css文件夹href是超链接引用,rel是关系属性,用来描述当前文档与被链接文档之间的关系。
2025-09-14 23:56:18
258
原创 javaweb HTML基本介绍/常见标签
1.1HTML(HyperText Markup Language)是超文本标记语言,是构建网页和应用程序的基础语言。它通过标记语言(即标签)来定义和描述网页的内容和结构。主要用于网页主体结构的搭建1.2一般文档声明不需要我们自己去写,会自动生成1.3在我们打开浏览器时,就有可能传输请求到了服务器上的html上,但是解析是在本地的浏览器上解析的。而且,在自己的电脑上,同样可以创建一个html然后响应1.4专业词汇1.5语法细节感觉不难,使用的时候记着就好了1.6结构解析。
2025-09-14 08:00:00
445
原创 java 反射Class类/加载类/创建对象及方法
1.子类结构图2.父类结构图3.基本介绍3.2 Class类不是new出来的,而是类加载器使用loadClass生成看Class类对象3.2.1 普通new及源码3.2.2 使用反射方式3.3 上面3.2的例子老师犯的错误正好也佐证了第三点,就是不管new多少次,Class类对象都只会生成一次请看例子,明面上写了两个Cat类的class但是最后其实是一样的3.5 Class类常用方法3.5.1第六点,如果brand属性是私有的,则会报错3.5.2运行结果顺利。
2025-09-12 23:55:55
637
原创 java properties/反射基础
使用properties修改文件使用store创建时,null处对应的是备注于是这里出现了一个mysql2.properties的文件并创建了输入值再修改一下源代码,mysql2中的中的值也重新被修改了底层源码。
2025-09-11 22:33:00
269
原创 java 泛型
1.普通成员使用泛型2.泛型数组不能初始化,因为在new时还没确定具体是什么类型的时候,Jvm不知道要开辟多大的空间3.静态方法也不能用,因为静态方法在类初始化加载的时候对象还没有创建,不知道开辟多少空间2.3.一般最好还是在后面写上<Object,Object>,不写也可以1.标准的泛型方法2.在调用泛型方法时,会让你指定类型,正常输入即可,编译器会自动判断3.泛型方法与使用泛型练习 题目和答案在图上。
2025-09-09 23:51:17
184
原创 java TreeSet(Map)/确认集合选型/Collection工具类
在不做处理/使用无参构造器的时候,按理来说输出应该是无序的,但我试验了一下还是有序的,可能是我用的是jdk21会自动加上。进入了在空集中添加元素的addEntryToEmptyMap,直接计入root中了(可以看到用的还是map的源码)由于t,也就是root不为空,所以把comparator(比较器)赋给cpr,cpr就是我们的匿名内部类。不过对应的,由于前面所说的重复的不会加进去,所以若是add长度一样的字符串,是加入不进去的。由于我们是有构造器的,所以自然进入了cpr不为空的语句。
2025-09-08 21:30:39
823
原创 java LHashSet源码分析/Hashtable/Properties
数组是HashMap$Node[],存放的元素或者数据是LinkedHashMap$Entry,实际上是一种多态现象。Entry是静态内部类,而这个内部类继承了HashMap.Node。1.底层有数组Hashtable$Entry[],初始化大小为11。有图可得,底层确实用的是LinkedHashMap。2.临界值threshold 8=11*0.75。如果扩容到了最大的大小,会直接return。进行put时,底层实际还是map那一套。3.扩容:超过临界值时,容量*2+1。Hashtable的底层。
2025-09-07 20:10:06
350
原创 java HashSet()底层机制与源码解析(逐行分析版)
回顾集合图,可以发现我们List类已经学习完毕,接下来可以开始学习Set了接口和常用方法注意看注释虽然存放数据是无序的,但是只要加入到hashset中,就会一直是那个顺序遍历的两种方式:迭代器和增强for循环注意的就是不能够使用索引,也就是不能够使用普通的for循环去得到set接口的对象set常用方法。
2025-09-03 23:53:56
613
原创 java集合-ArrayList/Vector/ LinkedList源码分析
以上策略不适用,编者重写了else语句,会直接选择在DEFAUIT_CAPCITY和minCapacity中最大的那个(因为需要满足存储的需求),可以看到这里的DEFAUIT_CAPCITY被初始化为一个长度为 10 的数组。用crtl+b步入add函数,if语句用来判断位置是否已满,若相等则说明已满,需要用grow()扩展,接着就是赋值和将size++,若长度足够,则不需要调用grow()没有被显式设置,扩容时的增长量将与当前容量相同,会使用推荐的增长策略(通常是。引用,指向新的数组,完成扩容操作。
2025-09-01 22:58:45
807
原创 java 异常处理
自己做项目时一般会用,设置时不建议设置成编译异常,不然的话还得显式抛出以下是自定义异常的一个例子,这样在年龄不符合范围时,会抛出异常提示。
2025-08-27 23:32:11
392
原创 java 注解
Java SE (Standard Edition)是是基础版,适合单一的应用开发。Java EE (Enterprise Edition)适用于企业级应用开发,尤其是需要处理大规模事务和服务的应用。
2025-08-26 17:08:42
248
原创 java 抽象类 内部类
第七点,只要拥有大括号,就视为实现了方法,哪怕方法体里是空的。比直接方法重写多的好处就是子类必须重写,且不会调用父类(?抽象类只能修饰类和方法,不能修饰属性和其他。抽象模版模式韩顺平401p 不懂可以复习。注意第五点是抽象方法,而非抽象类。
2025-08-24 22:39:37
172
原创 Java 构造器 equals
构造器基本语法:构造器作用:在完成类及成员变量的创建后,对成员变量进行初始化使用示例:构造器重载:根据参数的不同,构造器也会进行重载,不同的构造器起到不同的初始化,具体由用户所设定的不同的构造器所决定。
2025-08-23 16:26:51
132
原创 java 静态变量/main方法/代码块
static代表静态字段,代表着类下所有static变量是对象共享,且jdk8以下,类变量放在方法区,jdk8以上,放在堆中使用时推荐使用类名.类变量名来使用。
2025-08-18 22:26:32
150
原创 java hashcode/toStaring方法/finalize方法/断点调试
@Override”是重写的意思。F8跳过指的是一行一行地执行。断点调试(debug)toString方法。
2025-08-13 21:53:18
142
原创 Java 封装 继承
封装是面向对象编程的一个核心概念,它是指将对象的状态(属性)和行为(方法)封装在一个类中,并且通过控制访问权限来保护对象的内部数据不被外部直接修改。目的在于减少系统的复杂度,提高代码的安全性和可维护性。
2025-08-02 22:41:05
459
原创 java面向对象创建的存储和解析
(注意定义方法格式:属性,返回情况,方法名,参数)2.在主函数中new方法空间,并创建一个新的类对象。创建过程:(栈、堆和方法区的作用)1.创建一个类,在类中编写方法。3.调用类中的方法,注意返回值。
2025-07-25 16:23:58
167
原创 java 位运算符及原码 反码 补码
反码:正数的反码与原码相同,符号位同时改变。负数的反码与其原码按位取反,但符号位不变。1 byte=8bit,1 bit为一位,字节数根据数据类型不同而有不同。原码:直接用二进制表示数,最高位数字代表符号,为1是负数,为0是正数。(例如Int为4byte,所以她有32bit,故有32位数)补码:正数的补码和原码相同,负数的补码是反码+1。补码作用:统一正负数。
2025-07-20 23:29:01
140
原创 【洛谷】暴力-全排序
我的思路:第一反应,跟昨天做的n中取r一样用集合,事实证明确实输入之类的是用集合,但是我第一个想不通的点是该怎么让一组数顺利输入,这时我并没有想到数字位数就是n位,还在想怎么表示(或者说在想先把值输入一个数组中,再如何如何)。接下来开始搜寻其他的数,先判断,此数是否被用过,判断条件是!pd[i]是否为0,,因为后面一个数被用过的话,我们会置为0。是因为储存需要输出组合的数组下标从0开始,判断条件从0开始的话,刚好k=n就可以输入了。跟昨天的代码有异曲同工之妙,可惜这次的我自己写还是写不出来,哎。
2025-03-21 03:09:19
217
原创 【洛谷】暴力集合-组合的输出
不然就从第k位数字的下一位开始找(此处k-1是因为数组是从0开始计数的)再把那个数纳入数组,再递归判断是否超过r需要的个数。中间的return 是指返回上一层,意思是已经选好了一组数,现在输出其他可能。因为k的值一直在+1,所以不会重复。我的思路:一开始我想到的是暴力循环破解,但是思索许久不知道从何下手。递归函数的功能是搜索第k个数,如果已经选够了,那么直接输出。建立一个数组,储存已经找好的组合,到时候按要求输出。
2025-03-19 23:25:17
193
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人