![](https://img-blog.csdnimg.cn/20210418114321108.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java 后端
文章平均质量分 88
Java 后端相关知识点和实战技巧!
陈皮的JavaLib
我是陈皮,一个在互联网Coding的ITer,微信搜索「陈皮的JavaLib」第一时间阅读最新文章,回复【资料】,即可获得我精心整理的技术资料,电子书籍,一线大厂面试资料和优秀简历模板。
展开
-
SpringBoot 之 HandlerInterceptor 拦截器的使用
SpringBoot 之 HandlerInterceptor 拦截器的使用原创 2020-10-25 10:42:24 · 9298 阅读 · 23 评论 -
同源策略和跨域解决方案 CORS
浏览器的同源策略它会阻止读取来自不同源的资源。同源策略机制主要用于阻止恶意站点读取另一个站点的数据,让用户安全地上网。原创 2022-05-03 10:24:50 · 1274 阅读 · 0 评论 -
你真的了解 Session 和 Cookie 吗?
Session 机制就能实现,它可以让无状态协议的 HTTP 有状态化。服务端为每个请求服务端的用户创建其独享的 Session,用于标识,跟踪此用户。Session 是存储在服务端的,可以存储在文件,内存,数据等等,并且有唯一的标识 Session ID。服务端创建 Session 之后,服务端通过 HTTP 协议告诉客户端,在本地 Cookie 中记录这个 Session ID。原创 2021-07-18 10:11:00 · 2110 阅读 · 6 评论 -
Java 进程 CPU 100% 问题排查
如果在时间片内,线程一直占有,则认为是 CPU 100% 。CPU 运行速度很快,即主频非常高,除非密集型耗费 CPU 的运算,其它类型任务一般都会在小于时间片的时间内结束。原创 2020-05-08 16:50:28 · 7093 阅读 · 2 评论 -
Spring Boot 3种定时任务方式
通过 Spring Boot 框架,我们可以使用3种方式来实现定时任务。原创 2021-03-03 14:24:21 · 6580 阅读 · 27 评论 -
Logback 日志添加请求唯一追踪 ID
日志是排查问题的重要依据,但有时日志太多也不容易定位报错信息,不明确哪条日志信息对应哪次请求。如果能给每一个请求的执行链上的所有打印日志加上唯一的追踪标识 ID,那么排查就方便多了。原创 2020-04-29 17:53:00 · 5631 阅读 · 1 评论 -
Java 日志框架 JUL 详解大全
JUL(Java util logging),Java 原生日志框架,不需要引入第三方依赖包,使用简单方便。原创 2022-04-07 22:50:33 · 1659 阅读 · 0 评论 -
有感知的 Aware Spring Bean
正常情况下,Spring 中的 Bean 对 Spring 是无感知的,Spring 框架提供了这种扩展能力,能让一个 bean 成为有感知的。原创 2022-04-06 22:11:51 · 1154 阅读 · 0 评论 -
SnowFlake 雪花算法详解与实现
雪花算法是其中一个用于解决分布式 id 的高效方案,也是许多互联网公司在推荐使用的。原创 2022-04-04 16:45:26 · 6003 阅读 · 3 评论 -
static 属性为何不能使用 @Value 注解
在某个 Spring 项目中,看到有人在 Spring Bean 中对 static 静态属性使用 @Value 注解进行属性值注入,结果没将配置文件中配置的值赋值到属性中。下面演示进行问题复现。原创 2020-03-31 19:47:58 · 3903 阅读 · 0 评论 -
Spring HandlerInterceptor 拦截器实战
HandlerInterceptor 是一个允许定制 handler 处理器执行链的工作流接口。我们可以自定义拦截器用于拦截 handlers 处理器(可以理解为 controller 控制层的接口),从而可以添加一些共同的重复性的处理行为(例如接口鉴权,接口日志记录,性能监控等等),而不用修改每一个 handler 的实现。原创 2021-06-30 23:16:31 · 2415 阅读 · 21 评论 -
自定义 SpringBoot Banner 图案
我们在启动 SpringBoot 项目时,默认会在控制台打印 Spring logo 和版本号等信息,我们可以自定义这些图案。原创 2021-06-04 23:32:18 · 5794 阅读 · 28 评论 -
计时器工具 StopWatch
StopWatch,它可以用来对程序中代码块,或者方法进行计时,并且支持多阶段计时,以及阶段时间占比等统计,使用起来代码比较简洁,轻量。原创 2022-04-03 09:33:51 · 1583 阅读 · 0 评论 -
Java 高精度计算 BigDecimal 和 BigInteger
在 Java 中,表示小数值一般使用 float 或者 double 类型,可以用于科学计算或者工程计算等。数学意义上的小数是连续的,但 float 和 double 只能表示其中的一些离散点,如果我们要表示的数值刚好无法用 float 或者 double 精确表示的话,那么它会找一个最近的值来近似表示。float 类型的有效精度为6到7位。double 类型的有效精度为16位。原创 2022-03-26 10:19:55 · 800 阅读 · 0 评论 -
线程池 ThreadPoolExecutor 分析与实战
多线程并发执行可以提高程序的性能。特别是在多核处理器的环境下,多线程程序能发挥多核处理器的优势性能。原创 2020-05-20 16:23:19 · 1886 阅读 · 0 评论 -
Lambda 表达式
Lambda 表达式是 Java 8 引入的一个重要新语法,是一种紧凑的传递代码的方式,即允许把代码作为一个方法的实参。从而可以写出更简洁,更灵活的代码,语言表达能力得到了提升。原创 2021-01-31 18:09:31 · 11805 阅读 · 49 评论 -
手写简易版线程池
手写简易版线程池原创 2020-06-02 10:25:10 · 1974 阅读 · 0 评论 -
LinkedList 源码分析
java.util.LinkedList 是 Java 集合框架中的成员之一,底层是基于双向链表实现,集合容量可动态变化的。它继承自 AbstractSequentialList 抽象类,实现了 List 接口。同时还实现了 Cloneable 和 Serializable 三个标记接口,说明 ArrayList 是可克隆复制的,可序列化的。原创 2022-03-09 10:31:00 · 299 阅读 · 0 评论 -
微信小程序加密数据解密算法 - Java实现
我们开发微信小程序的过程中,我们的服务端有时需要获取微信提供的开放数据。微信会对这些开放数据做签名和加密处理。开发者后台拿到开放数据后可以对数据进行校验签名和解密,来保证数据不被篡改。原创 2021-11-23 11:38:45 · 5138 阅读 · 4 评论 -
Linux 环境如何使用 kill 命令优雅停止 Java 服务
我们在开发 Java Web 服务时,如果使用外部 Tomcat Web容器,那么启停服务可以直接使用 Tomcat 自带的脚本。不过现在大多数服务使用 Spring Boot 框架来开发,使用内嵌的 Tomcat / Jetty Web 容器,所以这时我们一般使用特定的命令或者编写脚本来启停 Web 服务。原创 2021-08-04 22:34:33 · 10566 阅读 · 0 评论 -
Spring事件发布与监听机制
我是陈皮,一个在互联网 Coding 的 ITer,微信搜索「陈皮的JavaLib」第一时间阅读最新文章,回复【资料】,即可获得我精心整理的技术资料,电子书籍,一线大厂面试资料和优秀简历模板。文章目录前言ApplicationContext 事件机制ApplicationListener 监听器ApplicationEvent 事件自定义事件和监听器注解式监听器前言Spring 提供了 ApplicationContext 事件机制,可以发布和监听事件,这个特性非常有用。Spring 内置了一.原创 2021-06-27 08:50:15 · 1288 阅读 · 23 评论 -
硬核!Java方向所有你需要的教程全都有!
前言先来一波招人嫉妒的自夸,哈哈大三通过一个月时间自学Java,然后顺利找到实习工作。在我看来,大三实习并不是引以为傲的资本,自学Java并找到实习才是让我骄傲的点。自学Java除了基础语法还要用项目检验知识点的掌握程度,下一次我可以出一篇找实习工作的经历,讲一讲我是如何通过大厂面试的。今天先来给大家讲一下我除了学习Java基础、实战项目,还做了哪些功课。首先是简历。简历是让你表达自己的第一关键因素,我认为简历就是让我把自己的优势尽情展现出来,就好比我们大学时竞聘学生会主席,扭扭捏捏、表达不清晰的肯原创 2021-06-15 11:19:37 · 1902 阅读 · 8 评论 -
生产环境首页数据查询速度不管怎么优化还是慢,原因竟然是这个小细节!
我是陈皮,一个在互联网 Coding 的 ITer,微信搜索「陈皮的JavaLib」第一时间阅读最新文章,回复【资料】,即可获得我精心整理的技术资料,电子书籍,一线大厂面试资料和优秀简历模板。目录背景问题分析其他案例分析背景最近,小王很苦恼,他说有一个项目的首页数据加载很慢,他说数据库也加了索引,而且也使用 Redis 对热点数据做了缓存,但是不管怎么优化,数据加载速度还是提升不了。然后我检查了小王的代码,看到如下一行代码,我说你写这样的代码,你是想被辞退吗?public List<.原创 2021-06-15 07:40:17 · 853 阅读 · 12 评论 -
大一 Java 课程设计实践 - 迷你版画图板(附源代码和设计文档)
我是陈皮,一个在互联网 Coding 的 ITer,微信搜索「陈皮的JavaLib」第一时间阅读最新文章,回复【资料】,即可获得我精心整理的技术资料,电子书籍,一线大厂面试资料和优秀简历模板。文章目录引言系统功能结构模块功能代码如何获取和运行程序引言在大学期间,选修了一门 Java 语言课程,期末课程设计开发了一个迷你版画图板,并且拿到了优秀的成绩。在此分享下如何开发这个迷你版画图版,Java 基础知识可以的同学,可以在一小时内开发完成喔!如果想要完整版可运行源代码,以及课程设计报告,可以关.原创 2021-06-08 09:33:26 · 1414 阅读 · 3 评论 -
大学生必学练习题 - Java 语言经典50例
我是陈皮,一个在互联网 Coding 的 ITer,微信搜索「陈皮的JavaLib」第一时间阅读最新文章,回复【资料】,即可获得我精心整理的技术资料,电子书籍,一线大厂面试资料和优秀简历模板。文章目录引言1 汉诺塔2 斐波那契数列3 九九乘法表4 字符串替换5 字符串反转6 打印倒立的三角形7 解析 URL8 水仙花数9 杨辉三角10 分解质因数11 小球自由下落12 判断闰年13 阶乘引言在大学期间,Java 语言一般会作为计算机专业类的课程,而且也不少学生会选择 Java 来作为学习编程的.原创 2021-06-01 07:14:39 · 5142 阅读 · 56 评论 -
ArrayList 源码分析
java.util.ArrayList 是 Java 集合框架中的成员之一,底层是基于数组实现,并且集合容量可动态变化的。它继承自 AbstractList 抽象类,实现了 List 接口。同时还实现了 RandomAccess,Cloneable 和 Serializable 三个标记接口,说明 ArrayList 是支持快速随机访问,可克隆复制的,可序列化的。原创 2021-05-25 06:55:06 · 1676 阅读 · 26 评论 -
程序员的必备技能 - UML
对于面向对象设计中,类图分析的工具用得最多的就是 UML(Unified Modeling Language,统一建模语言)。它是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言。原创 2021-05-19 07:34:34 · 1880 阅读 · 24 评论 -
我大学大三用一个月时间学完就找到实习的一套Java教程
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档目录系列文章目录Java运行机制Java运行机制首先需要创建java文件,例如上述的HelloWorld.java,文件内容定义一个主类,然后类里面顶一个main主方法,作为程序的执行入口。使用JDK的javac命令编译源文件(即HelloWorld.java),生成字节码文件(Hell原创 2021-05-14 00:26:07 · 11632 阅读 · 46 评论 -
命令行玩斗地主,摸鱼再也不怕老板了!
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录背景安装二、使用步骤1.引入库2.读入数据总结背景想必大家都在手机玩过斗地主吧?如果你想在上班期间玩斗地主,又不想让老板看到你摸鱼,那该怎么办呢?今天教大家在命令行内玩斗地主,不仅可以上班摸鱼还让你老板认为你在努力工作;而且还能拿去向你的女神展示一波????斗地主我想大原创 2021-05-12 08:13:33 · 8241 阅读 · 39 评论 -
大事件,Java被超越了,2021年5月TIOBE编程语言排行榜出炉
TIOBE 头条TIOBE 5月编程语言排行榜新鲜出炉。前十榜单中,C、Python、Java三大鳌头仍占据前三榜单。去年11月,Python短时间的挤掉Java跃居至榜单第二名;今年5月,Python再次挤掉Java,再度夺下榜二。TIOBE排行榜是世界上权威编程语言排行榜,注意,它只是反映某个编程语言的热门程度,并不能说明一门编程语言好不好,毕竟术业有专攻。TIOBE开发语言排行榜每月更新一次,其结果作为当前业内程序开发语言的流行使用程度的有效指标。该指数可以用来检阅开发者的编程技能能否跟上趋势,原创 2021-05-09 09:52:24 · 56661 阅读 · 296 评论 -
一位BAT大牛推荐的程序员必装10款神器软件
文章目录IntelliJ IDEAFinalShellEverything火绒安全CCleaner7-ZipTypora护眼宝PotPlayerNotepad++IntelliJ IDEAIntelliJ IDEA是java编程语言开发的集成环境。IntelliJ在业界被公认为最好的java开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的。IDEA是JetBrains公司的原创 2021-05-07 07:39:09 · 2829 阅读 · 9 评论 -
巧用RandomAccess接口,集合遍历性能提升几十倍
文章目录前言方案验证RandomAccess 接口总结前言假设让你定义一个方法,供他人调用,它的功能是遍历传入的集合,你会怎么实现?方法定义如下:private void traverse(List<Integer> list) { }方案一,使用for循环下标定位获取集合元素?private void traverse(List<Integer> list) { for (int i = 0; i < list.size(); i++) {原创 2021-04-26 07:31:19 · 681 阅读 · 8 评论 -
Springboot 集成 i8n,两行代码实现国际化,你不想学吗?
文章目录i18n 国际化国家化实现Springboot 集成 i18ni18n 国际化在开发中,国际化(Internationalization),也叫本地化,指的是一个网站(或应用)可以支持多种不同的语言,即可以根据用户所在的语言类型和国家/地区,显示不同的文字。能够让不同国家,不同语种的用户方便使用,提高用户体验性。实现国际化,比较简单的实现方案就是根据不同的国家和语言开发不同的程序,分别用相应的语言文字显示,例如Oracle英文官网地址:https://www.oracle.com/inde原创 2021-04-16 00:48:49 · 3697 阅读 · 15 评论 -
YAML 详解与实战
它使用空白符号缩进和大量依赖外观的特色,特别适合用来表达或编辑数据结构、各种配置文件。原创 2021-04-13 16:43:51 · 10822 阅读 · 28 评论 -
学会这些Logback高级知识点,程序日志性能提高几十倍(上)
Logback 目的是作为流行的 log4j 项目的继承者。它是由 log4j 的创始人 Ceki Gülcü 设计的。logback 比所有现有的 logging 系统更快,并且占用的空间更小,差距很大。而且,logback 提供了其他日志记录系统所缺少的独特且相当有用的功能。Logback-classic 模块除了 logback-classic.jar 外,还需要 slf4j-api.jar 和 logback-core.jar。首先导入依赖包 logback-classic,logback-co原创 2021-04-12 13:44:14 · 7118 阅读 · 40 评论 -
Java高并发测试框架JCStress
目录前言如何使用Jcstress二、使用步骤1.引入库2.读入数据总结前言如果要研究高并发,一般会借助高并发工具来进行测试。Jcstress(Java Concurrency Stress)它是OpenJDK中的一个高并发测试工具,它可以帮助我们研究在高并发场景下JVM,类库以及硬件等状况。Jcstress学起来很简单,而且官方也提供了许多高并发场景下的测试用例,只要引入一个jar包,即可运行研究。如何使用Jcstress此演示用maven工程,首先需要引入jar包,核心包是必须要的,样例包非必须原创 2021-04-07 22:25:17 · 1079 阅读 · 13 评论 -
小白都能学会的Java注解与反射机制
文章目录一 什么是注解Ⅱ 内置注解Ⅲ 自定义注解Ⅳ 注解案例Ⅴ Java 反射机制5.1 Java反射机制提供的功能5.2 Java反射机制的优缺点5.3 Java反射相关的主要API5.4 Class类Ⅵ 类加载过程5.1 何时会发生类初始化Ⅶ 类加载器ClassloaderⅧ 性能对比分析Ⅸ 反射操作泛型Ⅹ 反射操作注解一 什么是注解Java注解(Annotation)亦叫Java标注,是JDK5.0开始引入的一种注释机制。 注解可以用在类、接口,方法、变量、参数以及包等之上。注解可以设置存在于不同原创 2021-04-02 07:55:18 · 1046 阅读 · 13 评论 -
前端嫌弃原生Swagger界面太low,于是我给她开通了超级VIP
目录缘由原生SwaggerKnife4J缘由接口文档想必是许多开发小伙伴的噩梦,不仅要写详细,还要及时维护文档与后端代码保持一致,稍有没及时更新接口文档,前端同学肯定会抱怨后端同学给的文档与实际情况不一致。于是,引入了Swagger组件,它实现了代码即文档,后端只管写代码,只需要通过几个注解,会自动生成接口文档,前端同学可在线访问。但是,对界面审美有要求的前端同学,又吐槽Swagger原生界面太low了,而且功能还少。有压迫就有反抗,后端肯定不服,既然你嫌弃原生Swagger太low,那就给原创 2021-03-28 19:28:41 · 1612 阅读 · 6 评论 -
Java8新特性之方法引用
方法引用就是通过方法的名字来指向一个方法。它可以使语言的构造更紧凑简洁,减少冗余代码。方法引用的操作符是双冒号`::`。原创 2020-06-11 00:51:12 · 2479 阅读 · 2 评论 -
要求输出事故报告,线上日志文件却不见了!!
目录案例排查优化解决案例某天,可爱的产品经理跑过来对陈皮说,一个使用了好久,近期也未发过版的xx服务挂了!!需要赶紧处理下,并输出事故报告。服务挂了,要尽快恢复,首先肯定使用重启大法。果不其然,运维人员以迅雷不及掩耳之势已经将服务重启了,并且服务运行也正常了。就只剩输出事故报告了,因为作为一个内部使用服务,于是没接入ELK日志分析平台,然而在向运维人员将服务的日志文件下载下来分析的时候,运维人员反馈没有日志了,就只剩当天重启后的一个日志文件了!!!没有了日志,如何输出事故报告,这不是要拿程序员原创 2021-03-24 22:34:30 · 607 阅读 · 0 评论