1.通过类实现自定义的数据类型,封装该类型的数据所具有的的属性和操作,隐藏实现细节,从而在更高的层次(类和对象层次,而非基本数据类型和函数类型的层次)上考虑和操作数据,是计算机程序解决复杂问题的一种重要的思维方式。

2.在设计线的时候,我们考虑的功能是点,而非考虑点的内部实现细节。每个类封装其内部细节,对外提供高层次的功能,使得其他类在更高层次上考虑和解决问题,是程序设计的一种基本的思维方式。

3.将现实概念映射为类以及类组合的过程,这个过程大概就是,想想现实问题大概有哪些概念,这些概念有哪些属性、哪些行为,概念之间有什么关系,然后定义类、定义属性、定义方法、定义类之间的关系。概念的属性和行为可能是非常多的,但定义的类只需要包括那些与现实问题相关的就行了。

4.类中实例变量的类型可以是当前定义的类型,两个类之间可以相互引用,这些初听起来可能难以理解,但是现实世界就是这样的,创建对象的时候这些值不需要一开始就有,也可以没有,所以是没有问题的。

5.分解现实问题中涉及的概念以及概念之间的关系,将概念表示为多个类,通过类之间的组合来表达更为复杂的概念以及概念之间的关系,是计算机程序的一种基本的思维方式。

6.Java API中所有的类和接口都位于包java或者javax下,java是标准包,javax是扩展包。(这我以前还真不知道……丢人……感谢“老马”)

7.合理使用包的一些好处:

  • 避免命名冲突。
  • 便于模块化开发。
  • 方便封装。

8.jar包打包的一般不是源代码,而是编译后的代码。打包将多个编译后的文件打包为一个文件,方便其他程序调用。

9.Java9中清晰引入了模块化的概念 (这也是我个人觉得Java9最值得学的) ,JDK和JRE都按照模块化进行了重构,传统的组织机制依然是支持的,但是新应用可以使用模块。一个应用可以由多个模块组成,一个模块可以由多个包组成。
(下面我给大家展示一下Eclipse显示的Java重构后的部分模块化结构:)

(当然了,还有其他的模块,就不一一展示了)

10.。。。之前居然不知道java.lang的lang是language,太羞耻了,看着这本书突然想起这码事。。。

11.import是编译时的概念,用于确定完全限定名,在运行时,只是根据完全限定名寻找并加载类。

【Java】《Java编程的逻辑》第3章 类的基础 笔记+感悟分享相关推荐

  1. 【Java】《Java编程的逻辑》第4章 类的继承 笔记+感悟分享

    1.继承可以复用代码,公共的属性和行为可以放到父类中,而子类只需要关注子类特有的就可以了:另一方面,不同子类的对象可以更方便的被统一管理. 2.super可以引用父类非私有的变量. (这句话对于Jav ...

  2. Java并发编程-无锁CAS与Unsafe类及其并发包Atomic

    [版权申明]未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) http://blog.csdn.net/javazejian/article/details/72772470 出自[zejian ...

  3. Java程序设计(2021春)——第三章类的重用笔记与思考

    Java程序设计(2021春)--第三章类的重用笔记与思考 本章概览: 3.1 类的继承(概念与语法) 3.2 Object类(在Java继承最顶层的类) 3.3 终结类和终结方法(只能拿来用,不可以 ...

  4. java程序运行必须得三个io类_Java基础知识(三)

    一.hashCode 与 equals (重要) 面试官可能会问你:"你重写过 hashcode 和 equals 么,为什么重写equals时必须重写hashCode方法?" 1 ...

  5. 【Java】《Java编程的逻辑》第6章 异常 笔记+感悟分享

    1.异常栈信息包括了从异常发生点到最上层调用者的轨迹,还包括行号,可以说,这个栈信息是分析异常最为重要的信息. 2.Java默认的异常处理机制:打印异常栈,退出程序(非正常退出),异常发生点之后的代码 ...

  6. 【Java并发编程的艺术】第二章读书笔记之原子操作

    前言 今天的笔记来了解一下原子操作以及Java中如何实现原子操作. 概念 原子(atomic)本意是"不能被进一步分割的最小粒子",而原子操作(atomic operation)意 ...

  7. 《java并发编程实战》第11章-性能与可伸缩性

    11.1 对性能的思考 11.1.1 性能的提升意味着什么 提升性能意味着用更少的资源做更多的事情, 在任何时刻,提升性能的前提是要保证程序的正确性 当操作由于某种特定的资源而受到限制时,通常就称该操 ...

  8. java语言定义一个具备栈功能的类_Java学习笔记 第二章 Java语言基础

    第二章 JAVA语言基础 一.关键字 1.关键字的定义和特点 定义:被Java语言赋予了特殊含义的单词 特点:关键字中所有的字母都为小写 2.用于定义数据类型的关键字 c;ass  interface ...

  9. 《深入理解Java虚拟机》第六章 类文件结构 — 读书笔记

    1. 概述 计算机只认识0和1,我们编写的程序需要经编译器翻译为由0和1构成的二进制文件才能被计算机执行.伴随着虚拟机和大量建立在虚拟机上程序语言的出现,将程序编译为本地字节码文件已不再是唯一的选择, ...

最新文章

  1. 科普 | USB 协议与接口
  2. 数据库 文件 备份【学习 使用】
  3. SQL Server 表变量和临时表的区别
  4. VMware虚拟机网络模式详解 NAT模式
  5. 我的世界java版和基岩版对比_基岩版Beta1.11.0.1发布
  6. html序列符号替换,Html标签替换(过滤掉html特殊符号)
  7. codeforces 453C Little Pony and Summer Sun Celebration
  8. CentOs基础操作指令(进程管理)
  9. 语音转文字的软件APP
  10. Linux 与Windows 7双系统默认引导顺序的修改
  11. zabbix 如何监控tcp的SYN,establised?
  12. 浏览器资源嗅探器_浏览器嗅探条件注释
  13. java struts2教程_Struts2教程--第一章 搭建Struts2开发环境
  14. 怎么制作linux光盘镜像,linux光盘镜像文件制作攻略
  15. 单元测试怎么就成了银弹?
  16. 客制化键盘编程_最全最细客制化键盘指南!(上)
  17. 简单认识程序的编译过程
  18. 公有云与私有云的区别(转)
  19. uni的numberbox怎么用_模拟器最强BIOS篇,如何使用uni-bios
  20. otter异常——zookeeper重新初始化

热门文章

  1. git小技巧之分支、关联远程仓库、回滚、解决.gitignore不生效等
  2. HTTP知识普及系列:HTTP返回状态码
  3. 解决NTKO Office中文文件名保存到服务器时出现乱码的问题
  4. chrome密码管理
  5. iOS开发那些事-iOS常用设计模式–委托模式案例实现
  6. 开始新的blog之旅--flash3,0涂鸦板保存,撤销功能
  7. qt c++ 图片预览_Qt多语言国际化
  8. linux 网络连接未知,ubuntu – 网络问题. Ifup说未知界面
  9. linux centos7重启路由命令行,centos7 永久添加静态路由
  10. vue取通过key取value_彻底理解Vue中的Watcher、Observer、Dep