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 · 14165 阅读 · 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 · 16135 阅读 · 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 · 13730 阅读 · 0 评论 -
spring 事务传播机制
spring事务有七中传播级别,分别是:1、PROPERGATION_MANDATORY: 方法必须运行在一个事务中,不存在事务则抛出异常2、PROPERGATION_NESTED: 如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则按REQUIRED属性执行。3、PROPERGATION_NEVER: 以非事务方式执行,如果当前存在事务,则抛出异常。4、PROPER...原创 2020-02-11 16:00:47 · 13741 阅读 · 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 · 18506 阅读 · 0 评论 -
手动创建线程池以及线程拒绝策略
由于之前说使用Exectors类创建线程池时候,会造成OOM,建议手动创建线程池。今天就尝试手动创建线程池,并且介绍它的4中拒绝策略和手动写拒绝策略。在创建线程池之前,我们先看看线程池创建的构造函数和各个字段的意义。corePoolSize:核心线程数,当线程数未达到核心线程时,新的任务会创建新的线程,即使有线程空闲也会创建新的线程。maximumPoolSize:线...原创 2019-10-14 21:42:19 · 14082 阅读 · 0 评论 -
使用Executors创建java线程池
最近在看线程池,简单总结一下,希望对大家稍微有点帮助。java线程池创建可以使用Executors类去创建,它是对ThreadPoolExecutor进行封装。其中Executors.newFixedThreadPool是创建一个线程数量和最大线程数相等,并且队列是无限大LinkedBlockingQueue的线程池,当我们使用时,当任务数大于线程数时,任务会一直向队列里面增加,可能...原创 2019-10-13 23:20:31 · 13761 阅读 · 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 · 13738 阅读 · 0 评论 -
netty学习(一),搭建netty服务端
使用netty搭建服务端:netty服务至少要有两个部分:1.ChannelHandler-该组建实现了服务器对从客户端接受数据的处理,即业务逻辑2.引导-配置服务器启动。ChannelHandler仅仅是一个接口,继承他的有ChannelInboundHandler和ChannelOutboundHandler,分别是进站和出站事件的响应。由于服务器接收消息是进站事件,我们暂...原创 2018-12-23 19:54:48 · 13960 阅读 · 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 · 14387 阅读 · 0 评论