Java语言跨平台的原理
JVM
- 我们编写的Java代码都运行在JVM虚拟机上,Java的虚拟机本身不具备跨平台功能,但每个操作系统下都有不同版本的虚拟机,从而实现了跨平台

 
JRE
- Java程序的运行时环境,包含JVM和运行时所需要的核心类库
 
JDK
- Java程序开发工具包,包含JRE和开发人员使用的工具

 
JDK下载和安装
下载地址
配置环境变量
属性 -> 高级系统设置 -> 环境变量 -> 系统变量
新建 JAVA_HOME
在PATH中添加 %JAVA_HOME%\bin
显示如下则配置成功

Helloworld
编写helloworld.java
public class HelloWorld {
      public static void main(String[] args) {
        System.out.println("HelloWorld");
      }
}
编译成helloworld.class源文件
javac helloworld.java运行程序
java helloworld查看效果

代码编写的常见问题
- 单词拼写错误
 - 没严格区分大小写
 - 标点符号必须使用中文
 - 括号必须成对出现
 - 字符编码问题
 
源文件与类名是否要一致?
- 如果这个类不是public,那么源文件名可以和类名不一致
 - 如果这个类是public,那么要求源文件名必须与类名一致
 
源文件中是否可以有多个类?
- 一个源文件中可以有多个类,编译后会生成多个.class字节码文件
 - 但是一个源文件只能有一个public的类
 
main必须在public的类中吗?
- 不是,但是习惯上写在public中
 
注释
单行注释
// 注释内容
多行注释
/*
    注释内容
*/
关键字
关键字共50个,其中const、go是保留字
true、false、null不是关键字

常量
定义
- 在程序执行的过程中,其值不可以发生改变的量
 
示例
public class ConstantDemo {
    public static void main(String[] args) {
        //字符串常量
        System.out.println("HelloWorld");
        //整数常量
        System.out.println(12);
        System.out.println(-23);
        //小数常量
        System.out.println(12.34);
        //字符常量
        System.out.println('a');
        System.out.println('0');
        System.out.println('沙');
        //布尔常量
        System.out.println(true);
        System.out.println(false);
    }
}
标识符
命名规则
- 只能使用26个英文字母大小写,0-9的数字,下划线_,美元符号$
 - 不能使用Java的关键字(包含保留字)和特殊值
 - 数字不能开头
 - 不能包含空格
 - 严格区分大小写
 
命名规范
见名知意
类名、接口名等:每个单词的首字母都大写
变量、方法名等:从第二个单词开始首字母大写,其余字母小写,形式
包名等:每一个单词都小写,单词之间使用点.分割
常量名等:每一个单词都大写,单词之间使用下划线_分割
基本数据类型
数据类型
基本数据类型
整数、浮点数、字符、布尔
引用数据类型
类、数组、接口
四类八种数据类型

变量
定义
- 在程序执行过程中,其值可以发生改变的量
 
使用变量时的注意点
- 先声明后使用
 - 在使用之前必须初始化
 - 变量有作用域
 - 同一个作用域中变量不能重名
 
示例
public class VariableDemo {
    public static void main(String[] args){
        // 定义字节型变量
        byte b = 100;
        System.out.println(b);
        // 定义短整型变量
        short s = 1000;
        System.out.println(s);
        // 定义整型变量
        int i = 123456;
        System.out.println(i);
        // 定义长整型变量
        long l = 12345678900L;
        System.out.println(l);
        // 定义单精度浮点型变量
        float f = 5.5F;
        System.out.println(f);
        // 定义双精度浮点型变量
        double d = 8.5;
        System.out.println(d);
        // 定义布尔型变量
        boolean bool = false;
        System.out.println(bool);
        // 定义字符型变量
        char c = 'A';
        System.out.println(c);
        // 定义字符串变量
        String s = "HelloWorld";
        System.out.println(s);
    }
}
