编程语言
文章平均质量分 75
在酒吧写代码
一个很懒的程序员...
展开
-
来自大佬的洗礼!全网独家的SpringBoot核心文档,讲的太清晰了
嘿伙计,你用过 Spring 和 SpringBoot 吗?是不是感觉Spring真是个强大的框架, SpringBoot 又让 Spring 更加牛批了呢?我想这个大家也都这么认为吧!SpringBoot 在当下的 Java 后端开发中已经相当流行,非常多的公司和开发团队都选用 SpringBoot 作为快速构建项目的打底框架,究其原因你我都清楚,它方便简单,而且注解和编程式配置都让我们觉得更加简单、容易理解和维护。原创 2022-12-09 13:33:59 · 147 阅读 · 0 评论 -
谈谈Java应用发布时CPU抖动的优化
通常情况下应用发布或重启时都存在cpu抖动飙高,甚至打满的现象,这是由于应用启动时,JVM重新进行类加载与对象的初始化,CPU在整个过程中需要进行比平时更多的编译工作。同样,闲鱼的消息系统在重新发布时经常有抖动的问题,如下图显示:日常情况下CPU使用率基本不超过20%,而每当应用重新发布时,服务器的cpu使用率骤增至40%以上。本文正是为了减少这种抖动,进而保障应用发布时的稳定性。原创 2022-12-08 17:49:20 · 309 阅读 · 0 评论 -
全网最全一篇数据库MVCC详解,不全你打我
什么是MVCC全称Multi-Version Concurrency Control,即多版本并发控制,主要是为了提高数据库的并发性能。以下文章都是围绕InnoDB引擎来讲,因为myIsam不支持事务。同一行数据平时发生读写请求时,会上锁阻塞住。但mvcc用更好的方式去处理读—写请求,做到在发生读—写请求冲突时不用加锁。这个读是指的快照读,而不是当前读,当前读是一种加锁操作,是悲观锁。那它到底是怎么做到读—写不用加锁的,快照读和当前读又是什么鬼,跟着你们的贴心老哥,继续往下看。.原创 2020-10-08 20:55:35 · 712 阅读 · 0 评论 -
Java反应式框架Reactor中的Mono和Flux
1. 前言最近写关于响应式编程的东西有点多,很多同学反映对Flux和Mono这两个Reactor中的概念有点懵逼。但是目前Java响应式编程中我们对这两个对象的接触又最多,诸如Spring WebFlux、RSocket、R2DBC。我开始也对这两个对象头疼,所以今天我们就简单来探讨一下它们。2. 响应流的特点要搞清楚这两个概念,必须说一下响应流规范。它是响应式编程的基石。他具有以下特点:响应流必须是无阻塞的。 响应流必须是一个数据流。 它必须可以异步执行。 并且它也应该能够处理背..原创 2020-09-29 15:04:41 · 14340 阅读 · 3 评论 -
Java安全编码指南之:异常处理
简介异常是java程序员无法避免的一个话题,我们会有JVM自己的异常也有应用程序的异常,对于不同的异常,我们的处理原则是不是一样的呢?一起来看看吧。异常简介先上个图,看一下常见的几个异常类型。所有的异常都来自于Throwable。Throwable有两个子类,Error和Exception。Error通常表示的是严重错误,这些错误是不建议被catch的。注意这里有一个例外,比如ThreadDeath也是继承自Error,但是它表示的是线程的死亡,虽然不是严重的异常,但是因为原创 2020-09-29 14:57:31 · 351 阅读 · 1 评论 -
大白话谈JVM的类加载机制
前言我们很多小伙伴平时都是做JAVA开发的,那么作为一名合格的工程师,你是否有仔细的思考过JVM的运行原理呢。如果懂得了JVM的运行原理和内存模型,像是一些JVM调优、垃圾回收机制等等的问题我们才能有一个更清晰的概念。为了走进JVM,深入了解底层,王子打算写一个JVM的专题,留下自己对JVM探索的足迹,同时也希望能帮到小伙伴们更好的理解JVM。那我们开始吧。JAVA代码的运行流程首先我们就来聊一聊JAVA代码是怎么运行起来的,这部分比较基础相信大家都知道,就当成是个复习吧。.原创 2020-09-27 20:51:54 · 458 阅读 · 0 评论 -
从零搭建Spring Boot脚手架(7):Elasticsearch应该独立服务
1. Spring Data ElasticsearchSpring Data Elasticsearch是Spring Data项目的子项目,提供了Elasticsearch与Spring的集成。实现了Spring Data Repository风格的Elasticsearch文档交互风格,让你轻松进行Elasticsearch客户端开发。2. 个人的一些看法应粉丝要求特地将Elasticsearch整合到Spring Boot中去。本来打算整合到kono脚手架中,但是转念一想这样并不是非常.原创 2020-09-24 13:26:03 · 407 阅读 · 0 评论 -
为什么一个还没毕业的大学生能够把 IO 讲的这么好?
为什么一个还没毕业的大学生能够把 IO 讲的这么好?Java IO 是一个庞大的知识体系,很多人学着学着就会学懵了,包括我在内也是如此,所以本文将会从 Java 的 BIO 开始,一步一步深入学习,引出 JDK1.4 之后出现的 NIO 技术,对比 NIO 与 BIO 的区别,然后对 NIO 中重要的三个组成部分进行讲解(缓冲区、通道、选择器),最后实现一个简易的客户端与服务器通信功能。传统的 BIOJava IO流是一个庞大的生态环境,其内部提供了很多不同的输入流和输出流,细分下去还.原创 2020-09-23 14:25:01 · 332 阅读 · 0 评论 -
虚拟机系列 | JVM类加载机制
一、类加载简介类的加载机制是指把编译后的.class类文件的二进制数据读取到内存中,并为之创建一个java.lang.Class对象,用来封装类在元数据空间的数据结构。类在JVM中的生命周期为:加载,连接,初始化,使用,卸载。不过这里只重点描述加载,连接,初始化这三个过程。二、加载过程基于一张图看类加载子系统的细节流程:1、加载阶段过程描述加载阶段需要完成以下三个过程:通过类的全限定名来获取其定义的二进制字节流; 将字节流所代表的静态存储结构转化为云数据空间的运行时原创 2020-09-22 22:07:37 · 259 阅读 · 0 评论 -
DNS解析时发现域名和IP不一致,访问了该域名会如何(大厂真题)
这是一道互联网大厂的面试真题,主要考察的就是DNS域名解析的过程是什么样的。以此为背景进而考察安全相关问题。综合性还是很强滴。本文将从案例出发开始一步一步深入。一、DNS运行原理1、为什么要DNSDNS的作用在于域名解析。每个网站通常都会有一个域名和至少一个IP地址。比如说百度的域名,112.80.248.74就是百度的IP地址。我们想要访问百度的时候只需要输入域名就可以,当然IP也可以,为什么不使用IP登录呢?看上面的数字就知道,一串复杂的数字难以记忆。我们每天要登录大量的网站可能都需要一原创 2020-09-21 21:49:00 · 3098 阅读 · 0 评论 -
面试官:String字符串的最大长度是多少?
在学习和开发过程中,我们经常会讨论 short ,int 和 long 这些基本数据类型的取值范围,但是对于 String 类型我们好像很少注意它的“取值范围”。那么对于 String 类型,它到底有没有长度限制呢?其实 String 类型的对象,他们是有长度限制的, String 对象并不能“存储”无限长度的字符串。关于 String 的长度限制要从编译时限制和运行时限制两方面考虑。编译期限制有JVM虚拟机相关知识的同学肯定知道,下面定义的字符串常量“自由之路”会被放入方法区的常量池...原创 2020-09-19 20:05:43 · 1037 阅读 · 0 评论 -
《Java从入门到失业》第四章:类和对象(4.3):一个完整的例子带你深入类和对象
4.3一个完整的例子带你深入类和对象 到此为止,我们基本掌握了类和对象的基础知识,并且还学会了String类的基本使用,下面我想用一个实际的小例子,逐步来讨论类和对象的一些其他知识点。4.3.1需求及分析 大失叔比较喜欢打麻将,毕竟是国粹嘛,哈哈!因此我打算用一个“自动麻将桌”的小程序来探讨(我相信你们大多数也都会打,如果实在不会,自己百度科普下吧)。需求很简单,说明如下:一共136张麻将牌 西施、王昭君、貂蝉、杨贵妃4个人玩 座位东固定为庄家 程序开始运行后,...原创 2020-09-19 14:42:04 · 495 阅读 · 0 评论