001-Java学习前基础
前言
初次在博客园写博客,想通过这种方式把自己学过的东西梳理一遍,加深自己的记忆,笔记中借鉴了一些老师的笔记加上自己的整理和理解,希望大家可以多多交流学习,写的不好或者有错的地方还请大家多指正!
一、Java语言特性(简单概述)
-
简单性:
java语言底层采用了C++语言实现,屏蔽了指针的概念,使得程序员不需要使用 复杂的指针去操作内存,java语言中真正操作内存的是JVM。 -
面向对象:
Java中提供了封装,继承,多态等面向对象的机制。 -
健壮性:
C++程序当中的无用数据/垃圾需要编程人员手动释放,然而Java不用,因为在Java中引入了 自动垃圾回收机制(GC机制) ,Java 程序启动了一个单独的垃圾回收线程,时刻监测内存使用情况,在特定时机会回收/释放垃圾数据。 -
多线程:
Java语言支持多个线程同时并发执行,同时也提供在多线程环境下的安全机制。 -
可移植/跨平台:
Java语言只需要编写/编译一次,便可以处处运行,原因是:Java程序不是直接运行在操作系统上的,而是需要在操作系统上安装一个JVM,把Java程序放在JVM上运行,JVM屏蔽了各种操作系统之间的差异,这样就实现了跨平台。
二、JDK、JRE、JVM三者关系
- JDK:Java开发工具箱;
- JRE:Java运行环境;
- JVM:Java虚拟机;
注:
JDK包含JRE和JVM;
JVM是不能独立安装的,JDK和JRE可以;
安装JDK的时候,JRE和JVM就自动安装了;
安装JRE时,JVM也自动安装了;
三、java文件的加载与执行
- 先启动JVM;
- JVM启动后,JVM会去启动“类加载器(class loader)”,类加载器的作用就是加载类的,负责去硬盘上找“类”对应的“字节码”文件;
- 类加载器如果在硬盘上找不到对应的字节码文件,则会报:找不到或无法加载主类错误;如果找到,类加载器会将改字节码文件装载到JVM中,JVM启动解释器将字节码解释为“10101000......”这种二进制码,操作系统执行二进制码与硬件进行交互;