- 博客(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~9223372036854775807Float 7个有效位Double 15个有效位Decimal 28个有效位Float: 需要小数部分并且对精度的要求不高时,选择float。
2024-12-19 14:07:05
924
原创 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 集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
原创 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接口遍历方法
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 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
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人