荒野大飞
。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JVM——垃圾回收器(Serial,SerialOld,ParNew,CMS,Parallel Scavenge,Parallel Old)
为什么分代GC算法要把堆分成年轻代和老年代?⚫ 系统中的大部分对象,都是创建出来之后很快就不再使用可以被回收,比如用户获取订单数据,订单数据返回给用户之后就可以释放了。⚫ 老年代中会存放长期存活的对象,比如Spring的大部分bean对象,在程序启动之后就不会被回收了。⚫ 在虚拟机的默认设置中,新生代大小要远小于老年代的大小分代GC算法将堆分成年轻代和老年代主要原因有:1、可以通过调整年轻代和老年代的比例来适应不同类型的应用程序,提高内存的利用率和性能。原创 2023-11-27 19:56:13 · 534 阅读 · 0 评论 -
JVM——产生内存溢出原因
但是由于用户的并发请求量有可能很大,同时处理数据的时间很长,导致大量的数据存在于内存中,最终超过了内存的上限,导致内存溢出。这类问题的处理思路和内存泄漏类似,首先要定位到对象产生的根源。在使用HashMap的场景下,如果使用这个类对象作为key,HashMap在判断key是否已经存在时会使用这些方法,如果重写方式不正确,会导致相同的数据被保存多份。⚫ 1、非静态的内部类默认会持有外部类,尽管代码上不再使用外部类,所以如果有地方引用了这个非静态内部类,会导致外部类也被引用,垃圾回收时无法回收这个外部类。原创 2023-11-29 21:43:55 · 612 阅读 · 0 评论 -
JVM——内存溢出和内存泄漏
⚫ Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率。⚫ 少量的内存泄漏可以容忍,但是如果发生持续的内存泄漏,就像滚雪球雪球越滚越大,不管有多大的内存迟早会被消耗完,最终导致的结果就是内存溢出。⚫ 内存泄漏导致溢出的常见场景是大型的Java后端应用中,在处理用户的请求之后,没有及时将用户的数据删。原创 2023-11-29 20:21:21 · 639 阅读 · 0 评论 -
JVM——垃圾回收器(G1,JDK9默认为G1垃圾回收器)
JDK9之后默认的垃圾回收器是G1(Garbage First)垃圾回收器。Parallel Scavenge关注吞吐量,允许用户设置最大暂停时间 ,但是会减少年轻代可用空间的大小。CMS关注暂停时间,但是吞吐量方面会下降。而G1设计目标就是将上述两种垃圾回收器的优点融合:1.支持巨大的堆空间回收,并有较高的吞吐量。2.支持多CPU并行垃圾回收。3.允许用户设置最大暂停时间。原创 2023-11-27 19:52:35 · 788 阅读 · 0 评论 -
Swagger——接口文档自动生成和测试
Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务(它的主要作用是:使得前后端分离开发更加方便,有利于团队协作接口的文档在线自动生成,降低后端开发人员编写接口文档的负担功能测试Spring已经将Swagger纳入自身的标准,建立了Spring-swagger项目,现在叫Springfox。通过在项目中引入Springfox ,即可非常简单快捷的使用Swagger。原创 2023-12-02 10:32:31 · 632 阅读 · 0 评论 -
AOP面向切面编程——实现公共字段填充
进入到sky-server模块,创建com.sky.annotation包。1). 自定义注解 AutoFill,用于标识需要进行公共字段自动填充的方法2). 自定义切面类 AutoFillAspect,统一拦截加入了 AutoFill 注解的方法,通过反射为公共字段赋值3). 在 Mapper 的方法上加入 AutoFill 注解若要实现上述步骤,需掌握以下知识(之前课程内容都学过)**技术点:**枚举、注解、AOP、反射原创 2023-12-03 15:15:13 · 296 阅读 · 0 评论 -
Spring——IOC,DI,AOP
IOC、DI和AOP是Spring框架的三大核心特性,它们在不同的场景下起到了不同的作用。IOC通过控制反转将对象的创建和管理交给了Spring容器,提高了代码的可维护性和可测试性;DI通过依赖注入解决对象之间的依赖关系,减少了对象之间的耦合度;以上是它们的适用场景、作用、实现原理以及相关的解释和示例代码。其中,IOC(控制反转)、DI(依赖注入)和AOP(面向切面编程)是Spring框架的三大核心特性。本文将详细介绍这三个特性的适用场景、作用、实现原理,并提供相关的解释和示例代码。二、DI(依赖注入)原创 2023-12-03 20:07:35 · 165 阅读 · 0 评论 -
Spring——全局异常处理(介绍@RestControllerAdvice和@ExceptionHandler)
同时,我们也了解到了全局异常处理器的灵活性和自定义性,使得我们可以根据业务需要,对不同类型的异常进行细粒度的处理。@ExceptionHandler注解的实现原理是通过定义一个带有@ExceptionHandler注解的方法,在方法中编写异常处理的逻辑。多个@ExceptionHandler注解的方法可以处理不同类型的异常,但是它们的执行顺序是根据异常的继承关系来确定的。这使得我们可以根据具体的异常类型,编写相应的处理逻辑,实现异常的细粒度处理。这样,前端可以根据不同的响应信息进行相应的处理和展示。原创 2023-12-02 16:06:08 · 567 阅读 · 0 评论 -
JVM——垃圾回收算法(垃圾回收算法评价标准,四种垃圾回收算法)
⚫ Java是如何实现垃圾回收的呢?简单来说,垃圾回收要做的有两件事:1、找到内存中存活的对象2、释放不再存活对象的内存,使得程序能再次利用这部分空间⚫ 1960年John McCarthy发布了第一个GC算法:标记-清除算法。⚫ 1963年Marvin L. Minsky 发布了复制算法。本质上后续所有的垃圾回收算法,都是在上述两种算法的基础上优化而来。原创 2023-11-26 10:55:51 · 388 阅读 · 0 评论 -
基于Hexo框架搭建个人博客(Node.js、npm、Hexo框架以及Gitee新手教程)
现在,你已经成功使用Node.js、npm、Hexo框架和Gitee生成了一个博客系统。你可以通过访问你的Gitee仓库地址来查看部署的博客系统。首先,你需要在Gitee上创建一个新的仓库,用于存储博客系统的静态HTML文件。目录下找到刚创建的Markdown文件,使用文本编辑器打开并进行编辑。目录下创建一个名为 “Hello World” 的Markdown文件,用于编写博客文章内容。这将自动将生成的静态HTML文件部署到你在Gitee上创建的仓库中。创建一个新的Hexo博客项目。安装博客所需的依赖包。原创 2023-12-03 22:15:56 · 368 阅读 · 0 评论 -
nginx配置反向代理及负载均衡
当在访问http://localhost/api/employee/login,nginx接收到请求后转到http://localhost:8080/admin/,故最终的请求地址为http://localhost:8080/admin/employee/login,和后台服务的访问地址一致。location /api/ {} 这样的反向代理到 http://localhost:8080/admin/上来。所谓负载均衡,就是把大量的请求按照我们指定的方式均衡的分配给集群中的每台服务器。原创 2023-12-01 22:02:07 · 983 阅读 · 0 评论 -
PageHelper——分页插件
PageHelper是一款优秀的分页插件,它能够方便地在Spring Boot应用中实现分页查询功能。在大多数应用中,数据量通常很大,如果一次性加载全部数据,不仅会占用大量的内存,还会导致查询速度变慢。而通过使用PageHelper,我们可以将数据分页加载,提高查询效率,同时也能够更好地满足用户需求。在Spring Boot应用中使用PageHelper非常简单,只需要进行几步配置即可。首先,我们需要在项目的pom.xml文件中添加PageHelper的依赖。原创 2023-12-03 22:07:38 · 549 阅读 · 0 评论 -
登录校验——JWT(JSON Web Token)介绍
JWT(JSON Web Token)是一种在Java前后端分离项目中实现登录功能的常用方式。本文将对前后端的分析,JWT在前后端的联系以及其在登录功能中的作用和优缺点进行详细介绍。原创 2023-12-01 22:16:03 · 545 阅读 · 0 评论