Java特性
- 简单性
在java语言中,不需要程序员自己操作内存,这些工作转为JVM操作。所有的java程序都是运行在JVM当中,而JVM执行过程中回去操作内存。
C和C++可以直接操作内存,更加灵活,效率更高,但容易出现内存泄漏。
- 健壮性
主要是因为java中有一种机制,自动垃圾回收机制(GC机制),所以不容易出现内存泄漏问题,GC机制由JVM负责调度。
- 可移植性
java语言只要编写一次,可以做到到处运行。
- 完全面向对象
- 完美支持多线程开发
JDK、JRE、JVM三者关系
JDK:Java开发工具箱
JRE:Java运行环境
JVM:Java虚拟机
JDK包括JRE,JRE包括JVM。
JVM是不能独立存在的。
JRE和JDK都可以独立安装,有单独的JRE安装包,但没有独立的JVM安装包。
安装JDK的时候,JRE就自动安装上了,同时JRE内部的JVM也就自带安装上了。
问题一:假设你在软件公司开发了一个新软件,现在需要到客户的电脑上把项目部署一下,跑起来看看,需要安装JDK吗?
答:不需要,只需要安装JRE即可,JRE体积很小,安装非常便捷。
问题二:为什么安装JDK的时候会自带一个JRE?
答:因为程序员一般开发的过程或结束,都需要进行测试,需要运行程序。
Java技术划分
- JavaSE:标准版,基础,不管从事企业版还是微型版,都要打好这个基础。
- JavaEE:企业版,web开发,大多应用于电脑。
- JavaME:微型版,大多应用于手机的软件。
Java程序开发到运行过程
- 编译期
- 新建xxx.java文件;
- 用记事本或其他文本编译器如notepad++,打开xxx.java文件;
- 在xxx.java文件内编写符合语法规则的源代码,最后保存;
- 使用编译器(javac ,JDK安装后自带)对xxx.java进行编译,生成一个或多个.class字节码文件;
- 运行期
- 如果在Linux运行,需要将Windows编译后的class文件拷贝过去,不需要拷贝源代码;
- 使用JDK自带的工具java执行字节码文件;
- 往下的步骤全部交给JVM,JVM会将字节码文件装载进去,然后对其进行解释,即转换为二进制;
- JVM会将生成的二进制文件交给操作系统,操作系统会执行二进制码和硬件进行交互。
注意:以上有两个重要命令。
javac:负责编译;
java:负责运行;
javac Java源程序的绝对路径或相对路径
java 类名 (需要先cd到class文件目录)
类加载默认是在当前目录下加载class文件,所以需要运行前切换到对应class文件的目录。但我们可以通过设置classpath环境变量,但不推荐,因为一但设置了指定路径,就只会到指定路径找,不会从当前目录找。
classpath环境变量隶属于Java,不属于Windows系统,格式为:
classpath A路径;B路径;C路径…
Java命名规范
- 见名之意
- 遵循驼峰命名方式
一高一低,一高一低,用于区分每个单词。如:MyWorld
- 类目、接口名首字母大写,后面连续的单词首字母也大写。
如:MyWorld、StudentTest
- 变量名和方法名首字母小写,后面连续的单词首字母大写。
如:myWorld、studentTest
.5. 常量全部大写,连续单词用下划线分隔。
如 MY_WORLD、MATH_PI