北京漫步云端网站建设,英文网站建设,淘宝客网站怎么推广,建站模板 discuz目录 java常见的引用类型java中深拷贝和浅拷贝如何设计一个秒杀系统?谈一下对高并发的理解#xff0c;平时怎么处理高并发问题?Comparable和Comparator区别#xff1f;解决hash冲突有哪些方法#xff1f;Synchronized锁的升级过程 java常见的引用类型 java的引用类型一般分… 目录 java常见的引用类型java中深拷贝和浅拷贝如何设计一个秒杀系统?谈一下对高并发的理解平时怎么处理高并发问题?Comparable和Comparator区别解决hash冲突有哪些方法Synchronized锁的升级过程 java常见的引用类型 java的引用类型一般分为四种强引用、软引用、弱引用、虚引用 强引用普通的变量引用 第一种直接newUser user new User();第二种通过反射Class? studentClass Class.forName(com.beiyou.model.student);
Object o studentClass.newInstance();软引用 当所剩内存空间不够我们新的对象存储的时候直接干掉软引用。当所剩内存空间够我们新对象的存储的时候不会删除我们的软引用对象。 SoftReferenceUser user new SoftReferenceUser(new User());弱引用 将对象用WeakReference弱引用类型的对象包裹只要GC执行了他就会被回收掉. public static WeakReferenceUser user new WeakReferenceUser(new User());虚引用虚引用也称为幽灵引用或者幻影引用
java中深拷贝和浅拷贝 Java中对象的复制分为深拷贝Deep Copy和浅拷贝Shallow Copy两种方式主要区别在于对对象内部引用类型成员变量的处理不同。 浅拷贝Shallow Copy 浅拷贝是指在创建新对象时对于对象中的基本数据类型 的成员变量会 复制其值而对于引用类型成员变量则只复制其引用 实现浅拷贝的方式 Java中实现浅拷贝的一种常见方式是通过 Object类的clone()方法。需要注意的是clone()方法是受保护的所以通常 需要在类中重写此方法并声明为public 同时还需要实现Cloneable接口。 深拷贝Deep Copy 深拷贝则是 完全复制对象及其所有引用类型成员变量指向的对象即不仅复制引用本身还复制引用指向的对象。 Java中实现深拷贝有几种常见方式 序列化构造函数复制对象的属性使用第三方库
如何设计一个秒杀系统? 秒杀活动请求以公网为划分点可以分为前端部分、后端部分。 整体思路是尽量将流量挡在前面让尽量少的流量留到后端部分。因为越往后端我们的处理逻辑就越重其处理能力也越弱。 前端优化 对于前端部分来说常见的优化手段有【页面静态化 CDN】、【请求频率限制】。 CDN: 内容分发网络它由非常多台 分布在世界各地 的缓存服务器组成。每次用户请求特定域名的时候会转发到对应 CDN 的 DNS 解析服务器随后会返回一台 离用户地理位置最近的一台 CDN 服务器 页面静态化 CDN 可以将所有可以静态化的内容全部静态化然后将其配置在 CDN 服务器上。这样既提高了用户打开页面的时间又减少了后端服务器的压力请求频率限制 求频率限制指的是根据业务的特点在前端做一些流量拦截减少后端服务器的压力。常见的拦截方式有 设定一个请求概率只允许 30% 的概率向后端发送接口请求。设定一个请求频率例如 10 秒钟只能请求 1 次随后按钮置灰。 后端优化 后端的优化有如下几种方式 增加缓存层 预热数据MQ 异步处理限流、熔断、降级业务端优化
谈一下对高并发的理解平时怎么处理高并发问题? 高并发是指系统在同一时间段内能够处理 大量 并发请求的能力。
在互联网应用中随着用户数量的增长系统的访问量也会急剧增加这就需要系统能够支持高并发以保证服务的稳定性和响应速度。
下面是一些关于高并发的处理方法
分库分表Spring Cloud Sentinel [哨兵]K8S 部署应用 [可以动态扩展副本]用nginx作负载均衡Redis作缓存层mysql数据库用集群 读写分离Lua脚本减少对数据库的请求MQ异步前端静态页面CDN
Comparable和Comparator区别 相同点Comparable 和 Comparator 都是用于比较排序 不同点: 接口所在包不同java.lang.Comparable、java.util.Comparator比较逻辑不同Comparable是内部比较器Comparator是外部比较器排序方法不同Comparable重写方法compareTo(T o)Comparator重写方法compare(T o1, T o2)排序规则数量限制不同Comparable 唯一字段排序Comparator可以有 多个字段排序
解决hash冲突有哪些方法 链表法开放地址法再hash法公共溢出区
Synchronized锁的升级过程 一开始是无锁状态 当一个线程首次获得对象锁时JVM会设置为 偏向锁。 当第二个线程尝试获取偏向锁失败时偏向锁会升级为 轻量级锁 此时JVM会使用CAS自旋操作来尝试获取锁如果成功则进入临界区域否则升级为 重量级锁。