课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
Java编程开发语言随着互联网的不断发展而被众多程序员应用到不同的软件开发项目之中,而本文我们就通过案例分析来简单了解一下,Java程序员需要掌握哪些编程技术。
1、局部性原理
局部性原理这个原理讲的是在一段时间里,整个程序的执行仅限于程序的某一个部分,相应的,程序访问的存储空间也局限于某一个内存区域,具体分为:
(1)时间局部性:是指如果程序中的某条指令一旦执行,则不久之后该指令可能再次被执行;如果某数据被访问,则不久之后该数据可能再次被访问。
(2)空间局部性:是指一旦程序访问了某个存储单元,则不久之后。其附近的存储单元也将被访问。
2、缓存
为什么需要缓存(Cache)?
本质的原因是速度的不匹配。CPU比内存快100多倍,比硬盘快1000多万倍。
如果CPU每次做事的时候,都等着内存和硬盘,那整个计算机的速度估计要慢的要死了。
所以根据局部性原理,操作系统会把经常需要用的数据从硬盘取到内存,CPU会把经常用的数据从内存取到自己的缓存中。通过这种办法等待的问题能带到极大的缓解。
在Web开发中,缓存更是非常常见的,由于数据库(硬盘)太慢,大部分Web系统都会把常用的业务数据放到内存中缓存起来。
3、抽象
CPU集成电路硬件无比复杂,但是我们写程序肯定不用接触这些硬件细节,那样就累死了,我们只要遵循CPU的指令集,程序就可以正确的运行,而不用关心指令在硬件层次到底是怎么运行的。
硬盘也是这样,有磁道,柱面,扇区,我们写应用层程序也不用和这些烦人的细节打交道,在操作系统和设备驱动的配合下,我们只需要面对一个个“文件”,打开,读取,关闭就行了。操作系统会把逻辑的文件翻译成物理磁盘上的字节。
再比如为了实现数据的共享,数据的一致性和安全性,需要大量的,复杂的程序代码来实现,每个应用程序都实现一份肯定不是现实的。所以计算机科学抽象出了一个叫数据库的东西,你只需要安装数据库软件,使用SQL和事务就能实现多用户对数据的安全访问了。
4、分层
分层其实也是抽象的一种,它通过层次把复杂的,可能变化的东西隔离开来,某一层只能访问它的直接上层和下层,不能跨层访问。
分层的好处就是隔离变化,在接口不变的情况下,某一层的变化只会局限于本层次内。即使是接口变化,也仅仅会影响调用方。
5、异步调用
当你的程序需要等待一个长时间的操作而被阻塞住时而无所事事的时候,异步调用就派上用场了。
异步调用简单就是说:我等不及你了,先去做别的事情,你做完了告诉我一声。
Node.js和Web服务器Nginx也是这样,一个线程或若干个线程处理所有的请求,遇到耗时的操作,绝不等待,马上去干别的事情,等到耗时操作完成后,再来通知这些干活的线程。
6、分而治之
分而治之的基本思想是将一个规模比较大的问题分解为多个规模较小的子问题,这些子问题相互独立且与原问题性质相同。
由于子问题和原问题性质相同,所以很多时候可以用递归。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。