// TODO: –
Design Pattern
《Head First Java》03_primitive主数据类型和引用
变量分为
primitive主数据
类型和引用
声明变量
- 必须声明所有变量的类型
- primitive主数据类型用来保存基本类型的值,包括整数、布尔和浮点数等
- 对象引用保存的是对象的引用
- variables must have a type, variables must have a name.
- 类型在前,名称在后 int count;
primitive主数据类型(也叫基本数据类型)的大小
类型 | 位数 | 值域 | |
boolean | 由JVM决定 | true / false | |
char | 16 bits | 0 ~ 65535 | |
byte | 8 bits | -128 ~ 127 | |
short | 16 bits | -32768 ~ 32767 | |
int | 32 bits | -2147483648 ~ 2147483647 | |
long | 64 bits | -很大 ~ +很大 | |
float | 32 bits | 范围规模可变 | |
double | 64 bits | 范围规模可变 | |
溢位
:某个类型不足以装下某个具体值,会丢失精度
变量的命名规则
- 能包含字母、数字、下划线
- 但是字母不能在开头
关键字 key words
对象类型的引用
《Head First Java》02_类与对象
面向对象具有较强的
适应性
与可拓展性
面向对象的继承Inheritance
- 找出相同类的共同部分
- 将共同部分提取成新的类
- 将旧类以继承关系连接到新类
- 子类可以覆盖父类的方法,来实现字类特有的方法
- 父类比较抽象,字类比较具体
以对象来思考
- 当设计一个类时,要记得对象是靠类的模型塑造出来的
- 对象是已知的事物(实例变量instance variable)表示对象的状态,每个独立的对象都会拥有一份该类型的值
- 对象会执行的动作(方法methods)表示对象的行为
创建对象
- 编写类
- 编写测试用的类
- 在测试用的类中创建对象,并存取对象的变量、调用对象的方法
Java会拾荒(主动管理内存)
创建出来的Java对象会被存储在叫做堆(Heap)
的内存中,这个堆最大的特点是支持回收垃圾(Garbage-Collectible Heap)
,若Java虚拟机
察觉到某个对象将不会再被使用时,便会将其标记为“可回收”
,当内存开始不足,垃圾收集器便会启动来清理垃圾回收空间,让空间能够再次被利用。
问与答
如何创建全局的变量或方法?
使用public
、static
和final
修饰
全局的函数与数据,是否与面向对象的概念相违背?
什么是Java程序,以及如何提交?
Java类由一组类组成,其中有一个类带有启动用的main()方法
,用户需要安装Java虚拟机
才能让程序运行。
若有成百上千个类时要如何提交?是否可以包装成类似单一应用程序的形式?
可将所有文件包装进依据pkzip格式
来存档的Java Archive(.jar
)文件,在该文件中可引入一个叫做manifest
的文件、其内部定义jar的哪个文件带有启动程序的main()方法
要点
- 面向对象设计拓展功能不需要改动之前已经测试好的程序代码
- 所有的Java程序都定义在类中
- 类如同蓝图、描述该类型的对象要如何创建
- 对象自治,你无需在于它如何完成任务
- 对象有已知的事物,并能执行工作
- 对象本身已知道的事物称为实例变量,它代表对象的状态
- 对象可执行的动作称为方法,它代表对象的行为
- 创建类时,可能同时会需要创建独立、测试用的类
- 类可以继承自较为抽象的父类
- Java的程序在执行期是一组会互相交谈的对象
《Head First Java》01_基本概念
Java的特点:
- 友好的语法、
- 面向对象、
- 内存管理、
- 跨平台可移植性。
目标:write once and run-anywhere.
工作方式:
- 源代码(.java格式)
- 编译器编译(javac)
- 字节码(.class格式)
- 在jvm上运行(可以将字节码转换成平台能够理解的形式来运行)
比如新建的一个java文件叫做MyFirstApp.java
使用javac编译器指令javac MyFirstApp
会将其编译成MyFirstApp.class
最后使用%java MyFirstApp
就能运行,但是得确保MyFirstApp.java
内部有且仅有一个main函数
。
Java的版本:
- 1.02到1.1都算Java
- 1.2、1.3、和1.4都叫Java 2
- 1.5开始叫做Java 5.0