
java
银真
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【pytorchbug】【01】使用float计算只能保证6到7位数的精度
float的精度只有6-7位,double的精度有15-16位原创 2020-11-10 18:39:59 · 569 阅读 · 0 评论 -
RestTemplate使用
1.json参数 @Test public void testRestTemplate(){ RestTemplate restTemplate = new RestTemplate(); try { String requestURL = "xxxJsonParamDemo"; JSONObject jsonObject = new JSONObject(); List<Strin原创 2020-10-29 19:42:20 · 157 阅读 · 0 评论 -
【java】【31】java调用pytorch
1.下载1.4或者1.6版本mkdir -p /opt/pytorch && cd /opt/pytorch && wget https://download.pytorch.org/libtorch/cpu/libtorch-shared-with-deps-1.4.0%2Bcpu.ziphttps://download.pytorch.org/libtorch/cpu/libtorch-shared-with-deps-1.6.0%2Bcpu.zip2.解压原创 2020-09-16 15:43:44 · 5179 阅读 · 6 评论 -
【java】【30】DecimalFormat 保留小数点
public static void main(String[] args) { DecimalFormat df = new DecimalFormat("0.000000"); System.out.println(df.format(2.0001)); System.out.println(df.format(2)); /** * 2.000100 2.000000原创 2020-09-15 20:28:17 · 127 阅读 · 0 评论 -
【jfinal】【01】根据模板生成类
1.引入pom<dependency> <groupId>com.jfinal</groupId> <artifactId>jfinal</artifactId> <version>4.9.01</version> </dependency>2.写模板文件RabbitmqSimpleJob.htmlpackage com.zhenzhen.common.redi原创 2020-09-15 15:14:15 · 227 阅读 · 0 评论 -
【java】【29】ConcurrentHashMap
transient volatile Node<K,V>[] table;static class Node<K,V> implements Map.Entry<K,V> { final int hash; final K key; volatile V val; volatile Node<K,V> next; Node(int hash, K key, V val, Node<K,V> next) { this.hash =原创 2020-08-27 00:34:27 · 99 阅读 · 0 评论 -
【java】【28】高并发优化 线程池并行处理任务
https://www.ixigua.com/6852275682312258061?id=6852260879011054093&logTag=1Gtf36Q2HfXHF2S-dKoSF1.优化前代码@Overridepublic JSONObject getOrder(String userId) { Map<String,Object> map = new HashMap<>(); map.put("userId", userId); JSONObjec原创 2020-08-24 00:17:02 · 303 阅读 · 0 评论 -
【java】【28】高并发优化,批量请求下游服务
1.如何批量请求,并获取处理结果把请求放到阻塞队列中,启动一个SchedulExecuteService,以固定的频率10ms执行一次批量请求每个请求封装一个CompletableFeture属性,通过get方法阻塞等待结果批量请求是一种复用思想,需要给每一个请求指定一个序列号serialNo分用package com.zhenzhen.demo.user.service.impl;import java.util.ArrayList;import java.util.HashMap;imp原创 2020-08-23 21:39:59 · 928 阅读 · 0 评论 -
【java】【27】java CountDownLatch 模拟高并发
https://www.ixigua.com/6851821702415188493?id=6851553614264173060&logTag=a_eppPQeUS_ygL_yLphP1package com.zhenzhen.demo.user;import java.util.Map;import java.util.concurrent.CountDownLatch;import java.util.concurrent.ExecutionException;import or原创 2020-08-23 21:33:36 · 218 阅读 · 0 评论 -
【java】【26】浅clone和深clone
1.浅clone是什么,有什么问题2.可以使用深clone解决问题,对象A和对象B都实现cloneable接口,重写clone方法原创 2020-08-21 10:23:13 · 105 阅读 · 0 评论 -
【java】【25】java的对象结构
1.markword 8个字节synchronized 关键字的锁信息gc标志偏向锁 - 自旋锁 - 重量级锁CASCompare And Swap先获取值,再赋值,当赋值时查看当前值是否时第一步获取到的值,如果是赋值,如果不是再次自旋2.class point 4个字节指向xxx.class的指针3.如果是数组的化有数组长度数组长度4个字节4.对象信息5.padding如果不够8个字节的倍数,填充成8个8个字节是因为64位系统处理8个字节的倍数块效率高...原创 2020-08-21 00:29:11 · 111 阅读 · 0 评论 -
【java】【24】java对象初始化
1.三个步骤1.在堆内存中new出一个空间2.执行对象的初始化方法3.把栈的指针和堆空间建立关联 0: new #3 // class Hello 3: dup 4: invokespecial #4 // Method "<init>":()V 7: astore_12.分析2.1Hello.java类public class Hello{ private int a原创 2020-08-21 00:11:47 · 165 阅读 · 0 评论 -
【java】【23】HashSet是如何添加元素的
好问题1.HashSet底层是HashMap的key的集合2.HashMap是数组加上链表的结构3.计算hashCode和2的n次幂做与得到存储的位置,如果没有值就不存在重复的对象,如果有值就使用equals方法比较是否相等4.如果相等替换,如果不相等jkd1.7放到table[i]的位子,jdk1.8放在链表尾部...原创 2020-08-18 23:43:14 · 307 阅读 · 0 评论 -
【java】【22】quartz框架
1.github 3.9k星https://github.com/quartz-scheduler/quartz/blob/master/docs/quick-start-guide.adoc2.引入jar包<dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.3.0&l原创 2020-08-10 23:24:55 · 136 阅读 · 0 评论 -
【java】【21】线程池如何保证60秒线程空闲就被杀死
1.线程池会创建Worker,worker会被放到workers中worker是ThreadPoolExecutor的一个内部类一个Worker对应一个线程public class ThreadPoolExecutor extends AbstractExecutorService { /** * The main pool control state, ctl, is an atomic integer packing * two conceptual fields原创 2020-08-05 00:28:05 · 551 阅读 · 0 评论 -
【logback】【03】java.lang.NoSuchMethodError: ch.qos.logback.core.util.Loader.getResourceOccurrenceCoun
1.错误Failed to instantiate [ch.qos.logback.classic.LoggerContext]Reported exception:java.lang.NoSuchMethodError: ch.qos.logback.core.util.Loader.getResourceOccurrenceCount(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/util/Set; at ch.qos.logback.class原创 2020-08-04 10:38:17 · 4476 阅读 · 0 评论 -
【elastic job】【01】入门 分布式任务
1.github地址https://github.com/apache/shardingsphere-elasticjob2.部署控制台2.1部署zookeeperhttps://blog.youkuaiyun.com/huiyanshizhen21/article/details/100929684https://blog.youkuaiyun.com/huiyanshizhen21/article/details/1009299652.2部署mysqlhttps://blog.youkuaiyun.com/huiyanshi原创 2020-08-02 11:53:23 · 748 阅读 · 0 评论 -
【java】【19】函数式接口和lambda表达式
1.函数式接口函数式接口(Functional Interface)就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口。函数式接口可以被隐式转换为 lambda 表达式。可以使用@FunctionalInterface加在类上,如果不符合函数式接口会编译报错2.lambda表达式1.括号,括号中包含形参2.箭头 ->3.表达式或者代码块 ,函数体的实现结构(parameters) -> {statements;}(parameters) -> expressi原创 2020-08-01 21:31:19 · 139 阅读 · 0 评论 -
【java】【17】jdk1.8 接口默认方法和静态方法
public interface DemoInterface { default String testHello(){ return "你好,测试jdk1.8接口默认方法testHello"; } default String testWorld(){ return "你好,测试jdk1.8接口默认方法testWorld"; } public static String testStatic(){ return原创 2020-08-01 21:24:59 · 375 阅读 · 0 评论 -
【java】【17】LinkedHashMap
1.LinkedHashMap是HashMap的子类,可以保证插入时的顺序和取数时的顺序一致public class LinkedHashMap<K,V> extends HashMap<K,V> implements Map<K,V>{}2.扩展了Node节点,添加了before和after的引用public class LinkedHashMap<K,V> extends HashMap<K,V> i原创 2020-07-28 00:06:39 · 134 阅读 · 0 评论 -
【JVM】【02】垃圾收集
1.垃圾收集的算法1.标记-清理mark-sweep2.复制算法copying3.标记-压缩mark-compact2.如何标记垃圾https://www.jianshu.com/p/12544c0ad5c1可达性算法从GC root出发,能被引用到的都不是垃圾,其他的都需要被回收GC root包含栈的局部变量表中引用、本地方法栈的引用、常量池、类变量的引用变量三色标记的三种颜色黑色表示对象和成员变量都被标记了灰色表示对象被标记了,但是成员变量还没有标记白色表示对象还没有被标记原创 2020-07-26 21:33:56 · 114 阅读 · 0 评论 -
【java】【16】双亲委派
1.rt包的源码下载http://download.java.net/openjdk/jdk7/promoted/b147/openjdk-7-fcs-src-b147-27_jun_2011.ziphttp://www.java.net/download/openjdk/jdk8/promoted/b132/openjdk-8-src-b132-03_mar_2014.zip2.加载类的继承AppClassLoader的父类是ExtClassLoaderExtClassLoader的父类是Boo原创 2020-07-26 11:54:35 · 153 阅读 · 0 评论 -
【JVM】【01】栈
1.写一个类Test.javapublic class Test{ public int test(){ int a = 10; int b = 10; int c = (a+b)*10; return c; } public static void main(String[] args){ Test test = new Test(); }}2.栈一个栈帧主要包含局部变量表第一个槽存储的是this操作数栈动态指针方法出口每个方法都会有一个栈帧,栈帧默认原创 2020-07-25 23:47:09 · 108 阅读 · 0 评论 -
【java】【16】ArrayList扩容
1.ArrayList的底层数据结构是什么样?初始化参数是什么样的?怎么扩容?底层数据结果是数组,构造方法有无参的有参的当第一次添加元素如果数据为空时扩容,扩容为10当添加元素时发现空间不足时扩容,扩容增加百分之50public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable{原创 2020-07-25 14:43:34 · 133 阅读 · 0 评论 -
程序员KPI的一些思考
1、善于总结、技术分享 35%自评、检查成果在confluence中总结和技术分享员工通过confluence总结、领导检查confluence总结和技术分享打分2个目标 65%1.工作按时按量完成保证质量和维护文档2.业务相关的技能熟练掌握和文档维护...原创 2020-07-23 20:22:24 · 269 阅读 · 0 评论 -
【排序】【01】堆排序
1.堆的概念第i个元素大于等于第2i 和第2i+1个元素i范围是1到length/2 [1,length/2]如果是java数组的化是因为第一个元素是0第i个元素大于等于第2i+1和第2i+2个元素i范围是0到length/2-1 [0,length/2-1]2.堆排序demopackage com.zhenzhen.demo.eureka;import java.util.Arrays;public class TestSelectSort { public static原创 2020-07-22 23:47:40 · 114 阅读 · 0 评论 -
【java】【13】设计模式
https://refactoringguru.cn/design-patterns原创 2020-07-22 18:01:25 · 106 阅读 · 0 评论 -
【java面试】基础1
1.Java中判断两个Long类型是否相等https://www.cnblogs.com/shenwen/p/10654083.html2.forword和redirect的区别,怎么做选择https://blog.youkuaiyun.com/weixin_37766296/article/details/803751063.Error 、Exception 、RuntimeException的区别https://www.cnblogs.com/a-fei/p/12157997.htmlpublic bo原创 2020-07-18 11:09:06 · 119 阅读 · 0 评论 -
【java】【13】HashMap JDK1.7
1.jdk1.8的结构数组 + 链表 + 红黑树2.链表NodehashkeyvaluenextNode3.数组Node[] table4.数组的长度是2的n次方1.任何数和2的n次方-1做与运算都小于等于在2的n次方-1刚好用来做hash计算数组的位子2.任何数和2的n次方做与运算,只有两种结果0或者2的n次方这个可以在resize的时候确定节点是高位和地位5.put操作如果hash出来的数组没有值,新建一个Nodeif ((p = tab[i = (n - 1) &am原创 2020-06-24 00:35:16 · 146 阅读 · 0 评论 -
【java】【12】AQS AbstractQueuedSynchronizer
1.原理1.互斥变量标志锁对象的状态private volatile int state2.双向链表存储等待的线程3.没有抢到锁的线程阻塞,抢到锁的线程执行当抢到锁的线程执行完后唤醒链表head指向的线程阻塞和唤醒使用的是LockSupport类的park方法和unpark方法2.两个线程AThread、BThread抢占锁资源Demopackage com.yinzhen.demo.aqs;import java.util.concurrent.locks.ReentrantLock;原创 2020-06-23 01:16:20 · 122 阅读 · 0 评论 -
【java】【11】枚举
package com.zhenzhen.demo.springboot.common.constants;public enum ResultEunm { UNKONW_ERROR(-1,"未知错误"), SUCCESS(0,"成功"), ; private Integer code; private String msg; private ResultEunm(Integer code, String msg) { this.code = code; this.msg = msg原创 2020-05-26 10:52:11 · 137 阅读 · 0 评论 -
【java】【10】线程池使用bug,把task.get()放到循环里无法保证同步
1.bugdemopackage com.zhenzhen;import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util.concurrent.ExecutorService;import java.util.concurrent.FutureTask;import java.util.concurrent.LinkedBlockingQueue;imp原创 2020-05-23 19:46:49 · 307 阅读 · 0 评论 -
【java】【08】使用ThreadLocal保持当前HttpServletRequest和User对象对象
1.定义RequestAndUserHolderpackage com.yinzhen.demo;import javax.servlet.http.HttpServletRequest;public class RequestAndUserHolder { private static final ThreadLocal<SysUser> userHolder = new ThreadLocal<SysUser>(); private static fina原创 2020-05-19 22:58:32 · 718 阅读 · 0 评论 -
【java】【07】BIO 、NIO 、IO多路复用
1.BIOBIO是accept和recv都是阻塞的系统调用,新启动一个线程来进行recv系统调用,服务的最大连接数收到线程的限制Socket 系统调用bind 系统调用listen 系统调用accept 系统调用recv 系统调用2.NIONIO是socket系统调用增加参数noblocking使得accept和recv都变成非阻塞的accept和recv调用后立即返回,如果是-1表示没有数据,这种设计会有很多空跑系统调用3.IO多路复用技术select 系统调用可以知道有那些文件描述原创 2020-05-17 10:13:44 · 165 阅读 · 0 评论 -
【eclipse】【01】看源码jar包乱码
https://www.cnblogs.com/xiehongwei/p/11156326.html步骤1、在eclipse菜单栏中,Window–>Preferences–>General–>Content types。将JAR Content , Java Class File 的Default encoding都设置为你要的编码。步骤2、光设置上面的还不行,还需要再设置Workspace的编码。Window–>Preferences–>General–>Work原创 2020-05-15 17:54:24 · 100 阅读 · 0 评论 -
【java】【05】HashMap 当链表长度为8的时候转红黑树
1.由数组、链表、红黑树组成2.数组的查询消息和写效率非常高,因为地址是连续的而且类型固定,只需要简单计算就可以找到元素内存地址但是想要扩容需要重新分配空间建新的数组3.链表的插入删除效率非常高,只需要修改指针指向就可以但是查询效率比较低,需要一个一个的遍历比较3.当链表长度到8的时候,会把链表变成红黑树二叉排序树:左子树的值小于根节点,右子树的值大于根节点平衡二叉树:左子树的深度和右子树的深度差不大于1的绝对值,可以通过左旋、右旋、先左旋再右旋、先右旋再左旋的方式维持平衡红黑树:左子树和右原创 2020-05-15 10:27:15 · 235 阅读 · 0 评论 -
【java】【04】commons-lang3 操作字符串工具类 字符串拼接,日期加减得到字符串
代码,字符串拼接,日期加减得到字符串package com.br.doublelive.redis;import org.apache.commons.lang3.StringUtils;import org.apache.commons.lang3.time.DateFormatUtils;import org.apache.commons.lang3.time.DateUtils;import java.util.ArrayList;import java.util.Date;impo原创 2020-05-13 10:42:23 · 694 阅读 · 0 评论 -
【logback】【02】死锁
https://jira.qos.ch/browse/LOGBACK-1378不把日志打印到控制台原创 2020-04-27 11:08:17 · 1732 阅读 · 0 评论 -
【Jenkins】【02】删除本地缓存
原创 2020-04-24 19:11:45 · 2950 阅读 · 0 评论 -
日志系统
1.记录带流水号的业务数据库日志2.记录ELK控制台日志带流水号,尽量尽量详细出问题时跟进数据库的流水号查询ELK日志的详细信息3.统计耗时超过200ms、1s的日志打印warn级别的日志4.使用logback时不要把日志打印到控制台,有死锁的风险...原创 2020-04-23 14:12:05 · 247 阅读 · 0 评论