- 博客(114)
- 收藏
- 关注

原创 学生邮箱白嫖/免费安装JetBrains全家桶(IDEA/pycharm等) —— 保姆级教程
写代码的的人应该都知道和等,它们都是JetBrains系列的产品。只是这对普通人要收费,是一笔不小的费用。如果你是在校大学生,那么就可以申请IDEA的免费使用。本作品原创,遵循协议发布。JetBrains全家桶介绍JetBrains全家桶包括用于Web开发的WebStorm,用于Java开发的Intellij IDEA,以及用于Python开发的PyCharm等等,可谓是程序员居家旅行,XX防火的必备神器!申请过程:其实超级简单,总结一句话就是。
2023-11-19 17:41:58
8749
23

原创 redis和缓存及相关问题和解决办法 什么是缓存预热、缓存穿透、缓存雪崩、缓存击穿
缓存是一种临时存储数据的技术,用于在后续请求中快速获取先前检索或计算的数据,从而加速访问速度。在计算机系统中,缓存可以出现在多个层次,包括硬件缓存、操作系统缓存和应用程序级别的缓存。这种机制的基本思想是通过存储一些计算结果或频繁访问的数据,减少对更慢的存储系统(如数据库或磁盘)的访问次数,从而提高系统的性能和响应速度其实缓存是相对的概念比如拿读取速度排序:CPU寄存器 > 内存 > 硬盘 > 网络速度快的设备,可以作为速度慢的设备的缓存最常见的是,使用内存作为硬盘的缓存(redis定位)
2023-11-14 08:42:12
1564
33

