资源合集 名称 链接 Rabbitmq精讲,项目驱动落地,分布式事务拔高资料 https://www.aliyundrive.com/s/5VwmhTCPBNa 程序员书籍大全 https://www.aliyundrive.com/s/Kz5UiijQB7i 后端Java教程(学完直接去BAT) https://www.aliyundrive.com/s/F4KrQAdhvaN 架构师训练营 https://www.aliyundrive.com/s/4GX76Nza2Dg 算法面试专题课(Java版),Google面试官带你高质量刷题 https://www....

Java全能学习+面试指南:https://javaxiaobear.cn 1、JdbcTemplate 1.1、简介 Spring框架对JDBC进行封装,使用JdbcTemplate方便实现对数据库操作 1.2、准备工作 ①搭建子模块 搭建子模块:spring-jdbc-tx ②加入依赖 <dependencies> <!--springjdbcSpring持久化层支持jar包--> <dependency> <groupId>org.springframework</groupId> <artifactId>spri...

  EXLw30ekY3dI   2023年12月22日   44   0   0 事务JavaJavaspring事务spring

单元测试:JUnit 在之前的测试方法中,几乎都能看到以下的两行代码: ApplicationContextcontext=newClassPathXmlApplicationContext("xxx.xml"); Xxxxxxx=context.getBean(Xxxx.class); 这两行代码的作用是创建Spring容器,最终获取到对象,但是每次测试都需要重复编写。针对上述问题,我们需要的是程序能自动帮我们创建容器。我们都知道JUnit无法知晓我们是否使用了Spring框架,更不用说帮我们创建Spring容器了。Spring提供了一个运行器,可以读取配置文件(或注解)来创建容器。我们只...

Java全能学习+面试指南:https://javaxiaobear.cn 1.HashMap集合简介 ​HashMap基于哈希表的Map接口实现,是以key-value存储形式存在,即主要用来存放键值对。HashMap的实现不是同步的,这意味着它不是线程安全的。它的key、value都可以为null。此外,HashMap中的映射不是有序的。 ​JDK1.8之前HashMap由数组+链表组成的,数组是HashMap的主体,链表则是主要为了解决哈希冲突(两个对象调用的hashCode方法计算的哈希码值一致导致计算的数组索引值相同)而存在的(“拉链法”解决冲突).JDK1.8以后在解决哈希冲突时有...

Java全能学习+面试指南:https://javaxiaobear.cn提到微服务开源框架,不可不说的是Dubbo和SpringCloud,这两大框架应该是大家最熟悉的微服务解决方案,也是面试中的热点。今天我们梳理下Dubbo和SpringCloud的应用特性,以及两个组件的功能对比。 Dubbo应用 Dubbo是阿里开源的一个分布式服务框架,目的是支持高性能的远程服务调用,并且进行相关的服务治理。在RPC远程服务这一课时我们也介绍过Dubbo,从功能上,Dubbo可以对标gRPC、Thrift等典型的RPC框架。 总体架构 下面这张图包含了Dubbo核心组件和调用流程: 包括了下面几个角...

Java全能学习+面试指南:https://javaxiaobear.cn 今天聊一聊大家常听到的高性能系统架构。 高性能系统架构,主要包括两部分内容,性能测试与性能优化。性能优化又可以细分为硬件优化、中间件优化、架构优化及代码优化,知识架构图如下。 性能测试 先看系统的性能测试。性能测试是性能优化的前提和基础,也是性能优化结果的检查和度量标准。 关于性能测试有一句著名的论断,叫作“你不能优化一个你未经测试的系统,你也不能优化一个你不了解的系统”。所以要进行性能优化,首先要进行性能测试,看系统的当前各项性能指标是什么样子的,问题在哪里,从哪些方面进行优化。 而具体在优化的时候,又必须要了解系...

Java全能学习+面试指南:https://javaxiaobear.cn 今天我们聊一聊分布式数据存储,知识架构图如下所示。 主要包括以下内容: MySQL复制,有主从复制和主主复制两种; 数据分片(或称数据分区),具体为数据分片的原理、分片的方案、分片数据库的扩容; 数据库分布式部署的几种方案; NoSQL中的CAP原理,分布式系统的最终一致性及其实现方案。 MySQL数据库复制 主从复制 MySQL的主从复制,顾名思义就是将MySQL主数据库中的数据复制到从数据库中去。主要目的是实现数据库读写分离——写操作访问主数据库,读操作访问从数据库,从而使数据库具有更强大的访问负载能力,支撑...

