java5
某科学的南条
我要偷偷的惊艳,然后打工所有人
展开
-
crontab详细用法 定时任务
这种方法有一个缺点,就是当前系统中配置的crontab不在一个配置文件中,让管理员不方便查询系统到底有多少个crontab。就可以进入配置文件.此时配置crontab的执行者是当前登入用户,如果当前有用户是root,需要为其他用户配置,可以使用。如果服务器都是由root来管理,建议添加crontab使用方法2,这样系统中的所有计划任务都在一起.一目了然。要添加新的crontab,只需要在文件最后增加即可,注意这里面需要指定用户名。这样设置的任务,是以用户名为名字放在/var/spool/cron目录下。原创 2023-04-23 11:06:50 · 1723 阅读 · 1 评论 -
All elements are null
尤其是left join、right join时容易出现部分字段空值。若此时,刚好查询出来进行sum的字段都是null,也可能会出现:“All elements are null”这种情况。关联查询有时候也会出现类似情况。原创 2023-08-07 18:02:44 · 403 阅读 · 0 评论 -
黑板模式简介
黑板模式是的一个扩展,知名度并不高,但是我们使用的范围却非常广。简单的说,黑板模式允许多个消息读写者同时存在,消息的生产者和消费者完全分开。这就像一个黑板,任何一个教授(消息的生产者)都可以在其上书写消息,任何一个学生(消息的消费者)都可以从黑板上读取消息,两者在空间和时间上可以解耦,并且互不干扰。黑板模式确实是消息的广播,主要解决的问题是消息的生产者和消费者之间的耦合问题,他的核心是消息存储(黑板),他存储所有消息,并可以随时被读取。当消息生产者把消息写入到消息仓库后,其他消息者就可以从仓库中读取。原创 2023-03-08 16:24:23 · 363 阅读 · 0 评论 -
ResourceBundle类:读取配置文件
ResourceBundle类是java自带的类,类路径:java.util.ResourceBundle,用来读取项目中后缀为properties的配置文件。1)配置文件名称:application.properties(可将文件存放在工程的resource目录下,或者lib目录下)2)获取资源文件中的信息:使用getString()方法。1)获取配置文件的名称,使用getBundle()方法。原创 2023-08-22 15:27:50 · 475 阅读 · 0 评论 -
SchedulerLock分布式锁
使用@SchedulerLock可以实现比较轻量级的简单的定时任务,也可以实现分布式锁,那具体的原理是啥?具体的原理是维护了一个数据库表,主键是不可重复的,然后利用主键不可重复的特性,实现了锁的抢占.获取锁逻辑INSERT INTO tableName (name, lock_until, locked_at, locked_by) VALUES(锁名字, 当前时间+最多锁多久, 当前时间, 主机名)如果插入成功了,就说明抢到了锁,否则任务抢不到锁.如果记录已经存在了,就用更新记录来抢锁.原创 2021-03-16 11:20:43 · 1798 阅读 · 0 评论 -
HttpClient发起请求Target host is not specified
问题出现的日志:Exception in thread "main" org.apache.http.client.ClientProtocolException at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:187) at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.jav原创 2021-03-12 11:07:20 · 2452 阅读 · 0 评论 -
dubbo和feign的区别
一、相同点Dubbo 与 Feign 都依赖注册中心、负载均衡。 二、区别 1、协议 Dubbo: 支持多传输协议(Dubbo、Rmi、http、redis等等),可以根据业务场景选择最佳的方式。非常灵活。默认的Dubbo协议:利用Netty,TCP传输,单一、异步、长连接,适合数据量小、高并发和服务提供者远远少于消费者的场景。 Feign: 基于Http传输协议,短连接,不适合高并发的访问。 2、负载均衡 Dubbo: 支持4种算法(随机、轮询、活跃度、Hash一致性),而且算法里面引转载 2021-03-09 17:44:36 · 14676 阅读 · 1 评论 -
Java8新特性 stream流常用方法
Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。Stream 使用一种类似用 SQL 语句从数据库查询数据的直观方式来提供一种对 Java 集合运算和表达的高阶抽象。Stream API可以极大提高Java程序员的生产力,让程序员写出高效率、干净、简洁的代码。这种风格将要处理的元素集合看作一种流, 流在管道中传输, 并且可以在管道的节点上进行处理, 比如筛选, 排序,聚合等。元素流在管道中经过中间操作(intermediate operation)的处理,原创 2021-03-08 13:53:34 · 1377 阅读 · 0 评论 -
并发insert情况下发生的数据重复插入的问题
if(oderid != null){ //该记录已存在 update(); }else{ synchronized(this){ if(oderid != null){ //该记录已存在 update(); }else{ insert(); } } }可以在synchronized中再次进行一次判断,类似于双重判断单例模式的思想...原创 2021-02-26 14:18:37 · 1283 阅读 · 0 评论 -
多线程分段执行集合
这个是切分集合的public static <T> List<List<T>> averageAssign(List<T> source, int n) { List<List<T>> result = new ArrayList<List<T>>(); int remaider = source.size() % n; //(先计算出余数) int num原创 2021-02-26 13:20:11 · 1290 阅读 · 0 评论