- 博客(22)
- 收藏
- 关注
原创 go内存模型
go内存模型原文链接:https://golang.org/ref/mem介绍go内存模型指定了在一个goroutine中对一个变量的读取,可以保证观察到被另一个不同的goroutine写到同一个变量的值。建议程序修改数据被多个goroutine同时访问必须保证必须序列化这样的访问。为了序列化访问,用管道操作或者其他同步原语来保护数据,比如那些在sync和sync/atomic包下的。如果你必须阅读这篇文档剩余部分来理解你程序的行为,你已经太聪明了。不要太聪明。Happens Befo
2021-06-30 01:17:54
279
原创 YACC介绍(译文)
原文链接:yacc术语英文 中文 The lexical analyzer 词法分析器 Literal characters 原义字符 Specification 规范/标准 nonterminal symbol 非终止符号 In either case 无论发生何种情况 be assumed to 被认定为 potential 潜在的 简介计算机程序输入通常有一些结构,实际上,每一次电脑程序输入可以
2021-05-28 10:37:28
5305
原创 Golang中的slice切片
Golang中的slice切片切片切片的内部实现切片的切割切片的扩容切片作为函数参数切片切片的内部实现结构指向底层数组的指针长度len()容量cap()切片与数组的区别初始化数组:var arrayName [length]type{}数组会默认把指定长度的值初始化为零值。切片的初始化var sliceName []type默认指针是nil,长度和容量都是0sliceName := make([]type,1,2)使用make之后,会把切片初始化为0值,可以通过下
2021-05-01 17:29:07
1605
1
原创 activiti节点撤回
activiti节点撤回最近项目的需求是对已审批的节点进行撤回操作,核心的思路是:校验任务和流程信息 处理已经完成审批的节点信息,做删除操作 处理下一节点未审批信息,做删除操作public Boolean processWithdraw(ProcessWithdrawParam processWithdrawParam) { String taskId = processWithdrawParam.getTaskId(); String userId = p
2020-10-13 18:29:28
1622
原创 mybatis 分批次手动提交事务
@Autowiredprivate SqlSessionFactory sqlSessionFactory;public boolean saveOrUpdateStockBatch(List<SaleStockPO> entityList, int batchSize, StockOperationTypeEnum operationTypeEnum) { /...
2019-09-01 11:36:04
1720
原创 Spring Cloud Config配置中心版本踩坑
前言由于此次的客户只要求config配置中心使用直连模式,对高可用要求不高,故只需要配置一个config-server即可,然后在各个client端接入config-client的依赖即可一、config-serverpom依赖<dependency> <groupId>org.springframework.cloud</groupId&g...
2019-08-15 01:18:02
1866
原创 springboot 使用sharding-jdbc实现分库分表
前言一、引入maven依赖<!-- for spring boot --><dependency> <groupId>io.shardingsphere</groupId> <artifactId>sharding-jdbc-spring-boot-starter</artifactId> <versi...
2019-08-13 21:15:30
339
原创 Java代码模拟并发请求和限制访问频率-JDK方法简单实现
背景:最近面试遇到一道简单的多线程编程题编程题(1)客户端Client类10个并发去访问服务端的remote()方法(2)服务端Server类remote()方法最多允许1秒被访问5次服务端类Serverimport java.util.concurrent.Semaphore;import java.util.concurrent.atomic.AtomicInteger...
2019-04-19 17:13:54
1911
原创 近期面试题整理
笔试题1.线程在未启动的情况下,调用t.run()方法,执行结果2.java.util包下各个集合类的继承关系,并简单说明3.写一个安全的单例模式4.编程题(1)客户端Client类10个并发去访问服务端的remote()方法(2)服务端Server类remote()方法最多允许1秒被访问5次5.case:1 ... 没有break的时候,执行结果6.synchro...
2019-04-18 22:40:54
149
原创 spring cloud zuul整合多模块的swagger-ui文档
1pom文件中添加swagger依赖在zuul项目和其他模块项目中的pom文件中添加swagger依赖<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <versi...
2019-04-10 17:11:52
1456
原创 Linux端sonarqube+sonarscaner的安装和使用
1 安装sonarqube1.1 下载安装包下载路径https://www.sonarqube.org/downloads/选择长期支持的版本6.7.61.2 解压,修改配置文件只需修改三个地方,配置数据库路径、用户名、密码。需要提前在指定的数据库路径下新建相应的数据库,此处是sonar_linux。1.3 启动进入bin目录准备启动这时如果直接...
2019-04-01 11:27:51
3723
原创 Java设计模式-原型模式
# Java设计模式-原型模式## 概念原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。例如,一个对象需要在一个高代价的数据库操作之后被创建。我们可以缓存该对象,在下一个请求时返...
2019-03-28 16:26:54
154
原创 Java处理上千万数据量的数据
前言最近项目中有一个需求,需要从一千多万的原始数据中,每条数据都是用户的办事数据,处理出事项与事项之间的关系思路一程序一把数据表增加索引,提高查询效率把数据排好序,测试查询速度 使用临时表保存排序好的数据int size = groupByList.size(); int time = size/100000;//提交次数 ...
2019-01-15 16:53:22
20059
2
原创 Operation not allowed after ResultSet closed错误解决方案
在使用dbutils进行简单的增删改查,引入alibaba的druid设置数据源时有时候会遇到这样的问题 经过排查,很可能是以下配置问题第一个表示设置是否丢弃连接,第二个参数表示设置最长连接时间当出现上述报错时,或者是出现类似connect timeout exception时,表示超过丢弃时间还在操作数据库相关操作,可以尝试把timeout的值设置大一点,即可解决。...
2019-01-15 15:02:16
3219
原创 1024程序员节-记一次潜水已久的面试心得
前言蠢蠢欲动了大半年,终于鼓起勇气出去面试了一次,才发现自己是如此的菜。看来,应该早点出去探路的。虽然说还在职,只是想试试水,却没想到内心如此的慌。昨晚居然睡不太着,早上也很早醒,明显有点焦虑。面试计划,其实是早有预谋。从去年毕业开始,坚持了接近一年的底薪后,越来越觉得不满(其实是贫穷)。从今年是四月份开始关注很多微信公众号发布的技术文章,每天起床挤地铁的时间,走在上班路上的时间,晚上...
2018-10-24 16:01:48
312
原创 jenkins教程-基于maven+Git+jdk的简单搭建
对于jenkins我已经“垂涎”一年多了,之所以没有认真地玩一遍,也是因为没有工作的动力驱动。正好,最近团队在搭建敏捷工具,自然而然就由我来研究一波啦。1 下载软件访问官网https://jenkins.io/download/选择 Long-term Support (LTS)的版本,可选择下载war包直接部署在tomcat,也可以选择linux具体版本,这样在linux端可直接...
2018-10-09 18:33:18
485
1
原创 Spring Boot整合mybatis使用
1,引入相关依赖<!-- mybatis --><dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.2&
2018-09-21 16:14:03
493
原创 微信扫码支付总结-PC端-Java(模式二)
前言最近做的项目有对接微信支付的需求,于是开始了一个人的摸索。本文的前提是公司已经申请了商户号和appid,设置了商户号对应的key,即appId,mchId,key三个参数。以下为开发步骤:1 阅读微信官方开发文档微信官方文档链接:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_1这里选择流程更为简单的模式二...
2018-09-16 22:46:39
2168
原创 centos6.5下安装mysql5.6
1,下载rpm依赖包MySQL-5.6.41-1.el6.x86_64.rpm-bundle.tar2,检测是否已经安装了mysqlrpm -qa | grep mysql解压后依次安装 MySQL-server-5.6.41-1.el6.x86_64.rpm,MySQL-client-5.6.41-1.el6.x86_64.rpm,MySQL-devel-5.6.4...
2018-08-15 16:40:56
1101
转载 程序员如何突破瓶颈(要点)
源码分析技术基础+强烈的求知欲+耐心请原谅我这张图是盗某大神的文章的,但是可以作为个人奋斗的目标分布式架构分布式存储系统,分布式计算系统,分布式管理系统微服务为了解决单体架构下的各种问题,核心思想是服务的拆分与解耦,降低复杂性。尽可能保证每一个服务功能单一性,按照单一职责明确(Single Responsibility Principle)角色灵活,可复用,单独部署,横向扩展性能优化垃圾收集,虚拟...
2018-07-12 00:01:26
538
原创 递归对net.sf.json.JSONObject每一个值进行加密操作
前言:由于使用fastjson默认会对null值进行过滤,导致该null值对应的字段丢失,处理起来相对麻烦,故选择net.sf.json第一步,先引入net.sf.json包,其他依赖请自行百度搜索 <dependency> <groupId>net.sf.json-lib</groupId> <artifactI...
2018-07-11 11:38:58
883
原创 入行两年小菜鸟的第一篇博客
时间过得真快,感觉自己还什么都没学会,就已经入行两年了。一直觉得想要成为那些跟普通程序员不一样的人,就必须养成写仅博客的良好习惯。由于拖延症,一直没有开始。那么仅以此篇文章,开启我的博客生涯吧。第一年 我现在清楚的记得,2016年3月份的时候,大学读了接近三年,还没找到真正的方向,套用一句现在很流行的话就是“我现在慌得一批”。学的是网络工程,犹豫要学网络还是做软件开发,喜欢网络的人,...
2018-07-10 23:52:47
219
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人