##虚拟机
虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。
虚拟系统通过生成现有操作系统的全新虚拟镜像,它具有真实windows系统完全一样的功能,进入虚拟系统后,所有操作都是在这个全新的独立的虚拟系统里面进行,可以独立安装运行软件,保存数据,拥有自己的独立桌面,不会对真正的系统产生任何影响 ,而且具有能够在现有系统与虚拟镜像之间灵活切换的一类操作系统。
Java虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。Java虚拟机屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。
Java虚拟机由五个部分组成:一组指令集、一组寄存器、一个栈、一个无用单元收集堆(Garbage-collected-heap)、一个方法区域。这五部分是Java虚拟机的逻辑成份,不依赖任何实现技术或组织方式,但它们的功能必须在真实机器上以某种方式实现。
Java虚拟机(Java Virtual Machine 简称JVM)是运行所有Java程序的抽象计算机,是Java语言的运行环境,是一个可以执行Java字节码的虚拟机进程。Java源文件,就是.java的文件,被编译成能被Java虚拟机执行的字节码文件,就是.class文件。只有安装了Java虚拟机,Java才能在操作平台上运行。
java将类加载的过程分为三段,1加载,查找并加载类的二进制数据,2连接验证,并确保加载类的正确性;准备,为类的静态变量分配内存;解析,把类的符号引用转化为直接引用.3初始化,为类的静态变量赋予初始值。
类的初始化情况;
1创建类的时候会初始化
2访问类或者接口的静态变量都会初始化
3调用类的静态方法
4反射
5调用一个类的子类(会先初始化父类)
每个类都有一个无参的方法,可写可不写。
静态代码块static {System.out.println("静态代码块")} 先父类的静态变量,再父类静态方法,再子类的静态变量,子类静态方法,父类的非静态属性,父类非静态构造方法,子类的非静态属性,子类的非静态构造方法
ul是无序列表