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);
}
}