08 2021 档案

摘要:知识点总结 对OOM的认识 stackOverflowError 递归调用,方法特别多。把栈空间撑破了 OutOfMemoryError: java heap space: 对象太多把堆撑破了 OutOfMemoryError:GC overhead limit exceeded :GC回收时间过长 阅读全文
posted @ 2021-08-31 22:44 豆豆tj 阅读(68) 评论(0) 推荐(0)
摘要:知识点回顾 线程安全性获得保证 工作内存与主内存同步延迟现象导的可见性问题,可以使用synchronized或volatile关键字解决,它们都可以使一个线程修改后的变量立即对其他线程可见。 对于指令重排导致的可见性问题和有序性问题:可以利用volatile关键字解决,因为volatile的另外一个 阅读全文
posted @ 2021-08-30 22:40 豆豆tj 阅读(28) 评论(0) 推荐(0)
摘要:知识点回顾 volatile volatile是java虚拟机提供的轻量级的同步机制。 特点: 保证可见性 不保证原子性 禁止指令重排 volatile禁止指令重排: 计算机在执行程序时,为了提高性能。编译器和处理器常常会对指令进行重排,一般分为以下三种: 源代码 >编译器优化的重排 >指令并行的重 阅读全文
posted @ 2021-08-29 22:44 豆豆tj 阅读(57) 评论(0) 推荐(0)
摘要:知识点回顾 如何选择垃圾收集器 单CPU或小内存,单机程序 : -XX:+UseSerialGC 多CPU,需要最大吞吐量,如后台计算型应用 -XX:+UseParallelGC或者 -XX:+UseParallelOldGC 多CPU,追求低停顿时间,需快速响应如互联网应用 -XX:+UseCon 阅读全文
posted @ 2021-08-28 22:37 豆豆tj 阅读(44) 评论(0) 推荐(0)
摘要:知识点回顾 CMS(并发标记清除) CMS收集器(Concurrent Mark Sweep): 并发标记清除)是一种以获取最短回收停顿时间为目标的收集器。 适合应用在互联网或者B/S系统的服务器上,这类应用尤其重视服务器的响应速度,希望系统停顿时间最短。CMS非常适合堆内存大、CPU核数多的服务器 阅读全文
posted @ 2021-08-27 22:38 豆豆tj 阅读(110) 评论(0) 推荐(0)
摘要:知识点回顾 垃圾回收器2 并行回收GC 并行回收GC(Parallel)/(Parallel Scavenge) Parallel Scavenge收集器类似ParNew也是一个新生代垃圾回收器,使用复制算法,也是一个并行的多线程的垃圾收集器,俗称吞吐量优先收集器。串行收集器在新生代和老年代的并行化 阅读全文
posted @ 2021-08-26 22:33 豆豆tj 阅读(33) 评论(0) 推荐(0)
摘要:知识点回顾 Server/Client模式分别是什么 操作系统: 32位Window操作系统,不论硬件如何都默认使用Client的JVM模式 32位其他操作系统,2G内存同时有2个cpu以上用Server模式,低于该配置还是Client模式 64位只有server模式 GC垃圾回收算法和垃圾收集器的 阅读全文
posted @ 2021-08-25 22:37 豆豆tj 阅读(43) 评论(0) 推荐(0)
摘要:Synchronized和lock的区别 1.synchronized是关键字属于JVM层面, monitorenter(底层是通过monitor对象来完成, 其实wait/notify等方法也依赖于monitor对象只有在同步块或方法中才能掉wait/notify等方法) Lock是具体类(jav 阅读全文
posted @ 2021-08-24 22:39 豆豆tj 阅读(49) 评论(0) 推荐(0)
摘要:知识点回顾 弱引用 虚引用需要用java.lang.ref.WeakReference类来实现,它比软引用的生存期更短,对于只有弱引用的对象来说,只要垃圾回收机制一运行,不管JVM的内存空间是否足够,都会回收该对象占用的内存。 假如有一个应用需要读取大量的本地图片: 如果每次读取图片都从硬盘读取则会 阅读全文
posted @ 2021-08-23 22:39 豆豆tj 阅读(61) 评论(0) 推荐(0)
摘要:知识点回顾 强引用 当内存不足,JVM开始垃圾回收,对于强引用的对象,就算出现了OOM也不会对该对象进行回收,死都不收。 强引用是我们最常见的普通对象引用,只要还有强引用指向一个对象,就表明对象还“活着”,垃圾收集器不会碰这种对象。在Java中最常见的就是强引用,把一个对象赋给一个引用变量,这个引用 阅读全文
posted @ 2021-08-22 22:41 豆豆tj 阅读(46) 评论(0) 推荐(0)
摘要:知识点回顾 线程池 合理配置线程池的考虑: CPU密集型: CPU密集的意思是该任务需要大量的运算,而没有阻塞,CPU一直全速运行。 CPU密集型任务只有在真正的多核CPU上才能得到加速(通过多线程)。 而在单核上,无论开几个模拟的多线程都不可能得到加速,因为CPU总的运算能力是有限的。 CPU密集 阅读全文
posted @ 2021-08-21 22:36 豆豆tj 阅读(338) 评论(0) 推荐(0)
摘要:知识点回顾 线程池的拒绝策略 线程池的拒绝策略: 等待队列已经满了,再也塞不下新任务了,同时,线程池中的max线程满了,无法继续为新任务服务,这时候就要拒绝策略机制合理的处理这个问题。 JDK内置的拒绝策略 AbortPolicy(默认):直接抛出RejectedExecutionException 阅读全文
posted @ 2021-08-20 22:41 豆豆tj 阅读(66) 评论(0) 推荐(0)
摘要:知识点回顾 线程池 java中的线程池是通过Executor框架实现的,该框架中用到了Executor,Executors,ExecutorService, ThreadPoolExecutor这几个类。 Executors.newFixedThreadPool(int) 执行长期的任务,性能好很多 阅读全文
posted @ 2021-08-19 22:40 豆豆tj 阅读(47) 评论(0) 推荐(0)
摘要:HTTP Web的应用层协议是超文本传输协议(HyperText Transfer Protocol ,HTTP),它是Web 的核心,在[RFC 1945]和[RFC 2616]中进行了定义。HTTP由两个程序实现:一个客户程序和一个服务器程序。客户程序和服务器程序运行在不同的端系统中,通过交换H 阅读全文
posted @ 2021-08-18 22:39 豆豆tj 阅读(67) 评论(0) 推荐(0)
摘要:MySQL的日志文件 重做日志(redo log) 回滚日志(udo log) 二进制日志(binlog) 错误日志(errorlog) 慢查询日志(slow query log) 一般查询日志(general log) 中继日志(relay log) Redis 备份是如何执行的 Redis 会单 阅读全文
posted @ 2021-08-17 22:40 豆豆tj 阅读(75) 评论(0) 推荐(0)
摘要:Redis 复习 list LPUSH key value[value...] 向列表左边添加元素 RPUSH key value[value...]向列表右边添加元素 LRANGE key start stop 查看列表 LLEN key 获取列表中元素的个数 应用场景: 微信文章订阅公众号 se 阅读全文
posted @ 2021-08-16 22:42 豆豆tj 阅读(36) 评论(0) 推荐(0)
摘要:Redis 知识点回顾 Redis八大类型数据结构 String:字符类型 Hash:散列类型 List:列表类型 Set:集合类型 SortedSet:有序集合类型,简称zset BitMap: 位图 HyperLogLog:统计 GEO:地理 命令不区分大小写,而key是区分大小写的 Set 最 阅读全文
posted @ 2021-08-15 22:36 豆豆tj 阅读(54) 评论(0) 推荐(0)
摘要:MySQL知识点复习 事务的隔离级别 读数据一致性及允许的并发副作用 隔离级别读数据一致性脏读不可重复读幻读 未提交读 最低级别,只能保证不读取物理上损坏的数据 是 是 是 已提交读 语句级别 否 是 是 可重复读 事务级别 否 否 否 可序列化 最高级别,事务级别 否 否 否 主从复制 MySQL 阅读全文
posted @ 2021-08-14 22:38 豆豆tj 阅读(47) 评论(0) 推荐(0)
摘要:MySQL知识点回顾 覆盖索引 理解方式一:就是select的数据列只用从索引中就能取得,不必读取行数据,MySQL可以利用索引返回select列表的字段,而不必根据索引再次读取数据文件,换句话说查询列要被所建的索引覆盖。 理解方式二:索引是高效找到行的一个方法,但是一般数据库也能使用索引找到一个列 阅读全文
posted @ 2021-08-13 22:37 豆豆tj 阅读(49) 评论(0) 推荐(0)
摘要:MySQL知识点回顾 间隙锁 当我们用范围查找条件而不是相等条件检索数据,并请求共享或排他锁时,InnoDB会给符合条件的已有数据记录的索引项加锁;对于键值在条件范围内但并不存在的记录,叫做间隙(GAP); InnoDB也会对这个“间隙”加锁,这种锁机制就是所谓的间隙锁(Next-Key锁); 危害 阅读全文
posted @ 2021-08-12 22:39 豆豆tj 阅读(27) 评论(0) 推荐(0)
摘要:MySQL索引失效 全值匹配不会失效 最佳左前缀法则不会失效。 如果索引了多列,要遵守最左前缀法则。指的是查询从索引的最前列开始并且不跳过索引中的列。 不在索引列上做任何操作(计算、函数、自动或者手动类型转换)就不会失效,否则会导致索引失效而转向全表扫描 存储引擎不能使用索引中范围条件右边的列(范围 阅读全文
posted @ 2021-08-11 22:41 豆豆tj 阅读(51) 评论(0) 推荐(0)
摘要:反射 Reflection Reflection(反射) 是java被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方法 Class c = Class.forName("java.lang.String") 加载 阅读全文
posted @ 2021-08-10 22:41 豆豆tj 阅读(62) 评论(1) 推荐(0)
摘要:Scanner从键盘上获取多种类型数据 具体实现步骤 导包:import java.util.Scanner; Scanner的实例化 Scanner scan = new Scanner(System.in) 调用Scanner类的相关方法,(next()/nextXxx)来获取指定类型的变量 注 阅读全文
posted @ 2021-08-09 22:40 豆豆tj 阅读(94) 评论(0) 推荐(0)
摘要:### Java在算法题中的输入输出问题 使用Scanner package com.doudou.scanner; ​ import java.util.Scanner; ​ public class Demo01 { public static void main(String[] args){ 阅读全文
posted @ 2021-08-08 22:41 豆豆tj 阅读(171) 评论(0) 推荐(0)
摘要:知识点回顾 封装 封装(有时称为数据隐藏)是与对象有关的一个重要概念。从形式上来看,封装不过是将数据和行为组合在一个包中,并对对象的使用者隐藏了数据的实现方式。对象中的数据称为实例域,操作数据的过程称为方法。对于每个特定的类实例(对象)都有一组特定的实例域值。这些值的集合就是这个对象的当前状态。无论 阅读全文
posted @ 2021-08-07 22:40 豆豆tj 阅读(57) 评论(0) 推荐(0)
摘要:压力测试 JMtere 虚拟机栈: 知识点补充(Java 继承) 关键字extends表示继承, 在java中所有的继承都是公有继承。 关键字extends表明正在构造的新类派生与一个已存在的类。已存在的类称为超类,基类或父类;新类称为子类、派生类或孩子类。子类比超类拥有功能更加丰富。 在通过扩展超 阅读全文
posted @ 2021-08-06 22:38 豆豆tj 阅读(52) 评论(0) 推荐(0)
摘要:熔断机制 使用Sentinel来保护feign远程调用:熔断; 调用方手动指定远程服务的降级策略。远程服务被降级处理。触发我们的熔断回调方法。 超大流量的时候,必须牺牲一些远程服务。在服务的提供方(远程服务)指定降级策略;提供方式在运行,但是不运行自己的业务逻辑,返回默认的降级数据(限流数据)。 总 阅读全文
posted @ 2021-08-05 22:34 豆豆tj 阅读(64) 评论(0) 推荐(0)
摘要:秒杀系统设计 恶意请求是在网关处拦截 秒杀链接加密:加随机码 Sentinel 高并发方法论 简介 B站:全网最强电商教程《谷粒商城》对标阿里P6/P7,40-60万年薪哔哩哔哩bilibili 阅读全文
posted @ 2021-08-04 22:41 豆豆tj 阅读(76) 评论(0) 推荐(0)
摘要:内网穿透 秒杀 定时任务 B站:全网最强电商教程《谷粒商城》对标阿里P6/P7,40-60万年薪哔哩哔哩bilibili 阅读全文
posted @ 2021-08-03 22:45 豆豆tj 阅读(45) 评论(0) 推荐(0)
摘要:订单服务 通过SpringSession做session共享 每个系统都要有自己的线程池 用ThreadLocal共享数据 要使用登录拦截功能 远程调用 加密 ) 只要有一方密钥泄露,就不安全 全网最强电商教程《谷粒商城》对标阿里P6/P7,40-60万年薪哔哩哔哩bilibili 阅读全文
posted @ 2021-08-02 22:42 豆豆tj 阅读(44) 评论(0) 推荐(0)
摘要:购物车 localstorage:数据放入浏览器端 在redis中 key: 用户标识 value: Hash(k:商品id v: 购物项详情) ThreadLocal 同一个商品的添加,只用添加数量 购物车添加成功,重定向到success页面再次查询购物车数据即可 要清空临时购物车的数据 展示购物 阅读全文
posted @ 2021-08-01 22:43 豆豆tj 阅读(120) 评论(0) 推荐(0)