一、实例化
(1)实例化是什么
- 在Java中,使用已经定义好的类,创建该类对象的过程称为“实例化”。
- 实例化就是在堆中分配内存的过程。
- 只有实例化后的对象,才能访问到类中的成员变量和方法。
(2)实例化的4种方式
- ⽤new直接创建
- 调⽤clone()⽅法,进⾏实例的拷贝
- 使⽤Java反射创建
- 通过反序列化类获取
[反序列化]: 将流转化成对象的过程
二、面向过程与面向对象
面向过程:
面向过程性能比面向对象高。因为类调用时需要实例化,开销比较大,比较消耗资源,所以当性能是最重要的考量因素的时候,比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发。但是,面向过程没有面向对象易维护、易复用、易扩展。
面向对象:
面向对象易维护、易复用、易扩展。 因为面向对象有封装、继承、多态性的特性,所以可以设计出低耦合的系统,使系统更加灵活、更加易于维护。但是,面向对象性能比面向过程低。
三、JVM
jvm是Java虚拟机是运行Java字节码的虚拟机。jvm针对不同的操作系统有特定的实现。
Java程序从源码到运行有一下3步。
- .java文件(源代码),在JDK中的javac编译之后形成.class文件
- .class文件(jvm可以理解的Java字节),经过jvm变成机器可以执行的二进制机器码
- 二进制机器码
四、进程与线程
进程
进程是程序的一次执行过程,是系统运行程序的基本单位。进程是动态的。下图是windows当前运行的进程。
线程
线程和进程相似,但是线程比进程更小的执行单位。一个进程在执行过程中可以产生多个线程。与进程不同的是同类的多个线程共享进程的堆和方法区的资源,但是每个线程有自己的程序计数器,虚拟机栈和本地方法栈。