自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

csucoderlee的专栏

从Java API向下看到操作系统,甚至处理器,向上看到应用框架和设计模式,就容易形成更清晰的理解...

原创 自旋锁以及Java中的自旋锁的实现

什么是自旋锁 多线程中,对共享资源进行访问,为了防止并发引起的相关问题,通常都是引入锁的机制来处理并发问题。 获取到资源的线程A对这个资源加锁,其他线程比如B要访问这个资源首先要获得锁,而此时A持有这个资源的锁,只有等待线程A逻辑执行完,释放锁,这个时候B才能获取到资源的锁进而获取到该资源。 ...

2018-08-07 00:45:18

阅读数 8581

评论数 0

原创 mysql为什么不建议使用订单号或者其他形式的业务单号作为主键?

mysql为什么不建议使用订单号或者其他形式的业务单号作为主键? 目前我们电商平台的订单号,或者其他业务单号,为了保证唯一,多数都选择的是雪花算法snowflake或者其他变种来生成的。 生成分布式电商业务唯一id的实现,可以参考:https://tech.meituan.com/2017/0...

2019-11-16 22:09:52

阅读数 83

评论数 0

原创 kafka书籍推荐

最近在看消息中间件的内容,自然不能避开kafka这门比较火的消息中间件,哦,当然,平时大家都习惯将消息中间件,说成是消息队列。 学习一门新的技术,当然是翻看下官方文档,看看入门系列,至于如果要深入的话,建议可以看看书籍,目前为止可以看的书籍如下。 第一本,我推荐《深入理解Kafka:核心设计与...

2019-09-27 00:16:06

阅读数 728

评论数 2