原创 Python 语法及入门 (超全超详细) 专为Python零基础 一篇博客让你完全掌握Python语法
Python 语法及入门 (超全超详细) 专为Python零基础 一篇博客让你完全掌握Python语法
2023-04-15 19:26:02
64653
87
原创 1.5万字长文Java集合与数据结构面试题(注:该篇博客将会持续维护 最新维护时间:2024年11月25日)
哈希冲突是指不同的输入数据在进行哈希函数计算后,得到相同的哈希值的情况。此时如果强行的进行数据存储就会发生数据覆盖的问题由于哈希函数是将输入映射到一个有限的哈希表中,而输入的数据量可能是无限的,所以在特定的哈希函数和哈希表大小的限制下,哈希冲突是难以避免的。解决哈希冲突的常见方法有以下几种:将哈希表中的每个桶都设置为一个链表,当发生哈希冲突时,将新的元素插入到链表的末尾。这种方法的优点是简单易懂,适用于元素数量较多的情况。缺点是当链表过长时,查询效率会降低。
2024-11-26 00:03:21
1211
2
原创 centos安装rocketmq(linux安装rocketmq)
1、拉取rocketmq-console镜像docker pull pangliang/rocketmq-console-ng2、构建rocketmq-console容器并启动记得修改ip端口号等!!!
2024-11-17 15:05:00
1033
原创 四万字长文SpringBoot、Spring、SpringMVC等相关面试题(注:该篇博客将会持续维护 最新维护时间:2024年11月12日)
首先从main找到run()方法,在执行run()方法之前new一个SpringApplication对象进入run()方法,创建应用监听器SpringApplicationRunListeners开始监听然后加载SpringBoot配置环境(ConfigurableEnvironment),然后把配置环境(Environment)加入监听对象中然后加载应用上下文(ConfigurableApplicationContext),当做run方法的返回对象最后创建Spring容器,.......
2024-11-12 19:52:04
1078
1
原创 ububtu给jdk配置环境变量
www/server/java/jdk1.8.0_371换成你自己的jdk对应的目录。我们创建一个脚本,然后执行脚本让环境变量添加进去,这样咱也不用苦心乱找环境变量位置了。然后Ctrl C 退出编辑操作,再输入 :wq 退出编辑页面。centos下载jdk并配置环境变量。然后就可以在任意目录下使用jdk了。第一步,下载jdk,这里不再展示。下面这一步要和我的目录一样。
2024-10-24 21:02:49
360
原创 centos安装jdk8(linux安装jdk8)
🧸本篇博客重在讲解Centos安装jdk8,经博主多次在不同服务器上测试,极其的稳定,一路复制命令畅通无阻。📜有任何问题都可以评论留言,作者将会实时回复。默认给安装到 usr/lib/jvm/1、查询安装jdk的版本。安装jdk有两种办法,也可以安装你想要的版本。2、安装jdk1.8。3、验证是否安装成功。
2024-10-10 09:04:39
785
1
原创 Centos安装docker(linux安装docker)——超详细小白可操作手把手教程,包好用!!!
🧸本篇博客重在讲解Centos安装docker,经博主多次在不同服务器上测试,极其的稳定,尤其是阿里的服务器,一路复制命令畅通无阻📜后续会退出ububtu安装docker教程,敬请期待📜有任何问题都可以评论留言,作者将会实时回复。
2024-09-28 16:44:40
514
原创 linux安装nginx和前端部署vue项目(实际测试react项目也可以)
🧸本篇博客作者测试上线过不下5个项目,包括单纯的静态资源,vue项目和react项目,包好用,请放心使用📜有任何问题都可以评论留言,作者将会实时回复。
2024-09-20 16:14:49
1288
1
原创 三万字长文Java面试题——基础篇(注:该篇博客将会持续维护 最新维护时间:2024年11月7日)
可以配合Java语言有哪些特点一起回答Java是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的优秀代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。补充(了解即可):静态在这里是什么意思?在编程语言的上下文中,“静态”通常指的是编译时确定的特性,比如Java的静态类型检查,这意味着变量的类型是在编译时确定的,并且需要明确声明。
2024-09-18 11:29:12
1240
8
原创 小白可用超稳定内网穿透工具——natapp全方位使用教程(合法合规)
内网穿透的工具有很多,此处介绍一下我经常使用的这个名叫natapp的内网穿透工具。
2024-07-22 12:26:28
730
原创 Java后端如何进行文件上传和下载 —— 本地版(文末配绝对能用的源码,超详细,超好用,一看就懂,博主在线解答) 文件如何预览和下载?(超简单教程)
response.addHeader 等会再讲,先简单讲述下作用,使用第一个 response.addHeader 时,访问url文件直接下载,无法预览,使用第二个 response.addHeader 时,访问url文件如果可以预览,则先预览,不可以,会进行下载。还记得我们开始定义的保存文件的父级目录么,也就是 ROOT_PATH,现在我们要保存文件了,既然要保存,我们需要判断这个父级目录是否存在,如果不存在,我们要先创建这个 “父级目录”它会自动识别当前项目所在的根路径,每个人的可能都不一样。
2024-04-19 15:34:48
3667
1
原创 数据库信息/密码加盐加密 —— Java代码手写+集成两种方式,手把手教学!保证能用!
在MySQL数据库中,我们常常需要对密码,⾝份证号,⼿机号等敏感信息进⾏加密,以保证数据的安全性.如果使⽤明⽂存储,当⿊客⼊侵了数据库时,就可以轻松获取到⽤⼾的相关信息,从⽽对⽤⼾或者企业造 成信息泄漏或者财产损失.⽬前我们⽤⼾的密码还是明⽂设置的,为了保护⽤⼾的密码信息,我们需要对密码进⾏加密。
2024-04-17 15:50:56
1508
原创 Git——多人协作/版本控制,在一个gitee仓库下开发(Gitee版教程)手把手教学,包好用的!
🧸欢迎来到dream_ready的博客,📜相信您对博主首页也很感兴趣o (ˉ▽ˉ;首先声明,教程是多种多样的,有很多不同的方法,但目的都是相同的 —— 使多人在同一个gitee仓库下开发代码这篇博客应该是最简单的方法之一,嘎嘎好使,嘎嘎好用以我的仓库为例,可以看到,是我和我朋友协同开发的下面,正式进入教程。
2024-04-16 14:37:06
2756
1
原创 第四次面试总结 — 嘉和智能 - 全栈开发
面试结果:非常好面试内容:主要是对各个技术栈的了解及应用场景原因:基本都用过,没用过的也都知道是干啥的,只是暂时没时间学,所以回答的挺好的这是一家长春本地的小企业,薪资也不高,2000多,但毕竟没海投,还是本地的企业,学校有啥事也能顾住,我就去了没想到去了之后体验感非常好,各位大哥对我非常照顾,我不会的去问,他们都给我很耐心的讲,哪怕是我提问的问题和工作关系不大。我做的慢的话也不催我,做的项目我也挺喜欢的,感觉能学到挺多的。总体而言就是除了工资低以外没缺点。
2024-04-09 12:56:22
923
2
原创 线程的常用方法有哪些?
线程常用方法有以下这些:start():启动线程,并调用线程的 run() 方法来执行任务。run():线程的实际工作方法 (普通方法),定义线程要执行的任务。sleep(long millis):暂停当前线程的执行,让线程进入阻塞状态,并释放 CPU 资源给其他线程使用,单位是毫秒。join():将当前线程挂起,等待其他线程执行完毕后再继续执行。interrupt():线程中断方法,而是给线程发送中断信号,可以配合 isInterrupted() 方法或Thread.interrupted()
2024-03-24 23:26:43
378
原创 说一下线程的生命周期?
Java 线程的生命周期有以下 6 种:NEW (初始化状态)RUNNABLE (可运行/运行状态)BLOCKED (阻塞状态)WAITING (无时限等待状态)TIMED_WAITING (有时限等待状态)TERMINATED (终止状态)注:Java 线程状态可能和操作系统的状态叫法和分类是不同的。
2024-03-24 23:25:29
377
原创 HashMap为什么会死循环?
死循环是因为并发 HashMap 扩容导致的,并发扩容的第一步,线程 T1 和线程 T2 要对 HashMap 进行扩容操作此时T1 和 T2 指向的是链表的头结点元素 A,而T1和 T2 的下一个节点,也就是 T1.next 和 T2next 指向的是B 节点,如下图所示:。因为 T1 执行完扩容之后 B 节点的下一个节点是 A,而 T2 线程指向的首节点是 A,第二个节点是 B,这个顺序刚好和 T1 扩完容完之后的节点顺序是相反的。,这就是 HashMap 死循环导致的原因。
2024-03-22 21:19:56
595
原创 为什么Hashtable不允许插入nuIl键和null值?
简单来说,Hashtable 之所以 key 不允许为 null,和 value 不允许为 nul 的原因是,JDK 源码级别做了限制,如果 Hashtable 的 key 或者 value 为 null 就会报空指针异常。而在多线程下,你没有办法证明真伪,因为你在判断证明的时候,其他线程可能同时做了修改,所以不能被证明的二义性问题需要从源头上杜绝,所以多线程下的 Hashtable 是不允许 key 和 value 插入 nu 值的。所谓的二义性问题是指含义不清或不明确。浅层次的来回答这个问题的答案是,
2024-03-21 20:58:38
446
1
原创 为什么 HashMap 默认负载因子是0.75?
负载因子 (Load Factor)也叫扩容因子,它是一个用于控制 HashMap 何时进行扩容的参数。当 HashMap 中存储的键值对数量,超过了 HashMap 总容量乘以扩容因子时,HashMap 就会进行扩容操作。例如 HashMap 的总容量为 16,扩容因子为 0.75,那么当 HashMap 中存储的键值对大于 12 (16*0.75)时HashMap 就会进行扩容。注:负载因子的值是 0 到 1 之间 (大于 0,小于 1)。
2024-03-19 16:22:12
493
5
原创 什么是哈希冲突?如何解决哈希冲突?
哈希冲突(Hash Colision)是指不同的输入数据在进行哈希函数计算后,得到相同的哈希值的情况。由于哈希函数是将输入映射到一个有限的哈希表中,而输入的数据量可能是无限的,所以在特定的哈希函数和哈希表大小的限制下,哈希冲突是难以避免的在 Java 的 HashMap 中,是通过链地址法来解决哈希冲突的。
2024-03-18 21:08:33
919
原创 树的分类有哪些?
树是一种非线性的层次型的数据结构,也是一种非常重要的数据结构,它由节点(node)和边(edge)组成。非线性数据结构是指其中的元素之间不是一对一的线性关系。具体来说,非线性数据结构中的元素可以有多个前驱和多个后继,其组织和连接方式不受任何限制。与之相对的是线性数据结构,其中的元素以线性的方式相互连接,每个元素只有一个前驱和一个后继。:每个节点最多有两个子节点的树,分别为左子节点和右子节点。
2024-03-17 12:13:12
1199
5
原创 String 底层是如何实现的?
String底层是基于 char[ ] 数组或 byte[ ] 数组实现的,JDK9 之后,之所以使用 byte[ ] 替换 char[ ] 数组,这是因为,byte类型粒度更细,一个 char 等于 2 个 byte。对于大部分的英文字符和少量中文字符来说,使用 1 个 byte就够了,完全不需要使用 1 个 char 进行存储,所以 JDK9 使用 byte[ ] 之后,对于大部分英文字符来说,同样的内容,其存储空间减少了一半,这就是 JDK9 之后使用 byte[ ] 所带来的优势
2024-03-12 19:20:35
858
原创 Java中 final、finally、finalize 有什么区别?
final、finally、finalize 是 Java 中三个不同的关键字,它们除了长得像之外,其他的(作用和含义)完全不同。它们三个的区别就好像:雷、雷锋、雷峰塔之间的区别。(是三个完全不同的东西)final、finally、finalize的区别如下:final:表示不可变性,用于修饰类、方法和变量 ,当用于类时,表示该类不能被继承;当用于方法时,表示该方法不能被子类重写(覆盖);当用于变量时,表示该变量的值不能被修改(成为常量)。
2024-03-12 18:28:20
1605
原创 == 和 equals 有什么区别?
== 用于基础数据类型时,是用来比较两个变量的值是否相等的,而对于引用类型来说,是用来比较两个对象的引用是否相同的。而 equals 默认是比较两个对象的引用是否相同的,但大部分时候都会被重写为比较两个对象的值是否相同。
2024-03-12 12:28:21
736
原创 返回值不同算方法重载么?为什么?
方法签名(Method Signature)指的是方法的唯一标识,包括方法的名称、参数列表和参数的顺序。方法签名用于区分不同的方法,以便编译器和虚拟机能够正确地识别和调用特定的方法。
2024-03-12 12:19:34
828
原创 方法重载和方法重写有什么区别?
总的来说,方法重载是在一个类中多个同名方法之间的多态性,而方法重写是在父类和子类之间的多态性。,用的是父类还是子类的方法是需要根据实际情况改变的,比如向上转型接收参数时,调用同一个方法可能是截然不同的效果。方法本质上并没有区别开来,从方法签名角度它俩也没有区别开来。,这几个方法本质上已经完全不同了,你用的时候根据参数等的改变没有什么二义性,用的是这个就不存在是另一个的可能性,所以代码在编译时就已经对应好了你要用的方法。第5点需要注意一下,方法重载 不是动态绑定的,是静态绑定的,迷惑的话自己再想想。
2024-03-12 12:18:36
627
3
原创 Java中抽象类和接口有什么区别?
它和接口的区别主要体现在:类型扩展不同、方法/属性访问控制符不同、方法实现不同,以及使用目的不同。普通类(Concrete Class):普通类是最常见的类,可以被直接实例化和使用。它可以包含成员变量、方法和构造方法等,并且可以定义自己的继承关系。内部类是定义在其他类内部的类。它可以访问外部类的属性和方法,也可以用于实现某些特定的功能。抽象类是通过 abstract 关键字来定义的,用于表示一种抽象的类。注:其他方面的特性,抽象类和普通类并无太大差别。非静态内部类(成员内部类)
2024-03-12 11:50:29
1171
原创 什么叫做 “面向对象” 编程?
(Object-Oriented Programming,简称)是一种编程范式或编程方法,通过将数据和操作数据的方法(函数)进行组合,以创建对象的方法来解决问题面向对象编程的主要思想是将问题划分为不同的对象,每个对象具有一些特定的属性和行为,对象之间通过消息传递进行通信和交互。
2024-03-11 20:16:27
661
原创 为什么Java不支持多继承
在 Java 语言中,不支持多继承的主要原因是为了和(如菱形)以及,同时又因为在实际工作中,确实很少用到多继承,所以在Java语言中,并不支持多继承。而且,虽然Java中不支持多继承,但也给了一些功能上的,比如。
2024-03-11 19:39:36
1588
原创 第三次面试总结 - 吉云集团 - 全栈开发
面试结果:非常好面试内容:全面,Java基础、MySQL、项目原因:先下面试,问的也都有所了解,不过MySQL稍弱这里就把薄弱点都说一下吧,迭代器忘得有点狠,下载文件具体的逻辑和操作确实也不是非常了解MySQL基础较差,这个确实怪自己,现在智能工具太多了,自己就懒了不过这几个问题看一下八股和复习一下,都很好解决,下载文件这个需要具体在项目中实操一下,“下载文件” 这个还是非常重要的,会有很多面试问到🧸祝大家拿到理想的 offer!!!
2024-01-10 18:57:22
1750
14
原创 第一次面试总结 - 迈瑞医疗 - 软件测试
面试结果:非常好面试内容:对测试的认知以及讲项目,个人规划原因:全靠小嘴八八,没提问太多技术性的问题,全靠能说,所以这次面经没太大学习意义首先,说明自己是谁,来自哪,应聘什么,然后就开始说自己优点了,当然优点不能太明确地说,要说自己的生活习惯,大学经历,不知不觉中让面试官感觉这孩子优点真多,能吃苦,学习能力强,能说会道知进退,那这好印象不就来了么,毕竟面试主要目的还是让面试官本人认可你。
2024-01-09 14:28:20
2078
5
原创 第二次面试总结 - 宏汉科技 - Java后端开发
回调函数是一种常见的编程概念,它在事件驱动编程异步编程等场景下非常常见,指的是在特定条件满足或事件发生时执行的函数。在编程中,回调函数通常作为参数传递给其他函数,以便在需要时被调用执行举个最简单的示例,在图形化界面编程和前端中,就经常用到回调函数,比如当用户点击按钮时,可以将处理点击事件的函数作为回调函数传递给按钮的事件监听器。当按钮被点击时,事件监听器会调用这个回调函数。
2024-01-07 14:47:24
1690
32
原创 在 Spring 中操作 Redis
需要注意的是,操作redis的方法很多,除了StringRedisTemplate 外,还有 Jedis 等等都可以操作redis,此处主要讲解以StringRedisTemplate 的方式操作redis,读者若想了解其他操作redis的方式,也可以查询相关资料自行学习
2024-01-01 16:18:44
3123
17
原创 Java关键字 —— super 与 this 详细解释!一看就懂 有代码实例运行!
大家应该经常会遇到这static、this、super、final四个关键字,甚至容易把含义搞混。其实static、this、super、final这四个关键字互相是没有什么联系的(除了this和super有一定关系外),所以大家其实要刻意区分一下这几个对应的功能和使用场景那么这篇博客带领大家学习一下 super 和 this 的用法this表示当前类的...,super表示父类的...下面我们来详细讲解 super 和 this 两个关键字各自的用法和区别。
2024-01-01 16:16:57
2320
4
原创 Java关键字 —— static 与 final 详细解释!一看就懂 有代码实例运行!
大家应该经常会遇到这static、this、super、final四个关键字,甚至容易把含义搞混。其实static、this、super、final这四个关键字互相是没有什么联系的(除了this和super有一定关系外),所以大家其实要刻意区分一下这几个对应的功能和使用场景那么这篇博客带领大家学习一下static的用法。
2023-12-11 11:42:19
4021
10
原创 双指针算法(超详细带8道例题及算法解析) —— 包含力扣题目有283移动零、1089复写零、202快乐数、11盛水最多的容器、611有效三角形的个数、179双数之和、15三数之和、18四数之和
双指针是一种思想,而不是说真的就是定义了两个指针,它和语言没有关系,比如C++,Java,Python等都可以使用双指针算法解题,而且是一种非常常见的算法常见的双指针有两种形式,一种是左右指针,一种是快慢指针左右指针一般用于顺序结构中,也称对撞指针左右指针从两端向中间移动。一个指针从最左端开始,另一个从最右端开始,然后逐渐往中间逼近左右指针的终止条件一般是两个指针相遇或者错开(也可能在循环内部找到结果直接跳出循环),也就是:left == right (两个指针指向同一个位置)
2023-12-11 11:41:50
286
6
原创 idea创建不了spring2.X版本,无法使用JDK8,最低支持JDK17 , 如何用idea创建spring2.X版本,使用JDK8解决方案
全部确定修改完毕后肯定能启动,若不能启动,则是其他问题,和JDK,Spring没什么关系了,比如你加上了mysql的相关依赖,但你的yml里没有写连接数据库的yml语句,那启动肯定报错呀。可以将此压缩包保存,每次新建项目时复制出一个新的项目文件,idea直接打开即可,压缩包可以当一个永久的备份,毕竟说不定哪天阿里云也创建不了spring2.X版本的项目了呢。需要注意的是,通过阿里云创建的项目,初始结构与通过Spring官方创建的项目有所不同,但完全不影响使用,放心。
2023-11-27 11:13:06
6639
12
原创 jdk17安装全方位手把手安装教程 / 已有jdk8了,安装JDK17后如何配置环境变量 / 多个不同版本的JDK,如何配置环境变量?
根据您电脑的系统选择合适的jdk版本安装,注意看画框位置,都是需要根据情况选择合适的。6.1、这个属于提示:将所有环境变量配置完毕后,所有窗口依次点击确定,不要点击右上角的X,否则不会保存6.2、再次打开环境变量窗口,查看是否所有环境变量都配置上了,一定一定一定不要少6.3、 查看环境变量的输入信息是否有空格,一定一定一定不要有空格!!!6.4、双击path,进入窗口后将下面这两个环境变量移到最上面,若没有jre的话只移动一条环境变量即可,这个操作的意思是计算机会优先加载前几个环境变量
2023-11-27 00:37:29
23149
28
Everything文件搜索工具
2023-10-13
windows版redis
2023-10-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人