- 博客(55)
- 收藏
- 关注
原创 TCP三握四挥手
原文链接:https://javaguide.cn/cs-basics/network/tcp-connection-and-disconnection.html。原文链接:https://javaguide.cn/cs-basics/network/tcp-connection-and-disconnection.html。著作权归JavaGuide(javaguide.cn)所有。著作权归JavaGuide(javaguide.cn)所有。
2024-02-22 15:20:17
856
1
原创 HTTP 与HTTPS笔记
HTTP是一个在计算机世界里专门在【两点】之间【传输】文字、图片、音频、视频等【超文本】数据的约定和规范。eg. 某些请求的响应码是 304,这个是告诉浏览器可以使用本地缓存的资源。对摘要算法得到的哈希值进行非对称加密,保证「内容 + 哈希值」不被替换。通过服务端告知客户端是否可以使用缓存的方式被称为协商缓存。: 用于客户端要求服务器使用【HTTP长连接】机制。只要浏览器判断缓存没有过期,则直接使用浏览器的本地缓存。摘要算法 : 用哈希函数来计算出内容的哈希值。,可以保证内容不被修改。
2024-02-20 19:57:37
1126
原创 JVM 笔记
虚拟机栈为虚拟机执行Java方法,本地方法栈则是为虚拟机使用到的本地(Native)方法服务。垃圾收集器能够像管理Java堆一样管理这部分内存,省去专门为方法区编写内存管理代码的工作。每个线程在Java堆预先分配一小块内存,线程本地缓冲区用完了,分配新的缓存区才同步锁定。类被加载,类的常量池信息会放入运行时常量池,并把符号地址变为真实地址。设置堆空间的最大值,排除内存溢出问题时,可用把堆内存设置小一点。方法调用、执行完毕对应栈帧在虚拟机栈中的入栈到出栈。如何控制GC时,所有线程跑到安全点,停下?
2024-01-29 00:47:38
1240
原创 docker笔记
bridgenonehost自定义网络,不需要使用 --link 就能够使用名字pingdocker run时,默认有 --net bridg。
2024-01-28 19:51:29
1758
2
原创 redis笔记 -- 基础数据结构
消息队列,相比于基于 List 类型实现的消息队列,有这两个特有的特性:自动生成全局唯一消息ID,支持以消费组形式消费数据。解锁是有两个操作,这时就需要 Lua 脚本来保证解锁的原子性, Redis 在执行 Lua 脚本时,可以以原子性的方式执行。Set 类型可以保证一个用户只能点一个赞,这里举例子一个场景,key 是文章id,value 是用户id。哈希表, 如果哈希类型元素个数小于 512 个, 所有值小于 64,会使用压缩列表作为底层数据结构.: 消息保序 处理重复消息 保证消息的可靠性。
2023-11-26 15:27:16
304
原创 redis(Remote Dictionary Service) 底层数据结构
新字符串大于1M – 新空间为扩展后字符串长度 + 1M + 1.新字符串小于1M – 新空间为扩展后字符串长度的两倍 + 1。组成,可以在任意一端以O(1)时间复杂度进行压入/弹出操作。,可以对节点的ZipList做压缩。
2023-11-26 00:42:56
250
原创 深入理解Java虚拟机-GC
当需要排查各种内存溢出、内存泄漏时,当垃圾回收成为系统到达更高并发量的瓶颈时,我们必须对内存动态分配和内存回收技术这样的“自动化”技术采用必要的监控和调节。Java堆和方法区:一个接口的多个实现类需要的内存可能会不一样,一个方法所执行的不同条件分支所需要的内存也可能不一样,只有处于运行期间,我们才能知道程序究竟会创建哪些对象,创建多少个对象,这部分内存的分配和回收是动态的。
2023-11-21 20:55:50
196
原创 final 关键字小结笔记
被声明为final但又没有给出定值的字段,但是必须在该字段被使用之前被赋值;空白final:在构造器中进行赋值,保证声明为final的字段在被使用前赋值。
2023-11-16 19:35:51
174
原创 redis 网课笔记
延时双删:主从集群,读写分离,需要延时让主节点把数据同步到从节点。:AOF文件执行重写功能,用最少的命令达到相同的效果。appendfilename 可以指定文件名。no:操作系统控制:性能最好,可靠性较差。因为存入缓存的数据,读多写少 ->redis.conf 中配置。放入缓存的数据:读多写少。everysec:每秒刷盘。AOF比RDB文件大得多,仍然有出现脏数据的可能。alwags:同步刷盘。
2023-11-01 13:40:33
258
原创 AOP 笔记
无侵入式编程连接点:程序执行的任意位置,SpringAOP中,理解为方法的执行。切入点:匹配连接点的式子,要追加功能的方法通知(写在通知类中):共性功能,在切入点执行的操作。通知类切面。
2023-10-24 17:31:52
163
原创 分布式事务 学习
放弃分区容忍性,不进行分区。不考虑网络不同或者结点挂掉的情况。不是标志的分布式系统。try阶段都成功就认为一定能成功;如果有try失败,就回滚成功try的资源。因为try时做了资源预留等操作。事务管理器决策事务的提交和回滚。事务参与者负责自己本地事务的提交和回滚。强一致性: 任何事件查询每个结点的数据都一致。微服务之间通过网络(HTTP)通信。两阶段提交协议[准备阶段、提交阶段]2BC的传统方案在数据库层面实现。分布式事务控制到哪个程度呢?开源的分布式事务框架。
2023-10-23 00:09:09
105
原创 Java 并发笔记
线程是进程划分成的更小的运行单位。线程和进程最大的不同在于基本上各进程是独立的,而各线程则不一定,因为同一进程中的线程极有可能会相互影响。线程执行开销小,但不利于资源的管理和保护;而进程正相反。程序计数器应该是私有的。
2023-10-13 13:15:41
60
原创 Redis笔记
将写命令添加到 AOF 文件(Append Only File)的末尾。可以设置内存最大使用量,当内存使用量超出时,会施行数据淘汰策略。将某个时间点的所有数据都存放到硬盘上。
2023-10-10 18:15:36
55
原创 MySQL InnoDB与MyISAM
tips:读未提交读已提交可重复读:MVCC + Next-Key Locking防止幻读。可串行化不支持事务。不支持外键。不支持行级锁。数据以紧密格式存储。可以手工或自动执行检查和修复操作,可能导致一些数据丢失,而且修复操作是非常慢的。
2023-10-09 18:41:45
40
原创 Java并发
threadlocal是一个线程内部的存储类。ThreadLocal类主要解决的就是让每个线程绑定自己的值,可以将ThreadLocal类形象的比喻成存放数据的盒子,盒子中可以存储每个线程的私有数据。
2023-10-07 21:43:56
54
原创 java synchronized
内存中的java对象:对象头 + 对象中的成员变量Mark Word(32bit)[正常状:hashcode, age(分代年龄),是否偏向锁,加锁状态] + Klass Word(32bit)指向对象从属的类对象。
2023-10-04 23:55:53
63
原创 java笔记 反射
原文链接:https://pdai.tech/md/java/basic/java-basic-x-reflection.html。
2023-10-04 00:49:55
63
原创 java笔记 五
Java 7 开始,可以在 switch 条件判断语句中使用 String 对象,内部实现在 switch 中使用字符串的 hash code。switch 不支持 long、float、double。静态变量和静态语句块优先于实例变量和普通语句块,静态变量和静态语句块的初始化顺序取决于它们在代码中的顺序。优于main()函数执行。
2023-10-01 18:00:33
54
原创 java笔记三(String篇)
ava 虚拟机会先在字符串常量池中查找有没有“三妹”这个字符串对象,如果有,则不创建任何对象,直接将字符串常量池中这个“三妹”的对象地址返回,赋给变量 s;如果没有,在字符串常量池中创建“三妹”这个对象,然后将其地址返回,赋给变量 s。字符串的使用频率实在是太高了,所以 Java 虚拟机为了提高性能和减少内存开销,在创建字符串对象的时候进行了一些优化,特意为字符串开辟了一块空间——也就是字符串常量池。String 对象是不可变的,其哈希值在创建后不会发生变化。字符串常量池在内存中的什么位置呢?
2023-10-01 14:47:17
116
原创 Java多线程
启动线程必须用start方法。在主线程调用run则不会产生新线程,用main线程执行run方法。线程的start不能重复调用。上下文切换时,操作系统保存当前线程的状态,并恢复另一个线程的状态。状态包括:程序计数器、虚拟机栈中每个栈帧的信息。4、线程自己调用了sleep、yield、wait 、park、lock、join、synchronized。打断调用了wait、join方法发线程,打断标记为假。用对象锁保证了临界区内代码的原子性。3、有更高优先级的线程需要运行。1、线程cpu时间片用完。
2023-09-23 23:44:46
38
原创 docker
因此即想要使用容器的解耦和便利,又想同时得到容器云的运维,就需要使用到华为的云容器技术了。云容器其实指的就是以华为云容器引擎CCE 和云容器实例CCI 为代表的建立在云上的容器环境。是一个只读的模板,一个独立的文件系统,包括运行容器所需的数据,可以用来创建新的容器。K8S等容器云的时候,非常难以避免的一个问题就是我们需要花入大量的时间和精力来自己搭建K8S,并且还要在使用的过程中处理各种繁杂的运维问题:包括但不限于网络,带宽,存储,硬件等问题。基于容器封装的软件运行时环境,提供他的平台就是容器云平台。
2023-09-08 12:57:45
115
2
原创 loC 和AOP
创建对象。依赖注入。loC是Spring全家桶各个功能模块的基础,创建对象的容器。AOP以loC为基础, AOP是面向切面编程,抽象化的面向对象。AOP。
2023-09-08 12:49:22
274
1
原创 设计模式(二)
定义一个用于创建对象的接口,让子类决定实例化哪个产品类对象。工厂方法使一个产品类的实例化延迟到其工厂的子类。抽象工厂模式是工厂方法模式的升级版本,工厂方法模式只生产一个等级的产品,而抽象工厂模式可生产多个等级的产品。缺点:每增加一个产品就要增加一个具体产品类和一个对应的具体工厂类,这增加了系统的复杂度。在系统增加新的产品时只需要添加具体产品类和对应的具体工厂类,无须对原工厂进行任何修改;用户只需要知道具体工厂的名称就可得到所要的产品,无须知道产品的具体创建过程;不需要创建实例,可以通过类直接调用。
2023-09-04 22:22:48
61
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人