Java全能学习+面试指南:https://javaxiaobear.cn 今天我们来学习分布式消息队列,分布式消息队列的知识结构如下图。 主要介绍以下内容: 同步架构和异步架构的区别。异步架构的主要组成部分:消息生产者、消息消费者、分布式消息队列。异步架构的两种主要模型:点对点模型和发布订阅模型。 分布式消息队列异步架构的好处:异步处理实现快速响应;消费者易于伸缩;高并发访问压力的时削峰填谷,减轻访问高峰的系统负载压力;隔离失败任务,消费者处理任务失败,不会影响主业务流程;业务逻辑解耦,系统易于开发和维护。 异步架构的挑战:消息无序,竞态条件,系统复杂度提高。 使用分布式消息队列异步架构...

小熊学Java全能学+面试指南:https://javaxiaobear.cn 摘要 随着健身行业的快速发展,健身房管理系统成为了提高管理效率和用户体验的重要工具。本论文旨在设计与实现一种基于前后端分离的健身房管理系统,通过前后端分离的架构模式,提供了更好的可扩展性、灵活性和用户体验。本文将介绍系统的需求分析、架构设计、技术选型以及系统实现等方面的内容。 关键词:前后端分离、健身房管理系统、需求分析、架构设计、技术选型 引言 健身房作为一种受欢迎的健身方式,吸引了越来越多的用户。然而,传统的健身房管理方式存在着效率低下、信息不透明等问题。为了解决这些问题,设计一种高效、智能的健身房管理系统...

Java全能学习+面试指南:https://javaxiaobear.cn 今天我们主要自己模拟一个JVM内存溢出的场景。在模拟JVM内存溢出之前我们先来看下这样的几个问题。 老年代溢出为什么那么可怕? 元空间也有溢出?怎么优化? 如何配置栈大小?避免栈溢出? 进程突然死掉,没有留下任何信息时如何进行排查? 年轻代由于有老年代的担保,一般在内存占满的时候,并没什么问题。但老年代满了就比较严重了,它没有其他的空间用来做担保,只能OOM了,也就是发生OutOfMemeryError。JVM会在这种情况下直接停止工作,是非常严重的后果。 OOM一般是内存泄漏引起的,表现在GC日志里,一般情况下就...

  EXLw30ekY3dI   2023年12月07日   21   0   0 JVMJVM内存溢出JavaJava内存溢出

Java全能学习面试指南:https://javaxiaobear.cn 今天我们主要从一个实战案例入手分析面对突如其来的GC问题该如何下手解决。 想要下手解决GC问题,我们首先需要掌握下面这三种问题。 如何使用jstat命令查看JVM的GC情况? 面对海量GC日志参数,如何快速抓住问题根源? 你不得不掌握的日志分析工具。 工欲善其事,必先利其器。我们前面课时讲到的优化手段,包括代码优化、扩容、参数优化,甚至我们的估算,都需要一些支撑信息加以判断。 对于JVM来说,一种情况是GC时间过长,会影响用户的体验,这个时候就需要调整某些JVM参数、观察日志。 另外一种情况就比较严重了,发生...

  EXLw30ekY3dI   2023年12月06日   50   0   0 JVMJVMJavaJava

Java全能学习+面试指南:https://javaxiaobear.cn 这篇主要讲解如何在大流量高并发场景下进行估算和调优。 我们知道,垃圾回收器一般使用默认参数,就可以比较好的运行。但如果用错了某些参数,那么后果可能会比较严重,我不只一次看到有同学想要验证某个刚刚学到的优化参数,结果引起了线上GC的严重问题。 所以你的应用程序如果目前已经满足了需求,那就不要再随便动这些参数了。另外,优化代码获得的性能提升,远远大于参数调整所获得的性能提升,你不要纯粹为了调参数而走了弯路。 那么,GC优化有没有可遵循的一些规则呢?这些“需求”又是指的什么?我们可以将目标归结为三点: 系统容量(Capac...

  EXLw30ekY3dI   2023年12月05日   18   0   0 JVMJVM老年代调优调优老年代

小熊学Java:https://www.javaxiaobear.cn/ 本文我们重点剖析JVM的垃圾回收机制。关于JVM垃圾回收机制面试中主要涉及这三个考题: JVM中有哪些垃圾回收算法?它们各自有什么优劣? CMS垃圾回收器是怎么工作的?有哪些阶段? 服务卡顿的元凶到底是谁? 虽然Java不用“手动管理”内存回收,代码写起来很顺畅。但是你有没有想过,这些内存是怎么被回收的? 其实,JVM是有专门的线程在做这件事情。当我们的内存空间达到一定条件时,会自动触发。这个过程就叫作GC,负责GC的组件,就叫作垃圾回收器。 JVM规范并没有规定垃圾回收器怎么实现,它只需要保证不要把正在使用的对象给...

