
项目
文章平均质量分 95
项目笔记JAVA篇
林子漾
开始经营我的Blog,ps:啥时候退休
展开
-
【八股】数据结构篇
所有整数类型能够表示的负数都比正数多一个,数字是以“补码”的形式存储在计算机中的。基于补码表示,计算机可以用同样的电路和操作来处理正数和负数的加法,不需要设计特殊的硬件电路来处理减法,并且无须特别处理正负零的歧义问题。这大大简化了硬件设计,提高了运算效率。举例:在原码下执行1 + (-2) 会得到 -3,反码【除符号位外,对原码的所有位取反】可以解决这个问题;+0和-0的原码和反码是不同的(因为首位是符号位),补码是相同的【在反码的基础上+1】原创 2024-04-27 13:16:48 · 1729 阅读 · 0 评论 -
【八股】计算机网络篇
👉由于 TCP 传输协议是面向字节流的传输协议,没有消息保护边界,所以发送方发送的多个数据包,接收方应用层不知如何区分,可能会被当成一个包来处理,这就是粘包;或者,发送方将一个打包分成多个小包发送,而接收方将它们当成多个包进行处理,这就是拆包。👉解决方法:将首尾字符用特殊字符分隔 | 使用变长协议,在报文头中指定当前报文中数据的长度。(如HTTP协议)服务器第一次收到客户端的 SYN 之后,就会处于。原创 2024-04-22 16:18:40 · 1851 阅读 · 2 评论 -
【八股】操作系统篇
终端是/dev/tty文件夹下的文件,是用户与操作系统进行交互的界面,用户可以通过终端执行命令、操作文件和程序等。在单线程环境中,通常不需要使用锁,因为在单线程中,协程的执行是顺序的,不会出现并发访问的情况。而在多线程环境中,如果协程之间存在并发访问共享资源的情况,就需要考虑使用锁来保护资源的访问,否则可能会发生竞态条件(Race Condition)等并发访问问题。系统调用会创建一个与父进程几乎完全相同的子进程,包括代码段、数据段、堆栈等,并且在子进程中返回0,在父进程中返回子进程的进程ID。原创 2024-04-20 22:24:39 · 1072 阅读 · 0 评论 -
【Java】设计模式
个人学习到的设计模式总结什么是设计模式?一类问题可能会有多种解决方案,而设计模式是在编程实践中,多种方案中的一种最优方案。设计模式有20多种,对应20多种软件开发中会遇到的问题主要学习:解决什么问题 | 怎么写。原创 2024-03-06 20:37:05 · 477 阅读 · 0 评论 -
【八股】Java基础、集合、JVM
可以接受0个或多个参数,如果有固定参数,则可变长参数一定要写在固定参数的后面。在重载的情况下,会优先匹配固定参数当方法调用的深度超出了栈内存的限制【栈帧过多】,比如无限递归,或者是方法定义的局部变量过多会导致栈溢出【栈帧过大】。解决方案:动态扩展栈(HotSpot不支持),减少递归调用深度、减少局部变量。是一种即时编译器,一些热门代码在由字节码编译成机器码的过程中时,会被JIT永久保存下来。作用是提高运行效率👉回收不再使用的 Java 对象【没有任何的引用指向该对象】所占用的内存空间,防止内存泄漏。原创 2024-04-24 09:52:27 · 1594 阅读 · 0 评论 -
【八股】JUC并发编程篇
👉抽象队列同步器,就是一种锁,内部维护的是一个先进先出的双向队列,队列中存储的是排队的线程,用state来标识是否有线程获得锁【0是无锁状态】👉流程:当一个线程拿到锁后会修改state = 1,这时如果有其他线程访问则会进入队列进行排序,直到state变成0后,队头线程才会拿到锁。在对state进行修改时,用的是CAS操作,所以可以保证原子性。👉它可以实现公平锁或非公平锁【默认】,上述是一个公平锁。如果新线程和队头线程抢锁资源就是非公平锁。原创 2024-04-28 21:28:38 · 327 阅读 · 0 评论 -
【八股】Spring篇
Spring IoC容器创建、管理和依赖注入的对象称之为bean一个bean定义包括如何创建一个bean,它的生命周期详情及它的依赖。当一个bean仅被用作另一个bean的属性时,它能被声明为一个内部bean,为了定义inner bean,在Spring 的 基于XML的 配置元数据中,可以在或元素内使用 元素,内部bean通常是匿名的,它们的Scope一般是prototype。原创 2024-04-25 13:16:41 · 1336 阅读 · 4 评论 -
【八股】消息中间件
👉延迟队列:进入队列的消息会被延迟消费的队列。👉TTL:time-to-live,消息的生存时间,TTL超时有以下两种情况。属性,指定死信消息要被转发到这个交换机中,这个交换机可以去绑定一个队列(设置。,消费者处理消息后向MQ发送ack回执,MQ收到ack后才会删除该消息。👉什么情况产生消息堆积:生产者发送消息的速度超过了消费者处理消息的速度。,如果消息发送失败会返回不同的ack【比如step1失败,响应。5. 要投递的队列消息堆积满了,最早的消息可能成为死信。),这样其他的消费者可以从该队列中消费消息。原创 2024-05-10 21:10:34 · 276 阅读 · 0 评论 -
【八股】非关系型数据库篇(Redis+ES)
🙂缓存:缓存穿透、击穿、雪崩、双写一致、持久化、数据过期、数据淘汰策略🙂分布式锁:setnx、redisson🙂消息队列、延迟队列、保存token:何种数据类型🙂计数器。原创 2024-04-23 17:20:14 · 3151 阅读 · 1 评论 -
【八股】MySQL篇
👉聚簇索引是指数据和索引一起存储,B+树的叶子节点存储了所有的行数据,有且只有一个👉二级索引是指数据和索引分开存储,B+树的叶子节点只存储数据对应的主键,一般用户自己创建的索引都是二级索引,可以有多个👉回表查询发生在使用二级索引查询的时候,找到对应的主键值再到聚簇索引中查找整行数据👉指查询使用了索引且需要返回的列在索引中能够全部找到,不需要回表查询,比如使用id聚簇索引,一次索引扫描返回行的所有数据。原创 2024-04-27 20:07:20 · 1722 阅读 · 1 评论 -
【数据库02】优化、视图、触发器、锁、InnoDB引擎、事务高级
个人学习笔记记录。原创 2024-05-15 13:40:55 · 760 阅读 · 0 评论 -
【八股】DDD领域驱动设计
🔜 是一种软件设计方法,核心思想是通过领域驱动设计方法定义领域模型,从而确定业务和应用边界,保证业务模型和代码模型的一致性。它倡导统一语言,提出了一系列概念,包括实体、值对象、聚合根等。🔜 优势:帮助开发团队更好地理解和表达业务模型,与业务领域专家进行沟通,减少误解,提高软件的质量和可维护性。加快跨职能团队的合作,确保软件系统与业务需求保持一致,并且能够应对变化和复杂性。打破了传统软件开发中需求分析和系统设计之间的隔阂,使得软件能够更灵活、快速地跟随需求变化。原创 2024-08-24 10:53:26 · 270 阅读 · 0 评论 -
【八股】测开
黑盒测试:黑盒测试是一类测试方法,测试人员不需要了解被测试系统的内部结构或实现细节,而是将其视为一个黑匣子,只关注输入和输出之间的关系。黑盒测试方法:👉等价类划分:等价类划分即将输入分为若干部分,然后从每个部分选取少量代表性数据进行测试,有利于减少测试用例的数量。等价类分为有效等价类和无效等价类,通过有效等价类验证系统的正确性,通过无效等价类验证系统的健壮性。👉边界值分析:软件错误往往发⽣在输⼊或输出范围的边缘,所以边界值分析专注于测试输⼊数据的边界条件,⽽不是中间值。原创 2024-04-28 21:29:42 · 384 阅读 · 0 评论