java知识
文章平均质量分 74
谷同学
我不懒,但我不想加简介
展开
-
Druid获取连接超时,导致服务不可用
Druid数据库连接池获取连接超时,等待线程堆栈信息如下com.alibaba.druid.pool.DruidDataSource.takeLast() (line: 1444)com.alibaba.druid.pool.DruidDataSource.getConnectionInternal(long) (line: 1088)com.alibaba.druid.pool.DruidDataSource.getConnectionDirect(long) (line: 953)com.ali原创 2022-03-31 11:04:41 · 14636 阅读 · 0 评论 -
AQS源码解析---以ReentrantLock为例
AQS(AbstractQueuedSynchronizer)抽象同步队列的工作原理、ReentrantLock的加锁解锁原理以及可重入锁的实现原理,公平锁非公平锁的实现细节原创 2022-03-24 22:41:00 · 628 阅读 · 0 评论 -
JAVA对excle创建、读取、设置单元格颜色、背景色、跨行跨列
此篇博文构建了对Excel文件进行读取、写入的帮助类,对单元格的字体颜色、背景色、跨行跨列方法进行了说明。尤其是背景色,字体颜色、填充格式与实际效果的对应关系,方便快速对单元格进行格式设置原创 2022-03-18 17:44:51 · 12185 阅读 · 0 评论 -
curl: (60) Peer‘s Certificate issuer is not recognized
可用通过浏览器访问接口,但是通过curl返回Peer's Certificate issuer is not recognized。原创 2022-01-14 15:18:30 · 9415 阅读 · 0 评论 -
可重入锁(ReentrantLock为例)
什么是可重入锁STFW得到以下两种主流解释解释一:可重入就是说某个线程已经获得某个锁,可以再次获取锁而不会出现死锁。解释二:可重入锁又称递归锁,是指同一个线程在外层方法获取锁的时候,再进入该线程的内层方法会自动获取锁(前提是锁对象得是同一个对象),不会因为之前已经获取过锁还没有释放而阻塞。疑惑解释一中提到了可以再次获取锁,“再次获取锁”是如何进行判断的呢?解释二中提到了可重入锁称为递归锁,因此就想当然的理...原创 2021-12-20 16:03:55 · 14973 阅读 · 0 评论 -
sleep、wait、yield、join(卖票卖票)
1、首先是经典的双线程卖票public class Test extends Thread{ private int num = 1000; @Override public void run() { while (this.num>0){ System.out.println(Thread.currentThread().getName()+"出售了"+this.num+"号票"); num--;原创 2021-07-02 17:11:53 · 991 阅读 · 2 评论 -
Nginx拦截违法参数或url
$request_uri既可以拦截匹配url,也可以匹配参数args。$args只可以匹配请求参数。因此如果想要区别是参数发生了拦截,还是url发生了拦截,就需要先设置$args,再设置$request_uri。%3Cscript%3E即为location /aa/ { #虚拟主机真正映射路径 default_type text/html; if ($args ~* "%3Cscript%3E") { return 200 'Bad Args'; ...原创 2021-06-28 11:18:24 · 6001 阅读 · 0 评论 -
20届应届生北京java面试题及面试总结
写在开头 先说明下自己的情况,普通二本毕业生,实习了大半年,基础还算扎实,但是对于高并发,缓存什么的经验几乎为0,所以遇到的面试题是相对简单的,有不对的欢迎大家批评指正哈。面试题Java集合框架包括Collection接口,Map接口Collection接口下常用的为List和Set接口,ArryList、LinkList、线程安全的vector,不存储重复元素的HashSetMap一般使用无序的HashMap存储数据,如果要用有序的可以用LinkedHashMap,Tre...原创 2020-08-24 09:19:04 · 635 阅读 · 0 评论 -
OOP六大设计原则的简易理解,不再那么抽象了
oop(面向对象)的基本6大原则单一职责原则、接口隔离原则、开闭原则、依赖倒换原则、里氏代换原则、最少知道原则(迪米特法则)总体理解:这六大原则是为了尽量实现高内聚、低耦合的项目,但是功能复杂的项目是不可能完全遵守这6大原则的,如果真是这样严格设计,恐怕是纯内聚,无耦合的项目了。正是因为不可能完全遵守,所以我们在开发项目的过程中,在实现需求的基础上,尽量维护这6大原则,以便代码结构更加清晰,易于维护。单一职责原则一个类只负责一个职责,尽量降低耦合。(具体一个职责有是什么呢,怎么划..原创 2020-07-03 11:06:50 · 363 阅读 · 0 评论 -
线程的创建以及start、run、join、yield方法的区别
什么是线程线程是操作系统能够进行运算调度的最小单位,一个程序运行就是一个进程,一个进程包括至少一个线程线程和进程有什么区别线程是进程的子集;进程占据较多的系统资源,线程仅占用一些必不可少的系统资源;进程之间的内存空间是独立的,线程之间是共享的;进程的上下文切换代价较大,线程之间的切换代价很小。实现Runnable接口和继承Thread接口的区别1、首先应当明白无论是何种方式,最后都是通过Thread.start方法开启的线程(注意,Runnable接口的run方法并不是...原创 2020-06-30 19:55:54 · 309 阅读 · 0 评论 -
整理的一些java基础知识点,欢迎补充指正
https://blog.csdn.net/chen_2890/article/details/83928763一、String能被继承吗?为什么? 不能,String类final修饰,而final类不允许被继承,亦不可修改,改变字符串的值时实质上是新开辟了一份内存空间,创建了一个新的字符串,字符串实质上存储在char[]类型的数组中,二、int和Integer的区别 1:int是基本数据类型,Integer是包装类型 2:int初始值为0,Integer初始值...原创 2020-06-28 11:10:20 · 393 阅读 · 0 评论