Java全能学习+面试指南:https://www.javaxiaobear.cn/ 前面我们提到,类的初始化发生在类加载阶段,那对象都有哪些创建方式呢?除了我们常用的new,还有下面这些方式: 使用Class的newInstance方法。 使用Constructor类的newInstance方法。 反序列化。 使用Object的clone方法。 其中,后面两种方式没有调用到构造函数。 当虚拟机遇到一条new指令时,首先会检查这个指令的参数能否在常量池中定位一个符号引用。然后检查这个符号引用的类字节码是否加载、解析和初始化。如果没有,将执行对应的类加载过程。 拿我们上面的代码来说,执行A代...

小熊学Java:https://www.javaxiaobear.cn/ 本文我们重点剖析JVM的垃圾回收机制。关于JVM垃圾回收机制面试中主要涉及这三个考题: JVM中有哪些垃圾回收算法?它们各自有什么优劣? CMS垃圾回收器是怎么工作的?有哪些阶段? 服务卡顿的元凶到底是谁? 虽然Java不用“手动管理”内存回收,代码写起来很顺畅。但是你有没有想过,这些内存是怎么被回收的? 其实,JVM是有专门的线程在做这件事情。当我们的内存空间达到一定条件时,会自动触发。这个过程就叫作GC,负责GC的组件,就叫作垃圾回收器。 JVM规范并没有规定垃圾回收器怎么实现,它只需要保证不要把正在使用的对象...

Java全能学习+面试指南:https://javaxiaobear.cn今天我们主要来看下这两个高频的面试考题: G1的回收原理是什么?为什么G1比传统GC回收性能好? 为什么G1如此完美仍然会有ZGC? 我们在上一篇中,简要的介绍了CMS垃圾回收器,下面我们简单回忆一下它的一个极端场景(而且是经常发生的场景)。 在发生MinorGC时,由于Survivor区已经放不下了,多出的对象只能提升(promotion)到老年代。但是此时老年代因为空间碎片的缘故,会发生concurrentmodefailure的错误。这个时候,就需要降级为SerailOld垃圾回收器进行收集。这就是比conc...

小熊学Java全能学+面试指南:https://javaxiaobear.cn 摘要 随着健身行业的快速发展,健身房管理系统成为了提高管理效率和用户体验的重要工具。本论文旨在设计与实现一种基于前后端分离的健身房管理系统,通过前后端分离的架构模式,提供了更好的可扩展性、灵活性和用户体验。本文将介绍系统的需求分析、架构设计、技术选型以及系统实现等方面的内容。 关键词:前后端分离、健身房管理系统、需求分析、架构设计、技术选型 引言 健身房作为一种受欢迎的健身方式,吸引了越来越多的用户。然而,传统的健身房管理方式存在着效率低下、信息不透明等问题。为了解决这些问题,设计一种高效、智能的健身房管理系...

Java全能学习+面试指南:https://javaxiaobear.cn 今天我们来学习分布式消息队列,分布式消息队列的知识结构如下图。 主要介绍以下内容: 同步架构和异步架构的区别。异步架构的主要组成部分:消息生产者、消息消费者、分布式消息队列。异步架构的两种主要模型:点对点模型和发布订阅模型。 分布式消息队列异步架构的好处:异步处理实现快速响应;消费者易于伸缩;高并发访问压力的时削峰填谷,减轻访问高峰的系统负载压力;隔离失败任务,消费者处理任务失败,不会影响主业务流程;业务逻辑解耦,系统易于开发和维护。 异步架构的挑战:消息无序,竞态条件,系统复杂度提高。 使用分布式消息队列异步架...

Java全能学习+面试指南:https://javaxiaobear.cn今天我们一起看看大型互联网系统架构的演进之路,主要包含三部分内容。 第一部分是大型互联网系统的特点,分析大型互联网有哪些特点和挑战,它们是现在一些技术和架构方案产生的原因。 第二部分是系统处理能力提升的两种途径,提供了两种面对挑战的解决思路。 第三部分是大型互联网系统架构演化过程,这个过程几乎包含了现在所有主要的互联网架构的考量点、技术方案、要解决的问题等,是整个互联网系统架构的一个综述,可以了解互联网架构的全貌。 大型互联网系统的特点 首先我们来看下,大型互联网系统的特点有哪些? 高并发和大流量 大型互联网需要面...

今天我们聊一聊Java锁的分类 锁的7大分类 需要首先指出的是,这些多种多样的分类,是评价一个事物的多种标准,比如评价一个城市,标准有人口多少、经济发达与否、城市面积大小等。而一个城市可能同时占据多个标准,以北京而言,人口多,经济发达,同时城市面积还很大。 同理,对于Java中的锁而言,一把锁也有可能同时占有多个标准,符合多种分类,比如ReentrantLock既是可中断锁,又是可重入锁。 根据分类标准我们把锁分为以下7大类别,分别是: 偏向锁/轻量级锁/重量级锁; 可重入锁/非可重入锁; 共享锁/独占锁; 公平锁/非公平锁; 悲观锁/乐观锁; 自旋锁/非自旋锁; 可中断锁/不可中断锁。 ...

关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~