![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java
文章平均质量分 60
Java相关知识。
一窝小猪仔
邮箱cifeixiang@163.com
展开
-
Java 交替打印两个线程的三儿种方法
1 锁 + wait + notifypublic class PrintTwoThreads { private static int i = 0; private static final Integer mtx = 0; private static final int MAX_PRINT_NUMBER = 9; public static void main(String[] args) { new Thread(() -> {原创 2021-09-19 02:42:02 · 1187 阅读 · 0 评论 -
Java 动态代理,invoke() 自动调用原理,invoke() 参数
Java 动态代理学习动态代理,先从静态代理入手静态代理假如现在我们面临一个需求,把一个项目中所有访问数据库的方法都记录日志。最直接的方法是修改所有代码,在每个方法里面都加入写日志代码:public class Dao { User findUserbyId(int id) { // 业务代码 xxx; // 加入写日志代码 xxx; } }但是这样工作量会很大,并且模块之间是耦合的,比如下次的需求是修改记录日志的内容,那么又要去修改所有业务代码,显然这种方法是不可取的。原创 2021-03-17 00:51:37 · 5682 阅读 · 21 评论 -
Java线程中断 阻塞 InterruptedException
Java线程中断 阻塞 InterruptedException线程切换:线程处于可运行的状态,只是还没有获取CPU时间片,如yield方法线程阻塞:线程请求资源等不满足,进入阻塞状态,无法运行线程中断:操作系统中断是保存现场,进行中断处理。而Java线程中断仅仅是一个状态,中断标志位设置为true,线程完全可以不理睬继续执行,也可以响应这个中断或者抛出异常,取决于线程的动作,中断仅仅是一个通知,提供了一种线程控制机制线程中断一般的,中断只是一个通知,当调用线程的interrupt方法的时候,原创 2020-08-01 14:20:38 · 641 阅读 · 0 评论 -
java 类型自动提升和强转,不注意就要拉裤里!
java类型提升机制比较常见,但是比较隐蔽,特别是自动强转类型的时候,如果不注意就可能出错。涉及基本元素的自动提升类型场景有:不同类型进行四则运算的时候,会自动提升类型到类型最高元素的类型+= 和 -= 会自动提升类型,然后再强转回来位运算符比int类型低的会自动提升成int类型<<= 和>>= 会转成int类型再强转回来三元操作符 ? : 会像四则运算一样自动提升类型,但是不会把强转回来涉及到方法重载时的类型提升在方法重载的时候,如果参数类型不严格匹配,原创 2020-06-23 10:27:21 · 293 阅读 · 0 评论