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

变量使用注意点:

  1. 在同一个作用域 {} 中, 变量名不可重复。
  2. 变量必须初始化(赋值)才能使用。
  3. 使用 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 类型不与其他基本类型进行相互转换。