自定义博客皮肤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向下看到操作系统,甚至处理器,向上看到应用框架和设计模式,就容易形成更清晰的理解

  • 博客(204)
  • 资源 (21)
  • 收藏
  • 关注

原创 用sql教你什么是mysql的四种隔离级别

事务的基本要素A 原子性、C 一致性、I 隔离性、D 持久性。事务并发产生的问题脏读,不可重复读幻读mysql事务隔离级别读未提交 read-uncommitted读已提交 RC read-committed可重复读 RR repeatable-read (mysql默认的隔离级别为 RR)串行化 serializable读未提交事务A读取到了事务B未提交的数据。首先,在开启两个query的窗口,都执行下面的两行sql-- 先执行下,可以看到mysq

2020-09-18 00:04:54 1889 2

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

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

2018-08-07 00:45:18 21351 3

原创 mysql使用st_distance_sphere函数报错Incorrect arguments to st_distance_sphere

st_distance_sphere函数报错

2023-09-01 09:45:10 1181

原创 浅谈Java中的观察者模式

如果要自己编码实现,我们通常定义一个主题接口(Subject)和一个观察者接口(Observer)。主题接口中包含注册观察者、移除观察者和通知观察者的方法,而观察者接口中则定义了更新状态的方法。考虑到实现简单点,我们假定有一个广播类,这个广播类实际上就是一个主题Subject,有多个听众收听这个广播,这里每个听众就是一个观察者Observer。观察者模式是软件开发中常用的一种设计模式,它通过定义一对多的依赖关系,使得一个对象(主题)的状态变化可以通知多个其他对象(观察者)。写一个测试类来测试结果。

2023-08-24 13:14:32 701

原创 win11系统激活修复

激活问题

2023-07-20 23:46:24 297

原创 macbook golang版本升级

如何查看mac上是通过pkg安装包安装的go语言,还是通过brew install go安装的go语言。不同的安装方式,升级go语言版本方式会有不同。

2023-07-19 22:59:05 4870

原创 OpenStreetMap实战-准备postgresql

个人推荐,下载Postgres.app的方式,这样后续不需要了,直接在应用程序中,将这个Postgres.app删除掉即可。打开Postgres的应用程序,默认是创建了一个postgres的数据库,双击这个数据会出现命令行。而后我们进入到这个osm的数据命令行中,执行创建拓展的命令。下载后,直接双击dmg文件,将app拖入到应用程序中即可。我是macos的系统,点击macos链接,进入下载页。在命令行中创建一个名为osm的数据库。下载postgresql。

2023-05-25 11:05:51 133

原创 OpenStreetMap初探与实战

OpenStreetMap(OSM)是一个由志愿者创建并维护的免费和开源的地图数据库。其目的是为全球任何人提供可自由使用、编辑和分发的地图数据。OpenStreetMap数据库中的地理要素包括道路、建筑、河流、森林、山脉、公共设施等。由于OpenStreetMap是开放的平台,任何人都可以添加新的地理信息,从而使其不断发展和更新。OpenStreetMap已经成为诸如Google地图等商业地图的一个重要替代品。

2023-05-24 22:40:22 3547

原创 brew install 报错

brew install 报错

2022-10-20 16:53:34 259

原创 macbook 安装多个版本的php,安装低版本php

macbook 安装多个版本的php,安装低版本php

2022-05-28 22:36:06 700 1

原创 macbook brew install 经常遇见 No such file or directory @ rb_sysopen

安装php : brew install php ,在执行过程中经常报错,比如以下==> Installing php dependency: openldap==> Pouring openldap-2.5.8.arm64_monterey.bottle.tar.gzError: No such file or directory @ rb_sysopen - /Users/li.xiang/Library/Caches/Homebrew/downloads/93f5617b379ba

2022-05-15 21:52:47 4682 2

原创 使用Semaphore 实现一个简单的限流器

# 使用Semaphore 实现一个简单的限流器## java apiJava的api中,提供了semaphore这个线程同步的辅助类,用来控制同时访问共享资源的线程数量。Semaphore提供的主要方法如下:void acquire():获取一个信号量,在获得信号量前线程会一直阻塞。void release():释放一个信号量。int availablePermits(): 返回当前可用的信号量数。boolean hasQueuedThreads(): 查询是否有等待获取信号量

2021-10-27 23:01:39 221

转载 springboot mock controller和log4j 单元测试实践1

