
JAVA
Solid-Snaker
比你优秀的人还在努力,那你努力还有啥用
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
str1.intern() == str1居然是false?面试被问懵了!
我有一个特别好的朋友,就叫小烦吧,今天请假出去面试,然后碰了一鼻子灰,回来之后死皮赖脸的让我把这些内容记录然后分享出来,我拗不过它,只好答应下来。事情的经过是这样的。我那个最好的朋友小烦给经理请假,理由是嘴角一个口疮长在了痔上,没办法说话要在家静养一天。经理虽然满头问号,但还是批准了。然后小烦就去了某某跳动去面试。刚一坐下,对面的面试官脑门一闪,把电脑扭到小烦面前:“这段代码的执行结果是什么?”小烦定睛一看:String str1 = new StringBuilder().append("j原创 2020-08-28 01:18:55 · 1006 阅读 · 1 评论 -
AES异常java.security.InvalidKeyException: Illegal key size的问题(已解决)
说明一下,JDK1.8.0_151及其之后的版本(JDK11应该不会出这个问题),无需去官网下载 local_policy.jar US_export_policy.jar这个jar包,只需要修改Java\jdk1.8.0_151\jre\lib\security这目录下的java.security文件配置即可。某些项目报出来的异常:java.security.InvalidKeyException: Illegal key size这是因为某些国家的进口管制限制,JDK默认的加解密默认不允许 .原创 2020-08-20 15:15:01 · 1862 阅读 · 2 评论 -
什么是线程池?线程池ThreadPoolExecutor使用及其原理又是什么?看完不懂你来找我!
线程池,顾名思义,用来存放线程的一个容器先了解一下线程的生命周期我们为什么要用线程池?技术的发展无非就是需求推动的,而技术领域的需求大部分都是快!再快!更快!那么线程池出现的需求也就是痛点是什么呢?第一、线程的创建和销毁是要占用一定的资源的,创建线程会直接向系统申请,调用系统函数进行分配资源。操作系统给线程分配内存、列入调度,同时线程还要进行上下文的切换。第二、在Java中,线程的线程栈所占用的内存在Java堆外,不受Java程序控制,只受系统资源限制,默认一个线程的线程栈大小是1M(当让.原创 2020-05-13 02:22:55 · 2626 阅读 · 41 评论 -
使用BlockingQueue的生产者消费者Demo
一个生产者消费者的Demo,不要再用synchronized或者lock了,那只是帮助你了解原理,生产大部分还是用的BlockingQueue队列。其实底层也是用ReentrantLock加的锁。package com.solid.demo.blockQueueTest;import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.BlockingQueue;import java.util.concurr.原创 2020-05-10 17:11:32 · 1769 阅读 · 4 评论 -
一个简单的死锁demo以及死锁分析
废话不多说,直接贴上demo代码:import java.util.concurrent.TimeUnit;public class DeadlockTest { public static void main(String[] args) { ResourceDeadlockTest resourceDeadlockTest = new ResourceDeadlockTest(); String a = "suoA"; String b =原创 2020-05-10 16:44:36 · 1891 阅读 · 2 评论 -
面向对象是什么?我面向的是一个世界!
每次说到面向对象,都让我想起当年最开始学习计算机的那段日子,因为“只要胆子大,一周七天假”、“六十分万岁多一分浪费”的这些口号麻痹着自己,学艺不精的我心安理得的将所有的功能敲进一个方法,为了实现功能而实现功能,能写死的一定写死,导致每次有啥要改的地方都要将代码从头到尾修改一遍。然后我学到了面向对象。我觉得我叩开了新世界的大门。(图片源自网络,侵删)...原创 2020-04-20 22:41:24 · 1888 阅读 · 14 评论