- 博客(126)
- 资源 (12)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
转载 程序员练级攻略:程序员修养
这是一篇转载自陈皓《左耳听风》专栏的文章,这篇文章介绍了要做一名合格的软件工程师,需要具备的修养,注意这里我说的是工程师,而不是码农。这是程序员的工程师文化,也就是程序员的价值观,因为我觉得如果你的技术修养不够的话,你学再多的知识也是没有用的。要了解程序员的修养,你可以先从 Quora 上的这个贴子开始 “What are some of the most basic things every programmer should know?”,我摘录一些在这里供你参考。Bad architec.
2020-11-25 10:17:16
434
原创 IO Models 参考
I/O Models 参考以后的博客记录会先发布于 GitHub: https://github.com/LiuKay/KaybeeNotes, 欢迎关注在 Unix 下有 5 种 I/O 模型:阻塞 I/O非阻塞 I/OI/O 多路复用 (select and poll)信号驱动的 I/O (SIGIO)异步 I/O (the POSIX aio_ functions)《Unix 网络编程》中介绍了这 5 种 I/O 模型,由于该书中的示例图比较模糊,我照着画了一遍,原书中使用
2021-12-28 09:05:18
464
原创 JVM 重点知识点总结
本篇是学习 JVM 的一些知识点总结,翻阅了大量参考资料,不求多深入到细节,只求把一些重点的内容整理出来,所有参考资料均在文章末尾列出,这些参考资料才是最大的宝藏。一般来讲,JVM 的架构分为3个部分:类加载子系统、运行时数据区域、执行引擎。如下图。类加载子系统将二进制的字节码读入和转换成虚拟机能够处理的数据结构,Java 虚拟机在执行Java程序的过程中将它所管理的内存区域划分为若干不同的数据区域,这些区域有不同作用,统称为运行时数据区域。执行引擎是虚拟机的执行字节码的概念模型,在虚拟机的实现中有解释
2021-10-12 16:38:01
427
1
原创 Tips: 容器内 JVM 内存设置参数最佳实践
参考:Best Practices: Java Memory Arguments for Containers - DZone JavaTL;DR简而言之:在容器内有3组参数来设置 JVM 的最大堆内存:-XX:MaxRAMFraction, -XX:MinRAMFraction-XX:MaxRAMPercentage, -XX:MinRAMPercentage-Xmx应该怎么使用?1 -XX:MaxRAMFraction, -XX:MinRAMFraction:支持版本:only J
2021-09-29 15:33:35
2452
原创 什么是 Fat/Shade/Shadow Jar
什么是 Fat/Shade/Shadow Jar ?问题java -jar xxx.jar 执行时找不到主类 或 ClassNotFoundException引入的 jar 包中依赖冲突了怎么办,有多个版本的依赖类正文有没有想过 Spring Boot 项目可以直接打包成一个 jar 包还能直接通过java -jar运行,而当我们自己去写一个小项目去打成 jar 包的时候,要么就是打成的 jar 包运行的时候报 “找不到主类”, 要么就是报一个依赖的Class找不到,这是为什么呢?S
2021-06-30 21:14:16
2407
原创 Gradle编译失败:Cause: zip END header not found
Gradle编译失败: zip END header not found实际原因是项目下面 gradle/wrapper/gradle-wrapper.properties 里面所指定的 gradle 压缩包损坏了导致的,distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-all.zip把里面的gradle 版本换一个就行了,或者指定你本地USER_HOME\.gradle\wrapper\dists下面的其他版本
2021-04-16 16:35:54
1160
原创 Java 异常处理最佳实践
Java 异常处理最佳实践1 永远不要在 catch 代码块中忽略异常这条原则放在第一位。不要忽略你遇到的异常,要么将其抛出,要么记录日志,如果确实是可以不做处理的异常,也请将原因写catch块的注释里面。因为如果忽略了异常,你将永远不知道异常的原因,将来也无法避免它。1.1 记录日志catch(NoSuchMethodException ex){ log.error(ex);}1.2 重新包装抛出异常catch(NoSuchMethodException ex){ thro
2021-04-13 22:31:44
887
翻译 理解 Reactor 模式: Thread-Based and Event-Driven
Understanding Reactor Pattern: Thread-Based and Event-DrivenUnderstanding Reactor Pattern: Thread-Based and Event-Driven - DZone Java(原文的图片挂了,这是我自己加的,使用的是 Doug Lea 的PPT中的)Reactor 模式在实践中是怎么做的,为什么理解它很重要。有2种处理网络请求的 Web 架构: 基于线程(thread-based)的架构和事件驱动(eve
2021-03-03 22:53:01
511
2
翻译 Docker 入门教程(二) - Docker Dockerfile
作者:Jakob Jenkov 原文地址:http://tutorials.jenkov.com/docker/dockerfile.html文章目录Dockerfile 优点Dockerfile 结构Docker Base ImageMAINTAINERFROMCMDCOPYADDENVRUNARGWORKDIREXPOSEVOLUMEENTRYPOINTHEALTHCHECKHealth Check IntervalHealth Check Start PeriodHealth Check Tim.
2021-02-10 18:03:45
198
翻译 Docker 入门教程(一) - Docker Tutorial
Docker 教程作者: Jakob Jenkov 原文链接Docker是一种使用名为Dockerfile的打包规范将应用程序和服务器配置打包为 Docker 镜像的简单方法。 Docker 镜像可以在任意多个实例中启动 。 Docker 镜像的每个运行实例都称为 Docker容器(Docker Container)。该Docker教程介绍了Docker镜像,容器和 Dockerfile 是什么,如何创建,运行和发布它们以及更多的内容。Docker 的优点使用 Dockerfile 打包应用程
2021-02-10 09:58:47
957
原创 Review: Introduction to Java Bytecode (Java 字节码入门)
Review 2020-06-12Introduction to Java Bytecodehttps://dzone.com/articles/introduction-to-java-bytecode作者: Mahmoud Anouti这是一遍相对来说比较简单的Java 字节码入门文章,一开始作者讲到了阅读Java 字节码比较枯燥无味,但是通过自己的故事说明了字节码的作用,事情是这样的,这哥们在很早之前做了一次功能变更,目的是为了测试修复一个潜在的性能问题, 并且打好了 JAR 包部署到服务
2021-01-16 19:27:05
213
1
原创 Review: The Key to Accelerating Your Coding Skills(提高编程技术的秘诀)
ReviewThe Key to Accelerating Your Coding Skills - KEN MAZAIKA作者的个人主页:https://kenmazaika.com/about/作者在这篇文章中说明了快速提升编程能力的关键点2.1 起步阶段:学习领域相关知识(domain-specific knowledge),比如用 Ruby怎么写循环,用代码从数据库读取特定数据, 这方面的知识往往与具体的编程环境相关要成为一个自学自足开发者的第一步就是能够完成具体的任务。对初学者
2021-01-16 10:17:27
323
原创 20200717-UML类图箭头
Review - UML类图Relationships[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4KGybq6o-1610763328245)(https://gitee.com/kaybee/markdown_pics/raw/master/img/Uml_classes_en.svg)]Instance-level relationships 实例间的关系Dependency依赖关系是2个关联元素之间的语义连接,这种连接关系导致一个元素的变化可能会引起依
2021-01-16 10:16:02
295
原创 20200612-判断链表有环
1.1 判断链表有环Linked List CycleLinked List Cycle II这2道题都和判断链表是否有环相关,看下给的例子Input: head = [3,2,0,-4], pos = 1Output: trueExplanation: There is a cycle in the linked list, where tail connects to the second node.对于这样一个带环的链表,判断是否有环,最简单的做法就是遍历所有的节点,如果遇到重复
2021-01-16 10:14:30
202
原创 20200531-Leetcode 双指针
最近两周刷了一些 Leetcode 上 Array 和 List 相关的基础题(leetcode 中英文切换可以直接将https://leetcode.com/XXX改为https://leetcode-cn.com/XXX跳到对应题目)1.1 比较有代表性的题Array:Container With Most Water3SumClimbing StairsMove ZeroesRemove Duplicates from Sorted ArrayList:
2021-01-16 10:13:29
203
转载 Review: 容器环境的JVM内存设置最佳实践
容器环境的JVM内存设置最佳实践Docker和K8S的兴起,很多服务已经运行在容器环境,对于java程序,JVM设置是一个重要的环节。这里总结下我们项目里的最佳实践。Java Heap基础知识默认情况下,jvm自动分配的heap大小取决于机器配置,比如我们到一台64G内存服务器:java -XX:+PrintFlagsFinal -version | grep -Ei "maxheapsize|maxram" uintx DefaultMaxRAMFraction
2021-01-08 23:08:30
523
转载 (备份)MySQL 安装说明(Windows)
MySQL 安装说明(Windows)1 安装镜像下载地址: http://mirrors.sohu.com/mysql/MySQL-8.0/根目录下新建文件my.ini:[client]# 设置mysql客户端默认字符集default-character-set=utf8 [mysqld]# 设置3306端口port = 3306# 设置mysql的安装目录basedir=C:\\soft\\mysql-8.0.11# 设置 mysql数据库的数据的存放目录,MySQL 8+
2021-01-05 10:09:04
161
原创 CreateProcess error=206, The filename or extension is too long
使用 Gradle 运行SpringBoot 项目时碰到的,使用的命令是 clean bootJar解决方案:添加 com.github.ManifestClasspath 插件到 build.gradle 中,并指定mainClass, 例如plugins { id 'application' id "com.github.ManifestClasspath" version "0.1.0-RELEASE"}mainClassName='com.kay.DemoApplication
2020-12-15 20:51:12
553
原创 spring-framework-5.2.8 源码编译
spring-framework-5.2.8 源码编译1 准备JDK1.8 +GradleJetbrains IDEA 社区或期间版2 下载编译下载 spring-framework-5.2.8 源码压缩包预编译 spring-oxm ./gradlew :spring-oxm:compileTestJavaImport 到 IDEA (File -> New -> Project from Existing Sources -> Navigat
2020-08-30 10:41:59
427
原创 Typora + PicGo + Gitee 完全使用Markdown 写作
1 Algorithm最近两周刷了一些 Leetcode 上 Array 和 List 相关的基础题,1.1 比较有代表性的题Array:container with most water3SumClimbing starismove zerosremove duplicatesList:Reverse linked listmerge two sorted listswap nodes in pairs1.2 思路清奇的题解puls onereve
2020-05-31 22:49:04
387
原创 The Way To Upgrade - 程序员练级攻略
The Way To Upgrade - 程序员练级攻略GitHub: the-way-to-upgrade 程序员练级攻略 ---- 整理自陈皓(左耳朵)专栏《左耳听风》欢迎 star,一起补充,一起学习First of all Teach Yourself Programming in Ten Years The Key To Accelerating Your Coding...
2020-04-26 21:12:11
431
原创 【总结】设计模式之美 - 理解设计模式 Understand Design Patterns
Design Patterns Practicehttps://github.com/LiuKay/design-patterns持续更新。如何正确地使用设计模式? - 知乎https://www.zhihu.com/question/23757906设计模式是为了封装变化,让各个模块可以独立变化。精准地使用设计模式的前提是你能够精准的预测需求变更的走向。我们都知道大部分人是做不...
2019-11-04 17:05:14
668
原创 Spring Security 简明架构
Spring Security 简明架构Spring Security 主要涉及2大核心功能:Authentication and Access Controlauthentication - who are you? (你是谁)- 认证access control or authorization - what are you allowed to do? (你能干什么) - 授权...
2019-10-09 22:46:14
349
原创 Log4j2 日志框架学习
Log4j2 学习笔记1 Log4j2主要类图(图片来自于 Apache 官方文档)2 Logger 的层次结构Logger 遵循命名层次结构(Named Hierarchy),比如 name=“com.kay” 的 Logger 是 name=“com.kay.test” 的父级。<Loggers> <Root level="INFO&am
2019-01-24 13:12:13
635
2
转载 Vue tools : Cannot read property '__VUE_DEVTOOLS_UID__' of undefined
使用 vue tools 不显示调试面板中的组件,点击控制台报错:Cannot read property '__VUE_DEVTOOLS_UID__' of undefined在 项目中加入控制:Vue.config.devtools = true;参考: https://github.com/vuejs/vue-devtools/issues/683...
2018-12-21 16:36:47
3152
1
转载 OAuth2.0工作流程图
ARTS-2018.12.12AlgorithmRemove Duplicates from Sorted Array:Given a sorted array nums, remove the duplicates in-place such that each element appear only once and return the new length.Do not ...
2018-12-12 23:09:33
787
原创 IDEA 自用插件推荐
IDEA 自用插件推荐A8Translate 翻译插件,快捷键 Alt + Tignore git使用必备AceJump 键盘流 Ctrl+ ;CamelCase 驼峰转换CodeGlance 类似Sublime Text右侧缩略视图Grep Console 控制台彩色打印,可以定制Key Promoter X 快捷键提示lombok-plugin lombok 支持Gener...
2018-11-27 13:51:49
4013
3
原创 element-ui 可编辑表格 + 动态表头
Element-UI 可编辑表格 + 动态表头利用el-table-column的自定义列模板可以与其他组件使用实现复杂的表格。由于我想实现一个可编辑的表格,同时因为表格有很多个,同时列名也是不一样的(数量和名称),所以想偷个赖写个动态的切换的功能。以下为代码:<template> <div> &amp
2018-09-17 20:15:26
30370
3
转载 Error:(1, 1) java: 非法字符: '\ufeff'
主要是因为 UTF-8 和 UTF-8 with BOM 的问题参考下面文章: https://blog.csdn.net/RickyIT/article/details/75353843
2018-09-11 17:26:14
6102
5
原创 Error:java: Internal compiler error: java.lang.Exception: java.lang.NoClassDefFoundError: org/spring
编译错误:Error:java: Internal compiler error: java.lang.Exception: java.lang.NoClassDefFoundError:at org.eclipse.jdt.internal.compiler.apt.dispatch.RoundDispatcher.handleProcessor(RoundDispatcher.ja...
2018-09-11 16:35:41
2755
原创 【总结】Java核心技术36讲知识点大纲
前段时间在极客时间上购买了杨晓峰老师的《Java核心技术36讲》,趁着这段时间有空,对相关知识点做了一个整体的目录,也对自己所掌握的Java基础进行了一个复习和梳理,若想深入学习,可以购买相关专栏,也可以对着该知识点查阅相关资料,源码等自学。—-kayfen文末附专栏链接Java核心技术36讲知识点总结1 Java平台的理解 Java的特性,解释运行和编译运行2 E...
2018-08-11 23:19:18
12890
原创 使用Spring Data Neo4j(SDN)
使用 Spring Data Neo4j参考文档:https://docs.spring.io/spring-data/neo4j/docs/5.0.7.RELEASE/reference/html/#referenceSpring Boot 中 SDN的使用pom依赖中只要加入如下即可:注意:SDN默认使用 Bolt Driver 连接的方式,若要使用 embedde...
2018-07-17 11:05:20
3601
原创 logback 配置打印 JPA SQL日志到文件
Logback 输出 Hibernate SQL日志 到文件使用Spring Boot 配置 JPA 时可以指定如下配置在控制台查看执行的SQL语句spring.jpa.show-sql=trueSpring Boot 默认的日志配置不会输出到文件,若要打印日志到文件,可以使用如下配置:#llogging.level后跟要打印日志的包名或类的全限定名,设置打印级别# 日志级别...
2018-07-16 22:46:44
12919
1
翻译 Cypher基础
Cypher语法 Like SQL, used in relational databases, Cypher is a textual declarative query language 1 基本CQL语句:--创建节点CREATE (p:Person { name:"Keanu Reeves", born:1964 })--查询match (p:Person...
2018-07-04 21:02:10
14905
原创 Redis+Spring Session 实现分布式Session
Spring Session 实现单点登录此种方式相对于上节(https://blog.csdn.net/sinat_25295611/article/details/80406172)所说使用原生Jedis+Jackson+Cookie+Filter的方式实现起来更加简便,同时对业务代码的侵入性也十分之小,其原理与原生方式类似,并通过对HttpServletRequest和HttpServl...
2018-05-25 09:03:48
2111
原创 集群模式下的定时任务与Redis分布式锁
业务场景:在电商项目中,往往会有这样的一个功能设计,当用户下单后一段时间没有付款,系统就会在超时后关闭该订单。通常我们会做一个定时任务每分钟来检查前半小时的订单,将没有付款的订单列表查询出来,然后对订单中的商品进行库存的恢复,然后将该订单设置为无效。比如我们这里使用Spring Schedule的方式做一个定时任务:@Component@Slf4jpublic class Cl...
2018-05-23 14:59:10
11197
6
原创 Redis+Jackson+Cookie+Filter原生实现单点登录
本篇介绍使用 Redis+Jackson+Cookie+Filter原生实现单点登录的功能,采用这种方式实现的单点登录功能对业务代码有一定的侵入,不过封装好的组件可重复利用,可定制性也比较高。后面将会介绍使用Spring Session实现的单点登录,其原理与此处类似,不过对业务代码侵入性几乎为零。1 封装JedisPoolRedis客户端采用Jedispackage com....
2018-05-22 15:16:25
949
原创 B2C购物商城---MMALL商城概览
该项目为慕课网线上商城实战项目,经本人实际上手Coding,经过自己修改调优, 项目源码在:https://github.com/LiuKay/mmall-kay-Java目前分支情况如下:master 发布版本v1.0 功能实现,单服务器版本(已完成)v2.0 分布式版本(正在迭代)具体请查看对应分支详细源码,commit 提交记录可查看迭代过程及核心技术。附本人画的一...
2018-05-22 09:25:56
5695
18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人