- 博客(10)
- 收藏
- 关注
原创 代码生成器 or 系统规划
后台增删改查搞多了也就没啥意思了,感觉特别没有成就感,心里想着业务时间趁搞个后台的平台,达到什么目的呢?就是开发人员很快开发一个模块,不用再增删改查上浪费时间,该平台该提供什么能力呢? 代码生成器:这个肯定要有的,定义好表结构然后输出结果是controller,service,dao,mybatis配置文件,前台页面JS等 实现方案: 1)构建...
2018-07-25 17:04:00 645
原创 Could not create connection to database server
启动项目报错,报错如下:就是连接mysql的时候报的错2018-07-24 17:01:13,368 ERROR [com.alibaba.druid.pool.DruidDataSource] - create connection error, url: jdbc:mysql://127.0.0.1:3306/demo?useUnicode=true&characterEncod...
2018-07-24 18:30:40 3769
原创 mac系统mysql,maven环境变量配置
首先要知道你使用的Mac OS X是什么样的Shell,使用命令echo $SHELL如果输出的是:csh或者是tcsh,那么你用的就是C Shell。如果输出的是:bash,sh,zsh,那么你的用的可能就是Bourne Shell的一个变种。Mac OS X 10.2之前默认的是C Shell。Mac OS X 10.3之后默认的是Bourne Shell。我用的是zs...
2018-07-24 17:00:44 415
原创 线程阻塞工具类LockSupport
LockSupport是一个线程阻塞工具,它可以在线程内的任意位置让线程阻塞,和Thread.suspend()相比,它弥补了resume()在前发生导致线程无法继续执行的情况,和Object.wait()相比它也不需要获取某个对象锁。LockSupport使用了类似信号量的机制,它为每一个线程准备了一个许可,如果该许可可用,会立即返回,并且消费这个许可,如果许可不可用,线程就会阻塞代码实例...
2018-07-22 18:06:21 261
原创 可重入锁ReentrantLock
可重入锁ReentrantLock可以完全替代synchronized,在JDK5之前,synchronized太重,而可重入锁性能远远好于synchronized,从JDK6后,JDK团队对synchronized做了大量的优化以至于把这2个锁的性能差异不是很大.至于可重入锁的命名是因为这种锁在同一个线程可以反复进入,也就是可以调用lock()方法多次,当然也必须调用同样次数的unlo...
2018-07-22 17:06:19 136
原创 Java对象中等待(wait)和通知(notify)
JDK在Object对象中提供了2个非常重要的接口线程方法wait方法和notify方法,也就是所有Java对象都有这2个方法,意思就是当在一个实例Java对象上调用wait方法,那么当前线程就会从执行状态转变成等待状态,同时释放在实例对象上的锁,直到其它线程在刚才那个实例对象上调用notify方法并且释放实例对象上的锁,那么刚才那个当前线程才会再次获取实例对象锁并且继续执行。这样我们...
2018-07-22 11:23:57 24469 13
原创 错误的加锁(初学者常犯的错误)
我们常常在程序中使用多线程来处理任务,这个时候是否正确使用加锁就很重要了,有时候看着代码没啥问题,但是执行起来发现结果并不是看到的那样,比如我们看下面的代码package me.lishuo;/** * @date 2018/7/21 下午5:10 */public class WrongLockOnInteger implements Runnable { p...
2018-07-21 17:35:15 756 1
原创 FactoryBean是如何运用在我们程序中的
我们在项目中可能都会用到redis,es,或者数据库,比如我们项目中需要连接多个es分片的时候,我们的配置文件最开始可能是下面的形式 ,ConnectionConfig是连接信息类,TransportUtils是工具类,下面是列举了2个业务分片,假如有10多个业务分片的时候需要十多个链接信息类和TransportUtils,显然是不合理的。<bean id="connec...
2018-07-16 22:29:12 1971
转载 一个想休息的线程:JVM到底是怎么处理锁的?怎么不让我阻塞呢?(转自码农翻身)
我是一个线程,生活在JVM(Java虚拟机)中, 这一段日子过得有些无聊,整个世界似乎只有这一个人,天天忙着执行代码,想休息一下都很难。我听说人类写的代码中有些特殊的地方,叫做临界区,比如synchronized修饰的方法或者代码块,他们非常神奇,在同一时刻JVM老大只允许一个线程进入执行。实际上,老大设置了一把锁,抢到了这把锁就可以执行,否则只能阻塞,等待别人释放锁。老大说,阻塞就是不用干活了,...
2018-07-15 16:11:04 267 1
转载 坐在马桶上看算法:快速排序(转)
高快省的排序算法有没有既不浪费空间又可以快一点的排序算法呢?那就是“快速排序”啦!光听这个名字是不是就觉得很高端呢。假设我们现在对“6 1 2 7 9 3 4 5 10 8”这个10个数进行排序。首先在这个序列中随便找一个数作为基准数(不要被这个名词吓到了,就是一个用来参照的数,待会你就知道它用来做啥的了)。为了方便,就让第一个数6作为基准数吧。接下来,需要将这个序列中所有比基准数大...
2018-07-02 18:14:50 213
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人