热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

学点Java里的编程思想(r12笔记第65天)

  按照自己之前的计划,我觉得得看看关于开发的东西了,因为我对于并发,锁的认知总是有一个局限性,自己也在地铁上做了些功课。有了

   按照自己之前的计划,我觉得得看看关于开发的东西了,因为我对于并发,锁的认知总是有一个局限性,自己也在地铁上做了些功课。有了这个想法,再有拿起书的勇气,那就是一个开始了。

   每个圈子都有自己喜爱的图书,就如同Oracle圈子对于Tom的《Oracle编程艺术》,MySQL圈子对于《高性能MySQL》,Java圈子也有自己的,在我的印象中,应该就是《Java编程思想》了。

   程序员其实还是容易偏执,在我们的生活中这种例子屡见不鲜,比如php是世界上最好的语言,几方竟然能大很长时间的口水战。程序员也有数据库行业类似DB-Engines的排行榜,是开发语言排行榜,Java语言如同数据库界Oracle的地位,也常年占据榜首位置,相对而言,语言之前的竞争更加激烈和白热化,优势和差距都不是很大。

Java程序员的圣经

     我的家里有个书架,已经很久没怎么读过书了,已经快摆满了杂物。书桌上有一本2007年的第四版的《Java编程思想》,书龄到现在已经10年了,但是看着里面的技术点滴,还是很有意思的,但是也存在太多的遗憾。

   每每到这个时候,我才会发现很多东西似曾相识,但是自己却没有记下笔记,没有了笔记,也就没有了当时学习的轨迹,也就意味着很多内容我需要重新再看一遍,再感悟一遍。所以我越发觉得学习笔记是个好东西,得坚持。

    我总是能够从书里找到一些共鸣的地方,比如Bruce这样说道:Java的设计者曾经说过,设计这门语言的灵感来自c++.尽管如此,学习Java,基本上不用参考c++,我也是这样做的。

    对于一些技术的学习,比如泛型,就很有必要和c++进行比较。了解c++模板的某些方面,有助于理解泛型的基础,这就如同学习MySQL的的锁机制和Oracle的联系起来,虽然不同,但是可以加深理解。同时,重要的一点是,你可以了解很多技术的局限是什么,以及为什么会有这些限制,最终的目的就是帮你理解,只有了解了边界,才能成为程序高手。只有知道了某个技术不能做到什么,才能更好的做到所能做的。这一点上来说,也是工程师的几个阶段:从思考能做什么到思考不能做什么。

    《Java编程思想》我目前喜欢的是第21章并发和第18章 I/O系统,因为这些方面和数据库的关联更大一些,也是我学习的一个突破口,而对于数据库中,高并发设计一直以来也是我们所关注的,而有时候难免会有瓶颈的认知存在。最近做了些功课,发现困扰自己,觉得不错的网络资料,里面的很多观点在书里都有系统的讲解,所以就是这本书了。而I/O系统方面,对于缓冲器的实现和持久化我更感兴趣,这些希望能够从再次的苦旅中找到一些共鸣和借鉴的地方。所以我的一个基本观点是从开发的角度来理解一些问题的原理,会更加水到渠成。

几种技术的比较


  我在毕业的时候,做开发类工作,最开始接触的就是Java Swing相关的技术,当时使用的还是Spring Rich Client的框架,接触了各种项目之后,发现框架真是层出不穷,没过多久就能听到一些新鲜的技术框架等等,而同时工作中大家对编程技巧尤其注意,总是会尽可能的用到设计模式方面的东西,而一个产品中总是会有若干的模块,也参与了不少模块的开发测试工作,到了亚信的时候,全部的模块都得熟悉,印象最深的一次,我连操作都没弄熟,下午就要给客户验收测试,当时自己学习的压力可想而知。而到了后来的工作中,我发现架构真是一门很精深的艺术,里面总是会有很多设计的原则和理念,这一点上不得不佩服很多老外的技术沉淀,从这个层面,我能够加深很多地方的理解,会把一个事情从一个更加全面的角度来考虑,得到一些更为细致的影响范围和风险评估。

   这样一个基本的感受,对于我来说,还是存在着一些困惑,这些到底有什么样的关系。有时候自己都理不清楚,直到一次看架构类的书籍,看到了下面的对应关系,才豁然开朗。

学点Java里的编程思想(r12笔记第65天)

这也是我上面描述的几种技术场景的一个关系图,这样一来,你在学习的时候也会有的放矢,而不是蒙着头逮什么学什么。

学点Java里的编程思想(r12笔记第65天)








推荐阅读
  • MySQL中的MVVC多版本并发控制机制的应用及实现
    本文介绍了MySQL中MVCC的应用及实现机制。MVCC是一种提高并发性能的技术,通过对事务内读取的内存进行处理,避免写操作堵塞读操作的并发问题。与其他数据库系统的MVCC实现机制不尽相同,MySQL的MVCC是在undolog中实现的。通过undolog可以找回数据的历史版本,提供给用户读取或在回滚时覆盖数据页上的数据。MySQL的大多数事务型存储引擎都实现了MVCC,但各自的实现机制有所不同。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 基于事件驱动的并发编程及其消息通信机制的同步与异步、阻塞与非阻塞、IO模型的分类
    本文介绍了基于事件驱动的并发编程中的消息通信机制,包括同步和异步的概念及其区别,阻塞和非阻塞的状态,以及IO模型的分类。同步阻塞IO、同步非阻塞IO、异步阻塞IO和异步非阻塞IO等不同的IO模型被详细解释。这些概念和模型对于理解并发编程中的消息通信和IO操作具有重要意义。 ... [详细]
  • 本文介绍了在Oracle数据库中创建序列时如何选择cache或nocache参数。cache参数可以提高序列的存取速度,但可能会导致序列丢失;nocache参数可以避免序列丢失,但在高并发访问时可能导致性能问题。文章详细解释了两者的区别和使用场景。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • Tomcat/Jetty为何选择扩展线程池而不是使用JDK原生线程池?
    本文探讨了Tomcat和Jetty选择扩展线程池而不是使用JDK原生线程池的原因。通过比较IO密集型任务和CPU密集型任务的特点,解释了为何Tomcat和Jetty需要扩展线程池来提高并发度和任务处理速度。同时,介绍了JDK原生线程池的工作流程。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 移动端常用单位——rem的使用方法和注意事项
    本文介绍了移动端常用的单位rem的使用方法和注意事项,包括px、%、em、vw、vh等其他常用单位的比较。同时还介绍了如何通过JS获取视口宽度并动态调整rem的值,以适应不同设备的屏幕大小。此外,还提到了rem目前在移动端的主流地位。 ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
author-avatar
材女貝蒂_673_576
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有