Java语言跨平台原理
Java程序并非是直接运行的,Java编译器将Java源程序编译成与平台无关的字节码文件(class文件),然后由Java虚
拟机(JVM)对字节码文件解释执行。所以在不同的操作系统下,只需安装不同的Java虚拟机即可实现java程序的
跨平台
JRE和JDK
JVM(Java Virtual Machine),Java虚拟机
JRE(Java Runtime Environment),Java运行环境,包含了JVM和Java的核心类库(Java API)
JDK(Java Development Kit)称为Java开发工具,包含了JRE和开发工具
JDK的目录
bin 该路径下存放了JDK的各种工具命令javac和java就放在这个目录
conf 该路径下存放了JDK的相关配置文件
include 该路径下存放了一些平台特定的头文件
jmods 该路径下存放了JDK的各种模块
legal 该路径下存放了JDK各模块的授权文档
lib 该路径下存放了JDK工具的一些补充JAR包
注释
注释是对代码的解释和说明文字,可以提高程序的可读性,因此在程序中添加必要的注释文字十分重要。Java中的
注释分为三种:
单行注释 单行注释的格式是使用//,从//开始至本行结尾的文字将作为注释文字
多行注释 多行注释的格式是使用/ 和 /将一段较长的注释括起来
文档注释 文档注释以/* 开始,以/ 结束
关键字
关键字是指被java语言赋予了特殊含义的单词
关键字的特点:
关键字的字母全部小写
常用的代码编辑器对关键字都有高亮显示,public、class、static等
常量
常量:在程序运行过程中,其值不可以发生改变的量
Java中的常量分类:
字符串常量 用双引号括起来的多个字符(可以包含0个、一个或多个),”a”、”abc”、”中国”等
整数常量 整数,例如:-10、0、88等
小数常量 小数,例如:-5.5、1.0、88.88等
字符常量 用单引号括起来的一个字符,’a’、’5’、’B’、’中’等
布尔常量 布尔值,表示真假,只有两个值true和false
空常量 一个特殊的值,空值,值为null
除空常量外,其他常量均可使用输出语句直接输出。
数据类型
Java是一个强类型语言,Java中的数据必须明确数据类型。在Java中的数据类型包括基本数据类型和引用数据类型
两种。
Java中的基本数据类型:
数据类型 | 关键字 | 内存占用 | 值 |
---|---|---|---|
整数类型 | byte | 1 | -128~127 |
short | 2 | -32768~32767 | |
int(默认) | 4 | -2的31次方到2的31次方-1 | |
long | 8 | -2的63次方到2的63次方-1 | |
浮点类型 | float | 4 | 负数:-3.402823E+38到-1.401298E-45 正数:1.401298E-45到 3.402823E+38 |
double(默认) | 8 | 负数:-1.797693E+308到-4.9000000E-324 正数:4.9000000E-324 到1.797693E+308 |
|
字符类型 | char | 2 | 0-65535 |
布尔类型 | boolean | 1 | true,false |
在java中整数默认是int类型,浮点数默认是double类型
变量
变量:在程序运行过程中,其值可以发生改变的量
从本质上讲,变量是内存中的一小块区域,其值可以在一定范围内变化
变量的定义格式:
数据类型 变量名 = 初始化值; // 声明变量并赋值
int age = 18;
System.out.println(age);
或者
// 先声明,后赋值(使用前赋值即可)
数据类型 变量名;
变量名 = 初始化值;
double money;
money = 55.5;
System.out.println(money);
使用变量时的注意事项
1. 在同一对花括号中,变量名不能重复
2. 变量在使用之前,必须初始化(赋值)
3. 定义long类型的变量时,需要在整数的后面加L(大小写均可,建议大写)。因为整数默认是int类型,整数太
大可能超出int范围
4. 定义float类型的变量时,需要在小数的后面加F(大小写均可,建议大写)。因为浮点数的默认类型是
double, double的取值范围是大于float的,类型不兼容
标识符
标识符是用户编程时使用的名字,用于给类、方法、变量、常量等命名
Java中标识符的组成规则:
由字母、数字、下划线“_”、美元符号“$”组成,第一个字符不能是数字
不能使用java中的关键字作为标识符
标识符对大小写敏感(区分大小写)
Java中标识符的命名约定:
小驼峰式命名:变量名、方法名
首字母小写,从第二个单词开始每个单词的首字母大写
大驼峰式命名:类名
每个单词的首字母都大写
类型转换
在Java中,一些数据类型之间是可以相互转换的。分为两种情况:自动类型转换和强制类型转换
自动类型转换:
把一个表示数据范围小的数值或者变量赋值给另一个表示数据范围大的变量,这种转换方式是自动的,直接书写即
可,例如:
double num = 10; // 将int类型的10直接赋值给double类型
System.out.println(num); // 输出10.0
强制类型转换:
把一个表示数据范围大的数值或者变量赋值给另一个表示数据范围小的变量。
强制类型转换格式:目标数据类型 变量名 = (目标数据类型)值或者变量;例如:
double num1 = 5.5;
int num2 = (int) num1; // 将double类型的num1强制转换为int类型
System.out.println(num2); // 输出5(小数位直接舍弃)