我钟意饮王老菊
码龄7年
关注
提问 私信
  • 博客:69,153
    69,153
    总访问量
  • 88
    原创
  • 2,179,993
    排名
  • 18
    粉丝
  • 0
    铁粉

个人简介:Just lose it

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:广东省
  • 加入CSDN时间: 2017-11-18
博客简介:

awake_lqh的博客

查看详细资料
个人成就
  • 获得48次点赞
  • 内容获得24次评论
  • 获得172次收藏
  • 代码片获得297次分享
创作历程
  • 1篇
    2022年
  • 11篇
    2021年
  • 62篇
    2020年
  • 15篇
    2019年
成就勋章
TA的专栏
  • java
    46篇
  • framkword
    1篇
  • 服务器
    3篇
  • 计算机网络
    11篇
  • Linux
    1篇
  • mysql
    4篇
  • 算法
    5篇
  • jvm
    11篇
  • 设计模式
    12篇
  • spring
    4篇
  • 面试
    4篇
  • springboot
    5篇
  • sql
    1篇
兴趣领域 设置
  • 前端
    cssvue.js前端框架
  • 学习和成长
    面试
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

Mac RabbitMq 安装

mac环境安装rabbit mq
原创
发布博客 2022.08.02 ·
1000 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

游戏服务器-日志系统

游戏服务器-日志系统游戏服务器的日志系统主要分为业务日志和程序日志。业务日志主要是给运营进行使用。程序日志则主要是给开发者调试日志,查找bug使用扩展:后续可以加上性能检测日志等。业务日志业务日志主要是给运营进行使用。程序日志程序日志则主要是给开发者调试日志,查找bug使用。为了使日志更加的客观,通常按照不同的系统模块来输出对应模块的程序日志文件,方便后续线上来进行查找bug。则程序日志可以继续细分:系统模块日志、架构代码异常日志系统模块日志:游戏有需要功能模块:活动、玩家、登录
原创
发布博客 2021.09.01 ·
1109 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

maven标签小解

maven细说一下maven中的遇到的各种标签,遇到不懂得都会在此更新。2021-8-30 更~<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>${junit.version}</version> <optional>true</optional>
原创
发布博客 2021.08.31 ·
518 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Guava Cache基本使用

前言:Guava 学习笔记,参考自Google Guava官方文档。Guava Cache文章目录前言:Guava CacheCache的回收机制基于容量回收基于定时回收基于引用类型回收具体功能使用加载 CacheLoaderCallable显式插入元素移除监听器 removalListenerasMap视图测试代码Cache的回收机制既然是缓存,那么总会存在没有足够的内存缓存所有数据。Cache提供三大类回收机制。基于容量回收如果要规定缓存项的数目不超过固定值,只需使用CacheBu
原创
发布博客 2021.08.27 ·
966 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Java四种引用及测试代码

前言:学习guavaCache的时候遇到的一些比较模糊的地方,之前复习过的,现在又忘了,写个blog记录一下下。Java 四种引用强引用 Strong Reference日常开发我们锁创建的引用就是强引用。例子:Student obj=new Student();软引用 Solf Reference软引用是用来描述一些非必需但仍有用的对象。在内存足够的时候,软引用对象不会被回收,只有在内存不足时,系统则会回收软引用对象,如果回收了软引用对象之后仍然没有足够的内存,才会抛出内存溢出异常。J
转载
发布博客 2021.08.24 ·
397 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

新的博客网站

传送门https://awakeyoyoyo.github.io/
原创
发布博客 2021.08.23 ·
124 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Effective Java 读书笔记(四)

