
java
not back
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
jdk1.7 HashMap扩容时死循环问题
jdk1.7 hashmap在resize时进行扩容时,会导致死循环,主要是因为jdk1.7采用的是头插法 void transfer(Entry[] newTable, boolean rehash) { int newCapacity = newTable.length; for (Entry<K,V> e : table) { while(null != e) { Entry<K,V> next = e.next;原创 2020-05-12 16:13:38 · 14223 阅读 · 0 评论 -
spring-kafka批量消费
在使用kafka时,单条消费和提交有时候会影响性能。spring-kafka提供了批量拉取数据和手动提交的策略。 代码如下: 创建一个生产者: package test.spring.kafka.producer; import com.alibaba.fastjson.JSONObject; import org.apache.kafka.clients.producer.ProducerRecord; import org.springframework.kafka.core.KafkaTem原创 2020-05-12 16:03:25 · 16236 阅读 · 5 评论 -
验证i++不是线程安全
因为i++是属于分段成 temp = i; temp2 = i+1; i=temp2; 如果线程1在执行第一条代码的时候,线程2访问i变量,这个时候,i的值还没有变化,还是原来的值,所以是不安全的。 代码表示 public class TestSafe implements Runnable{ private static int i=0; public static ...原创 2020-04-29 21:19:45 · 13755 阅读 · 0 评论 -
spring 事务传播机制
spring事务有七中传播级别,分别是: 1、PROPERGATION_MANDATORY: 方法必须运行在一个事务中,不存在事务则抛出异常 2、PROPERGATION_NESTED: 如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则按REQUIRED属性执行。 3、PROPERGATION_NEVER: 以非事务方式执行,如果当前存在事务,则抛出异常。 4、PROPER...原创 2020-02-11 16:00:47 · 13823 阅读 · 0 评论 -
feign中增加请求头
最近遇到项目在调用 实现RequestInterceptor 接口,然后可以根据feignClient中的值加到请求头中,使用时候在feignClient中配置,这样就可以把参数传入feign中 import com.alibaba.fastjson.JSONObject; import com.google.common.collect.Lists; import feign.Req...原创 2019-12-10 21:47:20 · 18563 阅读 · 0 评论 -
手动创建线程池以及线程拒绝策略
由于之前说使用Exectors类创建线程池时候,会造成OOM,建议手动创建线程池。 今天就尝试手动创建线程池,并且介绍它的4中拒绝策略和手动写拒绝策略。 在创建线程池之前,我们先看看线程池创建的构造函数和各个字段的意义。 corePoolSize:核心线程数,当线程数未达到核心线程时,新的任务会创建新的线程,即使有线程空闲也会创建新的线程。 maximumPoolSize:线...原创 2019-10-14 21:42:19 · 14133 阅读 · 0 评论 -
使用Executors创建java线程池
最近在看线程池,简单总结一下,希望对大家稍微有点帮助。 java线程池创建可以使用Executors类去创建,它是对ThreadPoolExecutor进行封装。 其中Executors.newFixedThreadPool是创建一个线程数量和最大线程数相等,并且队列是无限大 LinkedBlockingQueue的线程池,当我们使用时,当任务数大于线程数时,任务会一直向队列里面增加,可能...原创 2019-10-13 23:20:31 · 13790 阅读 · 0 评论 -
测试线程sleep不让出锁
一直听说线程sleep不让出锁,现做个实验,代码如下 先写一个类,方法上都同步。 package test.thread.impl; public class ThreadSleep { public synchronized void method1() throws InterruptedException { System.out.println("this ...原创 2019-10-08 22:17:59 · 13766 阅读 · 0 评论 -
netty学习(一),搭建netty服务端
使用netty搭建服务端: netty服务至少要有两个部分: 1.ChannelHandler-该组建实现了服务器对从客户端接受数据的处理,即业务逻辑 2.引导-配置服务器启动。 ChannelHandler仅仅是一个接口,继承他的有ChannelInboundHandler和ChannelOutboundHandler,分别是进站和出站事件的响应。 由于服务器接收消息是进站事件,我们暂...原创 2018-12-23 19:54:48 · 13993 阅读 · 0 评论 -
jpa实现分页
最近项目上使用mysql时,数据量很大,所以制定了分页的功能 1.编写model层 @Entity @Table(name = "test") public class Test { @Id private String id; private Date createTime; private Date lastChangeTime; } 省略get,s...原创 2018-11-06 20:31:41 · 14436 阅读 · 0 评论