4 黄晓宇

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 15w+

如何使用 IDEA 进行远程 debug

前言在开发中经常遇到这样一个问题,在本地环境跑的好好的代码,一上开发环服/测试服就有问题,这类问题往往很难在本地复现,也就意味着修复改 bug 是个艰难的过程。今天跟大家分享如何使用 IDEA 远程 debug 功能解决上述问题IDEA 设置点击菜单栏的Run -> Edit Configurations...,打开 Run/Debug Configurations 窗口点击工具栏左上角的+按钮,选择Remote设置远程主机的端口与地址在Command line arguments fo

2020-06-03 00:16:28

关于指令重排序

前言最近在看 JVM 与高并发相关书籍,发现两本书都提到了指令重排序优化,但都没对指令重排序优化进一步解释,后面在查找了相关资料后才对指令重排序有个整体的了解,此篇文章对该部分知识做一个整理,希望对大家有所帮助什么是指令重排序在讲指令重排序之前,先看下面代码,试想一下程序的运行结果public class NoVisibility { private static boolean ready; private static int number; private s

2020-05-16 20:26:27

优雅的接收单个参数的 post 请求

前阵子开发程序的时候,由于公司用的不是 restful 风格的 api,同事问我根据id删除记录的接口,controller 层参数绑定要怎么写的问题,几番讨论下来,总结了几个方法使用Map接收参数@PostMapping("/delete")public ApiResponse delete(@RequestBody Map<String,String> params){...

2020-04-13 02:02:32

Hutool——好用的 Java 工具类库

简介Hutool是Hu + tool的自造词,前者是作者致敬“前任公司”,后者为工具之意,谐音“糊涂”,寓意追求“万事都作糊涂观,无所谓失,无所谓得”的境界Hutool是一个Java工具包,也只是一个工具包,它帮助我们简化每一行代码,减少每一个方法,让Java语言也可以“甜甜的”。Hutool最初是我项目中“util”包的一个整理,后来慢慢积累并加入更多非业务相关功能,并广泛学习其它开源项目精...

2020-04-03 00:46:23

git commit 规范

Git 是市面上最流行的版本控制工具,书写良好的代码提交规范能大大提高代码维护的效率,日常开发中使用 git 提交代码要求一定要写 git commit message,否则就无提交代码,很多公司对 git commit message 的格式没有一个明确的规范,导致各个开发人员随意填写提交信息、风格迥异,在项目中引入 git commit 规范已迫在眉睫Angular 的代码提交规范目前,社...

2020-03-29 16:37:15

我是如何进行单元测试的

中发现大家都知道单元测试,也知道 junit,但是没有人知道怎么写 junit 单元测试,在这里分享我在工作中是怎么写单元测试的,供大家参考什么是单元测试首先讲讲什么是单元测试,单元测试是指对软件中的最小可测试单元进行检查和验证。单元测试在质量保证中是非常重要的环节,根据测试金字塔模型,越往上层的测试,所需的测试投入比例越大,效果也越差,而单元测试的成本要小的多,也更容易发现问题单元测试的...

2020-03-25 01:10:25

如何测试私有方法

由于 Java 私有方法不允许在类的外部进行访问,当我们在写 junit 测试的时候,就无法像测试其他方法一样通过对象调用的方式对 private 方法进行单独测试。但我们可以通过以下两种方式进行测试使用反射机制Java 反射能在运行时获得类的属性和方法,故可以通过 Java 的反射机制对私有方法进行测试,代码如下@Testpublic void reflectTest() throws ...

2020-03-23 00:54:51

Java CopyOnWrite

CopyOnWrite 介绍Copy-On-Write简称COW,是一种程序设计中的优化策略,其实现思路是大家都在共享一个内容,当有人想要修改内容的时候,就创建一个改内容的副本,对副本进行修改,然后再将原本的引用指向副本,完成内容的修改。是一种读写分离的并发策略,也是一种延时惰性策略Java 中的 CopyOnWrite 容器CopyOnWrite容器,即写时复制容器。我们都知道,在 Jav...

2020-03-21 00:55:54

Fail-fast 机制分析

什么是 fail-fast 机制fail-fast(快速失败)机制是集合中比较常见的错误检测机制,防止在对集合进行遍历的时候,出现意料之外的修改,导致意想不到的结果写个简单的例子了解下什么是fail-fast机制@Testpublic void failFastTest(){ List<String> list = new ArrayList<>(); ...

2020-03-19 01:39:51

ArrayList 扩容分析

ArrayList 初始容量ArrayList 有多个不同的构造方法,不同的构造方法的初始容量是不同的。介绍之前先看下 ArrayList 都有哪些变量 // 默认初始化容量=10 private static final int DEFAULT_CAPACITY = 10; // 空数组,当初始化容量为0时返回该数组 private static final Object[] EMPT...

2020-03-16 00:57:26

ElasticSearch——高性能分布式搜索引擎

ElasticSearch 简介ElasticSearch(简称 es)是一款高性能的实时分布式搜索和分析引擎,它可以从海量数据中快速的找到相关信息,当你在 github 搜索时,ElasticSearch 可以在 1300 亿行代码中找出你想要的内容。安装入门结构化查询创建mapping聚合函数...

2020-03-01 16:08:41

Spring Boot Actuator 监控

简述spring boot actuator 是 spring boot 为监控线上项目运行指标所提供的一个 starter 模块,spring boot actuator 不跟其他模块那样主要使用于业务开发或连接一些外部资源,完全是用于暴露自身信息的模块,方便我们监控和管理线上项目Actuator 初探下面通过一个简单的示例,对 spring boot actuator 有一个直观的认识...

2020-01-14 16:36:12

spring cloud 系列文章(一)Eureka 使用

介绍关于 EurekaEureka 是由 Netfix 开发的服务注册发现组件,后来 spring cloud 将其集成到其子项目 spring-cloud-netfix 中。Eureka 本身是基于 REST 的服务,在集群中主要用于服务管理。Eureka 提供了 Java 的客户端组件,同时该客户端组件实现了负载均衡的功能,为业务组件的集群部署创造了条件。我们可以很简单的将业务组件注册到 ...

2019-09-02 00:06:47

微服务那点事

前言记得刚开始出来实习的时候,那时候连 Java Web 是什么都没有个清晰的概念,面试的时候面试的是 Android,结果去到公司却被叫去干后端。那时候只记得上过两节 Java SE 的课,连 SSH 都没搭建过,然后公司用的框架是 SSM,那时候抱佛脚恶补了一下 Java Web 的知识,然后就硬着头皮干了。第一次接触微服务是在跟公司同事吃饭的时候,他问我们听说过微服务吗,当时听他说什么每...

2019-08-23 16:58:23

Spring Boot Admin 使用

简介Spring Boot Admin 是一个开源社区项目,用于管理和监控你的 Spring Boot 项目,被监控的应用可以作为 Spring Boot Admin Client 注册到 Spring Boot Admin Server 上,由统一监控。Spring Boot Admin 的前端 UI 是由 Vue.js 写的一个应用程序,用于展示被监控应用的信息。快速入门Spring B...

2019-07-19 02:03:49

Java按行分割大文件

简介工作的时候,需要将一个大的文本文件按行分割成几个小文件。本来懒得写,想网上copy一下得了,但是 google 了一遍,找了几个代码写的有点乱,尝试了之后发现效率太慢了,一个 1000000 行200M 的文件,按每个文件 2000 行分割,要6分多钟才能跑完。没办法自己写了个,试了几次,基本都是 4 秒内跑完,贴出来记录下,下次用就直接 copy 出来用。代码public s...

2019-04-23 00:54:35

Tomcat 警告:Unknown version string [4.0] . Default version will be used.

问题描述在新建的 web 项目中,tomcat 启动的时候控制台出现了 Unknown version string[4.0] . Default version will be used. 警告。经过查略资料发现是 web 版本跟 tomcat 版本不匹配导致的。我项目中的 web 版本是 4.0,tomcat 版本是 8.5。版本对应关系web、jdk、tomcat版本对应关系 ...

2019-03-12 16:15:04

常用设计模式——装饰器模式

简介装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其类的结构的一种结构型模式。这种模式创建了一个装饰类,用来包装原有的类,并在保证类的签名完整性的条件下,提供了额外功能。实现前几天星巴克的猫爪杯可谓是赚足眼球,一个小小的杯子被网友们热捧。价格更是被炒到600元一个,还有人通宵到星巴克排队购买的,表示搞不懂,哈哈哈。那么干脆就以星巴克咖啡为...

2019-03-07 22:43:37

常用设计模式——单例模式

简介设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式可以提高代码的可重用性,让代码更容易理解,也能保证代码的可靠性。常用的设计模式大概有23种,如单例模式、抽象工厂模式、建造者模式、观察者模式等,这里首先跟大家介绍下单例模式。什么是单例模式单例模式是指在整个软件系统中,使得应用该模式的某个类有且仅有一个对象的实例。单例模式应用场景在整个软...

2019-02-28 17:16:21

聊聊跨域

传统的javaee架构下面是常见的 javaee 架构的简化版,客户端请求 apache/nginx 代理服务器,代理服务器接收到请求后将请求转发到后台的应用服务器(tomcat、jeety 等),后台应用服务器处理请求,将结果返回给代理服务器,代理服务器接收到请求后,再将请求返回给客户端。这就是一个完整的请求、响应的流程。什么是跨域请求前台接口调用后台服务的时候,如果前台接口跟后...

2019-02-15 17:13:36

查看更多

勋章 我的勋章
  • 阅读者勋章Lv1
    阅读者勋章Lv1
    授予在CSDN APP累计阅读博文达到3天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。
  • 原力新人
    原力新人
    在《原力计划【第二季】》打卡挑战活动中,成功参与本活动并发布一篇原创文章的博主,即可获得此勋章。
  • 分享学徒
    分享学徒
    成功上传1个资源即可获取