Java编程思想读书笔记

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_39723544/article/details/81110701

一、对象导论
1.并发编程:某项任务锁定某项资源,完成其任务,然偶释放资源锁,使其他任务可以使用这项资源。
2.Java与Internet:web、web服务器、客户端编程、服务器端编程
二、一切都是对象
1.用引用操作对象
存储到什么地方:
寄存器;堆栈;堆;常量存储;非RAM存储。
2.必须有你创建所有的对象
特例:基本类型。
byte、short、int、long、float、double、boolean、char、void。
高精度计算类:
BigInteger和BigDecimal。
BigInteger支持任意精度的整数位运算。
BigDecimal支持任意定点数的运算。
Java中数组。
避免了C和C++中的数组越界等问题。
3.永远不需要销毁对象
作用域。由花括号的位置决定。
对象的作用域。Java对象不具备基本类型一样的生命周期,,当用new创建一个java对象时,它可以存活于
作用域之外。
4.创建新的数据类型-类
字段和方法。
5.方法、参数和返回值
方法名和参数列表合成位方法签名。
6.构建Java程序
static关键字.
三、操作符
1.静态导入。
2.位运算。
按位与 & 3&5结果是1 00000011 00000101 结论:都是1,取1,否则就取0. 另,负数按补码形式参加按位与运算
按位或 | 3|5结果是7 00000011 00000101 结论:只要有一个为1,就取1,否则取0. 另,负数按补码形式参加按位与运算

正数的原码就是它的本身,并且正数的原码、反码、补码都一样。
负数的反码是原码位取反,符号位不变。负数的补码是反码+1后的值。

四、控制执行流程
循环、判断、break、continue、switch、do-while、while、foreach、for、三目运算符等。
五、初始化和清理
1.使用构造器确保初始化
Java中创建和初始化绑在一起,两者不能分离。
2.方法重载
相同方法名和返回值类型,不同的参数列表。(同一个类中)
区分方法重写:相同方法名、返回值类型和参数列表。访问修饰符不能比父类更严格;不能比父类抛出更多的异常。(基类和派生类之间)
3.默认构造器
4.this关键字
代表当前类对象的引用。
区分同名属性和变量(如同名参数)。
调用其他被重载的构造器。
static关键字。
5.终结清理和垃圾回收
工作原理:一旦垃圾回收器准备释放对象占用的存储空间,将首先调用器finalize()方法,并且在下一次垃圾回收动作发生时,才会真正回收对象占用的内存。
所以我们可以使用finalize()方法,在垃圾回收时做一些重要的工作。
①对象可能不被垃圾回收;②垃圾回收并不等于析构;③垃圾回收只和内存有关。
垃圾回收器是怎么工作的。堆内存、引用计数、停止-复制、标记-清扫、即时编译器JIT
6.成员的初始化
7.构造器初始化
父类静态成员及static块执行->子类静态成员及static块执行->父类构造代码块->父类构造器->子类构造代码块->子类构造器
8.数组的初始化
六、访问权限控制
1.代码组织
2.接口和实现
3.类的访问权限
类既不可以是private,也不可以是protected。类的访问权限只要包访问权限和public·。
七、复用类
1.组合语法
2.继承语法
3.final关键 final->基本类型 表示其值不变,final->引用类型 表示其引用指向不变
空白final,须在定义处、构造器或创建对象时进行初始化,否则会报编译错误。
final参数,基本类型无法修改,引用类型保持其引用指向不能改变。它常用于向匿名内部类传递数据。
final方法,禁止方法覆盖时。类中所有private的方法都隐式地指定为final。
4.初始化和加载顺序
八、多态
1.基类中的private方法,在父类中出现,算不上重写,类似于一个全新方法。
2.构造器和多态
构造器其实是static的,隐式static。
九、接口
1.完全解耦
2.Java中的多重继承
3.接口中的域自动都是static和final及public的
4.接口中的域不能是空final,但是可以被非常量式的初始化
5.接口可以嵌套在其他类或接口中.而且其默认就是public修饰
十、内部类
1.内部类无需任何条件,拥有外部类的所有权限
2.对外部类的引用,使用“外部类名字.this”。创建内部类对象:“外部类对象引用.new 内部类名()”。但是如果是静态内部类,就不要外部的引用
十一、持有对象
泛型和类型安全的容器
Java容器类类库的用途是保存对象,并划分两个不同的概念:Collection(一个独立元素序列),Map(一组成对的键值对)
HashSet是使用比较复杂的方式存储的,它是最快获取元素的方式。如果存现顺序很重要,可以使用TreeSet,它按照比较结果的升序来存储对象。
LinkedHashSet是按照添加的顺序保存对象
HashMap提供了最快的查找技术,也没有按照明显的顺序来保存元素。TreeMap按照比较结果的升序来来保存键。LinkedHashMap则按照插入的顺序保存键,
同时还保留了HashMap的查找速度。
iterator迭代器 next()和hasNext()方法
listInterator
HashSet、TreeSet、LinkedHashSet
Map、HashMap、TreeMap、LinkedHashMap
Queue 先进先出的容器。
Collection和Iterator。
Foreach与迭代器。
十二、通过异常处理错误
基本异常、异常参数
捕捉异常
创建自定义异常
重新抛出异常
异常链:Error、Exception、RuntimeException
Error:编译时和系统错误
Exception:可以抛出异常的基本类型
RuntimeException是一个特例
使用finally进行清理:涉及到break和coutinue时,finally子句也会执行。
异常丢失。注意异常丢失的特殊情况。
异常的限制。派生类不能抛出比基类更多的异常。包括方法在内;构造方法不受约束。派生构造法方法中不能捕捉基本异常,只能进行继续抛出
构造器,try-catch的嵌套。
异常匹配。“最近”原则。
十三、字符串
String对象不可变。
格式化修饰符。%d,%f,%s,%c
format()和printf()是等价的。
Formatter类。
正则表达式。Java中\表示正则中的一个斜线。\\表示普通斜线。
替换操作。
十四、类型信息
RTTI技术。
Class对象。
Class

猜你喜欢

转载自blog.csdn.net/weixin_39723544/article/details/81110701