自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 ==与equals的区别

第三条语句 s3.intern.equals(s1),返回 true ,因为 s3 对象虽然在堆中创建了一个对象,但是 s3 中的 “aaa” 返回的是常量池中的对象。所以记住,并不是说 == 比较的就是引用是否相等,equals 比较的就是值,这需要区分来说的。equals 方法是 Object 类定义的方法,Object 是所有类的父类,当然也包括 String,String 重写了。然后第二条语句返回 false,因为 s1 返回的是常量池中的对象,而 s2 返回的是堆中的对象。

2023-03-21 15:15:07 106

原创 了解JAVA术语QPS、TPS、并发用户数、吞吐量

QPS是每秒查询率 ,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准, 即每秒的响应请求数,也即是最大吞吐能力。

2023-03-15 13:01:44 1795

原创 GET与POST的区别

首先GET 和 POST 只是 HTTP 协议中两种请求方式,而 HTTP 协议是基于 TCP/IP 的应用层协议,无论 GET 还是 POST,用的都是同一个传输层协议,所以在传输上两者没有区别。两种方法本质上是 TCP 连接,没有差别,也就是说,如果我不按规范来也是可以的。其次报文格式上,不带参数时,最大区别仅仅是第一行方法名不同,一个是GET,一个是POST,带参数时报文的区别在约定中,GET 方法的参数应该放在。,因为 HTTP 在网络上是明文传输,只要在网络节点上抓包,就能完整地获取数据报文。

2023-03-14 12:10:25 110

原创 缓存和数据库一致性问题

在上期我们说到了几种不同的,引入缓存是为了提高性能,如何保证缓存和数据库一致性问题就变成了重中之重。保证一致性的前提下代表着,当数据发生更新时,我们不仅要操作数据库,还要一并操作缓存。具体操作就是,修改一条数据时,不仅要更新数据库,也要连带缓存一起更新。所以数据库与缓存更新的先后顺序则是一个问题。如果缓存更新成功了,数据库更新失败,那么缓存拿到的是最新值,但数据库中是「旧值」。虽然此时读请求可以命中缓存,拿到正确的值,但是,一旦缓存「失效」,就会从数据库中读取到「旧值」,重建缓存也是这个旧值。

2023-03-13 11:45:04 87

原创 关于Redis缓存穿透、缓存雪崩、缓存击穿

​ 重在吧,也就是访问透过redis直接经过mysql,通常是一个不存在的key,在数据库查询为null。每次请求落在数据库、并且高并发。数据库扛不住会挂掉。

2023-03-07 15:24:04 68

原创 缓存常用更新策略

Cache aside 通常会先更新数据库,然后再删除缓存,为了兜底通常还会将数据设置缓存时间。Read/Write through 一般是由一个 Cache Provider 对外提供读写操作,应用程序不用感知操作的是缓存还是数据库。Write behind简单理解就是延迟写入,Cache Provider 每隔一段时间会批量输入数据库,优点是应用程序写入速度非常快。

2023-03-04 14:34:24 382

原创 详解Nginx高性能的原因

一个 线程,跟踪多个 socket 状态,哪个就绪,就读写哪个;

2023-02-26 18:52:42 196

原创 数据库的索引与索引优化策略

B+树B+树索引就是一种将索引值按一定的算法,存入一个树形的数据结构中(二叉树),每次查询都是从树的入口根结点开始,依次遍历节点,获取值。为什么索引采用B+树而不是B树呢,相信学过数据结构的同学了解B+树中结点会有指向兄弟结点的指针因此B+树只要遍历叶子节点就可以实现整棵树的遍历,而且在数据库中基于范围的查询是非常频繁的,而B树只能中序遍历所有节点,效率太低。Hash对于哈希索引来说,底层的数据结构肯定是哈希表,因此的时候,可以选择哈希索引,查询性能最快O(1),但是无法范围查询。

2023-02-22 18:27:19 122

原创 多线程同步锁(线程池、synchronized与ReentrantLock、以及三大锁结构、Volatile关键字)

聊到多线程,关于线程池的参数与结构是一定要牢记于心的线程池当中最核心的类ThreadPoolExecutor以及5大核心参数coreSize:核心线程数若我们设的核心线程数是10个,那么在创建之初ThreadPoolExecutor就会帮我们new出来10个核心线程启动在内部,并在相应线程任务队列中读取任务核心线程数也为最小线程数,即使在所有的线程的任务队列为空的状态下,也会保持10个线程数maxSize:最大线程数许多人会将maxSize与queueSize弄混。

2023-02-20 00:14:59 169

原创 了解Collection与Map的关系(HashMap与ConcurrentHashMap的加锁力度)等五小问

ArrayList与LinkedList的区别、HashMap的内存结构,ConcurrentHashMap的加锁力度、LinkedHashMap的加工等

2023-02-19 00:09:20 183

原创 实用到爆的在线工具分享(1)

各种实用在线工具总有你的需要,收藏更佳!

2022-03-30 11:22:22 208

原创 详解计算机组成原理组成篇(磁盘调度算法,cache命中率,效率,平均访问时间,以及FIFO、LFU、LRU算法。拒绝挂科)

磁盘调度算法,cache命中率,效率,平均访问时间,以及FIFO(先进先出算法)、LFU(最不经常使用算法)、LRU(最近最少使用算法)。拒绝挂科!

2022-03-26 22:14:15 1376

原创 详细讲解计算机组成原理之背景概述(冯诺依曼体系)

一、背景概述1.计算机的发展简史1.1计算机发展的四个阶段:第一阶段的电子管计算机:​ 埃尼阿克(ENIAC)是由第二次世界大战催生而来,由英国为了解密德国海军的密文而创立(有兴趣的可以观看电影模仿游戏)。埃尼阿克的主要作用于计算射击参数,射击参数需要人工上千次的计算才能得出。加快了处理效率和减低成本(相对于那个年代)。但缺点明

2022-03-23 12:05:47 1674

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除