Java语言基础
一、引言
1.1 生活中变量
变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。变量可以通过变量名访问。
二、变量【重点
】
2.1 变量的概念
概念:计算机内存中的一块存储空间,是存储数据的基本单元。
2.2 变量的定义流程
声明:数据类型 变量名;int money; (开辟整数变量空间)。
赋值:变量名 = 值;money = 100; (将整数值赋给变量)。
应用:System.out.print(money); 注意:Java是强类型语言,变量的类型必须与数据的类型一致。
public class TestVariable{
public static void main(String[] args){
//声明变量,语法:数据类型 变量名;
int money; //在内存中开辟了一块整数空间
//赋值,语法:变量名 = 值;
money = 100; //将100赋值给money变量空间
System.out.println(money); //打印变量中的值
System.out.println("money"); //打印文本
}
}
2.3 变量的定义方式
声明变量的3种方式:
- 先声明,再赋值:【常用】
- 数据类型 变量名;
- 变量名 = 值;
- 声明并赋值:【常用】
- 数据类型 变量名 = 值;
- 多个同类型变量的声明与赋值:【了解】
- 数据类型 变量1 , 变量2 , 变量3 = 值3 , 变量4 , 变量5 = 值5;
public class TestVarDefined{
public static void main(String[] args){
//声明并赋值
int age = 10; //将声明的语法与赋值的语法合二为一
System.out.println(age);
//同时声明多个同类型变量
int a , b , c , d = 44 , e = 55;
a = 11;
b = 22;
c = 33;
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
System.out.println(e);
}
}
三、数据类型【重点
】
3.1 数据类型
Java中的变量具有严格的数据类型区分。(强类型语言)
在Java语言中,任何一个值,都有其对应类型的变量。
3.1.1 基本数据类型(整数)
注意:int为整数的默认类型,如需为long类型赋值较大整数时,需在值的后面追加“L”。
/**
基本数据类型(整数)
*/
public class TestType{
public static void main(String[] args){
//数据类型 变量名 = 值;
byte b = 127;// -128 ~ 127 (共计256个整数)
System.out.println(b);
short s = 32767;//-32768 ~ 32767 (共计65536个整数)
System.out.println(s);
int i = 2147483647;//-2147483648 ~ 2147483647 (共计42亿多个整数)
System.out.println(i);
//Java中所有的“整数字面值”的默认类型是int,当整数字面值超过int的取值范围时,则提醒“过大的整数”
long l1 = 2147483648L;//显示告知JVM,此值为long类型
long l2 = 9223372036854775807L;//-9223372036854775808L ~ 9223372036854775807L
System.out.println(l1);
System.out.println(l2);
}
}
3.1.2 基本数据类型(小数/浮点数)
- 浮点型数值采用科学计数法表示:
- 2E3 等价于 2 * 10 ^ 3(结果:2000.0)
- 3E5 等价于 3 * 10 ^ 5(结果:300000.0)
注意:double为浮点数的默认类型,如需为float类型赋值时,需要在值的后面追加“F”。
/**
基本数据类型(小数/浮点数)
*/
public class TestType2{
public static void main(String[] args){
//float 单精度浮点型、double 双精度浮点型
double d = 1.2;
System.out.println(d);
double d2 = 1;
System.out.println(d2);
float f = 1.5F; //任何“小数字面值”默认类型都是double,如果要存储到float变量中,需显示追加“F”
System.out.println(f);
//科学计数法
double d3 = 2E3; // 2 * 10 ^ 3
System.out.println(d3);
double d4 = 2E7; // 2 * 10 ^ 7 20000000.0
System.out.println(d4);
float f2 = 5E4F; // 5 * 10 ^ 4 追加F代表float
System.out.println(f2);
//取值范围的差异
//float正数取值范围:0.0000000000000000000000000000000000000000000014F ~ 340000000000000000000000000000000000000.0F
float floatMin = 0.0000000000000000000000000000000000000000000014F; //float的最小正数
float floatMax = 340000000000000000000000000000000000000.0F; //float的最大正数
System.out.println(floatMin);
System.out.println(floatMax);
//float负数取值范围:-340000000000000000000000000000000000000.0F ~ -0.0000000000000000000000000000000000000000000014F
float floatMin2 = -340000000000000000000000000000000000000.0F;//个十百千万亿兆京垓。。。。。那由他
float floatMax2 = -0.0000000000000000000000000000000000000000000014F;
System.out.println(floatMin2);
System.out.println(floatMax2);
//double正数取值范围:
double doubleMin = 4.9E-324;//0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000049;
double doubleMax = 1.7E308;//1700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0;
System.out.println(doubleMin);
System.out.println(doubleMax);
}
}
3.1.3 基本数据类型(布尔)
- 可直接赋值true / false
- 也可赋值一个结果为true / false的表达式
public class TestType3{
public static void main(String[] args){
boolean b1 = false; // true / false
System.out.println(b1);
boolean b2 = 5 > 4;
System.out.println(b2);
}
}
3.1.4 基本数据类型(字符-1)
- 前置知识:
- ASCII(American Standard Code for Informat ion Interchange)美国信息交换标准码。
- 基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。
- ASCII是最通用的信息交换标准,为英文字符设定了统一并且唯一的二进制编码。
3.1.5 基本数据类型(字符-2)
- Unicode编码
- Unicode(万国码)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。
- 它为每种语言中的每个字符设定了统一并且唯一的二进制编码。
- 以满足跨语言、跨平台进行文本转换、处理的要求,(其中包含了ASCII编码)。 3.1.6 基本数据类型(字符-3)
- Unicode中每个字符都对应一个二进制整数,可以使用多种方式赋值。
- 字符赋值:char c1 = 'A';(通过''描述为字符赋值)
- 整数赋值:char c2 = 65;(通过十进制数65在字符集中对应的字符赋值)
- 进制赋值:char c3 = '\u0041';(通过十六进制数41在字符集中所对应的字符赋值)
public class TestType4{
public static void main(String[] args){
char c1 = 'A'; //字符赋值,原生、基本的赋值方式(常用)
System.out.println(c1);
char c2 = 65;//整数赋值(十进制)
System.out.println(c2);
char c3 = '\u0041';//进制赋值(十六进制)
System.out.println(c3);
}
}
3.1.7 转义字符(1)
Java采用了转义字符来表示单引号和一些特殊符号。
3.1.8 转义字符(2)
public class TestSign{
public static void main(String[] args){
char c1 = '\'';
System.out.println(c1);
System.out.println("\"");
System.out.println("Hello\tWorld");
System.out.println("Hello\nWorld");
System.out.println("\\");
System.out.println("u0041");
System.out.println("\u0041");
}
} 3.2 引用数据类型(字符串)
- String类型的字面取值:
- String str1 = ''Hello'';
- String str2 = ''您好'';
- String str3 = ''Java Engineer'';
- String str4 = ''微服务架构师'';
public class TestString{
public static void main(String[] args){
String str1 = "HelloWorld";
System.out.println(str1);
System.out.println("HelloWorld");
String str2 = "Hello Everyone";
System.out.println(str2);
}
}
四、类型转换
4.1 类型转换(1)
- 自动类型转换:
- 两种类型相互兼容。
- 目标类型大于源类型。 public class TestAutoConvert{
public static void main(String[] args){
//整数 - 整数
short s = 123;
int i = s;//将源类型值存入到目标类型变量中(自动类型转换)
System.out.println(i);
byte b = 100;
short s2 = b;//自动类型转换
System.out.println(s2);
//小数 - 小数
float f = 100.0F;
double d = f;//自动类型转换
System.out.println(d);
//小数 - 整数
int i2 = 100;
double d2 = i2;//自动类型转换
System.out.println(d2);
//字符 - 整数
char c = 'A';
int i3 = c;//自动类型转换
System.out.println(i3);
//字符 - 小数
char c2 = 'a';
double d3 = c2;
System.out.println(d3);
//boolean无法与其他类型进行转换
boolean bool = true;//true | flase
int i4 = bool;//不兼容的类型
}
}