《Java编程的逻辑》一书遵循了由浅入深的教学策略,将Java编程分解成六个主要部分,精心设计每个模块以涵盖编程的各个方面,书籍起始于编程基础与二进制的理解,为读者打下坚实的基础,并迅速过渡到面向对象的核心概念,包括类的创建、继承和扩展等主题,紧接着,作者引导读者进入泛型与容器的世界,讨论了从列表和映射到复杂的堆结构与优先队列等数据结构,文件处理部分则提供了对文件IO操作的全面解析,从基础技巧到高级技术,为处理持久化数据奠定了基石,在并发编程章节中,书中不仅介绍了基础知识,还深入探讨了并发包的结构和并发容器,以及如何有效地使用异步任务执行服务和同步工具,书籍以反射、注解、动态代理、类加载机制、正则表达式和函数式编程等高级主题结束,提供了对动态与函数式编程全貌的洞察,这本书无疑是Java编程者从基础到高级各个层次的宝贵资源,旨在通过全面而系统的方式提升读者的编程技能与逻辑思维。
对知识点的讲解步骤清晰易于理解,在某些知识点上对我来说有种醍醐灌顶的感受。当然可能因为篇幅以及本书定位的缘故,对一些如算法的详细具体实现等都会略过,但也会给出基本的算法步骤讲解,总之就是能够点到为止。它对涉及到的部分源码也会给出关键步骤的分析,对像我这种以前看过java源码但看得一头雾水的来说,帮助挺大的。
当时按出版日期查询,看见了这本书,看目录里面有很多剖析的内容,引起了兴趣,考虑后下单了,看了第一章,想到不错,思维逻辑清晰,讲的特别仔细,有很多平时不注意的地方,感觉后面肯定也不会差的。很荣幸是第一个买的,吼吼。
市面上的Java书如过江之鲫,数不胜数,深的太深,浅的太浅,唯有这本,深入浅出,既讲了原理又讲了应用,例子又鲜明,关键是作者的文字功底好
详细解析java源码及实现思想,很全面。不足,某些章节有些无趣,看不下去,就跳过了
专业评价
我觉得你的文章跟一般Java教程的不同在于,你把各个知识点的“为什么”都解释得很清楚,非常对味,非常感谢。很多网上教程,都是直接教如何做的,主要是动手能力。可是做完了还是云里雾里。结合你的文章,一下子就通透了。—Hannah
老马说编程,太好了。把神秘的编程,通俗地讲解,使编程者认识了本质。每个专题的介绍都是深入浅出,有分析,有总结,有详细例子,真是爱不释手的宝书。—张工荣成
其实老马写的东西网上都有大把的类似文章,但是老马总是能把复杂的东西讲得深入浅出,把看似简单的东西分析得细致深入!—VitaminChen
文章比其他文章的亮点:有情景带入,重点突出,让人耳目一新,读起来很方便。感谢辛苦付出。—hellojd
虽然我使用Java多年,可是阅读作者的文章仍然觉得受益匪浅。并发总结得很好,对前面讲的并发知识作了很好的总结和梳理。—彭越
我不是初学者,依然能从这里学到很多东西。对不了解原理的非初学者来说,像回头捡落下的宝贝似的。关于编码,之前一直云里雾里的,找了几篇文章都没读进去。你的讲解浅显易懂!—Keyirei
用平实的语言把计算机科学的思维方法由浅入深,娓娓道来,让人如沐春风,醍醐灌顶。这里面没有复制、粘贴的拼凑,更没有生硬古怪的翻译腔,文章中句句都能感觉到老马理解、实践、贯通后表达出来的逻辑严密周全和通透流畅。—杜鹏
最近从PHP转Java,从您的文章学到了很多知识,很系统地重构了对计算机以及程序语言的认知,很感谢。—房飞
多线程一直连概念也模糊,阅读后真的受益匪浅!异常处理,看着简单,刚开始学习时,自己也是胡乱try和throw,不过到开发时,才体会到正确处理的重要性。感谢这篇文章。比起学习使用庞大的框架,我觉得基础知识是更重要的,对于一个知识点的理解,细细琢磨,知道实现原理,也是一种收获。—Chain
内容介绍
目录
- 读者评论
- 前言
- 第一部分 编程基础与二进制
- 第1章 编程基础2
- 第2章 理解数据背后的二进制33
- 第二部分 面向对象
- 第3章 类的基础52
- 第4章 类的继承73
- 第5章 类的扩展100
- 第6章 异常125
- 第7章 常用基础类138
- 第三部分 泛型与容器
- 第8章 泛型196
- 第9章 列表和队列218
- 第10章 Map和Set245
- 第11章 堆与优先级队列295
- 第12章 通用容器类和总结315
- 第四部分 文件
- 第13章 文件基本技术348
- 第14章 文件高级技术383
- 第五部分 并发
- 第15章 并发基础知识430
- 第16章 并发包的基石468
- 第17章 并发容器490
- 第18章 异步任务执行服务505
- 第19章 同步和协作工具类527
- 第20章 并发总结541
- 第六部分 动态与函数式编程
- 第21章 反射550
- 第22章 注解564
- 第23章 动态代理577
- 第24章 类加载机制592
- 第25章 正则表达式603
- 第26章 函数式编程628
自己的读书笔记,只是个笔记还有一种态度 碎碎念:近期的生活经历告诉我:不要把消极的一面示人,那样你只会成为一个小丑,这个世界上能帮你的只有你自己;另外事情没有想象当中的那么坏,退一步、何苦逼自己,生活本就如此,不示人、不示世,学习! 1、多个重名函数时,首先按参数类型匹配,然后看变量的动态类型,进行动态绑定 2、一个父类的变量能不能转换为一个子类的变量,取决于这个父类变量的动态类型(引用的对象类型)是不是这个子类或子类的子类 3、protected修饰符可被子类访问,同包下的其他类访问 4、子类对象属于父类,必须支持父类all对外的行为(is-a)降低可见性=no 5、动态绑定:据对象实际类型查找要执行的方法,子类找不到 看父类:虚方法表: 类加载时为每个对象创建一个表、记录类对象all动态绑定的方法(含父类方法)及地址,子类重写了父类方法后只保留子类的 6、变量的访问是静态绑定 7、继承破坏封装性:对子类而言,通过继承实现无安全保障(父类修改内部实现,它的功能可能被破坏)对基类而言,让子类继承和重写方法,可能丢失修改内部实现的自由 8、抽象类和接口配合关系:接口声明能力,抽象类提供默认实现,一个接口常对应一个抽象类; 抽象类可定义实例变量,java8中接口有一个静态、默认方法
Java编程的逻辑阅读总结 数据类型和变量 数据在计算机内部都是二进制的形式表示的,为方便操作高级语言引入了数据类型和变量的概念。 数据类型是对数据的归类,以便于理解和操作,Java中有四种基本类型: 整数类型:有四种整形 byte,short,int,long 分别占 1,2,4,8字节 布尔类型:表示真假 浮点类型:两种浮点类型 float,double 分别占 4,8字节 字符类型: 表示单个字符 占用内存控件两个字节 为了操作数据,需要吧数据存放在内存,所谓内存在程序看来就是一块有地址的连续空间,数据放到内存中某一位置,为了方便操作,就会给该位置起一个名字,编程语言通过变量来描述这一过程。 赋值 定义了变量和就确定了一块内存空间,但该空间的值是不确定的,就需要给该空间制定一个明确的值 基本类型 需要注意的是: 数字常量默认为int类型,浮点常量默认为double类型 数组类型 需要注意的是: 数据类型可以先给长度再赋值,也可以直接赋值,但是不能既给长度也赋值 不用类型的数据都有默认值 数值类型为0,布尔类型为false,浮点型为0.0,字符型为空字符 数据的长度可以动态决定但是决定了后不可改变 数组在内存中有两块内存空间,一块用于存数组本身内容,一块用于存数组内容的地址
书不错的,看得出来作者有很深厚的工程底蕴,不像那种教程书一样泛泛而谈,推荐!
好多概念与java编程思想相似,总体还可以,能够通过本书理解java编程的思路以及日后发展方向。