自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 UML知识点总结

​. ​. ​韩国 - StarUML (SU). ​MS - Visio. ​枫叶云 (. ​draw.io*这里我是用的是 draw.io*​**详情可看https://blog.youkuaiyun.com/sunyctf/article/details/131432972**​。

2024-12-24 15:13:16 837

原创 数据库设计

​迷你型 1字节 128~127小整型 2字节 32768~32767中整型 3字节 8388608~8388607标准整型 4字节 2147483648~2147483647大整型 8字节 -9223372036854775808~9223372036854775807​​Float 7个有效位Double 15个有效位Decimal 28个有效位Float: 需要小数部分并且对精度的要求不高时,选择float。

2024-12-19 14:07:05 924

原创 SpringSecurity从精通到入门

前端发送 url 进行访问 , 我们将实现类替换,

2024-11-22 20:54:02 1093 1

原创 java generic03

class person<E> { //E 表示 s 的数据类型 该数据类型是在定义 person 对象的时候制定 即。//4. 泛型的作用是 可以在类声明时 通过一个标识表示类中某个属性的类型 或者是某个方法的返回值。public person(String name) {// E也可以是参数类型。public person(E name) {// E也可以是参数类型。public E info (){ // 方法返回类型 也可以是 E。// 在编译期间 就是确定 E 是什么类型。

2024-03-02 22:30:05 413

原创 java generic泛型01improve

/1. 当我们Arraylist<dog1> 表示存放到 Arraylist 集合中的元素是 dog1类型。//3. 在遍历的时候 可以直接取出 dog1 类型 而不是object 类型。// arrayList.add(new cat1("妞妞",1));package com.wq.generic泛型.improve;public class generic泛型01improve {//2. 如果编译器发现添加的类型 不满足当前条件 就会报错。

2024-03-02 22:29:07 361

原创 java generic泛型01

Exception in thread "main" java.lang.ClassCastException: com.wq.generic泛型.improve.cat cannot be cast to com.wq.generic泛型.improve.dog。at com.wq.generic泛型.improve.generic泛型01.main(generic泛型01.java:16)package com.wq.generic泛型.improve;//在下面就是出现 一个类型异常。

2024-03-02 22:26:51 424

原创 java 集合work4

package com.wq.集合work;

2024-03-02 22:25:38 404

原创 java 集合work3

package com.wq.集合work;

2024-03-02 22:24:50 379

原创 java 集work2

添加多个对象 = [car{name='1', price=1.0}, car{name='1', price=1.0}, car{name='1', price=1.0}, car{name='1', price=1.0}, car{name='1', price=1.0}]删除 = [car{name='baoma', price=100000.0}, car{name='sanling', price=1.0E7}, car{name='sibalu', price=1.000654E8}]

2024-03-02 22:24:04 400

原创 java 集合work1

list.add(new news("新冠比例超千万, 数百万印度教徒赴恒河“盛浴”引起民众担忧"));list.add(new news("男子突然想起两个月前钓的鱼还在往兜里, 捞起一看赶紧放生"));package com.wq.集合work;男子突然想起两个月前钓的鱼还在...新冠比例超千万, 数百万印度教...

2024-03-02 22:22:54 355

原创 collections工具类常用方法2

System.out.println("查询tom出现的次数"+Collections.frequency(list , "tom"));System.out.println("自然集合最大元素"+ Collections.max(list));System.out.println("自然集合最小元素"+Collections.min(list));Collections.replaceAll(list, "tom","汤姆");System.out.println("长度最大的元素 = "+ obj);

2024-03-02 22:21:42 328

原创 collection常用方法1

/4. sort(list.comparator) 根据指定的 comparator 产生的顺序对list 集合元素进行。//5. swap (list, int ,int ):将指定list 集合中的 i 处元素和 j 处元素 进行交换。//2. shufle(list) 对list集合 元素进行随机排序 (可以用于抽奖)//3. sort(list) 根据元素自然顺序 对指定list 集合元素 按升序排序。System.out.println("长度排序后"+list);

2024-03-02 22:20:42 369

原创 treemap底层排序源码

else 遍历中 发现 添加的key 与 当前已有的key 相等 就返回 val并替换val 不添加新的key。1. 构造器 把传入的实现了 comparator 接口的匿名内部类 传给treemap。treeMap.put("kristina", "克瑞斯提诺");treeMap.put("smith", "史密斯");treeMap.put("jack", "杰克");treeMap.put("tom", "汤姆");

2024-03-02 22:19:15 416

原创 treeset底层源码分析

*1. 构造器吧传入的比较器对象 赋给了 treeset 的底层 treemap 属性。//3. 使用treeset 提供的一个构造器 可以传入一个比较器(匿名内部类)//调用 String 的compareto 方法 进行字符串大小比较。//1. 当我们使用无参构造器 创建treeset 时 仍然是无序的。//2. 希望按照 首字母字母表来 输出。// 如果遇到相同长度 就加不进去。

2024-03-02 22:18:19 377

原创 properties介绍01

/3. properites 还可以用于 从 xxxx。//1. properties 类继承自 hashtable 并且实现map接口 也是使用一种键值对的形式 k-v。//4. 说明工作后 xxx.properites 文件通常作为配置文件 这个知识点在 io流演示。//获取k 对应的val值。//不可以为null。// 进行读取与修改。

2024-03-02 22:16:30 402

原创 hashtable使用介绍01

/执行方法 addEntry(int hash, K key, V value, int index) {添加k-v 封装到 Entry。//底层有数组 hashtable$Entry[] 初始化大小为 11 k-y -> Entry -> table。//2. hashtable 的键与值 都不能为空null 否则抛出异常NullpointerException。//扩容按照自己的扩容机制。

2024-03-02 22:15:33 348

原创 hashmap演示扩容树化情况

public class hashmap演示扩容树化情况 {return 100;

2024-03-02 22:14:10 397

原创 java hashmap底层源码01

if (p.hash == hash && 如果想要加入的与原来位置有的hash值相等 并且 原位置的key 与 想要加入的key 对象。if ((e = p.next) == null) {如果整个链表没有与其相同的 就加在链表后面。//4. 当添加 key-val 时 通过key 的hash值 得到在数组table 的索引。if (e.hash == hash && 如果链表中有相同的 就判断 满足 就 替换val。// 的key 与准备加入的 key 是否相等 如果相等 则替换val 如果不相等。

2024-03-02 22:13:19 414

原创 java map text01

return id;@Override'}';

2024-02-27 18:12:39 365

原创 java map接口遍历方法

System.out.println("----------------------使用entryset 第三种方法---------------------");System.out.println("-----------------------第二种方法-----------------------");System.out.println("-------------------------第一种方法-----------------");//第二组 : 把所有的values 取出。

2024-02-27 18:11:43 387

原创 java map常用方法

System.out.println(map.containsKey("邓超"));System.out.println(map.get("鹿晗"));map.put("邓超",new Book("",100));map.put("邓超","king");//containskey 查找键是否存在。map.put("王宝强","马蓉");map.put("鹿晗","关晓彤");map.put("邓超","孙俪");map.put("宋喆","马蓉");//2. get 根据键 获取值。

2024-02-27 18:10:35 383

原创 java map02

/ Entry 对象就有 k-v Entryset<Entry<k,v>> 即源码: transient Set<Map.Entry<K,V>> entrySet;// 这是因为 static class Node <k,v> implements map.Entry<k,y>//3. entryset 中 定义的类型是 map.entry 但是实际上存放的还是 hashmap$node。//2. k-v 为方便遍历 还会创建 Entryset 集合 该集合存放的元素的类型 Entry 而一个。

2024-02-27 18:09:36 349

原创 java map_

{no2=123, null=789, no1=king, no4=null, 2=king, no3=sky, no5=null, java.lang.Object@1b6d3586=金毛狮王}// map 中的key 可以为 null value也可以为null 注意key 只能有一个为null value 为 null 可以有多个。// map 中的 key value 可以是任何引用类型的数据 会封装到 hashmap$Node对象中。// map中的 value 是可以重复的。

2024-02-27 18:08:46 350

原创 java linkedHashset text

car{name='god', price=2000000.0}, car{name='king', price=2000000.0}, car{name='三菱evo', price=2000000.0}]set.add(new car("三菱evo", 2000000));

2024-02-27 18:07:17 346

原创 java linkedHashset介绍01

/ 2. linkedHashset 底层是一个 LinkedHashMap 底层维护了一个数组+双向链表(hashmap 的子类)// 4. 数组是 hashmap$Node[] 存放的元素 / 数据是 linkedhashmap$Entry类型。// 2. linkedHashset 底层是一个 LinkedHashMap 底层维护了一个双向链表。//1. linkedHashset 加入顺序 与 取出顺序元素 数据顺序一致。// 1. linkedHashset 是 Hashset 的一个子类。

2024-02-27 18:05:30 338

原创 java HashsetTest02

package com.wq.collection.Set.HashSet全面说明;

2024-02-20 22:45:37 325

原创 java HashsetTest01

package com.wq.collection.Set.HashSet全面说明;如果该位置有存放元素 则需要进行 equals 判断 如果相等则不添加。对哈希值进行运算 得出一个索引值 即为存放在哈希表中的位置号。先获取元素的hash值 (hashcode) 方法。如果该位置没有其他元素 则存放。如果相等则以链表形式添加。

2024-02-20 22:44:43 336

原创 java HashSet底层机制源码分析03

节点 并且table 的大小>=MIN_TREEIFY_CAPACITY(默认为64) 就会进行树化(红黑树)临界值 (threshold) 是16*加载因子 (loadfactor) 是0.75 = 12。package com.wq.collection.Set.HashSet全面说明;hashset 底层是hashmap 第一次添加时 table 数组扩容到 16。如果table 数组使用到了临界值12 就会扩容到16*2 = 32。//debug 看扩容机制。

2024-02-20 22:42:25 384

原创 java HashSet底层机制源码分析02

if (p.hash == hash && //如果当前索引位置 对应的链表的第一个元素 和准备添加的key 的hash值一样。//(2) p 指向的Node 节点的 可以key 的equals() 和准备加入的 key 比较后相同。// (1) 一次和该链表的每一个 元素进行比较 后 如果都不相同 则加入到 该索引中链表的最后。//定义辅助变量 //table就是hashmap的一个数组 类型是 Node[]//(1) 准备加入的key 和 p 指向的Node 节点的 key 是同一个对象。

2024-02-19 23:00:35 899

原创 java HashSet底层机制源码分析01

table = [Lcom.wq.collection.Set.HashSet全面说明.Node;package com.wq.collection.Set.HashSet全面说明;//模拟一个 HashSet 的底层 (就是 hashmap 的底层结构)class Node {//节点储存数据 可以指向下一个节点 从而形成链表。//将 king 节点挂载到 god。//创建一个数组 数组的类型是 Node []// 指向下一个节点。//可以直接把 Node 称作为表。//数组加链表 最后 红黑树。

2024-02-19 22:59:19 382

原创 java HashSet03案例

package com.wq.collection.Set.HashSet全面说明;public class HashSet03案例 {hashSet.add("lucy");//在加深一下 经典面试题。

2024-02-19 22:58:06 317

原创 java HashSet02案例

package com.wq.collection.Set.HashSet全面说明;public class HashSet02案例 {

2024-02-19 22:57:02 402

原创 java HashSet全面说明 HashSet01

package com.wq.collection.Set.HashSet全面说明;4. hashset 不保证元素是有序的 取决于hash后 在确定索引的结果。5. 不能有重复元素 / 对象 在前面set 接口 使用已经讲过。3. 可以存放null 值 但只能存放一个null。2. hashset 实际上是 hashMap。1. hashset 实现set接口。

2024-02-19 22:56:31 338

原创 java SetMethod01接口方法

/ 2. set 接口对象存放数据 是无序的 (添加顺序 与 取出顺序 不一致)// 1. Set接口实现类的对象方法 (set 接口对象)不能存放重复的元素。public class SetMethod01接口方法 {set.remove("king");// 3. 去除顺序是固定的 不会取一次变一次。//使用hashset 实现Set接口方法。// 可以添加一个null;//不能用普通for循环。

2024-02-18 22:07:31 353

原创 java List集合选择01

4. 在一个项目中 业务灵活选择 也坑能 一个模块使用ArrayList 另一个使用 LinkedList。3. 80%-90% 都是查询 大多情况下选择ArrayList。//ArrayList 1 LinkedList 比较。public class List集合选择01 {//增删效率:较低 数组扩容 1 较高 链表追加。2. 增删操作多 选择LinkedList。1. 改查操作多 选择ArrayList。//底层结构:可变数组 1 双向链表;//改查效率:较高 1 较低。5. 两者都是线程不安全。

2024-02-18 22:06:39 311

原创 java LinkedListCRUD方法01

2. 这时 linkedlist 的属性 first= null last = null。public class LinkedListCRUD方法01 {//遍历 linkedlist 实现了 list 接口 可以遍历。

2024-02-18 22:06:08 378

原创 java LinkedList底层结构01

3. 每个节点 (Node对象) 里面有维护了 prev next item 三个属性 其中通过。//让 first 引用指向king 就是双向链表的头结点。//让last 引用指向god 就是双向链表的尾结点。prev 指向前一个 通过next 指向后一个 节点 最终实现双向链表。//双向链表添加对象 :在 wq与god 之间插入一个 bob对象。// 指向后一个节点。// 指向前一个节点。//头到尾 尾到头 将 first 改为last。// 链接三个节点 形成双向链表。//模拟简单的双向链表。

2024-02-18 22:05:08 443

原创 java Vector源码剖析

public class Vector源码剖析 {2.1 方法为 添加数据到 vector 集合。/* 1. new Vector 底层。2.3 需要数组大小 不够 就扩容两倍。2.2 确定是否需要扩容。

2024-02-18 22:03:50 403

原创 java ArrayList与Vector比较

public class ArrayList与Vector比较 {Vector 底层结构:可变数组 object[]如果无参:1. 扩容10 2.开始扩容1.5倍。ArrayList 底层结构 :可变数组。扩容机制:无参:默认为10 满后2倍。扩容机制:如果为有参构造器1.5倍。线程安全同步效率:不安全 效率高。线程安全同步效率:安全 效率不高。有参 指定大小 满后2倍。

2024-02-18 22:03:15 307

原创 java Vector介绍01

2.Vector 底层也是一个对象数组 protected object [] elementDate。3.Vector 是线程同步 及线程安全 Vector 类的操作方法 带有 synchronized。4.在开发过程中 需要线程同步安全时 考虑使用Vector。public class Vector介绍01 {源码:synchronized。/*1. 定义说明:源码。

2024-02-17 21:51:18 342

UML知识点总结 md文档资源及其图片

md 文档 和 图片、 文章中的图片 没有加

2024-12-24

空空如也

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

TA关注的人

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