课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
我们在前文中给大家简单分析了关于java编程开发程序员新手需要了解和学习的一些基础知识,而今天我们就再来了解一下多线程应用以及数据库的应用方法。
多线程应用
有了扎实的基础之后来谈谈多线程、并发相关的内容。
想让自己的title里加上“高级”两字肯定得经过并发的洗礼。
这里谈论的并发主要是指单应用里的场景,多应用的可以看后文的分布式内容。
多线程的出现主要是为了提高CPU的利用率、任务的执行效率。但并不是用了多线程就一定能达到这样的效果,因为它同时也带来了一些问题:
上下文切换
共享资源
可见性、原子性、有序性等。
一旦使用了多线程那肯定会比单线程的程序要变得复杂和不可控,甚至使用不当还会比单线程慢。所以要考虑清楚是否真的需要多线程。
会用了之后也要考虑为啥多线程会出现那样的问题,这时就需要理解内存模型、可见性之类的知识点。
常用及需要掌握的有:
原子类:用于并发场景的原子操作。
队列。常用于解耦,需要了解其实现原理。
并发工具,如ConcurrentHashMap、CountDownLatch之类的工具使用以及原理。
线程池使用,以及相关原理。
锁相关内容:synchronized、ReentrantLock的使用及原理。
数据库
做WEB应用开发的同学肯定要和数据库打不少交道,而且通常来说一个系统先出现瓶颈往往都是数据库,说数据库是压到系统的后一根稻草一点也不为过。
所以对数据库的掌握也是非常有必要。拿互联网用的较多的MySQL数据库为例,一些必须掌握的知识点:
索引的数据结构及原理、哪些字段应当创建索引。
针对于一个慢SQL的优化思路。
数据库水平垂直拆分的方案,需要了解业界常用的MyCAT、sharding-sphere等中间件。
保持竞争力
技术这个行业发展迅速、变化太快,每年也都有无数相关行业毕业生加入竞争,稍不留神就会被赶上甚至超越。
所以我们无时无刻都得保持竞争力。
多的谈不上,我只能谈下目前我在做的事情:
打好基础。不是学了之后就忘了,需要不停的去看,巩固,基础是万变不离其宗的。
多看源码,了解原理,不要停留在调参侠的境界。
关注行业发展、新技术、新动态至少不能落伍了。
争取每周产出一篇技术相关文章。
积极参与开源项目。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!