原创 Could not find an 'annotation declaring class' for annotation type [org.springframework.test.context

单元测试跑不起来 Could not find an 'annotation declaring class' for annotation type [org.springframework.test.context.ActiveProfiles] 新建的项目使用了t...

2019-05-14 20:27:40

阅读数 1145

评论数 3

原创 springboot启动出现Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set

今天遇见了一个奇怪的问题,springboot2.0版本启动报这个错 Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set。 spring.datasource.dr...

2019-05-05 22:51:13

阅读数 642

评论数 0

原创 springboot关闭http登录验证

springboot 2.0 因为引入了下面的security配置,会导致每次在访问的时候都需要输入用户名和密码 <dependency> <groupId>org.springframework.boot</groupId...

2019-05-05 12:43:06

阅读数 962

评论数 0

原创 使用xshell和xftp链接谷歌云浏览器

1. 官网下载,如果是个人非商业用途可以免费使用 https://www.netsarang.com/zh/all-downloads/?code=622 2. 下载xsheell和xftp直接安装 3. 生成ssh密钥 使用命令ssh-keygen -t rsa -C "你的邮...

2019-05-03 00:34:39

阅读数 194

评论数 0

原创 go windows环境安装

1下载go msi,直接点击,默认安装到c盘,一路next即可。 https://studygolang.com/dl 2下载goland 直接选择安装目录,一路next安装 https://www.jetbrains.com/go/download/download-thanks.htm...

2019-03-31 15:36:04

阅读数 132

评论数 0

原创 maven工具箱

1. 跳过单元测试相关类打包 在使用mvn clean install 进行编译、打包时,Maven会执行src/test/java中的JUnit测试用例,有时为了跳过测试,会使用参数-DskipTests和-Dmaven.test.skip=true,这两个参数的主要区别是 -Dmaven....

2019-03-18 21:01:02

阅读数 37

评论数 0

原创 scala

idea plugin 新增scala 语言支持

2019-03-02 22:38:11

阅读数 62

评论数 0

原创 node直接调用dubbo服务

这段时间,搞了一个项目,实际场景就是前端搭建了一个node服务,需要直接去调用后端的dubbo服务。 所以需要在现有的项目中做一些改造。 dubbo默认是使用hessian协议的,node是可以直接调用dubbo的默认协议的,或者调用dubbo的其他原生协议。 为什么不考虑直接使用hessi...

2018-11-25 23:08:29

阅读数 1089

评论数 0

原创 gradle Unsupported major.minor version 52.0

最近,新建了一个gradle的项目,构建的时候报错了 Cause: org/springframework/boot/gradle/plugin/SpringBootPlugin : Unsupported major.minor version 52.0 报错的详细信息如下: org...

2018-10-09 10:28:11

阅读数 333

评论数 0

原创 macOS 10.13 安装telnet方法

zsh: command not found: telnet 新版本的macos 已经将telnet这个命令去掉了。 使用 brew install telnet 安装,我最开始是使用sudo 命令,用超级管理员的权限安装,结果提示如下: ➜  sudo brew install telne...

2018-09-30 15:50:51

阅读数 1015

评论数 0

原创 maven编译后,target下没有class相关的文件

最近遇到了一个问题,maven编译后,在target目录下,只有配置文件,没有相应的class文件。 之前的同组周围的几个同事都没人发现这个问题,主要是因为项目组其他人使用的方式都是下载了tomcat,然后将项目的war包部署到本地的tomcat下调试,没有人像我这样使用maven的插件去启动项...

2018-09-11 23:28:16

阅读数 7288

评论数 4

原创 maven使用阿里云的镜像仓库

本地跑项目,使用vpn,拉官方maven的jar包太慢了,把仓库的镜像地址更改为国内的阿里云地址,发现阿里云的镜像地址居然不是之前的那个了。 官方永久链接,点击这个地址进去,就可以知道具体的配置了,http://maven.aliyun.com/mvn/view 直接使用以下代码,将这个代码放...

2018-09-01 23:06:37

阅读数 190

评论数 0

原创 程序员的mac开发环境配置

拿了一台新的macbook pro。 作为一个程序员,我把自己的开发环境给贴出来。 1.输入法 先把苹果的系统自带的中文输入法,换成自己习惯的搜狗输入法。 2. gfw 安装软件,很多都在墙外,所以需要shadowsocks,2.6.3 dmg 安装包自己有,直接拿过来 安装就好 3....

2018-08-28 20:03:04

阅读数 1535

评论数 0

原创 HashMap扩容机制

HashMap中的主要参数 = 容量、加载因子、扩容阈值 容量 // 默认容量 = 16 = 1&lt;&lt;4 = 00001中的1向左移4位 = 10000 = 十进制的2^4=16 static final int DEFAULT_INITIAL_CAPACI...

2018-08-21 11:10:49

阅读数 927

评论数 0

原创 AppleIntelCPUPowerManagement的错误,加入NullCPUPowerMangement仍旧报错

AppleIntelCPUPowerManagement的错误  我在变色龙制作安装盘的时候,就已经将NullCPUPowerMangement.kext放到extra下,但是不知道为什么安装后,没效果,开启苹果系统就报错了。 网上普遍给的答案都是 加入NullCPUPowerMangemen...

2018-08-16 01:49:15

阅读数 1980

评论数 0

原创 LRU 算法简单实现

最近看innoDb缓存池实现的时候,提到了LRU的算法,后面看了下memcached的实现也提到了LRU算法,正好leetcode146题,就是讲这个LRU算法的,所以就写个简单实现。 设计一个支持在平均 时间复杂度 O(1) 下,执行以下操作的数据结构。 insert(val):当元素 v...

2018-08-14 17:50:35

阅读数 223

评论数 0

原创 聊聊软件开发中的设计模式

本科读的软件工程专业,《设计模式》是一门专业课,大概一个学期有48个学时来学习这门课,并且学习的过程中,要穿插着上机操作实验,编写相关的设计模式相关的代码。(要感谢大学时期教授软件设计模式这门课的刘伟老师,当然刘伟老师在CSDN上的设计模式专栏也有几百万的访问量,使很多人受益了,传送门 https...

2018-08-12 21:11:07

阅读数 510

评论数 0

原创 innodb体系结构

mysql是被设计为一个单进程多线程架构的开源数据库。可以说mysql的架构是插件式的存储引擎架构,区别于其他数据库最重要的一个特点就是其插件式的表存储引擎。mysql提供了一系列预定义的存储引擎编程接口,开发人员通过这些预定义的接口,可以实现自己的存储引擎。 MySQL数据库的体系结构如下: ...

2018-08-12 12:45:40

阅读数 750

评论数 0

原创 mysql innodb锁与索引

目前公司购买的是阿里云的rds服务,旗舰版的顶配目前是2000个G,我负责的数据模块有自己的一个库,这个库中只有数据相关的内容。容量已经超过当前配置容量的85%。 生产环境的mysql配置的innodb引擎存储引擎,隔离级别为RC。 所以,接下来汇总下,我的一些对mysql的一些理论和经验。 ...

2018-08-06 01:51:56

阅读数 678

评论数 0

原创 JMM思维导图

JMM是java程序员必备的技能之一,虽说没必要将知识图谱中各个知识点,像背书一样把他流利的背下来,最起码,要理解消化。 几乎每种语言都有自己的内存模型。JMM,java memory model,java内存模型总有自己的来龙去脉。 这个要先从硬件 -  内存模型 - java内存模型讲起。...

2018-08-04 15:19:42

阅读数 119

评论数 0

原创 有关ThreadLocal的总结

定义 java api中是这样定义的: This class provides thread-local variables. These variables differ from their normal counterparts in that each thread that acce...

2018-08-02 11:00:53

阅读数 420

评论数 0

原创 @Transactional,自己抛出异常时不会回滚

今天,面试的时候,突然被问到了一个点,结果,这个自己踩的坑,自己都忘记了。 前年,接手了一个项目,一直会有并发的情况,导致插入重复数据的情况。所以在项目中使用了事务 + 数据库锁,来处理并发。 伪代码如下: @Transactional public &lt;T&a...

2018-07-30 20:53:12

阅读数 2514

评论数 0

原创 synchronized的可重入性

今天,被一个阿里的冷面大佬无情的diss了。 不过,话说回来,跟冷面的大佬聊天也是比较爽快的一件事,总比有的大佬扯了半天,也扯不到关键。。。 线程请求一个由其它线程持有的对象锁时,该线程会阻塞,而线程请求由自己持有的对象锁,如果可以获取,就说明这个锁支持可重入。 /** * @autho...

2018-07-30 20:07:49

阅读数 634

评论数 0

原创 this引用逃逸

什么是this引用逃逸 指的是对象还没有构造完成,他的this引用就已经发布出去了。 先确定两个名词定义,对象的发布与逸出。 发布:发布一个对象的意思是指,使对象能够在当前作用域之外的代码中被使用。如,将一个指向该对象的引用保存到其他代码可以访问的地方,或者在某一个非私有的方法中返回该引用,...

2018-07-29 14:49:09

阅读数 320

评论数 0

原创 Java生产环境线程池使用场景

talk is cheap, show me the code 直接上代码 import java.util.ArrayList; import java.util.List; import java.util.concurrent.*; /** * @author by bixi.lx ...

2018-07-29 00:04:52

阅读数 2439

评论数 0

原创 谈谈final, finally, finalize有什么不同?

final 可以修饰类、方法、变量。  1. 修饰类,这个类就不可以被继承 2. 修饰方法,这个方法就不能被override(注意和overload的区别) 3. 修饰变量,这个变量就不能被修改 final 不要用来被滥用,为了所谓优化性能,来到处考虑使用final,那就是跑偏了。 我们写代码最...

2018-07-26 23:32:11

阅读数 82

评论数 0

原创 write once , run anywhere

write once , run anywhere。大家知道的java特性之一,重点都是在后面两个单词上,跨平台运行。 但是往往就忽略了前面的那句话,write once ,翻译过来就是只需要编写一次。 还是那句话,没有对比,就没有伤害,我们对比C/C++看下。 C/C++中,如果调用了操作系...

2018-07-26 22:35:21

阅读数 182

评论数 0

原创 java异常处理机制

Error类 和 Exception类都是Throwable的直接子类,从单词字面上看 able 为尾缀,意味着本身具有一种能力,什么能力呢,就是“抛出”的能力,在 Java 中只有 Throwable 类型的实例才可以被 抛出 throw或者 被 catch,这也是java异常处理机制的基本组成...

2018-07-26 22:32:35

阅读数 72

评论数 0

原创 leetcode15题给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。

给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。 Given an array nums of n integers, are there elements a, b, c in n...

2018-07-17 15:11:17

阅读数 2572

评论数 0

原创 推荐一波idea常用操作教学视频

观察大牛的操作,比自己瞎琢磨要效率的多了。 慕课网上有一组教学视频,就是教我们更个搞笑的操作idea,快捷键有很多的,没必要全部都记住,只要记住自己常用的,有用的就好了。 链接地址:https://www.imooc.com/learn/924 比如说,live template的配置 ...

2018-07-07 23:27:53

阅读数 7693

评论数 2

原创 Java并发编程工具之countdownlatch示例

countdownlatch允许一个或多个线程等待其他线程的完成。例如以下代码,输出的结果不是固定的,有可能是312,也有可能是123,因为main线程和new thread线程会由系统调度执行,不一定是有序的。public class CountDownLatchExample1 { ...

2018-07-04 09:00:26

阅读数 64

评论数 0

原创 后端面试必会之ConcurrentHashMap的实现原理和使用

为什么要使用ConcurrentHashMap?没有对比就没有伤害,在并发编程中使用HashMap可能会导致程序死循环。而使用线程安全的HashTable效率又非常低下,基于以上两个原因,才有了ConcurrentHashMap。为什么说HashMap可能会导致死循环?因为HashMap在并发执行...

2018-07-02 23:08:10

阅读数 720

评论数 0

原创 rocketmq源码编译报错

Failed to execute goal org.apache.maven.plugins:maven-remote-resources-plugin:1.5:process (process-resource-bundles) on project rocketmq-all: Error f...

2018-07-01 17:17:53

阅读数 797

评论数 1

原创 tar:归档中找不到 tar: 由于前次错误,将以上次的错误状态退出

tar: /usr/local/java:归档中找不到 tar: 由于前次错误,将以上次的错误状态退出   tar -zxvf xxxx  -C /usr/local 要使用这个 -C参数   -C 切换到指定目录  因为不是在当前文件夹解压的,要去别的文件夹解压,所以必须要加这个参数....

2018-06-30 00:07:13

阅读数 3080

评论数 2

原创 最大子序列和

给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。 进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更...

2018-06-23 22:03:30

阅读数 394

评论数 0

原创 leetcode的13题解题答案

题目13罗马数字包含以下七种字符:I, V, X, L,C,D 和 M。字符 数值 I 1 V 5 X 10 L 50 C 100 D ...

2018-06-12 22:15:48

阅读数 738

评论数 0

原创 Java中10的平方

大晚上的犯困,写了个算法,中间有一步是需要10的c-1次方,顺手就写了个10^(c-1),结果跑了半天结果都不对。后来打个断点,才发现这里写的有问题,10^2 代表10的二进制与2的二进制进行异或。如果,想计算10的c-1次方,就只能使用math包提供的函数了,Math.pow(10, c-1)....

2018-06-10 23:05:21

阅读数 2180

评论数 0

提示
确定要删除当前文章?
取消 删除