标签:mode oid ceo 汽车 结构 管理 特殊 编译器 基本
对象是对客观事物的抽象,类是对对象的抽象。类是一种抽象的数据类型。
public class T {
void a(){
System.out.println("a");
}
int a=1;
}
public class test {
public static void main(String[] args) {
T t=new T();
System.out.println(t.a);
t.a();
}
}
内存管理:
程序计数器:程序计数器是一个比较小的内存区域,用于指示当前线程所执行的字节码执行到了第几行,可以理解为是当前线程的行号指示器
栈:栈分为虚拟机栈和本地方法栈,既然都是栈,那么就具有相同的特性:私有的,线程安全,栈中存储了基本数据类型和对象的引用
堆:堆是线程共享的,存储的是对象的实例,有的地方写存储的是对象的实例和数组,实际上数组是特殊的类,那么数组也属于对象的实例。
方法区:方法区(Method Area)与Java堆一样,是各个线程共享的内存区域,它用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据
常量池:运行时常量池(Runtime Constant Pool)是方法区的一部分。Class文件中除了有类的版本、字段、方法、接口等描述等信息外,还有一项信息是常量池(Constant Pool Table),用于存放编译期生成的各种字面量和符号引用,这部分内容将在类加载后存放到方法区的运行时常量池中。
垃圾回收:
当某个一个对象,没有任何引用指向它的时候,那么它就满足垃圾回收的条件,在适当的时候,JVM虚拟机进行GC将其回收,释放空间,以供后续再利用。JVM的垃圾回收机制使得开发人员从手动释放内存资源的过程中解放出来。开发人员可以更加专注的进行业务功能的开发。
抽象,继承,多态
依赖关系:对象之间最弱的一种关联方式,是临时性的关联。代码中一般指由局部变量、函数参数、返回值建立的对于其他对象的调用关系。
关联关系:对象之间一种引用关系
如:
public class test {
private T t;
}
class T{
}
聚合:聚合(关联关系的一种):表示has-a的关系。与关联关系一样,聚合关系也是通过实例变量来实现这样关系的。关联关系和聚合关系来 语法上是没办法区分的,从语义上才能更好的区分两者的区别。
如汽车类与引挚类,轮胎类之间的关系就是整体与个体的关系。
组合:对象A包含对象B,对象B离开对象A没有实际意义。是一种更强的关联关系。人包含手,手离开人的躯体就失去了它应有的作用。
继承:类与类的继承关系,类与接口的实现关系。
Java中所有的类都有一个共同的祖先。这个祖先就是Object类。如果一个类没有用extends明确指出继承于某个类,那么它默认继承Object类。
Object类是Java中所有类的基类。位于java.lang包中,一共有13个方法。
如果子父类中出现同名的非私有变量时,子类要访问本类的这个同名变量,用this关键字。子类要访问父类中的同名变量,用supper关键字。方法看右。
子类重写父类方法,也是多态。
继承就是多态的表现,虚拟方法调用看右
public class Zi extends Fu {
int a=20;
void a(){
System.out.println("Zi");
}
public static void main(String[] args) {
Zi zi=new Zi();
System.out.println(zi instanceof Fu);
}
}
Person[] person = {new Person("张三", 32),
new Student("李四", 21, 120, 90.0),
new Student("王五", 22, 119, 91.5),
new Teacher("刘老师", 35, 10, "Java EE"),
new Teacher("张老师", 11)};
父类作为参数但是可以传进去子类
从子类到父类的类型转换可以自动进行;
从父类到子类的类型转换必须通过造型(强制类型转换)实现;
标签:mode oid ceo 汽车 结构 管理 特殊 编译器 基本
原文地址:https://www.cnblogs.com/ltdh/p/13027181.html