加载中
一篇文章带你解析,乐观锁与悲观锁的优缺点

乐观锁与悲观锁 概述 乐观锁 总是假设最好的情况,每次去读数据的时候都认为别人不会修改,所以不会上锁, 但是在更新的时候会判断一下在此期间有没有其他线程更新该数据, 可以使用版本号机...

Java高并发实战,锁的优化

锁优化 这里的锁优化主要是指 JVM 对 synchronized 的优化。 自旋锁 互斥同步进入阻塞状态的开销都很大,应该尽量避免。在许多应用中,共享数据的锁定状态只会持续很短的一段时间。自旋锁的思...

Java 静态代理、Java动态代理、CGLIB动态代理

开篇 Java 的代理就是客户类不再直接和委托类打交道, 而是通过一个中间层来访问, 这个中间层就是代理。为啥要这样呢, 是因为使用代理有 2 个优势: 可以隐藏委托类的实现 可以实现客户与委托...

05/16 18:05
331
BAT经典面试题,深入理解Java内存模型JMM

Java 内存模型 Java 内存模型(JMM)是一种抽象的概念,并不真实存在,它描述了一组规则或规范,通过这组规范定义了程序中各个变量(包括实例字段、静态字段和构成数组对象的元素)的访问方式...

05/16 14:27
169
Java并发编程的艺术,解读并发编程的优缺点

并发编程的优缺点 使用并发的原因 多核的CPU的背景下,催生了并发编程的趋势,通过并发编程的形式可以将多核CPU的计算能力发挥到极致,性能得到提升。 在特殊的业务场景下先天的就适合于并发...

Java虚拟机,类文件结构深度解析

Java类文件结构 Java虚拟机不和包括Java在内的任何语言绑定,只与 "Class文件" 这种特定的二进制文件所关联, Class文件中包含了Java虚拟机指令集合符号表以及若干其它辅助信息。 Java虚拟机...

05/14 15:38
254
Java虚拟机内存分配与回收策略

内存分配与回收策略 Minor GC 和 Full GC Minor GC:发生在新生代上,因为新生代对象存活时间很短,因此 Minor GC 会频繁执行, 执行的速度一般也会比较快。 Full GC:又称Major GC,发生在老...

05/13 14:37
9
老生常谈Java虚拟机垃圾回收机制(必看篇)

二、垃圾收集 垃圾收集主要是针对堆和方法区进行。 程序计数器、虚拟机栈和本地方法栈这三个区域属于线程私有的,只存在于线程的生命周期内,线程结束之后也会消失,因此不需要对这三个区域进...

Java开发中存在这样的代码,反而影响整体整洁和可读性

不完美的库类 不完美的库类(Incomplete Library Class) 当一个类库已经不能满足实际需要时,你就不得不改变这个库(如果这个库是只读的,那就没辙了)。 问题原因 许多编程技术都建立在库类的...

05/10 14:40
847
开发中滥用面向对象,你是否违背了编程原则

Switch 声明 Switch 声明(Switch Statements) 你有一个复杂的 switch 语句或 if 序列语句。 问题原因 面向对象程序的一个最明显特征就是:少用 switch 和 case 语句。从本质上说,switch 语句...

05/09 14:06
660
JVM运行时数据区域

一、运行时数据区域 相应脑图 程序计数器 记录正在执行的虚拟机字节码指令的地址(如果正在执行的是本地方法则为空)。 Java 虚拟机栈 每个 Java 方法在执行的同时会创建一个栈帧用于存储局部...

05/08 16:22
239
怎么让代码不再臃肿,写的像诗一样优雅

基本类型偏执 基本类型偏执(Primitive Obsession) 使用基本类型而不是小对象来实现简单任务(例如货币、范围、电话号码字符串等)。 使用常量编码信息(例如一个用于引用管理员权限的常量USE...

05/07 14:32
1K
大型网站背后的高性能系统架构设计

1. 性能测试 1.1. 性能指标 网站性能测试的主要指标有: 响应时间 - 响应时间(RT)是指从客户端发一个请求开始计时,到客户端接收到从服务器端返回的响应结果结束所经历的时间,响应时间由请求...

如何保证网站的安全架构,不被黑客攻击

1. 网站安全的攻与防 互联网环境鱼龙混杂,网站被攻击是常见现象,所以了解一些常见的网站攻击手段十分必要。下面列举比较常见的 4 种攻击手段: 1.1. 跨站脚本攻击(XSS) 概念 跨站脚本攻击...

网站的可扩性展架构

扩展性(Extensibility) - 指对现有系统影响最小的情况下,系统功能可持续扩展或提升的能力。表现在系统基础设施稳定不需要经常变更,应用之间较少依赖和耦合,对需求变更可以敏捷响应。它是...

04/30 13:49
5
大型网站的可伸缩性架构如何设计?

1. 网站架构的伸缩性设计 1.1. 不同功能进行物理分离实现伸缩 纵向分离(分层后分离):将业务处理流程上的不同部分分离部署,实现系统伸缩性。 横向分离(业务分割后分离):将不同的业务模...

大型互联网架构概述,看完文章又涨知识了

1. 大型网站系统的特点 高并发、大流量 高可用 海量数据 用户分布广泛,网络情况复杂 安全环境恶劣 需求快速变更,迭代频繁 渐进式发展 2. 大型网站架构演化历程 2.1. 初始阶段架构 问题:网...

04/28 16:04
110
大型互联网系统架构是如何设计的?

接下来,我们将看看高阶的权衡和取舍: 性能与可扩展性 延迟与吞吐量 可用性与一致性 记住每个方面都面临取舍和权衡。 然后,我们将深入更具体的主题,如 DNS、CDN 和负载均衡器。 1. 性能与可...

支撑千万级,大型电商分布式架构解析

1. 大型分布式网站架构概述 1.1. 大型网站的特点 用户多,分布广泛 大流量,高并发 海量数据,服务高可用 安全环境恶劣,易受网络攻击 功能多,变更快,频繁发布 从小到大,渐进发展 以用户为...

面试官问分布式技术面试题,一脸懵逼怎么办?

1. 分布式缓存 1.1. Redis 有什么数据类型?分别用于什么场景? 数据类型 可以存储的值 操作 STRING 字符串、整数或者浮点数 对整个字符串或者字符串的其中一部分执行操作 对整数和浮点数执行...

没有更多内容

加载失败,请刷新页面

返回顶部
顶部