自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Comparable和Comparator

比较ComparableComparatorComparableComparator

2024-03-07 14:16:56 292 1

原创 Java-Deque

不过,ArrayDeque 的扩容策略(当 ArrayDeque 中的元素数ᰁ达到数组容ᰁ时,就需要进⾏扩容操作,扩容时会将数组容ᰁ扩⼤为原来的两倍)可以在⼀定程度上减少数组复制的次数和时间消耗,同时保证 ArrayDeque 的性能和空间利⽤率。另外,该容器不允许放⼊ null 元素。当缓存的数据超过容量时,可以从队列头部删除最⽼的数据,从队列尾部添加新的数据。具体来说,⼩顶堆是⼀个完全⼆叉树,任何⼀个⾮叶⼦节点的权值,都不⼤于其左右⼦节点的权值,这样保证了队列的顶部元素(堆顶)⼀定是优先级最⾼的元素。

2024-03-06 17:40:41 865 1

原创 Java-常用Map

HashMap是Java中最常⽤的集合之⼀,它是⼀种键值对存储的数据结构,可以根据键来快速访问对应的值。以下是对HashMap的总结:HashMap采⽤数组+链表/红⿊树的存储结构,能够在O(1)的时间复杂度内实现元素的添加、删除、查找等操作。HashMap是线程不安全的,因此在多线程环境下需要使⽤ConcurrentHashMap来保证线程安全。HashMap的扩容机制是通过扩⼤数组容量和重新计算hash值来实现的,扩容时需要重新计算所有元素的hash值,因此在元素较多时扩容会影响性能。

2024-02-26 18:26:32 935 1

原创 泛型、迭代、foreach问题

如果在 foreach 循环中执⾏删除操作会导致 expectedModCount属性值与实际的 modCount 属性值不⼀致,从⽽导致迭代器的 hasNext() 和 next() ⽅法抛出ConcurrentModificationException 异常。为了避免这种情况,应该使⽤迭代器的 remove() ⽅法来删除元素,该⽅法会在删除元素后更新迭代器状态,确保循环的正确性。如果需要在循环中删除元素,应该使⽤迭代器的 remove() ⽅法,⽽不是集合⾃身的 remove() ⽅法。

2024-02-20 16:15:54 814

原创 Java-集合-常用List

size - index:表示要复制的元素个数,即需要将 index 及其后⾯的元素向后移动⼀位,需要。index + 1:表示⽬标数组中复制的起始位置,即将 index 及其后⾯的元素向后移动⼀位后,index:表示源数组中要复制的起始位置,即需要将 index 及其后⾯的元素向后移动⼀位。elementData:表示要复制到的⽬标数组,即 ArrayList 中的元素数组。elementData:表示要复制的源数组,即 ArrayList 中的元素数组。移动的元素个数为 size - index。

2024-02-05 19:07:11 365 1

原创 Enum枚举类型

懒汉(使用实例化)普通、DCL(线程不安全,引入voliate<地址、初始化、引用指向>)、静态内部类。饿汉(直接实例化)标准、静态代码块、枚举。

2024-02-04 18:59:15 318 1

原创 Java-Annotation

1)TYPE:⽤于类、接⼝、注解、枚举2)FIELD:⽤于字段(类的成员变量),或者枚举常量3)METHOD:⽤于⽅法4)PARAMETER:⽤于普通⽅法或者构造⽅法的参数5)CONSTRUCTOR:⽤于构造⽅法6)LOCAL_VARIABLE:⽤于变量7)ANNOTATION_TYPE:⽤于注解8)PACKAGE:⽤于包9)TYPE_PARAMETER:⽤于泛型参数10)TYPE_USE:⽤于声明语句、泛型或者强制转换语句中的类型11)MODULE:⽤于模块常用方法object.

2024-01-31 18:05:28 312

原创 线上问题排查

2024-01-25 18:38:28 337 1

原创 《多态学习》

在向下转型前,得先判断多态对象的多种形态中是否有对应的子类对象,有才可以转,mouse对象只能转鼠标,不能转键盘,这就需要用到instanceof关键字.只能访问父类中的成员变量和成员方法,重点:此时对象C是一个父类对象,但可以通过向下转型变为子类对象,去访问子类对象的成员属性和方法.多态本身是一种向上转型(因为通过多态new出来的对象,会被看作一个父类对象),可以通过向下转型变为子类对象.接下来看看,直接new一个父类对象,直接new一个子类对象,通过多态new一个对象,三者有什么区别?

2024-01-25 10:48:35 914 1

原创 IDEA学习

代码结尾补全 ctrl+shift+enter 模糊搜索方法ctrl+shift+r 预览类方法ctrl+shift+i 查看方法调用 ctrl+alt+h 大小写转换 ctrl + shift + u 生成,如给字段创建setter和getter方法,创建构造函数 Alt + Insert 自动生成返回值类型Enter

2024-01-18 15:08:28 305 1

原创 JAVA Proxy分析

实例化目标类->实例化MyHandler(实现IvocationHandler接口:依赖目标对象:重写invoke方法:调用目标对象的方法)->获取代理对象Proxy.newProxyInstance(target.getClass.getClassLoader(),target.getClass.getInterfaces(), h)->代理对象调用目标方法。这是一个配置项,它获取的值为JVM中的参数,可以通过在代码中动态设置来让动态代理生成的Proxy类保存成文件。//获得字节码的测试方法。

2023-08-09 18:10:45 52

原创 idea快捷键

https://mp.weixin.qq.com/s/0iEDL63-Dy2XLDe0P4P2cA

2023-08-09 09:17:23 30

原创 加权逻辑计算

那么未知权重的情况下呢?想知道两个班的化学加权平均值,一班50人,平均80,二班60人,平均82,算数平均是(80+82)/2=81,加权后是(50*80+60*82)/(50+60)=81.09.还有一种情况类似第一种也是人为规定,比如说你觉得专家的分量比较大,老师其次,学生最低,就某观点,满分10分的情况下,专家打8分,老师打6分,学生打7分,但你认为专家权重和老师及学生权重应为0.5:0.3:0.2,那么加权后就是8*0.5+6*0.3+7*0.2=7.2,而算数平均的话就是(8+6+7)/3=7。

2023-07-31 17:18:46 176 1

原创 简易Hash

/ 31是一个素数,用于加权。// 取余得到对应的桶。// 假设有10个桶。

2023-07-31 17:04:33 28

原创 hash的算法 java hash算法的实现 转载

之后,待路由的结点,只需要在List中找到第一个Hash值比它大的服务器节点就可以了,比如服务器节点的Hash值是[0,2,4,6,8,10],带路由的结点是7,只需要找到第一个比7大的整数,也就是8,就是我们最终需要路由过去的服务器节点。一致性hash算法中最重要的就是那个2^32的hash环,,根据结点名称的hash值将 服务器结点放在hash环上。(2)带路由的节点,算出其Hash值,由于指明了”顺时针”,因此遍历List,比待路由的节点Hash值大的算出差值并记录,比待路由节点Hash值小的忽略。

2023-07-31 17:02:42 159 1

空空如也

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

TA关注的人

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