- 博客(22)
- 问答 (2)
- 收藏
- 关注
原创 Scholar GPT 技术文档
Scholar GPT 是一种先进的人工智能工具,旨在增强各个领域的研究和分析。它简化了学术论文的获取、数据分析,并为研究人员、学生、学者、数据分析师和科学家提供专业帮助。
2024-05-08 20:03:16
2024
2
原创 RabbitMQ——quick start
中间的队列代表消息将会被存到对应的队列中。可以多个Producers向同一个队列发送消息,也可以多个Consumer接收同一个队列的消息。中间的队列代表消息将会被存到对应的队列中。可以多个Producers向同一个队列发送消息,也可以多个Consumer接收同一个队列的消息。中间的队列代表消息将会被存到对应的队列中。可以多个Producers向同一个队列发送消息,也可以多个Consumer接收同一个队列的消息。如果有多个消费者,那么队列中的消息将会按照消费者队列进行依次递送。
2023-02-27 15:37:06
162
原创 JVM——垃圾回收机制
针对于跨代引用,在新生代上建立一个全局数据结构,该结构被称为记忆集,这个结构把老年代划分为若干小块,标识出老年代的哪一块内存会存在跨代引用,此后当发生Minor GC时只有包含了跨带引用的小块内存里的对象才会被加入到GC Roots进行扫描。通过一系列的GC Roots 的根对象作为起始节点集, 从这些对象开始,根据引用关系向下搜索,搜索的路径为“引用链”如果某个对象到GC Roots间没有任何“引用链”,也就是从GC Roots到这个对象不可达,则说明此对象不可能再被使用。为此,引入了安全区域。
2023-02-26 19:11:05
171
原创 JVM内存结构
解决上述问题又两种可选方案:①对分配内存空间操作进行同步处理(CAS+失败重试)②把内存分配动作按照线程划分在不同的空间中,每个线程在堆中预先分配一块内存,称为Thread Local Allocation Buffer(TLAB),只有当线程的本地缓冲区用完,分配新缓冲区时同步。虚拟机栈描述的是Java方法执行的线程内存模型:每个方法被执行时,虚拟机会同步创建一个栈帧用于存储局部变量表,操作数栈、动态连接、方法出口等。用于存储已经被虚拟机加载的类型信息常量,静态变量,及时编译器编译后的代码缓存等数据。
2023-02-26 19:10:24
115
原创 设计模式——单例模式
一般情况下,不建议使用第 1 种和第 2 种懒汉方式,建议使用第 3 种饿汉方式。只有在要明确实现 lazy loading 效果时,才会使用第 5 种登记方式。如果涉及到反序列化创建对象时,可以尝试使用第 6 种枚举方式。如果有其他特殊的需求,可以考虑使用第 4 种双检锁方式。
2023-02-26 19:09:08
85
原创 设计模式——工厂模式
简单工厂并不算一种设计模式,它更像是一种设计策略。本章将着重介绍工厂方法模式以及抽象工厂模式。假设我们有一颗许愿树,能够根据用户输入的桃子种类,产出一颗对应种类桃子。为了方便快捷,我们可能会这样写(极大概率不会这样)其中,Peach是桃子的抽象类,getDescription()方法返回对此种桃子种类的描述。这样完成了对上述需求的编写,但这样,当我们想要在其他地方使用这段代码时,就面临者重用的问题。以及,后续对判断逻辑的修改可能会造成创建逻辑代码复杂度剧增。
2023-02-26 19:08:23
110
原创 设计模式——装饰者模式
装饰者模式动态地将责任附加到对象上,若要扩展功能,装饰者模式提供了比继承更具有弹性的替代方案新设计原则:对扩展开放,对修改封闭当编写装饰者时,不应该去依赖于某种具体的被装饰类。
2023-02-26 19:07:42
180
原创 Tomcat组件结构
如上图,在server.xml中,一个Server下面定义了一个Service,一个Service下面可以有多个Connector,但多个Connector对应一个Container。Context也就是一个应用,将之翻译为上下文并不太合适,一个Host主机可能有多个Application,这时就需要用Context来区分不同的Application。一个Server可以实现多个Service,一个Service是驻留在Server中的中间件,它将一个或多个Connector绑定到一个Engine。
2023-02-26 19:05:17
114
原创 深入理解char
个人反思Java中有Character、String、StringBuilder等用于文本处理的类,但这些类的基础都是char以前我对char的理解总是浮于表面,知道char能表示一个字符(字母或中文字符等),也知道有Unicode编码,也知道char能转成int类型,但对char没有一个更深入的了解。这篇文章算是自己对char的一个深入总结,将以上知识点串联起来。字符的编码编码有两大类:Unicode编码和非Unicode编码 (了解即可)非Unicode编码:ASCII码:自然是熟悉不过的
2022-02-11 16:50:46
712
原创 Java 位运算
基础知识Java中整数二进制的表示整数:原码负数:补码Java中各种进制的表示二进制:以0b开头例如// 这里表示时一定要遵循上面的Java中的二进制表示,下例为-3的补码int i = 0b11111111111111111111111111111101;八进制:以0开头,如int i = 011; // 9十六进制:以0x开头,如int i = 0x11; // 17’Java中位运算操作&(与)、|(或)、^(异或)、~(非)>>:算术右移,高
2022-02-11 13:06:11
229
原创 IDEA的初始使用与配置及常用快捷键
ps:本文将基于IDEA2021.2.1旗舰版进行讲解,其他版本可作参考目录IDEA初次使用安装过程初次使用配置IDEA的常用设置常用快捷键插件推荐endIDEA初次使用安装过程选择安装路径,不要有中文,且不推荐安装在C盘配置安装选项,根据需要选择即可全部下一步直到完成安装可能需要重启初次使用配置首次打开可能会出现以下窗口,表示是否导入已有的设置,如果有,可以选择导入,这里选择不导入,下一步再点击接收用户许可,点击【继续】点击不发送接下来就是IDE
2021-09-13 22:50:03
550
2
原创 JDK安装及多版本JDK安装
JDK欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑
2021-09-02 13:38:37
1175
2
原创 离散数学命题公式求值及真值表
离散数学命题公式求值及真值表题目要求算法思想代码总结题目要求给定任意一个命题公式的真值表,并根据真值表求主范式。算法思想将逻辑表达式转换为后缀表达式,然后套用逆波兰表达式的求值方法利用位运算,找出一个十进制整数对应二进制的每一位,给命题变项赋值记录下成真赋值以及成假赋值,最后输出代码#include <iostream>#include <string>#include <algorithm>#include <vector>#in
2021-05-07 15:42:46
3159
原创 快速排序
快速排序算法C++实现直接上代码直接上代码template<typename T>void quickSort(T array[], int length) { // 选取第一个元素作为基准元素 const int STANDER = 0; const T STANDER_VALUE = array[STANDER]; // 基准条件 if (length == 0 || length == 1) { return; }
2021-03-07 14:02:52
78
原创 【Java】将ResultSet封装为Bean对象
和其他的文章一样,也是利用反射封装,最后返回list集合public class jdbcUtils { /** * MySQL数据库将result set风筝为Bean对象,需要数据库字段名和兵对象属性名一致(不区分大小写) * @param resultSet * @param beanClass * @param <T> * @return 返回Bean对象数组 * @throws Exception */
2020-10-07 18:52:57
1832
2
原创 C语言实现数组扩容及插入法排序
这是我的一次作业使用了malloc函数及relloc函数下面是代码,如果有不足或错误请指正#include<stdio.h>#include<stdlib.h>#include<time.h>// 插入排序函数void insert(int a[],int n ){ int i,j; int temp; for(i=1; i&...
2020-04-29 21:39:29
2639
原创 Java中统计字符串中字符的出现次数
刚学Java,第一次发博客,如有不足请指正,谢谢我去搜了一下统计字符这个问题,但别人写的一些代码我没太看懂(自己是新手)所以准备把自己的代码发出来分享一下public class StringTest { public static void main(String[] args) { String s = new String("123123123123"); ...
2020-04-21 23:02:06
199
1
空空如也
Maven项目测试阶段与jar包获取的根目录完全不一样
2021-04-17
Java如何保证对文件的写操作在其他代码执行前完成?
2021-04-08
TA创建的收藏夹 TA关注的收藏夹
TA关注的人