java
短腿哥哥
这个作者很懒,什么都没留下…
展开
-
JUC常见工具类(笔记)
ConditionCondition是一个多线程协调通信的工具类,可以让某些线程一起等待某个条件(condition),只有满足条件时,线程才会被唤醒。Condtion在lock.lock()以及Lock.unlock()方法体里面。Condition主要方法:condition.await()、condition.signal()、condition.signalAll();。Condtion调用await()方法后会释放锁。CountDownLatchcountDownLatch是一个同步原创 2020-09-06 13:03:54 · 263 阅读 · 0 评论 -
happens-before的法则
内容来源于《JAVA并发编程实践》Java存储模型的定义是通过动作(actions)的形式进行描述的。所谓动作,包括变量的读和写、监视器加锁和释放锁、线程的启动和拼接(join)。JAVA存储模型(JMM)为所有程序内部的动作定义了一个偏序关系,叫做happens-before。要保证执行动作B的线程看到动作A的结果(无论A与B是否发生在同一个线程中),A和B之间就必须满足happens-...原创 2020-05-02 21:55:21 · 184 阅读 · 0 评论 -
JDK动态代理的原理
资料来源于网上JDK动态代理实际上是生成一个新的类,将增强和被代理类方法的代码加入到新的类中。原理:1.拿到被代理类的引用,并且获取它的所有的接口(反射获取)2.JDK Proxy类重新生成一个新的类,实现了被代理类的所有接口的方法。3.动态生成JAVA代码,把增强逻辑加入到新生成代码中。4.编译生成新的JAVA代码的class文件。5.加载并重新运行新的class,得...原创 2020-04-27 23:52:59 · 190 阅读 · 0 评论 -
Executors的四种连接池
文章摘抄于《Java并发实战》121页线程池概念 正如名称中所称的那样,线程池管理一个工作者线程的同构池(homongeneous pool)。线程池是与工作对列(wore queue)紧密绑定的。所谓工作队列,其作用是持有所有等待执行的任务。工作者线程从工作队列中获取下一个任务,执行它,然后回去继续等待另一个线程。 在线程池中执行任务线程,这种方法有很多“每任务每线程”无法比拟的优势。重用...原创 2020-03-22 23:44:39 · 292 阅读 · 0 评论 -
java使用ECC密钥长度为256的非对称加密算法案例
介绍椭圆曲线密码学(英语:Elliptic curve cryptography,缩写为ECC),一种建立公开密钥加密的演算法,基于椭圆曲线数学。椭圆曲线在密码学中的使用是在1985年由Neal Koblitz和Victor Miller分别独立提出的。ECC的主要优势是在某些情况下它比其他的方法使用更小的密钥——比如RSA加密算法——提供相当的或更高等级的安全。ECC的另一个优势是可以定...原创 2020-03-08 19:54:30 · 7442 阅读 · 6 评论 -
使用Linux和JDK命令分析JAVA哪行代码占用CPU较多(笔记)
1.先用top命令找出CPU占比最高的(找出pid)2.ps -ef 或者jps进一步定位,得知是哪个后台程序。(ps -ef | grep java )3.定位到具体线程或者代码(3.1 ps -mp 进程 -o THREAD,tid,time),主要是找出线程的tid,-m显示所有的线程,-p pid进程使用cpu的时间,-o表示用户自定义格式。4.将需要的线程ID转换为16进制...原创 2019-12-13 23:32:00 · 179 阅读 · 0 评论 -
部署多个springboot服务到外置的tomcat中
windows配置tomcat参考链接https://www.cnblogs.com/limn/p/9358657.htmlCATALINA_HOMEIDEA配置外置tomcat将项目的打包方式从jar包改成war包,<packaging>war</packaging> <groupId>com</groupI...原创 2019-11-23 20:32:11 · 443 阅读 · 0 评论 -
使用java自带的sercurity包解析x.509证书字符串
背景:本来是使用某个公司的jar包解析x.509证书,但他的包被扫描的时候却发现了很多安全漏洞,所以要使用其他方式对x.509证书进行解析,我解析的是前端传过来的一个字符串,类似于这样的“MIICMjCCAZsCCQD3/xw1j77JATANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJD”,据网上说,x.509的文本其实是这样的-----BEGIN CERTIFICAT...原创 2019-07-26 19:14:45 · 2269 阅读 · 0 评论 -
easyExcel设置单个单元格(颜色)样式
背景:需求是使用excel设置目标单元格的样式(颜色),但我之前没有学过easyExcel,在网上找资料的时候,发现有关easyExcel相关的单个单元格样式设置的资料比较少,有的还源码不全,只能说用来参考。我的代码很多一部分是借鉴这个博客的https://blog.csdn.net/abc20090208/article/details/89054599,但他没有设置颜色,需要设置颜色还需要找其...原创 2019-07-26 19:01:32 · 38910 阅读 · 6 评论 -
Java注解
原文链接:https://www.yiibai.com/article/detail/8350Java注解用于为Java代码提供元数据。作为元数据,注解不直接影响你的代码执行,但也有一些类型的注解可以用于这一目的。Java注解是从Java5开始添加到Java中。1. 什么是注解Java注解用于为Java代码提供元数据。作为元数据,注解不直接影响你的代码执行,但也有一些类型的注解实际上可...转载 2019-07-02 22:19:11 · 250 阅读 · 0 评论 -
定点数和浮点数的区别(Java)
首先我们了解定义:定点数:计算机中采用的一种数的表示方法。参与运算的数的小数点位置固定不变。浮点数:浮点数是属于有理数中某特定子集的数的数字表示,在计算机中用以近似表示任意某个实数。具体的说,这个实数由一个整数或定点数(即尾数)乘以某个基数(计算机中通常是2)的整数次幂得到,这种表示方法类似于基数为10的科学计数法。我们先看一个例子:System.out.println("6.52-6.22=...原创 2019-01-05 15:28:40 · 3691 阅读 · 0 评论 -
通过Java虚拟机理解String s=new String("abc");创建几个对象
以前看java虚拟机的知识的时候都是零零散散看的,这段时间刚好自己可以有很多的时间做自己的事情了。所以抽空把《深入理解Java虚拟机》看完了。这本书讲了Java虚拟机是如何改善代码的,以及我们写的代码在虚拟机上运行的时候会发生什么,总结的一句话就是可以让我们通过现象看到本质,让我们写代码的时候不仅仅是做一个API小王子,也可以在写代码的时候优化程序,最大的感触就是多看看一些比较出名的书,比很多入门...原创 2018-11-10 15:39:41 · 716 阅读 · 0 评论 -
数值类型的转换
最近在找工作的时候,经常碰到一些数值类型转换的笔试题,也想好好整理一下java的知识点,首先上一张图: 这个箭头表示可以自动转换类型的路线图,他们之间可以越级自动转换,例如char类型可以直接转为double类型。另外需要注意,char与byte、short是属于不同的分支,也就是说byte和short类型不能和char相互转换。 当以上两个不同类型的数值进行二元操作的时候...原创 2018-10-15 17:49:39 · 3056 阅读 · 0 评论 -
使用iterator的remove方法注意事项
(以下内容都是在csdn写的,没有使用编译器,如有错误,请留言,欢迎斧正)首先,我们先介绍一下iterator的原理: 迭代器是位于集合元素的中间,如下图,这是越过了第一个元素,也就是说,已经读取完了第一个元素的值。iterator.next(); 我们接下来介绍iterator迭代器remove方法的注意点。 1.remove()将会删除上次调用next()...原创 2018-05-09 09:12:57 · 25420 阅读 · 7 评论