一.一切都是对象
1.引用和对象
String s; 这里的s就是一个引用,但是没有指向任何对象,向它发送一个消息时,就会返回一个运行时错误
2.存储到什么地方
寄存器:最快的存储区(位于处理器内部,数量有限,按需分配)
堆栈:位于RAM(随机访问存储器)中,堆栈指针若向下移动,则分配新的内存,若向上移动,则释放那些内存(快速有效的分配存储方法,仅次于寄存器)
堆:通用的内存池(RAM区),用于存放所有的java对象(堆不同于堆栈的好处在于:编译器不需要知道存储的数据在堆里存活多长时间,在堆里分配存储有很大的灵活性)
常量存储:直接存放在程序代码内部
非RAM存储:数据完全存活于程序之外,可以不受程序的任何控制,在程序没有运行时也可以存在,两个最基本的例子是流对象和持久化对象(在流对象中,对象转换成字节流,通常被发送给另一台机器,在持久化对象中,对象被存放于磁盘上)
3,基本类型
高精度计算的类:BigInteger和BigDecimal
4、对象的作用域
java对象不具备和基本类型一样的生命周期,当用new创建一个java对象时,它可以存活于作用域之外
5.参数列表:参数传递的是引用
6.采用包名来避免包之间的冲突(域名反转)。所有的文件都能够自动存活于他们自己的名字空间内,而且同一个文件内的每个类都有唯一的标识符
7.System.out.println(System:类,out:System类的静态属性PirntStream,println:类printStream的静态方法)
8.代码风格
类名的首字母要大写,如果类名由几个单词构成
二.抽象过程
1.建立机器模型和实际待解决问题的模型之间的关联
2.将问题空间中的元素及其在解空间中的表示称为
对象
3.每个对象看起来都有点像微型计算机----具有状态和操作,用户可以要求对象执行这些操作。(特性和行为)
4.面向对象的程序设计方式
万物皆为对象
程序是对象的集合,可以通过发送消息来告知彼此所要做的
每个对象都有自己的由其他对象所构成的存储
每个对象都拥有类型
某一特定类型的所有对象都可以接收同样的消息
对象具有状态、行为和标识
5.将对象作为服务提供者
三.操作符
1.别名问题:给对象赋值,实质是对象的引用
2.等价性:==,完全相同,尤其是针对对象(对象的引用)
特殊方法:
equals,如果是自定义的类,需要覆盖equals方法
3.与或非操作只可用于布尔值
4.布尔类型可以执行位与、或、异或,但不能执行位非操作,移位表达式不能使用布尔运算