Java学习日记
Java
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。
Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点 。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等 。【摘自百度百科】
Java的体系
JavaSE
Java SE:Java Platform,Standard Edition
标准版:各应用平台的基础,桌面开发和低端商务应用的解决方案
JavaEE
Java EE:Java Platform,Enterprise Edition
企业版:以企业为环境而开发应用程序的解决方案
JavaME
Java ME:Java Platform,Micro Edition
微型端:致力于消费产品 和嵌入式设备的最佳解决方案
跨平台性
通常使用javac命令将.java进行编译成.class文件(即Java字节码),使用java命令运行该文件,可在JVM虚拟机得到运行结果。
一次编译后,可以多处使用。
在不同的系统装有JVM,就可以运行这个.class文件。
JVM与GC
JVM(Java虚拟机):
JVM可以理解一个可运行Java字节码的虚拟计算机系统。
它有一个解释器组件,可以实现Java字节码和计算机操作系统之间的通信。
对不同的运行平台,有不同的JVM。
JVM屏蔽了底层运行平台的差别,实现了“一次编译,随处运行”
GC(垃圾回收器):
不再使用的内存空间应当进行回收-垃圾回收。
在C/C++等语言中,由程序员负责回收无用内存。
Java语言消除了程序员回收无用内存空间的责任。
JVM提供了系统线程,用于跟踪存储空间的分配情况,检查并释放那些可以被释放的存储空间。
垃圾回收在Java程序运行过程中自动启用,程序无法精确控制和干预。
JDK与JRE
JDK(Java Development kits)——JAVA开发工具集
1.JRE(Java Runtime Environment)Java运行时环境
JVM
Java API(应用程序编程接口)
2.Java编译器(javac.exe)、Java运行解释器(java.exe)、Java文档化工具(Javadoc.exe)
JRE的三项主要功能
加载代码:由类加载器(class loader)完成;
检验代码:由字节码检验器(byte code verifier)完成;
执行代码:由运行时解释器(runtime interpreter)完成。
JDK安装
建议使用较为稳定的JDK版本
下面以JDK11为例
JDK11安装及配置
登录oracle下载jdk11的安装包
1、双击安装包
2、点击下一步
3、更改安装路径 点击下一步完成安装
4、双击我的电脑
5、点击属性 进入我的电脑属性页面
6、找到高级系统属性,并点击
不同版本可能位置不同,这里使用windoows10专业版演示
7、点击环境变量
8、点击新建,输入JAVA_HOME,并在变量值填入jdk安装路径,点击确定
9、打开path,点击新建,填入%JAVA_HOME%\bin,点击确定
在windows环境引入变量时,需使用“% %”将变量括起来,从而引用变量
10、win+R
11、输入cmd,点击确定,进入DOS界面
12、测试在任意位置是否可以使用jdk中\bin的java
13、检查版本,确定JDK安装成功
配置环境变量的原因
在安装完成某一软件的时候,我们并不是可以直接在任意位置运行使用,需要到达安装目录才可以打开,而环境变量的存在就是方便系统在任何时候使用任意配置程序。
而为了方便我们可以在任何位置调用java中的java(运行)、javac(编译)的功能,所以要将JDK配置环境变量。
代码训练
第一串可运行代码
class FirstDemo{
/**
*文档注释
*hello world
*/
public static void main(String[] args){
//单行注释
//输出hello world
System.out.println("Hello world!");
}
}
第一个可操作程序
import java.io.IOException;
class FirstJob{
public static void main(String[] args){
//运行系统定时关机命令
Runtime.getRuntime.exec("shutdown -s -t 3600");
}
}
import java.io.IOException;
class FirstJob{
public static void main(String[] args){
//取消系统关机命令
Runtime.getRuntime.exec("shutdown -a");
}
}
然而该代码在编译器中会被认为可能出现异常,所以需要抛出异常。
常使用 try catch 和throws 来完成抛出异常的工作。
以try catch演示:
import java.io.IOException;
public class SecondJob {
public static void main(String[] args) {
try {
Runtime.getRuntime().exec("shutdown -a");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}