java背景以及基础
java发展史
java是1995年由sun公司推出的一款程序设计语言。发明者是java之父詹姆斯·高斯林。
- 版本变迁
- 1995 java 1.0
- 1996 JDK 1.0 (java第一个运行环境)
- 1997 JDK1.1
- 1998 JDK1.2
- 2000 JDK1.3
- 2002 JDK1.4
- 2004 JDK5.0
- 2006 JDK6.0
- 2009 oracle收购sun公司
- 2014 JDK8.0 (常用版本)
- 2017 JDK9.0
- 至今 JDK11.0
java跨平台原理
java并非直接运行, 而是编译器将java文件编译为无关字节码的class文件, 再由专门的解释程序java虚拟机执行。
不同的操作系统,只需要安装对应的JVM虚拟机就能实现java的跨平台。
JRE和JDK
JVM: java虚拟机
JRE: java运行环境,包含了JVM和Java的核心类库
JDK: java开发工具, 包含了JRE和开发工具
java开发环境直接安装JDK即可。
Hello Java
/*
类是java的基本单位。
类的写法是固定的。
public class 类名。
java主类名必须与java文件名相同, 使用大驼峰命名规则。
*/
public class HelloJava {
// main方法写法固定, 是程序的入口方法
public static void main(String[] args) {
//输出语句
System.out.println("Hello Java");
}
}
常量
- 程序执行过程中不会改变的量。
- 字符串类型: “HelloWorld”
- 整数类型: 88 || -88
- 小数类型: 8.8 || -8.8
- 字符类型: ‘a’
- 布尔类型: true || false
- 空类型: null
除了null其它常量可以直接输出。
数据类型
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 |
变量
变量声明: 关键字 变量名 = 变量值;
public class VariableDemo {
public static void main(String[] args) {
int a = 10;
byte b = 20;
short s = 300;
long l = 1000000000000L; // 使用long最后必须加L
double d = 1.2;
float f = 2.44F; //使用float 最后必须加F
char a = 'a';
boolean flag = true;
}
}
变量使用注意点:
- 在同一个作用域 {} 中, 变量名不可重复。
- 变量必须初始化(赋值)才能使用。
- 使用 long 和 float 时, 防止报错, 最后必须加 L 或 F。
类型转换
在java中, 数据类型是可以相互转换的。 数据转换分为自动类型转换和强制类型转换。
-
自动类型转换, 小范围类型转为大范围类型, 可以直接书写。 注意 char 和 byte 、 short 不能互转。char转int会转为ASCll码。
-
强制类型转换: 大范围转换为小范围, 有可能会造成数据丢失, 谨慎使用。格式: 关键字 变量名 = (类型关键字) 值;
public class ConversionDemo {
public static void main(String[] args) {
// 自动类型转换
byte b = 10;
short s = b;
int num1 = b;
int a = 'a'; // 转 ASCll: 97
// 强制类型转换
int num2 = (int)10.8; // 10
// 特殊强制转换
byte b1 = 10;
byte b2 = 20;
// 因为 整数型默认为int, byte short 在计算时会自动转换为 int 所以会报错。
// byte b3 = b1 + b2; //报错
//正确写法
int num3 = b1 + b2;
// 或
byte b3 = (byte) (b1 + b2);
}
}
boolean 类型不与其他基本类型进行相互转换。