java
文章平均质量分 87
java
pub.ryan
专注于大数据
展开
-
基础知识整理1:从HelloWorld开始理解javac前端编译过程
1、学习的方法——不在学多少在于融汇贯通知识点 新知识的层出不穷,越早建立起自己的知识体系越重要,建立知识体系的关键在于如何找到知道的原点去学习,有了一个大概的全局观以后,剩下的都是一些基础知识点的细化。如果把开发一个项目或解决一个特定场景的解决方案比作一个体的话: 点:基础的知识,相关的语法:如计算机原理、操作系统原理、底层IO、JVM、语言的语法逻辑 线:相关的知识点,如反射、线程、网络编程、IO操作、分布式、sql优化、协议等原理性的知识等 面:各种层出不穷的解决方案与框架,如Spri..原创 2021-01-26 17:35:23 · 178 阅读 · 0 评论 -
并发编程2:并发的问题:死锁——两段不同的逻辑都在等待对方的锁释放才能继续执行
1、什么是死锁 死锁:即多个线程因竞争而造成一种互相等待的现象。 简单一点说: 一个资源每次只能被一个进程使用,而当正在占用这个资源的进程又需要去使用其它资源时正好处于阻塞状态,导致使用中的资源无法释放,请求的资源又处于无限等待中。 如果所有代码都是我们自己开发的,不太会出现这样的情况,至少在不是太复杂的情景下应该不会刻意去设计一个死锁的代码,但如果调用了其它外部的api或一些共享的资源时,就不可避免的出现一些死锁的情况。 如:一个线程T1持有锁R1并且申请获得锁R2,而另一个线程T2持有锁R2并原创 2021-01-22 14:09:12 · 392 阅读 · 1 评论 -
并发编程1:线程基础——create、setDaemon、join、interrupt、synchronized及综合应用案例完成一个多线程任务
1、为什么看源码可以开阔思维,提升架构设计能力? 技术的东西单靠书本和自己思考是很难快速提升的,必须通过看源码,看别人如何设计,思考为何这样设计才可以领悟得到。 能力的提升不在于你写了多少代码,做过多少项目,而是给你一个业务场景时,你是否能拿出几种靠谱的解决方案,并且说出各自的优缺点。 怎么才能拿得出来?一来靠经验,二来靠归纳总结,而看源码可以快速增加你的经验。 2、如何看源码? 第一遍:了解并简单使用,知道这个模块的作用,再debug进去看一下调用的逻辑、具体实现、用到哪些类,最好能画出一个大致的架原创 2021-01-20 19:46:15 · 178 阅读 · 2 评论