接下来一段时间,会持续发布一个JavaSE学习笔记系列文章!
1.面向对象的思想
- 要考虑问题有哪些类和哪些对象。
- 要考虑这些类和这些对象有哪些行为和属性。
- 考虑类和类之间具备了哪些关系。(继承、多态、实现、关联)
2.对象的定义
可以看成静态属性(成员变量)和动态属性(方法)的封装体。(必须首先定义类才能有对象)
3.类的定义
类是用来创建同一类型的对象的“模板”,在一个类中定义了该类的对象所应具有的成员变量与方法。(最合适的方法应该定义在最合适的类中)
4.局部变量
Java中的任何局部变量应该先声明,然后赋值,最后再使用。定义成员变量时可以对其初始化,也可以不初始化(这时Java中给出默认初始化)。成员变量的作用范围是整个类体。
5.变量类型
Java中除基本类型之外的变量类型都是引用类型。Java中的对象是通过引用对其操作的。引用相当于C/C++的指针。在Java中,传参时,都是以传值的方式进行的。对于基本数据类型,传递的是数据的拷贝。对于引用类型,传递的是引用的拷贝。基本数据类型是内存中的一小块区域。引用类型是内存中的两小块区域。(堆和栈)
6.类、变量、方法的区别
类是静态的概念,在代码区中。对象是new出来的,位于堆内存(用来动态分配内存的)中。类的每个成员变量在每一个对象中都有不同的值(除了静态变量),而方法只有一份,执行的时候才占用内存。对象只能在运行时分配内存。(局部变量是分配在栈内存中的)
7.变量类型的内存分配
基础类型的变量只有一块内存(栈内存),而引用类型的变量有两块内存(堆内存与栈内存)。(方法的返回值也存在于一个临时的变量里,在栈内存中)
8.方法调用
方法调用完毕之后,在栈空间中为对内存分配的局部变量自动消失。方法的参数可以看作是局部变量。
9.编程语言的一般内存分布
- 静态数据存在于data segment中.
- 用new, malloc等动态生成的对象和数据存放在heap堆中.
- 局部变量存在于stack堆栈中.
10.使用new关键字创建对象
- 使用对象(引用).成员变量来引用对象的成员变量
- 使用对象(引用).方法(参数列表)来调用对象的方法
- 同一类的每个对象有不同的成员变量存储空间
- 同一类的每个对象共享该类的方法(静态的代码,只有在运行时才被分配到内存) 非静态方法是针对每个对象进行调用的。