前言:又又来更新了,鸽王了害,自从工作了之后一直很少花时间看书了,最近搬了新的家环境一变,又有了点儿兴致hh,大概率更新的节奏是每周一篇吧,工作日要上班蛮累的。。。希望自己可以坚持下去吧~Item07:Eliminate expired object references 消除过期的对象引用JAVA中有自动的回收功能,但某些地方如果书写的代码不好仍然会出现内存泄漏。这里举个例子:栈实现public class MemoryLeakStack { private Object[] elemen
原创
发布博客 2021.06.06 ·
264 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

Effective Java 读书笔记(三)

前言:又来更新了,每天点儿时间来更新两个小item,其实本来可以更新三个的,但item07有些地方自己不是蛮熟悉嘛,顺带着需要花点时间看看。这里先更新item05&item06Item05:Prefer dependency injection to hardwiring resources 优先考虑依赖注入来引用资源在实际项目中,有许多类会依赖一个或者多个底层的资源。例子:拼写检查器需要依赖词典,因此有几种可以将其实现的方法。1、将类实现为静态工具类public class SpellC
原创
发布博客 2021.04.10 ·
136 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Effective Java 读书笔记(二)

前言:这次了解的是item03&item04,主要比较新颖的方式是通过枚举的方式来实现单例。Item03:Enforce the singleton property with a private constructor or an enum type 使用私有构造器或者美剧类强化单例模式实现单例模式主要由两种方式:这两种方式都要保持构造器为私有的,并且导出共有的静态成员,以便于客户端能够访问该类的唯一实例。1、用public、final修饰静态成员变量代码:public class S
原创
发布博客 2021.04.09 ·
149 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Effective Java 读书笔记(一)

前言:开个新的坑位,《effective java》的读书笔记,之后有时间会陆陆续续的更新,读这本书真的感触满多,item01和item02就已经在公司的项目代码中看到过了。今天这篇主要记录了item01和item02一些理解。有错误的地方欢迎大佬们指出指出Item01:Consider static factory instead of constructors 考虑用静态工厂方法代替构造器优点:1、静态工厂方法与构造器不一样的地方是:有方法名2、不必在每次调用他们的时候都创建一个新的对象,可以
原创
发布博客 2021.04.08 ·
341 阅读 ·
0 点赞 ·
2 评论 ·
0 收藏

Consumer接口的简介与使用

前言:最近在看公司源码的时候发现了这么个Consumer接口的时候,但是蒙蔽的了一阵。百度后才知其然。然后到现在我还是不知道为啥要多次一举。。。Consumer接口Consumer接口是Java一系列函数式接口中的一个。上源码@FunctionalInterfacepublic interface Consumer<T> { void accept(T t);}accept方法:接收一个对象,然后消费该对象来执行对应的逻辑代码例子:Stuend类public cla
原创
发布博客 2021.02.20 ·
1341 阅读 ·
2 点赞 ·
0 评论 ·
1 收藏

JAVA遍历集合并修改集合抛出异常ConcurrentModificationException

前言:遍历集合根据某个条件对集合内容进行修改,这是一个非常常用的情景,但在实际开发中有时会抛出ConcurrentModificationException有时候又不会。这里终结一下。例子(一):public class ArrayListTest { public static void main(String[] args) { List<Integer> listA=new ArrayList<>(); listA.add(1);
原创
发布博客 2021.02.19 ·
701 阅读 ·
2 点赞 ·
1 评论 ·
3 收藏

Netty自定义逻辑线程池实现相同角色的数据修改串行化执行和与work线程分离

前言:目前在写一个简易版的新人游戏服务器demo,使用的是netty框架,由于netty是Reactor模型,由boss线程池进行对于套接字是否就绪的监听,work线程池对于io流进行操作。前面一直将游戏逻辑放在了work线程池中处理,这样子如果遇到一些耗时大的逻辑会影响netty框架对于io流的读取。这里就将新建一个逻辑线程池进行逻辑处理,并且串行化执行对于同一个角色的数据修改。问题:为什么要串行化对于角色数据修改?对于游戏来说,角色的血量、蓝量。这些可能会被其他角色的攻击、buffer、技能等等
原创
发布博客 2020.12.23 ·
716 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

Netty基础之JAVA普通IO与NIO

前言:接到了一个新人培训的第一阶段计划,需要用到netty框架,由于本人之前没什么接触过netty。这里写下博客记录一下学习过程咯。传统IO话不多说吧 先上个栗子:public class OioServer { @SuppressWarnings("resource") public static void main(String[] args) throws IOException { //线程池 ExecutorService pools=Exe
原创
发布博客 2020.12.08 ·
171 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

基于snakeyaml读取yml配置文件生成JAVA复杂对象

前言:目前需要做一个将游戏基础数据抽取到配置文件中,然后每次初始化项目就根据配置文件初始化游戏的基础数据,因为之前用springboot比较多,对于yml的书写格式比较熟悉。可以轻松的构造出类的结构。然后在网上搜索了一会儿基本都是一些基础数据的读取、或者是基于springboot注解读取。这里记录一下读取解析集合类型和复杂类型的对象的过程。准备 <dependency> <groupId>org.yaml</groupId>
原创
发布博客 2020.12.07 ·
2167 阅读 ·
0 点赞 ·
0 评论 ·
5 收藏

JAVA实现生产者消费者模式

前言:貌似很久没更新了,更新一下最近以为自己已经了解,但是还是有一点错误的问题。sychronized版本需要注意:sychronized只允许有一个条件,即只有一个wait方法和notify方法,所以无论谁来唤醒,都会唤醒生成者和消费者,值得注意的地方是wait()方法会放弃锁,而sleep不会放弃锁,所以在判断条件处需要使用while来判断,因为当该线程从wait唤醒时,需要再次判断是否满足条件,而不是直接往下执行。代码:public class SychronizedDemo { p
原创
发布博客 2020.10.06 ·
244 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

HTTPS的一点儿理解

前言:复习到http,就顺带着复习一下https吧,发现自己对于https的过程还是不不够清晰的。这里总结一下。HTTPS作用防止窃听主要采用加密的方式来防止窃听:有两种方式非对称加密和对称加密,https两种方式都有用到(非对称加密RSA,对称加密AES),在建立https连接的时候才有非对称密钥加密,建立完https连接后使用对称密钥加密。防止伪装主要使用证书来证明。前提是操作系统中缓存着知名CA机构的公钥,防止CA公钥被伪造。防止修改通过数字签名来解决,数字签名:即散列化后的字符串(
原创
发布博客 2020.08.19 ·
274 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Linux基本知识点(文件权限篇)

文件权限篇Linux文件的属性由10个字符来表示:文件类型:-文件拥有者权限(u): — rwx群组权限(g): — rwx其他人权限(o): — rwx每个身份有3种权限:r 读取的权限 read------4w 写入的权限 write-----2x 执行的权限 execute----1若文件权限是777,则对于拥有者、群组、其他用户的权限都用含有rwx。修改文件的访问权限:chmod格式:chmod mode filemode [u,g,o,a][+,-,=
原创
发布博客 2020.08.05 ·
328 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

mysql事务隔离级别的实现原理

前言:好久没更新了,我又回来了。承接上一篇mysql innodb的文章。隔离级别:事务隔离级别要实际解决的问题脏读脏读指的是读到了其他事务未提交的数据,未提交意味着这些数据可能会回滚,也就是可能最终不会存到数据库中,也就是不存在的数据。读到了并一定最终存在的数据,这就是脏读。更新丢失一个事务的更新操作会被另外一个事务的更新操作所覆盖,从而导致数据的不一致不可重复读不可重复读指的是在同一事务内,不同的时刻读到的同一批数据可能是不一样的,可能会受到其他事务的影响,比如其他事务
原创
发布博客 2020.07.19 ·
219 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Mysql锁机制原理innodb

前言:唏嘘唏嘘,提前批投了一手字节,简历就被筛选掉了,无时无刻不在提醒我是个小菜鸡=。=,老老实实更新了。锁锁的粒度行锁只针对操作的当前行进行加锁。并发情况下,产生锁等待的概率较低,支持较大的并发数,但开销大,加锁慢,而且会出现死锁。(在InnoDB中使用行锁有一个前提条件:检索数据时需要通过索引!因为InnoDB是通过给索引的索引项加锁来实现行锁的。)表锁:表锁的锁定颗粒度在MySQL中是最粗的,InnoDB、MyISAM引擎中都有应用,对当前整张表加锁。不适合高并发的场景,但开销小,加
原创
发布博客 2020.07.03 ·
502 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏
加载更多