1.Java语言跨平台原理
- 平台指的是不同类型的操作系统。Java语言可以跨平台是因为Java语言使用Java虚拟机屏蔽了具体的操作系统信息,不同的操作系统对应着不同的Java虚拟机。不同的操作系统只要安装对应该平台的Java虚拟机,就可以运行由Java编译程序生成的字节码,这就是所谓的一次编译,到处运行。Java语言是跨平台的,但是Java虚拟机不跨平台。
2.JRE和JDK
- JDK = JRE+开发工具
- JRE = JVM+核心类库
JVM:Java虚拟机,可以实现Java语言的跨平台性,主要负责jvm字节码的解释运行
JRE:Java运行环境,包含JVM和核心类库
JDK:Java开发工具包,包含JRE和开发工具
3.常用DOS命令
- cls:清屏
- 盘符名称:表示盘符切换。比如说切换到E盘:
E:
- cd 目录:进入单极目录
- cd ..:回退到上一级目录
4. Java语言中的注释
- 单行注释://
- 多行注释: /**/
- 文档注释:格式为:/** 注释信息*/
/**
* This is the first simple program
* @version 1.0
* @author NrvCer
*/
5.关键字
- 关键字:Java语言中已经赋予特殊含义的英文单词。比如说break、public等。
6.常量和变量
- 空常量:null,null是任何引用类型的默认值,其值赋值给引用变量,表示该引用变量不引用任何对象,不能直接输出空常量。
System.out.println(null); // error
- 变量:在程序运行过程中,其值可以改变的量。
7.数据类型
数据类型包括基本数据类型和引用数据类型
1.基本数据类型
注意:Java中没有任何无符号形式的int,short,long,byte类型。
基本数据类型如下:
- 整数:byte(1个字节,范围-128~127),int,short,long(整数默认是int类型,123564L表示long类型的整数)
- 浮点数:double(8个字节),float(4个字节)(浮点数默认是double类型,13.14F表示float类型的浮点数)
- double 类型除于0,不会出现编译错误,结果是无穷大的(Infinty);整数除零将产生一个异常。
- 基本的整数和浮点数精度不能满足需求时,就可以使用Java.math包下的两个类BigInteger和BigDecimal类。
- 字符:char
- 非数值型(布尔型):boolean
注意:字符类型的变量需要的字节数是2(对于大多数常用的Unicode字符来说是这样的,有的辅助字符需要四个字节),使用的字符编码是unicode。char类型的值可以表示为十六进制值,范围从\u0000到\uffff。
// 基本数据类型的封装类型的SIZE常量,该常量用来以二进制补码形式表示基本数据类型值的比特位数。
int charSize = Character.SIZE; // 16
System.out.println(" char size: " + (charSize/8) + "Byte" );
System.out.println(Character.BYTES); // 2
2.引用数据类型
引用数据类型如下:
- 类:class
- 接口:interface
- 数组:[]
8.标识符
标识符的命名规则中,可以使用$(美元符)开头。
9.类型转换
- 自动类型转换:把一个表示数据范围小的数值或者变量转换为另一个表示数据范围大的变量,就会进行自动类型转换。例如:
double d = 10 // 将整形转化为double型
表示数据范围从小到大转换关系图如下:
byte a = 10;
// byte转换为char类型不兼容,不可以进行转换
char b = a; // error
// int转换为float可能造成精度的损失
int n = 123456789;
float f = n;
- 强制类型转换:把一个表示数据范围大的数值或者变量转换为另一个表示数据范围小的变量。例如:
int k = (int)88.88 // k为88
note:不建议进行数据类型的强制转换,这样会造成数据的丢失 - 基本类型与String之间的转换
1. 基本类型转化为String:直接拼接空字符串即可
int a = 1024;
String str = a + "";
System.out.println(str); // 1024
2. String转化为基本类型:目标类型.parseXXX(待转换的内容);
String str = "1024";
int a = Integer.parseInt(str);
System.out.println(a); // 1024
- 在Java中,整数值和布尔值之间不能进行相互转换。