![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 84
耗子扛刀满街找猫gg
这个作者很懒,什么都没留下…
展开
-
java异常类型
异常说明RuntimeExceptionJava.lang 包中多数异常的基类ArithmeticException算术错误,如除以 0IllegalArgumentException方法收到非法参数SecurityException试图违反安全性ClassNotFoundException不能加载请求的类AWTExceptionAWT 中的异常IOExceptionI/O 异常的根类FileNotFoundException不能...翻译 2021-01-15 11:12:19 · 105 阅读 · 0 评论 -
Java字符串转为驼峰格式
CaseUtils 对Java字符串进行转换为驼峰格式maven依赖 <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-text</artifactId> <version>1.9</version> </depende原创 2020-12-09 15:37:40 · 3397 阅读 · 0 评论 -
System.getProperties()查看系统属性
Properties props=System.getProperties(); //系统属性 System.out.println("Java的运行环境版本:"+props.getProperty("java.version")); System.out.println("Java的运行环境供应商:"+props.getProperty("java.vendor")); System.out.println("Java供应商的URL:"+props.getProperty("jav转载 2020-05-24 14:11:57 · 427 阅读 · 0 评论 -
java并发编程--可重入锁、公平锁与非公平锁、读写锁在ReentrantLock中的实现
一、可重入锁定义可重入锁,也叫做递归锁,指的是在同一线程内,外层函数获得锁之后,内层递归函数仍然可以获取到该锁。 换一种说法:同一个线程再次进入同步代码时,可以使用自己已获取到的锁。 防止在同一线程中多次获取锁而导致死锁发生。在ReentrantLock中的实现获取锁final boolean nonfairTryAcquire(int acquires) { ...原创 2020-05-03 12:50:02 · 206 阅读 · 0 评论 -
Java并发编程--AQS同步器源码解析
一、CLH队列锁学习AQS之前先来了解下CLH队列锁,即 Craig, Landin, and Hagersten (CLH) locks。顾名思义,该锁维护了一个队列,每个节点代表一个线程,结构图如下:当一个线程想要获取锁,首先把自己包装成一个队列节点,该节点需要记录前驱节点和一个是否需要获取锁的标识blocked默认值为true的,然后在前驱节点的blocked属性上进行自旋,知道前驱节...原创 2020-05-02 23:12:26 · 279 阅读 · 0 评论 -
java并发编程总结和手写线程池
一、线程的状态及资源释放总结线程状态分别为新建、就绪、运行、阻塞、死亡。new一个线程时状态为新建,调用start()方法状态变为就绪,当线程获得时间片时线程进入执行状态,调用线程的yield()方法则该线程立即放弃时间片重新进入就绪状态,如果线程持有锁不会释放锁。处于运行状态下的线程,调用对象的wait()方法则线程进入阻塞状态,直到其他线程调用对象的notify/notifyAll方法之后...原创 2020-04-26 23:13:18 · 96 阅读 · 0 评论 -
java多线程编程--wait、notify、notifyAll使用和区别
首先说以下这个几个方法归属,这几个方法并不是Thread类的方法,而是Object的方法,只是在多线程编程中实现线程间同步用到而已。一、方法的作用1.wait()方法如果某个线程调用的对象的wait()方法,那么该线程会进入到该对象的等待池中,等待池中的线程不会去竞争该对象的锁。2. notify/notifyAll方法当某个线程调用了对象的notify方法,那么会在该对象的等待池中唤醒...原创 2020-04-26 22:17:22 · 180 阅读 · 0 评论 -
java多线程编程--synchronized、volatile和Thread.Local的使用
一、Synchroinzed锁synchroinzed锁又称为内置锁,之前提到过进程中的线程是共享进程内所有资源的,当多个线程对同一个资源执行操作时,如果不加锁可能会导致最终结果和预期结果不符,如下代码:public class SynchronizedTest { private long i = 0; public void add() { i+...原创 2020-04-24 19:40:55 · 592 阅读 · 0 评论 -
java并发编程--线程定义、创建、启动、停止
一、进程与线程的区别1.进程是程序运行资源分配的最小单位,也就是说操作系统封是以进程为单位进行分配资源的,资源包括cpu时间片、内存、磁盘io等;进程与进程之间是相互独立的,一个应用程序可以理解为一个进程,当你打开微信又打开支付宝的时候这两个应用都可以正常工作,所以说进程之间的独立的。进程又可以分为系统进程和用户进程,比如当你按下电脑卡机键,你就可以打开桌面,这是系统启动的进程;而你打开浏览器,...原创 2020-04-21 21:24:45 · 244 阅读 · 0 评论