- 博客(102)
- 收藏
- 关注
原创 HashMap中常用的函数
3、如果key为a的键不存在,则存入键值对(a,1),存在则返回value。2、返回key为a的value,若没有该key返回0。2、如果key为a的键不存在,则存入键值对(a,1)2、判断是否有value为1的键值对。判断是否存在某key或value。1、判断是否有key为a的键值对。1、返回key为a的value。1、新增键值对(a,1)
2024-09-07 21:22:24 355
原创 查找算法你知道哪些?
表示斐波那契数列中的第k个数)。如果数组长度本身就是斐波那契数,则直接使用;如果不是,则选择第一个大于或等于数组长度的斐波那契数。:由于斐波那契数列中的数可能大于数组的实际长度,算法通常会在原数组末尾添加一些与数组最大元素相同的值,直到数组长度等于。时,查找失败,返回-1。但在实际实现中,由于扩展了数组,如果最后。指向了扩展部分的某个位置,也需要返回-1或进行相应调整。:在返回结果之前,需要移除扩展部分的元素,恢复原数组。:首先,需要确定斐波那契数列中第一个>=数组长度的数。
2024-09-06 20:44:32 857
原创 快速幂算法——求解大指数幂
快速幂算法(Fast Exponentiation)是一种高效的计算幂的方法,特别适用于计算形如 a^b的表达式,其中a 是底数,b 是指数,且 b 可能非常大。
2024-09-05 00:15:00 525
原创 Java如何计算一个数的阶乘末尾有多少个零?
文章有点长,请耐心看完~~~这个问题涉及到阶乘(factorial)的一个有趣特性,即阶乘结果末尾零的数量。要理解这一点,我们首先要知道什么情况下一个数的末尾会产生零。
2024-09-04 11:34:44 521
原创 error: local variables referenced from a lambda expression must be final or effectively final
在拉姆达表达式中操作外部定义的局部变量时报错,因为外部定义的局部变量flag不是常量。循环(也称为 "for-each" 循环)来遍历。中的条目(即键值对)。
2024-08-16 21:07:52 534
原创 java判断字符串某字符是否为大写/小写/数字?
也可以将字符转化成小写字母或大写字母。a不是大写返回false。a转化成大写字母后为A。A转化成小写字母后为a。1是数字返回true。a是小写返回true。
2024-08-15 17:13:52 159
原创 字节码文件和class对象是不是一样的?
字节码文件是Java源代码编译后的结果,而Class对象是JVM在加载这些字节码文件到内存时创建的,用于表示这些类。相当于没有字节码就没有class对象。
2024-08-12 20:21:53 127
原创 Java异常有哪两大类
Java异常体系主要分为两大类:受检异常(Checked Exceptions)和非受检异常(Unchecked Exceptions),后者又可以进一步细分为运行时异常(Runtime Exceptions)和错误(Errors)。比如数组越界、空指针异常。系统级的错误或者资源耗尽。
2024-08-12 19:29:45 483
原创 静态变量和实例变量的区别
静态变量:在定义时需要在变量名前加上static关键字。静态变量也称为类变量,因为它属于类本身,而不是类的某个特定实例。实例变量:在定义时不需要加static关键字。实例变量属于类的实例(对象),每个对象都有自己独立的实例变量副本。
2024-08-12 18:47:51 382
原创 ThreadLocalMap存在哪里?
此外,需要注意的是,ThreadLocalMap中的key是ThreadLocal对象的弱引用,而value是强引用。具体来说,当线程调用ThreadLocal的set方法设置变量时,JVM会获取当前线程,并在其内部的ThreadLocalMap中为该ThreadLocal对象存储一个值。ThreadLocalMap的设计使得每个线程能够拥有自己的变量副本,这些副本对其他线程是不可见的,从而实现了线程之间的数据隔离。
2024-08-12 18:40:23 157
原创 Java对象序列化
想象一下,你有一个Java对象,它包含了各种数据(比如名字、年龄、分数等)。现在,你希望把这个对象保存到一个文件中,或者通过网络发送给另一个程序。但是,Java对象本身并不能直接写入文件或通过网络发送,因为它们是以内存中的数据结构形式存在的。这时,序列化就派上用场了。序列化是一种将Java对象转换成一系列字节的过程,这些字节可以被保存到文件中,或者通过网络发送给其他程序。接收方可以通过反序列化过程,将这些字节重新转换回原来的Java对象。
2024-08-12 12:01:16 420
原创 Java中wait()和sleep()的区别
主要用于暂停当前线程的执行一段时间,让出CPU资源给其他线程使用。不会释放当前线程所持有的任何锁。主要用于线程间的通信和同步。
2024-08-10 17:21:39 389
原创 关系数据库的三大范式
在第一范式的基础上,每个表必须有主键且表中的所有非主键字段都完全依赖于主键,也就是说非主键字段都必须跟主键有关。只能拆分成3条数据。
2024-08-09 00:52:36 176
原创 一天一个Arrays小知识——Arrays.asList()
是 Java 中的一个静态方法,它属于类。这个方法的主要作用是(List),但这个列表是由原数组支持的,也就是说,列表是非同步的,并且其大小是固定的,因为列表的大小是由原数组的大小决定的,add()remove()。
2024-08-08 15:59:52 514
原创 Arrays.sort()是对整个数组进行排序,如何只排序数组中的几位呢?
这里介绍一下System.arraycopy(),这是Java 中用于复制数组元素的一个本地方法。这个方法非常高效,因为它是在底层实现的,直接操作内存。思路是:先复制数组的那几位到一个新的小数组中,对这个小数组进行排序,然后再将排序后的结果放回原数组。,可以看到前两位被排序了,数组的其余部分保持不变。
2024-08-07 12:44:52 229
原创 如何解决hashmap不按序问题
在 Java 中本质上是不保证任何顺序的,特别是它不保证元素会按照插入的顺序进行存储或遍历。如果需要维护元素的插入顺序,可以使用。,它在内部通过维护一个双向链表来保持插入顺序。如果想要按照键的自然顺序或者自定义的比较器顺序来存储和遍历键值对,可以使用。
2024-08-06 18:00:13 332
原创 AOE网及其求解关键路径
关键路径上的活动称为关键活动 , 关键活动是不允许拖延的(普通活动可以拖延,拖延时间=最晚开始时间-最早开始时间),因为已经是耗时最长的一条路径,再拖延就耽误了工期。也就是说,关键活动的最早开始时间=最晚开始时间。
2024-08-05 18:38:39 922
原创 堆排序算法思想及代码实现
倒序遍历数组,当数组下标小于等于0且深度小于0时跳出循环。交换位置后,判断数组下标是否为奇数,若是则深度减一(观察上述子树序列可知,当数组下标为奇数时,数组下标减一就到下一颗子树)i--) {// arr[i]固定 也就是说数组最后一个元素下标-1 再重新构造大根堆// 当数组下标为奇数时深度需要减一if(i%2!=0) high--;
2024-08-04 00:00:20 361
原创 如何在Java中调用数学中的log函数
在Java中,调用数学中的对数(log)函数通常是通过Math类来实现的。Math类提供了多种对数函数的实现,但最常用的是自然对数(底数为e的对数)和以10为底的对数。
2024-08-02 16:01:45 245
原创 折半插入排序算法思想及代码实现
折半插入排序(Binary Insertion Sort)是插入排序算法的一种优化版本。插入排序的基本思想是将一个记录插入到已经排序好的有序表中,从而得到一个新的、记录数增加1的有序表。传统的插入排序在寻找插入位置时,采用的是顺序比较的方式,即逐个与有序表中的元素进行比较,直到找到比待插入元素大的元素或达到有序表的末尾。而折半插入排序则是在这个查找过程中使用了二分查找(Binary Search)的思想,从而减少了比较的次数,提高了排序的效率。
2024-08-01 15:09:30 418
原创 选择插入排序改进思路加算法实现
若待排元素小于最后一个元素 将最后一个元素的值赋值给a[j+1] 然后j-- 继续比较倒数第二个元素和待排元素...若待排元素大于等于最后一个元素则直接跳出循环 将待排元素赋值给a[j+1]首先默认第一个元素是已排序的,剩下元素是待排序的,从第二个元素开始遍历。和已排序区域的最后一个元素a[j]往前开始比较大小。取出待排序区域的第一个元素element。
2024-07-31 21:44:07 260
原创 选择排序算法改进思路和算法实现
在未排序的数组中,用第一个数去和后面的数比较,找出最小的数,和第一个数交换。第一个数已为已排序的数。从0~7中找到最小的数放在0。从1~7中找到最小的数放在1。从2~7中找到最小的数放在2。从6~7中找到最小的数放在6。
2024-07-30 10:40:44 101
原创 计算机网络网络安全
公钥密码体制:加密密钥!加密密钥PK(公钥)是公开的,解密密钥SK(私钥)是保密的。通信的双方都有一对密钥,发送方用接受方的公钥通过加密算法对明文加密(公钥可加密不可解密),得出密文发送给接受方。(1)数据加密标准DES(分组密码,分组长度64位):将整个明文分组,一组64比特,每一组都加密产生一组64位密文数据。(3)高级加密标准AES(分组密码,分组长度128位):共3种加密标准,密钥由128位、192位、256位。注意:加密算法的安全性取决于密钥长度以及公婆密文所需要的计算量,不单单取决于密钥体制!
2024-07-29 20:50:15 404
原创 计算机网络概述
数据传送:整个报文直达终点;时延:分组在各路由器存储转发时需排队,有一定的排队时延。C/S都是指通信中所涉及两个应用的进程,C是客户也是服务请求方,S是服务器也是服务提供方。排队时延:进入路由器后在输入队列排队的时间以及确定转发接口后再输出队列排队的时间。联系:实现协议需要下层提供的服务,协议的实现保证了能够向上一层提供服务。交换速率:分组比报文高,可短暂的在在路由器的内存中存储,而不是磁盘。网络核心:端系统的分组交换设备、通信链路构成的网状网路。服务是垂直的,是由下层通过层间接口向上层提供的。
2024-07-29 20:48:31 638
原创 主方法求解时间复杂度
使用主方法(Master Theorem)求解时间复杂度是一种快速有效的方法,特别适用于解决分治算法(如归并排序、快速排序中的某些部分、快速傅里叶变换等)的时间复杂度问题。
2024-07-14 15:06:57 664
原创 为什么前端传了token,后端一直获取不到?一直报跨域错误?
这是我的前端代码这是我的后端拦截器那就需要了解一下对于非简单请求(如PUT、DELETE或包含自定义HTTP头的请求),浏览器会先发送一个OPTIONS请求到目标服务器,询问是否允许该跨域请求。这个过程称为预检请求。当options请求到达我服务器时,被拦截器拦住了,获取不到跨域的规则。所以浏览器也不会发送实际的请求。那么一共有两种解决办法。
2024-06-30 15:30:45 395
原创 mybatisplus新增数据时生成的雪花id太长前端接收不准确怎么办?
这是后端返回的:1807308955001573377。这是前端接收的:1807308955001573400。返回的long类型超过前端的最大长度了,渲染不了。只需要在后端加一个配置类,如下。
2024-06-30 15:19:11 338
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人