大学教材《java语言程序设计》哪个版本比较好?
Java基础入门:
《Java基础入门(第2版)》是Java语言编程的经典教材,其第一版发行近20万册。历久弥新,精心修订。全书共11章,包括Java开发环境的搭建及其运行机制、基本语法、面向对象的思想、常用API、集合、IO、GUI、JDBC、多线程和网络编程等内容。提供了208个经典案例,5个综合案例,219道经典习题。配套的数字教学资源丰富,包括精美PPT、1500道测试题、40小时教学视频。
《面向对象与Java程序设计》
《面向对象的程序设计与Java》以“零”为起点,从类和对象的概念人手,着重介绍Java面向对象的程序设计,旨在帮助读者建立面向对象的思想,掌握面向对象编程的基本技能。同时,《面向对象的程序设计与Java》对Java语言的各种基本特性及相关的编程技术也做了详细的介绍。《面向对象的程序设计与Java》共分12章,内容包括Java程序初步、数据与数据运算、Java语句、Java类、继承与接口、数组与字符串、例外处理、多线程编程、《面向对象的程序设计与Java》输出与文件处理、容器布局、事件处理、小应用程序编程等。本书立足基本理论和方法,注重实践与应用。从应用的角度来介绍基础理论知识,通过例子来说明编程的方法和过程。《面向对象的程序设计与Java》每一章的最后两部分都是小结和精选习题,便于读者复习、总结、巩固、练习与提高。
《重点大学计算机教材:Java程序设计》
《重点大学计算机教材:Java程序设计》共分为12章,主要包括Java语言的概述、结构化程序设计、面向对象编程思想、图形化用户界面技术、异常处理技术、数组、输入/输出流技术、并发控制技术、数据库操作技术和网络编程等基础内容,以及JDK6及后续版本中包含的容器、泛型和注解等高级技术。
《面向对象与Java程序设计》清华大学出版社,只是有点价高,还有《Java编程思想》第四版,中国铁道出版社出版的《Java语言程序设计第二版》介绍的详细很容易上手。
我觉得《java编程艺术》(清华大学出版社 高永强著)还不错,通俗易懂。关于编程这方面的书,这本是我见过的书里很不错的一本,常常让我想要动手去翻看它。就是有点贵,89元。
Java程序员如何运用所掌握的技术构建一个完整的业务架构?
换句话说,也就是想要构建一个通用的,适应性较强的架构
其实说来说去,一般开发仍然是从三层架构为基础进行迭代升级。无非也就是表现层业务层持久层。如果想要更“自有”一点,我们可以把网关层作为最上层(controller只是其中一部分),中间自然还是业务层,当是我们平时的service只是业务层的入口,最下层自然是基础层,dao也只是他的组件之一。
那么,我的网关层大概如下:
这个网关层本质也就是对协议的处理。HTTP请求,TCP请求等。
业务层
业务层可以大致分为三个部分
业务服务(对外的门面,接口,出参,入参)
业务流程,最容易变化的就是这里...
业务组件,其实也就是一些内聚可复用代码片段进行封装,各组件功能不同,本质还是一样的
基础层
无非也就是那几个,数据存储,缓存,消息。需要关注的无非也就是事务。
小结
嗯,就这样,整体思路如上,具体实现,还是看个人的知识储备,觉得有收获的朋友可以点我的名称关注一波,长期分享java原创高质文章,助你走向架构师之路。
近几年开始做一些新系统架构设计的工作,也参与了两三个新系统的建设工作,我就按照我的理解,说一下我的工作步骤,由于经验也不多,所以有错误的地方请留言指正。
业务的理解
首先,业务的理解是必不可少的,你不可能脱离业务去空想一个架构,这个是不切实际的:
前期的业务沟通我都是会参加的,并且我参与的系统大多数都是老系统的重构,所以老系统是什么样子,都需要进行了解。
业务的需求究竟是一个什么样子的,需要深度挖掘,避免遇到假需求。
和周边系统有哪些交互,这个是必须了解的。
老系统有哪些缺陷,是需要在新系统避免的。
对新系统的业务压力和数据量,需要有一个评估。
如何设计
在设计的过程中,技术知识的储备很重要,你需要了解每项技术的优缺点和适用场景,常见问题的解决方案。
首先说说什么是“假需求”,比如一个人管你接纸巾(需求),你没有(无法满足需求),你是直接说“我没有”还是说“你要纸巾做什么(挖掘客户真实需求)”。对方说“我要纸巾擦桌子(真实需求)”。你正好有抹布,不就满足对方真实的需求了么。挖掘出用户真实的需求之后,才能避免一些无用的机构设计。
和周边系统交互问题,这个也很关键:如果有系统会请求你的服务,并且对方系统是24小时运行的,那么你必须考虑集群部署+灰度发布了;如果你和另外一个系统的交易实时性要求不是那么的高但是请求很频繁,那么就可以考虑引入消息中间件。
老系统的缺陷,是一定要避免再次入坑的。比如老系统某些功能在效率上很差,那么在新系统的设计中,是不是就可以考虑引入内存数据库。
业务压力的评估,是必不可少的。如果并发量比较高,那么需要多少资源实现都要评估出来,并且集群+负载均衡。如果数据量很大的话,是不是考虑读写分离,甚至分库分表。
架构设计包括系统功能结构设计、系统技术架构设计(所用技术及分层)、数据架构设计、系统部署方案、网络部署方案等等。
系统技术架构设计:
数据架构设计:
希望我的回答能够帮助到你!

