到位CTO:Java编程的逻辑,让你快人一大步,轻轻松松拿高薪
前言
过去十几年,Java一直是软件开发领域最主流的语言之一,在可以预见的未来,Java还将是最主流的语言之一。但关于Java编程的书比比皆是,也不乏经典之作,市场还需要一关于本Java编程的书吗?甚至,还需要编程的书吗?如果需要,需要什么样的书呢?
关于编程的需求,我想答案是肯定的。过去几十年,IT***深刻地改变了人们的生活,但这次***还远远没有停止,在可以预见的未来,人工智能等前沿技术必将进一步改变世界, 而要掌握人工智能技术,必须先掌握基本编程技术。人工智能在我国已经上升为国家战略。2017年7月,国务院印发了《新一代人工智能发展规划》,其中提到“实施全民智能教育项目,在中小学阶段设置人工智能相关课程,逐步推广编程教育”,未来,可能大部分人都需要学习编程。
关于编程的书是很多,但对于非计算机专业学生而言,掌握编程依然是一件困难的事情。绝大部分教程以及培训班过于追求应用,读者学完之后虽然能照着例子写一些程序,但却懵懵懂懂,知其然而不知其所以然,无法灵活应用,当希望进一步深入学习时,发现大部分专业书籍晦涩难懂,难以找到通俗易懂的与学过的应用相结合的进阶原理类书籍。
即使计算机专业的学生,学习编程也不容易。学校开设了很多理论课程,但学习理论的时候往往感觉比较枯燥,比如二进制、编码、数据结构和算法、设计模式、操作系统中的线程和文件系统知识等。而学习具体编程语言的时候,又侧重学习的是语法和API。学习计算机理论的重要目的是为了更好地编程,但学生却难以在理论和编程之间建立密切的联系。
读者对象
本书面向所有希望进一步理 解编程的主要概念、实现原理和思维逻辑的读者,具体来说有以下几种:
初中级Java开发者:本书采用Java语言,侧重于剖析编程概念背后的实现原理和内在逻辑,同时包含很多实际编程中的经验教训,所以,对于Java编程经历不多,对计算机原理不太了解、对Java的很多概念一-知半解的开发人员,阅读本书的收获可能最大,通过本书可以快速提升Java编程水平。而零基础Java开发者,可跳过原理性内容阅读。
非Java语言的开发者:本书不假设读者有任何Java编程基础,系统、全面、细致地讲述了Java的语法和类库,给出了很多示例。另外,本书介绍了很多编程的通用概念、知识、数据结构、设计模式、算法、实现原理和思维逻辑。同时,全书的讨论都尽量站在一一个通用的编程语言角度,而非Java语言特定的角度。通过阅读本书,读者可以快速学习和掌握Java,建立与其他语言之间的联系,提升整体编程思维和水
中高级Java开发者:经验丰富的Java开发者阅读本书的收获也会很大,可以通过本书对编程有更为系统、更为深刻的认识。
读者评论
为了方便大家更好的阅读,这里用截图的形式展示
正文内容
本书分为六大部分,共26章内容。
第一部分(第1~2章) 介绍编程基础与二进制。第1章介绍编程的基础知识,包括数据类型、变量、赋值、基本运算、条件执行、循环和函数。第2章帮助读者理解数据背后的二进制,包括整数的二进制表示与位运算、小数计算为什么会出错、字符的编码与乱码。
第二部分(第3~7章) 介绍面向对象。第3章介绍类的基础知识,包括类的基本概念、类的组合以及代码的基本组织机制。第4章介绍类的继承,包括继承的基本概念、细节、实现原理,分析为什么说继承是把双刃剑。第5章介绍类的一些扩展概念,包括接口、抽象类、内部类和枚举。第6章介绍异常。第7章剖析一些常用基础类,包括包装类、String、 StringBuilder、 Arrays、 日 期和时间、随机。
第三部分(第8~ 12章) 介绍泛型与容器及其背后的数据结构和算法。第8章介绍泛型,包括其基本概念和原理、通配符,以及一些细节和局限性。第9章介绍列表和队列,剖析ArrayList、 LinkedList以及ArrayDeque。第10章介绍各种Map和Set,剖析HashMap、 HashSet、 排序叉树、 TreeMap、TreeSet、LinkedHashMap、LinkedHashSet、 EnumMap和EnumSet。 第11 章介绍堆与优先级队列,包括堆的概念和算法及其应用。第12章介绍一些抽象容器类,分析通用工具类Collections,最后对整个容器类体系从多个角度进行系统总结。
第四部分(第13~14章) 介绍文件。第13章主要介绍文件的基本技术,包括文件的一些基本概念和常识、Java中 处理文件的基本结构、二进制文件和字节流、文本文件和字符流,以及文件和目录操作。第14章介绍文件处理的一些 高级技术,包括一些 常见文件类型的处理、随机读写文件、内存映射文件、标准序列化机制,以及Jackson序列化。
第五部分(第15~20章) 介绍并发。第15章介绍并发的传统基础知识,包括线程的基本概念、线程同步的基本机制synchronized、线程协作的基本机制wait/notify,以及线程的中断。第16章介绍并发包的基石,包括原子变量和CAS、显式锁与显式条件。第17章介绍并发容器,包括写时复制的List和Set、ConcurrentHashMap、基于跳表的Map和Set,以及各种并发队列。第18章介绍异步任务执行服务,包括基本概念和实现原理、主要的实现机制线程池,以及定时任务。第19章介绍一些专门的同步和协作工具类,包括读写锁、信号量、倒计时门栓、循环栅栏,以及ThreadLocal。 第20章对整个并发部分从多个角度进行系统总结。
第六部分(第21 ~ 26章) 介绍动态与函数式编程。第21章介绍反射,包括反射的用法和应用。第22章介绍注解,包括注解的使用、创建,以及两个应用:定制序列化和DI容器。第23章介绍动态代理的用法和原理,包括Java SDK动态代理和cglib动态代理以及一个应用: AOP。 第24章介绍类加载机制,包括类加载的基本机制和过程,ClassLoader的用法和自定义,以及它们的应用:可配置的策略与热部署。第25章介绍正则表达式,包括语法、Java API、一个简单的应用(模板引擎),最后剖析一些常见表达式。第26章介绍Java 8引入的函数式编程,包括Lambda表达式、函数式数据处理、组合式异步编程,以及Java 8的日期和时间API。
限于平台篇幅限制,同时也为了大家更好的阅读,有感兴趣的朋友可以帮忙转发文章后,关注私信回复【学习】来获取