随笔分类 - Java
发表于 2023-04-17 17:23阅读:448评论:0推荐:2
摘要:锁的定义 在计算机程序中锁用于独占资源,获取到锁才可以操作对应的资源。 锁的实现 锁在计算机底层的实现,依赖于CPU提供的CAS指令(compare and swsp),对于一个内存地址,会比较原值以及尝试去修改的值,通过值是否修改成功,来表示是否强占到了这个锁。 JVM中的锁 jvm中,有2个常用
阅读全文 »
发表于 2023-02-07 14:30阅读:825评论:1推荐:2
摘要:线上排查:内存异常使用导致full gc频繁 问题系统 日常巡检发现,应用线上出现频繁full gc 现象 应用线上出现频繁full gc 排查过程 分析dump 拉dump文件:小插曲:dump时如果指定:live,则在dump前jvm会先进行一次full gc,并且gc log里会打印dump
阅读全文 »
发表于 2022-07-21 15:15阅读:1033评论:0推荐:0
摘要:使用OpenCv+Arduino实现挂机自动打怪 最近在玩某网游,练级十分枯燥和缓慢,就是挂机刷刷刷,所以研究一下自动化,找了个可以原地挂机刷怪的职业,然后用OpenCv检测技能冷却,冷却好了通过串口通知Arduino按下模拟键盘按键释放技能 大概流程如下: OpenCv定时扫描屏幕->对技能区域截
阅读全文 »
发表于 2022-03-17 11:39阅读:1647评论:0推荐:2
摘要:经验之谈:内存泄露的原因以及分析 内存泄露是Javaer听到最多的关于内存的事了,这篇文章就来谈谈这件事。 内存泄露与资源泄露 什么是泄露?泄露在计算机语境下,通常指的是某个资源无法被访问,也无法被释放。 内存泄露一般发生在某个对象的引用丢失,无法再访问到该引用,但是该引用却依旧引用着某个对象,导致
阅读全文 »
发表于 2021-04-12 16:48阅读:2425评论:0推荐:1
摘要:主要问题 Apollo客户端的配置主要集中在2部分,这就导致割裂了配置,十分不便: ApolloApplicationContextInitializer 在spring-boot环境下,该类中,通过对配置项apollo.bootstrap.enabled的开启,来达到Apollo在spring-b
阅读全文 »
发表于 2021-03-02 15:41阅读:275评论:0推荐:0
摘要:介绍 JMH是一套Java基准测试工具,用于对Java执行进行基准测试以及生成测试报告。平时应用于Java一些基础Api或者一些工具类这种离开网络因素的纯系统测试。 使用方式 maven引入: <dependency> <groupId>org.openjdk.jmh</groupId> <arti
阅读全文 »
发表于 2021-03-02 15:08阅读:1181评论:0推荐:0
摘要:面试被问到一个很有意思的问题:大循环和小循环,哪个在外哪个在里有区别吗?为什么?哪种更快? 当时确实没有答上来也没想到,明明之前看CSAPP了解过CPU的指令分支预测的,但是实在没有想到这里去。 先上个图: 再来个解释的比较清楚的博客: https://segmentfault.com/a/1190
阅读全文 »
发表于 2021-03-02 15:00阅读:576评论:0推荐:0
摘要:ThreadLocal的用处 ThreadLocal是一个多线程的辅助工具类,目的是方便开发者维护多线程中的共享变量。我们知道如果我们想要在一个线程中一直访问一个变量或者在线程上下文中保存一个变量,我们要么将该变量声明为static静态,要么就在每一步函数调用中均传入该变量。这两种方式,static
阅读全文 »
发表于 2021-01-20 11:16阅读:636评论:0推荐:0
摘要:公司要求提升单元测试的质量,其中我作为方案和推动的主导,对开发过程中的单元测试,有了一些思考和总结 单元测试编写的目的 单元测试编写的目的,是面向计算机特性的,基于函数的in-out,所以单元测试的好帮手就是断言,通过不断的构造输出并对结果进行断言,我们就可以针对一个对象以及它的函数,构建出充足的用
阅读全文 »
发表于 2021-01-20 11:10阅读:3298评论:1推荐:2
摘要:公司要求提升单元测试的质量,提高代码的分支覆盖率和行覆盖率,安排我研究单元测试,指定方案分享并在开发部普及开。整理完资料后,同步一下到博客。 单元测试中的mock的目的 mock的主要目的是让单元测试Write Once, Run Everywhere,即编写一次后,可以在任意时刻任意环境运行,无需
阅读全文 »
发表于 2020-10-14 17:31阅读:380评论:0推荐:0
摘要:SpringBoot中的Scheduled定时任务是Spring Boot中非常常用的特性,用来执行一些比如日切或者日终对账这种定时任务 下面说说使用时要注意的Scheduled的几个特性 Scheduled的执行方式 Scheduled按照顺序执行,对于某个task未做配置的话只会起一个线程去执行
阅读全文 »
发表于 2020-10-14 17:23阅读:165评论:0推荐:0
摘要:最近看了Spring in Action,了解了一下WebSocket和Stomp协议相关技术,并搭建了一个项目。网上的例子不完整或者描述不清,所以自己记录一下以作备忘。 一.配置 Spring Boot项目搭建完成后,基于Spring Boot一切皆配置的概念,添加WebSocket支持十分简单。
阅读全文 »
发表于 2020-10-14 17:20阅读:1403评论:0推荐:1
摘要:EventLoop是什么 如果你去百度EventLoop,肯定会百度到很多关于JavaScript,NodeJS的文章,是的,这两种语言的事件机制就依赖于EventLoop,但是EventLoop到底是什么,可以先思考2个问题: 一般情况下,当我们要实现令一个线程不断处理任务,都是选择使用while
阅读全文 »
发表于 2020-10-14 17:19阅读:719评论:0推荐:2
摘要:近日学习Netty,在看书和实践的时候对于书上只言片语的那些话不是十分懂,导致尝试写例子的时候遭遇各种不顺,比如decoder和encoder还有HttpObjectAggregator的添加顺序,研究了一番之后和大家分享一下自己的理解,希望后来人可以少走弯路。 模型浅析 简单描述下ChannelH
阅读全文 »
发表于 2020-10-14 17:17阅读:265评论:0推荐:0
摘要:Netty中的伪共享 先说为什么知道这个概念吧,期初看Netty源码的时候,看到了NioEventLoop的构建,其中有这么一句代码: private static Queue<Runnable> newTaskQueue0(int maxPendingTasks) { // This event
阅读全文 »
发表于 2020-10-14 17:15阅读:152评论:0推荐:0
摘要:根据进程名杀死进程 ps -ef | grep process_name | grep -v grep | awk '{print $2}' | xargs kill -9 docker拉取镜像 docker pull localhost:5000/v2/moyu-eureka-server:lat
阅读全文 »
发表于 2020-10-14 17:14阅读:189评论:0推荐:0
摘要:题目 题目地址:https://leetcode-cn.com/problems/count-number-of-teams/ n 名士兵站成一排。每个士兵都有一个 独一无二 的评分 rating 。 每 3 个士兵可以组成一个作战单位,分组规则如下: 从队伍中选出下标分别为 i、j、k 的 3 名
阅读全文 »
发表于 2020-10-14 17:12阅读:1414评论:0推荐:0
摘要:操作系统:Centos7.3 一.依赖安装 首先安装相关依赖: yum install -y gcc openssl-devel popt-devel yum -y install libnl libnl-devel yum install -y libnfnetlink-devel 基本依赖就安装
阅读全文 »
发表于 2020-10-14 17:10阅读:188评论:0推荐:0
摘要:前言 之前一篇文章简单介绍了NIO,并附了一个简单的例子,但是自己试一下就会知道,简单的使用NIO是无法满足开发需要的,因为NIO处理的思路和日常servlet加spring中习惯的一连接一线程有很大不同。 NIO与多线程 上篇那个例子实现了一个简单的NIO,但是实际使用中我们不可能仅仅在单线程下使
阅读全文 »
发表于 2020-10-14 17:07阅读:204评论:0推荐:0
摘要:近日学习Netty,在看书和实践的时候对于书上只言片语的那些话不是十分懂,导致尝试写例子的时候遭遇各种不顺,比如decoder和encoder还有HttpObjectAggregator的添加顺序,研究了一番之后和大家分享一下自己的理解,希望后来人可以少走弯路。 IO与NIO的区别 IO是Input
阅读全文 »