本文重点将讲述如何在单元测试中,mock controller的请求,测试controller请求,同时顺带着讲解如何在单测中测试代码日志中输出的内容。首先,新建spring boot的项目![image.png](https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/950a825fe2cd4e05aa757d323551cbd7~tplv-k3u1fbpfcp-watermark.image?)![image.png](https://p3-j

2021-10-26 12:19:52 577

原创 macos 安装rust

官方建议使用rustup来安装,rustup可以方便的在不同的rust版本之间切换brew install rustup使用rustup安装Rust编译器(rustc)和Rust包管理器(cargo)rustup-init安装完成后,会提示如下关闭shell窗口重新打开,或者直接当前shell下执行下面语句,即可生效source $HOME/.cargo/env...

2021-08-30 20:15:18 345

原创 推送同一份代码到两个不同的仓库

想把同一份代码推送到两个不同的仓库,比如推送到github和gitee。有一份代码放在了github上,也想把这份代码同时推送到gitee上。有两种方式:一种方式gitremote add gitee [email protected]:csucoderlee/leetcode.git在推送代码的时候,再额外git push gitee xxxxx 就可以了。这么搞,其实比较麻烦,每次提交的时候都需要push两次git push origin xxxxx / git push ...

2021-07-18 21:01:57 1175

原创 spring-data-jpa报错,‘hibernate_sequence‘ doesn‘t exist

学习spring-data-jpa的时候,写了一个entityimport javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.GenerationType;import javax.persistence.Id;@Entitypublic class User { @Id @GeneratedValue(strategy = GenerationType

2021-05-25 23:45:55 2318

原创 windows 使用docker安装elasticsearch报错

2021-05-11 20:10:44 144

原创 修改git提交历史中的作者信息

新建了一个仓库,提交了修改并push,发现提交历史的作者信息使用的是全局的配置,即~/.gitconfig中[user]的信息。想只要针对这个仓库配置另外的作者信息,到这个仓库下vi .git/config,编辑了额外的[user]信息,这样这个仓库下的每次提交都会使用当前仓库的配置。但是,之前已经使用全局的配置提交了一次,所以想要修改历史这次提交的作者信息。执行git rebase -i HEAD~1返回fatal: invalid upstream 'HEAD~1'原

2021-05-05 23:07:12 1313

原创 org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder 找不到依赖包

org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder 找不到依赖包,发现高版本的spring boot已经移除了这个类需要改成以下这个org.springframework.boot.jdbc.DataSourceBuilder经验证spring-boot-starter-parent 2.4.5 可用...

2021-05-05 20:52:24 4705

原创 idea git is not installed

早上来了公司,发现windows下idea点击右键,查看annotate,也就是代码的提交记录,发现idea报错git is not installed找了半天原因也没有找到翻了下idea的官方文档https://www.jetbrains.com/help/idea/settings-version-control-git.html需要指定下执行的path,如下图...

2020-11-26 09:28:26 21176 7

原创 LocalCache客户端缓存本地缓存的实现

LocalCache,也被称为客户端缓存或者本地缓存。某些业务场景上,并不需要搭建一套复杂的分布式缓存如redis,只需要在单机上维护一套缓存配置即可。可以自己设计实现一个本地的缓存服务。设计实现一个本地缓存服务,主要考虑一下三点:1. 数据结构。选用的数据结构是什么,查找效率如何,一般都会选用hashmap的方式来存储数据2. 缓存失效策略。缓存失效了怎么办?是通过定时删除失效的数据,还是当访问某个数据,发现该数据到了过期时间,此时,来删除这个数据。3. 缓存淘汰策略。缓存写满了怎

2020-10-15 16:44:49 904

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

拿了一台新的macbook pro。作为一个程序员,我把自己的开发环境给贴出来。1.输入法先把苹果的系统自带的中文输入法,换成自己习惯的搜狗输入法。2. 略3. jdk 7u71直接下载dmg文件安装4. git在terminal中,直接输入git --version,就会提示当前没有安装,确认一键安装么,直接点击确定。详细的一些git配置 在这个下面https://blog.csdn.net/u010372981/article/category/3134095..

2020-10-15 14:30:28 1473

原创 通过idea测试JVM内存回收

首先,写段psvm的代码public class Test { public static void main(String[] args) { }}执行下,这样在idea中就会出现 edit configurations选项点击进入编辑,主要修改的是VM options选项修改的内容如下-Xms20M-Xmx20M-Xmn10M-XX:+PrintGCDetails-XX:SurvivorRatio=8然后运行该main函数,就会打印如下

2020-09-15 17:13:13 458

原创 二叉树只看这一篇就够了,前/中/后序遍历(递归与非递归)

二叉树的遍历,分为前序遍历、中序遍历、后序遍历。其中注意两点:1. 前序,中序,后序遍历,这个"序"指的就是根2. 左子树优先于右子树拿前序遍历举例:前序遍历,这个"序"指的就是根。首先根要先遍历出来,然后是左子树,最后是右子树。左子树有自己的下级子树,所以也就按照根+左子树+右子树的套路来排列。右子树也是如此。下面代码注释中,构造了一个简单的二叉树,首先 6 -> 左子树(3/4/5)-> 右子树(7/8/9) ,左子树(5/4/3)也是按照套路来排列,即5 -&...

2020-09-04 22:06:34 301

原创 kafka之协调服务

kafka中是使用zookeeper来构建集群的。zookeeper相信大家都了解过,如果之前没接触过zookeeper的同学,可以参考学习下zookeeper的相关内容。知道zookeeper最核心的功能就是提供了一个分布式的存储系统,数据存储方式类似UNIX系统的文件树形结构。zookeeper保证了数据一致性。学习zookeeper,我觉得zookeeper中最主要的是抓住两个特性:临时节点和watcher机制。什么是临时节点?在zookeeper文件树形存储结构中,每个节点被称为ZN

2020-08-12 22:19:30 320

原创 kafka之消费

消费者客户端使用kafkaconsumer向broker订阅topic,接收消息进行消费。kafka中消息的消费,要知晓两个紧密相关的概念:消费者consumer和消费者组consumer group。消费者和消费者组每个consumer的实例只属于某一个consumer group。对于每个consumer group,在任意时刻,每个分区partition至多有一个consume实例在消费,反过来,consumer group中的每个consumer独占一个或多个partition分区。

2020-08-04 23:22:50 357

原创 kafka是如何实现高性能IO

kafka在众多消息队列中,性能肯定是第一梯队的,有着很高的吞吐量,每秒钟可以达到500M以上的吞吐量。而kafka能够做到这么高的吞吐量,离不开高性能的IO,kafka是从以下几个方面来提升高性能IO的。批处理从生产者发送到消费者消费,整个过程中,kafka都进行了批处理的操作。生产者发送一条消息,无论是同步还是异步发送的,kafka都不会立马把这条消息发送出去,而是先放到内存中,将多个单条消息组成一个批消息,发到broker端。到了broker端,这一个批消息并不会被拆解开,而是仍旧作

2020-08-02 23:04:22 521

原创 kafka是如何实现高可用的

HA,也就是高可用,kafka 0.8版本之前是没有HA的,如果一个broker挂了,那么这个分区也就是挂了,分区内的消息都没办法继续被消费。kafka 0.8版本之后引入了副本机制(replicas)。副本机制也是分布式系统中的常用的机制。副本机制:1. 提供了数据冗余,一旦分布式系统某部分出现问题,系统依然能够正常运转,保证了整体的可用性和数据的持久性。2. 提供伸缩性,可以动态的横向扩展,增加系统的吞吐能力3. 针对跨机房跨地域,可以选择就近的备份数据,降低系统的时延kaf

2020-08-01 22:51:45 1395

原创 kafka的一些术语

kafka是基于发布与订阅模型的分布式消息引擎。什么是发布与订阅(引用维基百科)在软件架构中,发布-订阅是一种消息范式,消息的发送者(称为发布者)不会将消息直接发送给特定的接收者(称为订阅者)。而是将发布的消息分为不同的类别,无需了解哪些订阅者(如果有的话)可能存在。同样的,订阅者可以表达对一个或多个类别的兴趣,只接收感兴趣的消息,无需了解哪些发布者(如果有的话)存在。简单的来说,消息的生产者只需要通过发布,将消息分类发送到不同的地方,消息的消费者订阅指定的分类,消费其中的消息。主题就是

2020-08-01 15:18:48 247

原创 如何设计实现幂等框架

1.定义幂等:就是对于同一个接口,同一个业务请求,无论发起多少次,保证业务只执行一次,也就是接口的逻辑只会被执行一次。2.使用场景场景:微服务A中调用微服务B中的接口,会有三种结果出现,即成功、失败、超时。成功和失败两种结果非常明确,如果是成功,那么表示此次调用是正常的。如果是失败,那么表示此次调用是失败的,可以由调用的发起方来根据失败的结果决定接下来要做的事情。但是超时就是一个非常不明确的事情了, 有可能是微服务B中的逻辑已经成功执行完成,但是返回成功的结果的网络传输过程中产生了超时;

2020-07-26 23:46:56 451

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

mysql为什么不建议使用订单号或者其他形式的业务单号作为主键?目前我们电商平台的订单号,或者其他业务单号,为了保证唯一,多数都选择的是雪花算法snowflake或者其他变种来生成的。生成分布式电商业务唯一id的实现,可以参考:https://tech.meituan.com/2017/04/21/mt-leaf.html美团点评的这篇博客,这篇博客基本涵盖了目前所有的方式方法。但是...

2019-11-16 22:09:52 2273 2

原创 kafka书籍推荐

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

2019-09-27 00:16:06 12106 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]新建的项目使用了testng,但是还引入了junit的依赖,在单元测试中@Test注解,引入的是org.junit.Test;而...

2019-05-14 20:27:40 8295 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.driver-class-name=com.mysql.jdbc.Driverspring.datasource.url=j...

2019-05-05 22:51:13 44857 20

原创 springboot关闭http登录验证

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

2019-05-05 12:43:06 5191

原创 go windows环境安装

1下载go msi,直接点击,默认安装到c盘,一路next即可。https://studygolang.com/dl2下载goland直接选择安装目录,一路next安装https://www.jetbrains.com/go/download/download-thanks.html3. 激活goland0.0.0.0 account.jetbrains.com0....

2019-03-31 15:36:04 319

原创 maven工具箱

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

2019-03-18 21:01:02 250

原创 node直接调用dubbo服务

这段时间,搞了一个项目,实际场景就是前端搭建了一个node服务,需要直接去调用后端的dubbo服务。所以需要在现有的项目中做一些改造。dubbo默认是使用hessian协议的,node是可以直接调用dubbo的默认协议的,或者调用dubbo的其他原生协议。为什么不考虑直接使用hessian呢,因为hessian是基于http的,消耗巨大,并且会有乱码的问题。所以后端dubbo提供的...

2018-11-25 23:08:29 4045

原创 gradle Unsupported major.minor version 52.0

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

2018-10-09 10:28:11 872

原创 macOS 10.13 安装telnet方法

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

2018-09-30 15:50:51 12618

hystrix公司内部分享ppt

在公司内部做的一次分享,生产环境使用hystrix来进行调用dubbo服务的超时、熔断、重试、限流的Netflix框架

2018-03-21

阿里巴巴java开发手册最终版

本文讲的是阿里正式发布《Java开发手册》终极版!,别人都说我们是码农,但我们知道,自己是个艺术家。也许我们不过多在意自己的外表和穿着,但我们不羁的外表下,骨子里追求着代码的美、质量的美。而代码规约其实就是一个对美的定义。

2017-09-26

最新官方Go语言Windows 64位操作系统安装包

资源现在不可以免费给别人了么,没看到设置0分的地方,如果你没有分,可以加我qq我免费传给你

2017-08-20

mysql必知必会

mysql必须会的内容

2017-07-10

领域驱动设计:软件核心复杂性应对之道

领域驱动开发,专门应对复杂企业软件开发模式下的领域设计

2017-06-29

groovy in action(英文版)

高清完整版的groovyinaction,不是,你来打我。

2017-02-28

阿里巴巴java开发手册(公开版)

阿里巴巴java开发手册(公开版),里面常用的规约,有助于开发人员更好的协调工作

2017-01-16

git for windows 32bit

git for windows 32bit

2016-12-20

git for windows 64bit

git for windows 64bit

2016-12-20

numpy 1.8 for win7 64bit

win7 64bit已经安装了python2.7.9,打开这个numpy的安装文件,一直下一步,过程中会自动找到你的python路径,亲测可用

2015-06-02

apache服务器

apache服务器,类似于tomcat直接将zip解压就可以了,用来做zendstudio的服务器配置

2015-05-05

生物信息学算法与实践

生物信息学算法与实践

2015-05-01

J2EEAPI中文版

JSPAPI,javaweb开发API使用说明文档,如request、response都有哪些方法

2015-04-23

weka 3.6.2jre.exe安装包带word安装教程

weka 3.6.2jre.exe安装包带word安装教程 附带mysql连接jar包和weka软件的源代码

2015-04-06

zend studio11.0.2全过程破解文件

官网下载zend studio11.0.2安装,之后解压缩该资源,把里面的jar包复制替换到plugins目录下(多数的破解都是这样的),之后便可以打开软件,会提示你输入key,把压缩文件中的key值输入,即可完成破解,HELP-about zend studio-Expires on: Never,显示破解完成

2014-11-09

java1.6API.chm文件

javaAPI1.6 chm版本 比较jre官方说明 查看更方便

2014-10-19

汇编软件masm,win764位安装即可使用

亲测win7 64位安装即可使用 没有任何恶意软件插件

2014-09-04

中文版本的JavaTM Platform Standard Ed. 6API规范

JavaTM PlatformStandard Ed. 6 中文版本的API规范,查询和使用java的各种类。

2014-03-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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