![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 57
价值成长
这个作者很懒,什么都没留下…
展开
-
atguigu8 集群
(1)集群的目标• 高可用(High Availability),是当一台服务器停止服务后,对于业务及用户毫无影响。停止服务的原因可能由于网卡、路由器、机房、CPU负载过高、内存溢出、自然灾害等不可预期的原因导致,在很多时候也称单点问题。• 突破数据量限制,一台服务器不能储存大量数据,需要多台分担,每个存储一部分,共同存储完整个集群数据。最好能做到互相备份,即使单节点故障,也能在其他节点找到数据。• 数据备份容灾,单点故障后,存储的数据仍然可以在别的地方拉起。• 压力分担。原创 2022-11-21 22:21:51 · 985 阅读 · 0 评论 -
Docker面试
虚拟机Virtual Machine与容器化技术(代表Docker)都是虚拟化技术,两者的区别在于虚。Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。原创 2022-11-20 21:21:40 · 1014 阅读 · 0 评论 -
ElasticSearch面试
Welcome to Elastic Docs | ElasticES的整体结构? 1)正排就是我记得我电脑有个文档,讲了 ES 的常见问题总结。那么我就找到文档,从上往下翻页,找到 ES 的部分。通过文档找文档内容。2)倒排:一个 txt 文件 ES 的常见问题 -> D:/分布式问题总结.doc。所以倒排就是文档内容找文档。当然内容不是全部的,否则也不需要找文档了,内容就是几个分词而已。这里的 txt 就是搜索引擎。通俗解释:传统的我们的检索是通过文章,逐个遍历找到对应关键词的位置。而倒原创 2022-11-20 19:40:25 · 1368 阅读 · 0 评论 -
Mybatis
MyBatis 是一个可以自定义 SQL、存储过程和高级映射的持久层框架。Mybatis 是一个半 ORM(对象关系映射)框架,它内部封装了 JDBC,开发时只需要关注 SQL 语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement 等繁杂的过程。MyBatis 可以使用 XML 或注解来配置和映射原生信息,将 POJO 映射成数据库中的记录。原创 2022-11-18 17:26:31 · 197 阅读 · 0 评论 -
全栈知识体系
java面试_价值成长的博客-CSDN博客JUC并发编程_价值成长的博客-CSDN博客JVM小总结_价值成长的博客-CSDN博客Spring_价值成长的博客-CSDN博客Mysql_价值成长的博客-CSDN博客redis_价值成长的博客-CSDN博客原创 2022-11-17 23:16:27 · 707 阅读 · 0 评论 -
SpringBoot面试
如果你想在Spring Boot启动的时候运行一些特定的代码,你可以实现接口ApplicationRunner或者CommandLineRunner,这两个接口实现方式一样,它们都只提供了一个run方法。,Tomcat、Jetty等,现在不再需要打成war包部署到容器中,Spring Boot只要打成一个可执行的jar包就能独立运行,所有的依赖包都在一个jar包内。,如添加一个spring-boot-starter-web启动器就能拥有web的功能,无需其他配置。1)打包用命令或者放到容器中运行。原创 2022-11-17 16:43:42 · 304 阅读 · 0 评论 -
java面试
java面试(基础)_价值成长的博客-CSDN博客java面试(JVM)_价值成长的博客-CSDN博客java面试(多线程)_价值成长的博客-CSDN博客java 注解_价值成长的博客-CSDN博客原创 2022-11-16 12:46:32 · 154 阅读 · 0 评论 -
java面试(JVM)
在这种情况下,垃圾回收器是不会回收B对象的,这就可能造成了内存不足问题,因为A可能不止引用着B对象,还可能引用其它生命周期比A短的对象,这就造成了大量无用对象不能被回收,且占据了昂贵的内存资源。同样的,B对象也可能引用着一大堆对象,这些被B对象引用着的对象也不能被垃圾回收器回收,所有的这些无用对象消耗了大量内存资源。理论上来说, Java是有GC垃圾回收机制的,也就是说,不再被使用的对象,会被GC自动回收 掉,自动从内存中清除。如果你仔细查看垃圾收集器的输出信息,就会发现永久代也是被回收的。原创 2022-11-13 22:50:47 · 400 阅读 · 0 评论 -
java面试(多线程)
线程安全 && 线程不安全线程安全 - 如果线程执行过程中不会产生共享资源的冲突,则线程安全线程不安全 - 如果有多个线程同时在操作主内存中的变量,则线程不安全实现线程安全的三种方式java线程安全有哪些实现思路?_价值成长的博客-CSDN博客在并发编程中分析线程安全的问题时往往需要切入点,那就是两大核心:JMM抽象内存模型以及happens-before规则,三条性质:原子性,有序性和可见性。12.1 原子性。原创 2022-11-10 23:15:53 · 1439 阅读 · 0 评论 -
Java GC
垃圾回收器通常是作为一个单独的低优先级的线程运行,不可预知的情况下对内存堆中已经死亡的或者长时间没有使用的对象进行清除和回收,程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收。简单说,即一个对象如果没有任何与之关联的引用,即他们的引用计数都不为 0,则说明对象不太可能再被用到,那么这个对象就是可回收对象。复制算法将可用内存按容量划分为相等的两部分,然后每次只使用其中的一块,当一块内存用完时,就将还存活的对象复制到第二块内存上,然后一次性清楚完第一块内存,再将第二块上的对象复制到第一块。原创 2022-11-09 23:46:31 · 141 阅读 · 0 评论 -
JVM 的主要组成部分及其作用
类的加载指的是将类的.class文件中的二进制数据读入 到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个 java.lang.Class对象,用来封装类在方法区内的数据结构。再利用编译器(javac命令)将源代码编译成字节码文件,字节码文件的后缀名 为.class;运行字节码的工作是由解释器(java命令)来完成的。中,将其放在运行时数据区的方法区内,而字节码文件只是 JVM 的一套指令集规范,并不能直。字节码翻译成底层系统指令,再交由 CPU 去执行,而这个过程中需要调用其他语言的本地库。原创 2022-11-09 23:29:22 · 413 阅读 · 0 评论 -
JMM内存模型 / JVM 内存区域
因为如果仅仅清理需要删除的对象,这样会导致内存碎片,因此一般会把 Eden 进行完全的清理,然后整理内存。堆里面分为新生代和老生代( java8 取消了永久代,采用了 Metaspace),新生代包含Eden+Survivor 区, survivor 区里面分为 from 和 to 区,内存回收时,如果用的是复制算法,从 from 复制到 to,当经过一次或者多次 GC 之后,存活下来的对象会被移动到老年区,当 JVM 内存不够用的时候,会触发 Full GC,清理 JVM 老年区。栈内存是线程私有的。原创 2022-11-09 23:27:38 · 277 阅读 · 0 评论 -
java对象的访问
Java堆中划分出一块内存来作为句柄池,引用中存储对象的句柄地址,而句柄中 包含了对象实例数据与对象类型数据各自的具体地址信息。优势:引用中存储的是稳定的句柄地址,在对象被移动(垃圾收集时移动对象是 非常普遍的行为)时只会改变句柄中的实例数据指针,而引用本身不需要修改。句柄不直接指向对象,而是 指向对象的指针(句柄不发生变化,指向固定内存地址),再由对象的指针指向对象的 真实内存地址。Java程序需要通过 JVM 栈上的引用访问堆中的具体对象。对象的访问方式取决 于 JVM 虚拟机的实现。原创 2022-11-09 22:39:34 · 386 阅读 · 0 评论 -
JVM小总结
JVM内存模型_价值成长的博客-CSDN博客java虚拟机运行时数据区域_价值成长的博客-CSDN博客java对象/谈谈Java虚拟机_价值成长的博客-CSDN博客java对象的引用_价值成长的博客-CSDN博客_java对象的引用Class类文件结构_价值成长的博客-CSDN博客JVM调优_价值成长的博客-CSDN博客java面试(JVM)_价值成长的博客-CSDN博客原创 2022-11-08 11:50:17 · 111 阅读 · 0 评论 -
java面试(基础)
有可能,两个不相等的对象可能会有相同的 hashcode 值,这就是为什么在 hashmap 中会有冲突。相等 hashcode 值的规定只是说如果两个对象相等,必须有相同的hashcode 值,但是没有关于不相等对象的任何规定。因为有强制的规范指定需要同时重写 hashcode 与 equals 是方法,许多容器类,如 HashMap、HashSet 都依赖于 hashcode 与 equals 的规定。减少耦合,提高可重用性。不能,根据 hash code 的规定,这是不可能的。原创 2022-11-05 12:15:15 · 813 阅读 · 0 评论 -
Zookeeper
1.1 介绍 1.2 应用场景 2.1 选举机制:先选自己,不够的话投票给id最大的2.2 节点类型2.3 stat结构体(了解) 2.4 监听器原理 2.5 写数据流程原创 2022-11-04 08:36:29 · 369 阅读 · 0 评论 -
分布式面试题
1.2.3.4.原创 2022-11-01 09:14:19 · 111 阅读 · 0 评论 -
Spring Cloud 面试
Spring CloudSpring CloudSpring CloudSpring CloudSpring Cloud原创 2022-10-29 21:11:26 · 386 阅读 · 0 评论 -
Spring
spring生态_价值成长的博客-CSDN博客Spring Bean 的生命周期_价值成长的博客-CSDN博客Spring bean 的作用域_价值成长的博客-CSDN博客SpringMVC视图解析原理_价值成长的博客-CSDN博客_springmvc视图解析器原理Spring IOC AOP_价值成长的博客-CSDN博客Spring IOC_价值成长的博客-CSDN博客Spring AOP_价值成长的博客-CSDN博客Spring事务管理_价值成长的博客-CSDN博客SpringBoot2 拦截器原理_价原创 2022-10-29 15:37:40 · 550 阅读 · 0 评论 -
JVM内存模型
本地方法被执行时,在本地方法栈也会创建一块栈帧,用于存放该方法的局部变量表、操作数栈、动态链接、方法出口信息等。3. Java 虚拟机栈会出现两种异常:StackOverFlowError (若 Java 虚拟机栈的大小不允许动态扩展,那么当线程请求栈的深度超过当前 Java 虚拟机栈的最大深度时,抛出 StackOverFlowError 异常)和 OutOfMemoryError(若允许动态扩展,那么当线程请求栈时内存用完了,无法再动态扩展时,抛出 OutOfMemoryError 异常)原创 2022-10-28 11:57:16 · 118 阅读 · 0 评论 -
JVM调优
XX:+UseCMSCompactAtFullCollection开关参数,用于在“享受”完Full GC服务之后额外免费赠送一个碎片整理的过程,内存整理的过程无法并发的,空间碎片问题没有了,但停顿时间不得不变长了。top -hP 进程号。找到该进程下的所有java线程。jinfo -flag 具体参数 java进程编号。jinfo - flags java进程编号。jinfo:查看正在运行的java程序。jps:查看java的后台进程。找到进程:jps -l。-Xms:初始堆空间。原创 2022-10-26 21:24:49 · 1174 阅读 · 0 评论 -
synchronized 和 lock 有什么区别?用新的lock有什么好处?举例说明
ReentrantLock:则需要用户去手动释放锁,若没有主动释放锁,就有可能出现死锁的现象,需要lock() 和 unlock() 配置try catch语句来完成。synchronized:不需要用户去手动释放锁,当synchronized代码执行后,系统会自动让线程释放对锁的占用。1)synchronized属于JVM层面,属于java的关键字。5)锁绑定多个条件Condition。原创 2022-10-26 17:48:01 · 77 阅读 · 0 评论 -
java阻塞队列
BlockingQueue阻塞队列是属于一个接口,底下有七个实现类。BlockingQueue 阻塞队列是mq的底层。原创 2022-10-26 16:36:49 · 96 阅读 · 0 评论 -
java单例模式
2.1 双重检查2.2 静态内部类 2.3 枚举原创 2022-10-26 11:04:07 · 143 阅读 · 0 评论 -
atguigu总结
atguigu1 架构_价值成长的博客-CSDN博客atguigu2 商品属性_价值成长的博客-CSDN博客atguigu3 分布式缓存/分布式锁(product/category)_价值成长的博客-CSDN博客atguigu4 全文检索 (search)_价值成长的博客-CSDN博客atguigu5 商品详情页/线程池和异步任务编排(product/item)_价值成长的博客-CSDN博客atguigu6 分布式事务(order)_价值成长的博客-CSDN博客atguigu7 秒杀 (seckill)_价原创 2022-10-15 22:22:19 · 177 阅读 · 0 评论 -
atguigu7 秒杀_分布式锁/分布式信号量_MQ_Sentinel (seckill)
秒杀架构:秒杀系统关注的问题: 3. Sentinel原创 2022-10-15 09:41:32 · 829 阅读 · 0 评论 -
atguigu6 商品后台信息保存_下订单_分布式事务_seata_MQ(order)
本地事务和分布式事务_价值成长的博客-CSDN博客Seata分布式事务_价值成长的博客-CSDN博客。原创 2022-10-13 22:19:23 · 732 阅读 · 0 评论 -
atguigu5 商品详情页_线程池和异步任务编排CompletableFuture(product/item)
【代码】atguigu3 商品详情页(product/item)原创 2022-10-12 20:35:13 · 299 阅读 · 0 评论 -
atguigu4 全文检索_ES (search)
【代码】atguigu4 全文检索 (search)原创 2022-10-10 22:19:46 · 342 阅读 · 0 评论 -
Spring Cache
Spring CacheSpring CacheSpring CacheSpring CacheSpring Cache原创 2022-10-09 19:57:06 · 109 阅读 · 0 评论 -
atguigu3 三级菜单/目录_分布式缓存/分布式锁(product/category)
Redisson提供了使用Redis的最简单和最便捷的方法。Redisson的宗旨是促进使用者对Redis的关注分离(Separation of Concern),从而让使用者能够将精力更集中地放在处理业务逻辑上。Redisson是一个在Redis的基础上实现的Java驻内存数据网格(In-Memory Data Grid)。它不仅提供了一系列的分布式的Java常用对象,还提供了许多分布式服务。Redisson功能:分布式对象,分布式集合,分布式锁。原创 2022-10-09 17:53:03 · 822 阅读 · 0 评论 -
atguigu1 架构
atguigu1 架构atguigu1 架构atguigu1 架构atguigu1 架构原创 2022-10-09 09:22:31 · 111 阅读 · 0 评论 -
读模式的缓存失效问题
高并发下的缓存失效问题高并发下的缓存失效问题高并发下的缓存失效问题高并发下的缓存失效问题高并发下的缓存失效问题高并发下的缓存失效问题原创 2022-10-08 21:41:43 · 134 阅读 · 0 评论 -
atguigu2 商品属性_SKU_SPU_平台属性_销售属性
是商品信息聚合的最小单位, 是一组可复用、 易检索的标准化信息的集合, 该集合描述了一个产品的特性。即库存进出计量的基本单元, 可以是以件, 盒, 托盘等为单位。SKU 这是对于大型连锁超市DC(配送中心) 物流管理的一个必要的方法。现在已经被引申为产品统一编号的简称, 每种产品均对应有唯一的 SKU 号。比如,咱们购买一台iPhoneX手机,iPhoneX手机就是一个SPU,但是你购买的时候,不可能是以iPhoneX手机为单位买的,商家也不可能以iPhoneX。原创 2022-10-08 21:23:36 · 196 阅读 · 0 评论 -
JUC2 ThreadPool
java中的线程池是通过 Excutor 框架实现的,该框架用到了 Excutor,Excutors,ExcutorService, ThreadPoolExcutor 这几个类。原创 2022-10-06 12:33:28 · 453 阅读 · 0 评论 -
JUC11 AQS
是整个JUC框架的基础,主要解决锁分配给谁的问题。通过FIFO的队列和state状态位来实现锁的分配和同步线程管理。原创 2022-10-06 10:07:56 · 360 阅读 · 0 评论 -
JUC并发编程
JUC1 线程基础概念_价值成长的博客-CSDN博客JUC2 Future CompletableFuture_价值成长的博客-CSDN博客JUC3 多线程锁(上)_价值成长的博客-CSDN博客JUC4 多线程锁(下)_价值成长的博客-CSDN博客JUC5 中断机制_价值成长的博客-CSDN博客JUC6 volitile_价值成长的博客-CSDN博客JUC7 CAS_价值成长的博客-CSDN博客JUC8 Atomic_价值成长的博客-CSDN博客JUC9 ThreadLocal_价值成长的博客-CSDN博客原创 2022-10-06 08:44:08 · 346 阅读 · 0 评论 -
JUC10 ThreadLocal
有个管理员,好比,现在大家签到,多个同学(线程),但是只有一只笔,只能同一个时间,只有一个线程(同学)签到,加锁(同步机制是以时间换空间,执行时间不一样,类似于排队)。群雄逐鹿起纷争。原创 2022-10-05 18:39:05 · 266 阅读 · 0 评论 -
JUC9 Atomic
④. AtomicLong的底层是CAS+自旋锁的思想,适用于低并发的全局计算,高并发后性能急剧下降,原因如下:N个线程CAS操作修改线程的值,每次只有一个成功过,其他N-1失败,失败的不停的自旋直到成功,这样大量失败自旋的情况,一下子cpu就打高了(AtomicLong的自旋会成为瓶颈)(4). 对象的属性修改原子类 (AtomicIntegerFieldUp dater、AtomicLongFieldUpdater、AtomicRefere nceFieldUpdater)5. 对象的属性修改原子类。原创 2022-10-05 16:07:43 · 456 阅读 · 0 评论 -
JUC8 CAS
是CAS的核心类,由于Java 方法无法直接访问底层 ,需要通过本地(native)方法来访问,UnSafe相当于一个后门,基于该类可以直接操作特定的内存数据.UnSafe类在于sun.misc包中,其内部方法操作可以向C的指针一样直接操作内存,因为Java中CAS操作依赖于UnSafe类的方法。当对一个共享变量执行操作时,我们可以使用循环CAS的方式来保证原子操作。注意:UnSafe类中所有的方法都是native修饰的,也就是说UnSafe类中的方法都是直接调用操作底层资源执行响应的任务。原创 2022-10-05 10:47:02 · 410 阅读 · 0 评论