Java提倡一切皆对象的思想,这样将更有利于开发人员对事物的抽象和描述。
1.对象:解空间中的元素及其在解空间中的表示称为“对象”。
2.class由来:在程序执行期间具有不同的状态而其他方面都有相似的对象会被分组到对象的类中,这就是class的由来。
3.对象即类型:在面向对象程序设计中实际上进行的是创建新的数据类型(即:每个对象就是新的数据类型)。
4.类:描述了具有相同特征(数据元素)和行为(功能或方法)的对象集合。
5.对象的内涵:对象可以看作服务提供者,一个完整的程序可以看成多个服务提供者的组合。
6.Java的访问控制:public(项目中的所有类都可以访问)、private(只能是类创造者可以访问,也就是只有本类的方法可以访问)、protected(本类及继承本类的子类可以访问,但是不能访问private的属性或方法)、默认控制(若没有被前三中控制则默认为此控制方式,控制范围为本包中的所有类之间可以互相访问)
7.单根继承结构,所有的对象都集成Object类。
8.Java程序的存储位置:
- 寄存器--位于处理器内部,速度非常快,根据需求进行分配,程序不能控制也不会察觉。
- 堆栈--位于RAM(随机访问寄存器),存放Java对象引用、基本数据类型的值,堆栈指针向下移动获取新的内存,向上移动释放内存。由于Java系统必须要知道存储在其中项的生命周期以移动指针,所以堆栈速度快但却不灵活。
- 堆--一种通用的内存池(位于RAM),用于存放所有的Java对象(常为new的对象),可以自动进行存储分配。
- 常量存储--存放在程序代码内部,这样做安全,因为不会被改变(特殊情况下也可以存放在只读存储器ROM中)
- 非RAM存储--也就是数据完全存在于程序之外,不会因为程序的运行与否而消失(流对象和持久化对象)。此种存储方式可以 把对象转化成可以存放在其他媒介上的事物。
9.无无符号数据类型:在Java中的所有数值类型都具有正负号,所以并不存在无符号的数值类型。
10.高精度数据类型:Java提供了俩个高精度计算类:BigInteger和BigDecimal。这俩个类虽没有对应的基本数据类型,但是可以作用于int和float的任意操作。它们可以支持任意精度的正数和浮点数。
11.数组创建:Java在创建一个数组对象时,实际创建了一个引用数组,并且会为每个引用自动初始化一个特定值,这样可以避免常见错误。
12.作用域:Java不具有隐藏较大作用域(指程序中的“{}”)中变量的特点,所以不能定义同类型同名字的变量。(C、C++中可以)
13.在一个作用域中创建一个对象并由引用指向,如下:
{
String str=new String("abc");//new一个字符串类型的对象,并由引用str指向这个对象
}
在作用域外引用str会失效,但是str指向的对象仍然占据内存空间,此时需要Java的垃圾回收器根据自己的监测进行释放。
14.关键字static,用来修饰的属性和方法被称为静态变量和静态方法,这些静态的变量在整个类中只占用一个内存空间,也就是对于所有此类的对象而言,静态变量对于这些对象是共享的。静态变量和方法是直接可以通过类名进行调用的,且静态方法不能调用非静态方法和变量,非静态方法可以调用静态方法和变量(原因:静态方法和变量属于类,而非静态的属于对象,类比对象先存在,所以一个存在的去调用不存在的肯定会出错)。
15.Java默认导入的类包为java.lang。
16.Java中默认的编码风格中,类名的首字母大写,后续的其他单词的首字母也大写(呈现驼峰状),而方法、变量以及对象与类名格式一致,只是首字母需小写。