- 博客(120)
- 收藏
- 关注
原创 思考 - 操作系统
CPU的算力是不是很强,一个普通的任务,是不是可以在很短的时间内完成计算,那么分片的话,任务的等待时间是不是,就会缩短。线程 / 进程 ----> CPU / 磁盘存储 ---> 进程通信 ---> 进程调度算法 ---进程控制块:进程标识信息、处理机状态信息、进程调度信息、进程控制信息、、、、进程通信。进程切换,切换的是什么资源?CPU是单核的,单核,处理多个任务,就会出现上下文切换。是不是说,进程切换,要把内存中的数据写回到磁盘中呢?进程切换,是不是说,就是【关闭 / 开启】的切换?
2025-04-07 18:20:27
319
原创 远程字典服务(Remote Dictionary Server)
Redis 官方站提出了一种权威的基于 Redis 实现分布式锁的方式名叫Redlock,此种方式比原先的单节点的方法更安全。安全特性:互斥访问,即永远只有一个 client 能拿到锁避免死锁:最终 client 都可能拿到锁,不会出现死锁的情况,即使原本锁住某资源的 client 挂掉了容错性:只要大部分 Redis 节点存活就可以正常提供服务。
2024-10-14 22:14:39
1171
9
原创 JUC并发编程
还有就是那些开源项目,我是真的什么都看不懂,里面居然有枚举,我只是很熟悉,但是我不知道枚举到底有什么用,还有就是hutool这个工具类,我知道它很重要,但是,我真的没有信心了。睡眠5秒之后,在不调用对象的hashCode方法的时候,会开启偏向锁,但是调用了hashCode方法后,则不会开启偏向锁!①为什么我把我的项目打包成jar包或者war包后,自己的程序就不能在自己的电脑上运行了?偏向锁的操作不用直接捅到操作系统,不涉及用户到内核转换,不必要直接升级为最高级!非公平锁,抢夺锁获得锁的几率不公平。
2024-10-14 18:28:01
437
原创 设计模式(学习笔记)
有些人可能炒过股票,但其实大部分人都不太懂,这种没有足够了解证券知识的情况下做股票是很容易亏钱的,刚开始炒股肯定都会想,如果有个懂行的帮帮手就好,其实基金就是个好帮手,支付宝里就有许多的基金,它将投资者的资金集中起来,交由专业的经理人进行管理,投资于股票、债券、外汇等领域,而基金投资的收益归持有者所有,管理机构收取一定比例的托管管理费用。克隆之间的关系是true的原因:克隆的是实现了Cloneable的类Citation,判断的是这个类中的类变量属性Person!增加了代码维护的复杂度。
2024-10-12 22:14:18
1014
原创 RabbitMQ(学习笔记)
在已有的系统中引入MQ无疑会增加系统的复杂性,MQ的异步通讯特性,可能会导致消息丢失,消息重复传递,从而降低系统的数据一致性,引入MQ会增加系统的依赖性,当MQ出现故障时,会导致整个系统的不可用。Tomcat服务器处理每个请求都有自己独立的线程,如果超过最大线程数会将该请求缓存到队列中,如果请求堆积过多的情况下,有可能会导致tomcat服务器崩溃的问题。(字节码是可变的,为什么有安全漏洞?在A系统接收到大量请求时,将请求进行平滑处理,将多余的请求存储至MQ,以避免突发的大量请求对B系统造成过多的压力。
2024-10-12 21:43:58
532
原创 谷粒商城(学习笔记)
在绝大多数网络攻击中都是把XSS作为漏洞链中的第一环,通过XSS,可以拿到用户浏览器的cookie,从而盗取用户的账号密码,进行非授权获取关键的隐私信息。TCP协议是一个面向连接的、可靠的传输协议,它提供一种可靠的字节流,能保证数据完整、无损并且按顺序到达。传输层的协议,解决了诸如端到端可靠性问题,能确保数据可靠的到达目的地,甚至能保证数据按照正确的顺序到达目的地。Validated是spring提供的注解,分组之后,你就要制定每个注解的组了,不然的话,不会起作用的!我们要解决的是高并发的问题!
2024-10-12 21:32:38
942
原创 仿微信——程序员老罗
Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。Hutool是项目中“util”包友好的替代,它节省了开发人员对项目中公用类和公用工具方法的封装时间,使开发专注于业务,同时可以最大限度的避免封装不完善带来的bug。Hutool中的工具方法来自每个用户的精雕细琢,它涵盖了Java开发底层代码中的方方面面,它既是大型项目开发中解决小问题的利器,也是小型项目中的效率担当;就是你要连接到服务器!
2024-10-12 21:06:42
234
原创 JAVA Web(学习笔记)
客户端在发送一个请求时,一般而言都会携带一些数据(例如URL中的参数、页面中的表单、Ajax提交的参数等),当一个Servlet接收到这些请求时,Java Servlet中的类通过所提供的方法就能得到这些参数,也正是这个原因,Servlet可以对发送请求起到拦截作用,它在某些请求前先做一个预处理分析,从而判断客户端是否可以做某些请求,当Servlet具有如上功能时,一般称之为拦截器。Servlet起到这个中间角色的功能,协调各组件、各部分完成相应的功能,根据不同的请求做出相应的响应并显示结果。
2024-10-09 23:31:03
1306
原创 ElasticSearch搜索引擎
Kibana可以将ElasticSearch的数据通过友好的页面展示出来。随着数据量的增加,solr的搜索效率会变得更低,而ES却没有明显的变化。当建立索引时,solr会产生io阻塞,查询性能较差,ES有明显的优势。当单纯的对已有数据进行搜索时,Solr更快。elasticSearch是面向文档。Solr要利用zookeeper。es查询的效率很高,处理大数据。Kibana:端口号5601。Es与Kibana的版本一致。
2024-10-09 23:14:58
338
原创 Spring
不直接创建对象,而是由容器创建,并设定一个或多个标识,需要的时候通过Bean名字从容器中获取,这看上去是类似于EJB的服务查找,但是Spring真正的核心是对于依赖的处理,使用配置的方式注入依赖。以A、B、C三个类为例,B、C都是单例模式的类,A需要调用B、C类的方法,这样A就和B、C形成了依赖,如果B、C交由容器管理,A虽然和容器产生依赖,但是依赖程度降低了。
2024-10-02 14:54:55
1382
1
原创 Spring(学习笔记)
context:annotation-config/>是 Spring 配置文件中的一个标签,用于开启注解配置功能。这个标签可以让 Spring 容器识别并处理使用注解定义的 bean。例如,可以使用 @Autowired 注解自动装配 bean,或者使用 @Component 注解将类标记为 bean 等。为什么加载上下文的时候,被包含的Bean它的构造函数的代码会执行呀?好像是很多代码都执行了!!!没有无参构造,有有参构造会报错!也就是说必须要有无参构造!这是为什么呀!
2024-10-02 14:23:12
1396
原创 G1垃圾回收器(学习笔记)
JVM 的内存通常分为新生代和老年代。在大多数应用场景下,经过 15 次 Minor GC 仍然存活的对象,很可能在未来一段时间内也不会被回收,将其转移到老年代,可以减少新生代的内存碎片,提高新生代的内存回收效率,同时也能更好地利用老年代的内存空间,因为老年代的内存空间相对较大,回收频率相对较低。当 Eden 区进行垃圾回收时,会将存活的对象复制到 Survivor 区或老年代,然后直接清理 Eden 区中所有未被复制的对象所占用的内存空间,这种方式可以快速地回收内存,减少内存碎片的产生。
2024-10-02 12:59:15
142
原创 Spring Data(学习笔记)
Spring Security是基于Spring Boot的么?(@Query括号中的就是JPQL语句)Spring Data是基于Spring的么?为什么什么都有分页呢?这个迭代器到底是什么呀?怎么又会涉及到连表查询呢?themeleaf:是什么。用注解来实现表间关系。继承,与重写方法的问题。Deque是什么?
2024-10-01 18:53:22
386
原创 GO语言(学习笔记)
谷歌的 “20%的工作时间”,诞生了Go。在中国是不可能的,你不摸鱼吗?计算机硬件在飞速的发展,编程工具迫切需要改变。Go语言更适合后台服务器应用程序的开发。Go语言非常适合于分布式计算领域。
2024-10-01 18:36:09
137
原创 Dubbo(学习笔记)
写操作是非幂等性的,多次写操作,会导致数据库出现错误的数据的情况。影响RPC框架的性能主要有两点:序列化,建立连接(通讯)灰度发布:服务升级,慢慢从旧服务转换为新服务的过程!war可以对外的独立启动。
2024-10-01 14:03:33
277
原创 程序计数器(学习笔记)
程序计数器是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的信号指示器(偏移地址),Java编译过程中产生的字节码有点类似编译原理的指令,程序计数器的内存空间存储的是当前执行的字节码的偏移地址。因为当执行语句时,改变的是程序计数器的内存空间,因此它不会发生内存溢出。
2024-10-01 13:22:20
298
原创 垃圾回收算法(学习笔记)
当 Eden 区内存空间被填满时,就会触发 Minor GC,目的是清理新生代中不再被使用的对象,释放内存空间。一般来说,Minor GC 的停顿时间相对较短。因为新生代中的对象数量相对老年代较少,且大部分对象都是 “朝生夕灭” 的,在每次 Minor GC 时能够被回收掉的对象占比通常较高,需要复制和处理的存活对象相对较少,所以整个回收过程耗时相对较短。Major GC 通常指老年代的垃圾回收,而 Full GC 则是对整个 Java 堆(包括新生代和老年代)以及方法区进行的垃圾回收。
2024-10-01 13:00:11
123
原创 JVM(学习笔记)
字面量形式创建的字符串对象 "aaa" 存进了字符串常量池,而通过 new 创建的 "bbb" 是存进了堆中,String str = new String("bbb")。方法区,有叫做静态存储区,用于存储已经被加载的类信息、常量、静态变量、编译器编译后的代码(class文件)等数据。这一切都是源于JVM为了减少字符串对象的重复创建,其维护了一个特殊的内存,这段内存被称为字符串常量池或者字符串字面量池。这两种方式我们在代码编写时都经常使用,尤其是字面量的方式。堆区:只存放类对象,线程共享。
2024-10-01 12:13:43
105
原创 博弈论(学习笔记)
沙普利求解合作博弈的著名理论---如何为参与者制定利益分配方案,是所有的参与者的效率达到最高,且公平。(有唯一的分配方案,我们称之为沙普利)。(众多企业之间的一场博弈,任何一个关键词的搜索,是要像搜索引擎付费的!每个人都补课,期望收益与每个人都不补课的期望收益相同!田忌,要明白领导的心思!价值判断不一样,基于目标的判断是不是合不合理,对应不同的策略。博弈---期望收益,可以通过,支付一定的成本,提高期望收益!用博弈来分析,的结果是可重复的,具有理性(输的心服口服)。考上北大的收益(量化收益为10)!
2024-09-30 13:50:26
647
原创 联邦学习(三只决策和大数据分析)(学习笔记)
联邦学习模型按照数据重叠形式分成了三类,分别是横向联邦学习、纵向联邦学习和联邦迁移学习。横向联邦学习模型针对特征一致但ID不一致的数据;纵向联邦学习模型针对ID一致但特征不一致的数据;联邦迁移学习模型针对ID和特征都不一致的数据。
2024-09-30 13:45:08
1976
原创 Junit和枚举ENUM
断言机制,JAVA中的断言机制是一种用于检查程序中某个条件是否为真的机制。它可以在程序运行时检查某个条件是否满足,如果不满足则会抛出AssertionError异常。在java中,断言机制默认是关闭的。所以会输出u。断言机制只是为了用来吃调试程序的,切勿将断言写入业务逻辑中。目标字节码版本(Target Bytecode Version)是指在Java编译过程中,指定生成的字节码文件的版本。
2024-09-30 01:02:37
1110
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人