02-Java基础语法:变量和运算符

Java基础语法:变量和运算符

1. 关键字

定义:被Java语言赋予了特殊含义,用做专门用途的单词 特点:关键字中所有字母都为小写

目前我们学习接触到的关键字较少,其他的关键字后续学习过程中逐步掌握,目前不需要全部记忆。

2. 保留字

Java保留字:现有Java版本尚未使用,但以后版本可能会作为关键字使用。自己命名标识符时要避免使用这些保留字 goto 、const

3. 标识符

Java 对各种变量、方法和类等要素命名时使用的字符序列称为标识符 总结:凡是自己可以起名字的内容都称之为标识符。

4. 标识符命名规范

语法规定(最低标准):

​ 可以由:字母、数字、_、$、¥ 组成,但不能以数字开头。

​ 不能与关键字、保留字重名。

约定俗成(更高标准):

​ 望文生义、见名知义。

​ 类名由一个或多个单词组成,每个单词首字母大写(pascal)。

​ 举例:学生 Student 人类 Person 订单信息 :OrderInfo

​ 方法名、变量名由一个或多个单词组成,首单词全部小写,拼接词首字母大写(camel)。

​ 举例:学生姓名 studentNameAndInfo

​ 包名全小写,只可以使用特殊字符".",并且不以"."开头或结尾。

​ 举例: com.atguigu.xxx

​ 常量全大写,多个单词用 _ 连接。

​ 举例:国家名称 COUNTRY_NAME

java 复制代码
public class A{

}


class 2B1{ // 这种命名会报错  数字不能开头

}

class $C{

}

class ¥D{

}

class 一个类{
	
}

5. 变量和数据类型概念

概念:计算机内存中的一块存储空间,是存储数据的基本单元。

生活中我们通常需要记录数据,在程序中亦是如此,生活中我们通过各种途径:图片,音频,视频,文字等方式记录数据,在程序中使用变

量记录数据。

举例:比如你的同桌需要大宝剑,发现前不够,找你借5毛钱。

​ 时间:2025年3月29日09:35:35

​ 事件:借钱

​ 人物:你的同桌

​ 地点:教室

​ 金额:5毛 / 0.5元

​ ......

记录数据涉及到不同的数据类型,Java语言也提供了对应的类型来存储不同类型的数据。

6. 变量的定义方式

声明变量的3种方式: 先声明,再赋值:【常用】 数据类型 变量名; 变量名 = 值;

声明并赋值:【常用】 数据类型 变量名 = 值;

多个同类型变量的声明与赋值:【了解】 数据类型 变量1 , 变量2 , 变量3 = 值3 , 变量4 , 变量5 = 值5;

java 复制代码
public class TestVariableDefine{
	public static void main(String [] args){
		// 变量的定义方式
		// 方式1 先声明 再赋值  
		int a;
		a = 100;
		// 字符串(英文双引号包括起来的内容都属于字符串)
		// 字符串与任何内容相加 实为拼接 不做数学计算
		System.out.println("变量a的取值为:" + a);
		
		
		// 方式2 连声明带赋值写为一条语句 
		int b = 200;
		System.out.println("变量b的取值为:" + b);
		
		
		// 方式3 同时声明多个同类型的变量 
		int c , d , e = 55 , f , g = 66;
		
		System.out.println("变量e的取值为:" + e);
		System.out.println("变量g的取值为:" + g);
		
		// 未赋值的局部变量 LocalVariable 不能使用 因为没有默认值
		System.out.println("变量c的取值为:" + c);
		System.out.println("变量d的取值为:" + d);
		System.out.println("变量f的取值为:" + f);
		
		
	}
}

7. 单位换算

1TB = 1024GB

1GB = 1024MB

1MB= 1024KB

1KB = 1024Byte(字节)

1Byte = 8bit(位)

一个字节占8位,即一个字节在内存中占8个小格子,每一个小格子只能存储一个0或者一个1,这个小格子我们称之为:位

8. 基本数据类型

8.1 整数类型

徽标 + CALC 呼出系统自带的计算器

java 复制代码
public class TestNumberDefine{
	public static void main(String [] args){
		// 整数类型
		// byte 类型 1个字节 取值范围 -128 ~ 127 
		
		byte b1 = -20;
		byte b2 = 127;
		// byte b3 = 128; 超出范围 无法存放 
		
		System.out.println("变量b1的取值为:" + b1);
		System.out.println("变量b2的取值为:" + b2);
		// System.out.println("变量b3的取值为:" + b3);
		
		
		
		// short 类型 2个字节 取值范围 -32768 ~ 32767 
		
		short s1 = 12345;
		short s2 = -12345;
		
		System.out.println("变量s1的取值为:" + s1);
		System.out.println("变量s2的取值为:" + s2);
		
		// short s3 = -32769;
		// short s4 = 32768;

		
		// int类型 4个字节 取值范围 -2147483648 ~ 2147483647
		
		int i1 = 45678;
		int i2 = -789454;
		
		System.out.println("变量i1的取值为:" + i1);
		System.out.println("变量i2的取值为:" + i2);
		
		
		// int i3 = -2147483649;
		// int i4 = 2147483648;
		
		
		// long 8个字节 取值范围   -9223372036854775808 ~ 9223372036854775807
		
		System.out.println("long类型最大值:" + Long.MAX_VALUE);
		System.out.println("long类型最小值:" + Long.MIN_VALUE);
		
		
		long l1 = 5689;
		long l2 = -78945;
		
		System.out.println("变量l1的取值为:" + l1);
		System.out.println("变量l2的取值为:" + l2);
		
		
		// 给long类型赋值 如果取值范围超出int 则值的末尾必须追加 L  大小写都可以 推荐大写   
		// 如果取值范围没有超出int 则L可加可不加 
		
		// 当我们使用long类型存储数据 默认依然使用四个字节帮我们进行保存
		// 这个操作属于JVM帮我们实现的内存优化  所以一旦超出int取值范围 会报错
		// 如果希望JVM使用8个字节存储数据 则必须   显式  加上L 
		
		long l3 = 2147483648L;
		
		System.out.println("变量l3的取值为:" + l3);
	}
}

8.2 浮点类型

注意:double为浮点数的默认类型,如需为float类型赋值,需要在值的后面追加"F" float和double都属于近似值 不是精确值(无法表示精确值) 根据有效位决定 ​ float有效位是6~7位数值 ​ double有效位是15 ~ 16位数值

如果需要保存金钱,或者其他对精度有要求的数据,后续我们会学习BigDecimal

java 复制代码
public class TestFloatAndDouble{
	public static void main(String [] args){
		// float 4个字节  取值范围 -3.4E38 ~ 3.4E38

		float minValue = -340000000000000000000000000000000000000F;
		System.out.println("float最小取值:" + minValue);
		
		
		float maxValue = 340000000000000000000000000000000000000F;

		System.out.println("float最大取值:" + maxValue);
		
		
		double d1 = 2.5;
		
		double d2 = 3.6;
		
		System.out.println(d1);
		
		System.out.println(d2);
		
		double d3 = 20;
		
		System.out.println(d3);
		
		// 当直接赋值整数 取值范围超出int 则必须在值的末尾追加 D 推荐大写 
		double d4 = 2147483648D;
		
		System.out.println(d4);

	}
}

8.3 布尔类型

可直接赋值true / false

也可赋值一个结果为true / false的表达式

注意:Java中的boolean不能参与算数运算

java 复制代码
public class TestBooolean{
	public static void main(String [] args){
		// 布尔类型 boolean 1个字节  true / false  
		
		boolean bl1 = true;
		boolean bl2 = false;  
		System.out.println(bl1);
		System.out.println(bl2);
		
		int a = 10;
		int b = 20;
		
		boolean bl3 = a > b;
		System.out.println(bl3);
		
		
		
	}
}

8.4 字符类型

字符赋值:char c1 = 'A';(通过''描述为字符赋值)

整数赋值:char c2 = 65;(通过十进制数65在字符集中对应的字符赋值)

进制赋值:char c3 = '\u0041';(通过十六进制数41在字符集中所对应的字符赋值)

编码表:

ASCII码表 美国标准信息交换码

Unicode编码表 万国码

java 复制代码
public class TestChar{
	public static void main(String [] args){
		// char类型  2个字节 取值范围 0 ~ 65535 
		// 三种赋值方式 
		
		
		// 方式1  直接使用英文单引号包括任意一个字符  
		char ch1 = 'a';
		char ch2 = '中';
		char ch3 = '_';
		char ch4 = '1';
		char ch5 = '?';
		
		System.out.println(ch1);
		System.out.println(ch2);
		System.out.println(ch3);
		System.out.println(ch4);
		System.out.println(ch5);
		
		
		
		System.out.println("-----------------------------------------");
		
		
		// 方式2 直接赋值取值范围在0~65535以内的任意整数  
		// 当我们直接赋值整数 取值范围在0~127以内 将参考ASCII码表 映射为对应的字符  
		
		
		char c1 = 65; // A
		char c3 = 66; // B
		char c4 = 67; // C
		char c2 = 97; // a
		
		System.out.println(c1);
		System.out.println(c3);
		System.out.println(c4);
		System.out.println(c2);
		
		// 当我们直接赋值整数 取值范围超出 0~127  将参考Unicode编码表
		// Unicode编码表 万国码  收录了世界上个各个国家文字 字符 
		// 是一个十六进制的编码表  0000 ~ FFFF
		// 中文的取值范围: 4E00(19968) ~ 9FA5(40869) 
		
		char c5 = 20013; 
		
		System.out.println(c5);
		
		char c6 = 20320; 
		
		System.out.println(c6);
		
		char c7 = 19968; 
		
		System.out.println(c7);
		
		char c8 = 40869; 
		
		System.out.println(c8);
		
		
		System.out.println("-----------------------------------------");
		
		// 方式3  直接使用英文的单引号包括 Unicode字符集的值  必须以 杠u  开头
		
		char cc1 = '\u4E00';
		
		char cc2 = '\u4E2D';
		
		char cc3 = '\u4F59';
		
		System.out.println(cc1);
		System.out.println(cc2);
		System.out.println(cc3);
		
		
		// 使用十六进制 再转换为二进制  
		
		
		System.out.println((char)0B0110001000010001);
		System.out.println((char)0B0111001000110001);
		System.out.println((char)0B0100111101100000);

		

		
		
		
	}
}

9.String类型(引用数据类型)

字符串与任何内容相加,不做数学计算,作拼接处理。

java 复制代码
public class TestString{
	public static void main(String [] args){
		// String类型  任何英文双引号之间的内容都属于字符串(对象)
		
		
		String s1 = "abc";
		String s2 = "世界你好  66666 hello world";
		String s3 = "  魏文强额温枪  额外企鹅  分我让人王企鹅请问二维请问饿";
		
		
		System.out.println(s1 + s2);
		System.out.println(s1);
		System.out.println(s2);
		System.out.println(s3);
		
		
		
	}
}

10. 转义字符

转义字符是为了保存一些特殊符号或者实现一些特殊的效果

java 复制代码
public class TestConvertSign{
	public static void main(String [] args){
		// 转义字符 
		char ch1 = '\'';
		
		System.out.println(ch1);
		
		// \n 换行  
		
		System.out.println("a\nb\nc\nd\ne\nf\ng");
		
		// \t 制表符 制表位 用于上下行文本对齐  
		System.out.println("床\t前\t明\t月\t光");
		System.out.println("疑\t是\t地\t上\t霜");
		
		
		// \\ 保存一个\  需要写两个  
		
		char ch2 = '\\';
		
		System.out.println(ch2);
		
		
		// \" 保存在char类型中 可以不必转义 
		
		char ch3 = '"';
		
		System.out.println(ch3);
		
		
		String s1 = " a    \"     \"      z  ";
		
		System.out.println(s1);
		
		
		
		
		
		
	}
}

11. 类型转换

11.1 自动类型转换

自动类型转换 两种类型相互兼容。(6种数值类型和char类型兼容) 目标类型(等号左边)取值范围大于源类型(等号右边)取值范围。 byte < short < int < long < float < double char < int < long < float < double char转换为byte 或者 char转换为short都不能自动类型转换 必须强转

java 复制代码
public class TestAutoConvert{
	public static void main(String [] args){
		// 自动类型转换
		// 两种类型相互兼容。(6种数值类型和char类型兼容)
		// 目标类型(等号左边)取值范围大于源类型(等号右边)取值范围。
		// byte < short < int < long < float < double 
		// char < int < long < float < double 
		// char转换为byte 或者 char转换为short都不能自动类型转换 必须强转
		
		byte b1 = 100;
		
		short s1 = b1;
		
		System.out.println(s1);
		
		
		System.out.println("***************************");
		
		
		
		
		short s2 = 2356;
		
		int i1 = s2;
		
		System.out.println(i1);
		
		
		System.out.println("***************************");
		
		int i2 = 5566;
		
		long l1 = i2;
		
		System.out.println(l1);
		
		
		System.out.println("***************************");
		
		
		long l2 = 564578L;
		
		float f1 = l2;
		
		System.out.println(f1);
		
		System.out.println("***************************");
		
		
		float f2 = 3.5F;
		
		double d1 = f2;
		
		System.out.println(d1);
		
		System.out.println("***************************");
		
		char c1 = 'A'; // 65
		
		int a = c1;
		
		long b = c1;
		
		float c = c1;
		
		double d = c1;
		
		System.out.println(a);
		System.out.println(b);
		System.out.println(c);
		System.out.println(d);	

	}
}

11.2 强制类型转换

强制类型转换 两种类型相互兼容。(6种数值类型和char类型兼容) 目标类型(等号左边)取值范围小于源类型(等号右边)取值范围。 ​

double > float > long > int > short > byte double > float > long > int > char short > char byte > char

java 复制代码
public class TestForceConvert{
	public static void main(String [] args){
		// 强制类型转换
		// 两种类型相互兼容。(6种数值类型和char类型兼容)
		// 目标类型(等号左边)取值范围小于源类型(等号右边)取值范围。
		
		// double > float > long > int > short > byte 
		// double > float > long > int > char 
		// short > char 
		// byte > char 
		
		double d1 = 2.5;
		
		float f1 = (float)d1;
		
		System.out.println(f1);
		
		
		System.out.println("---------------------------------------");
		
		
		float f2 = 3.6F;
		
		long l1 = (long)f2;
		
		System.out.println(l1);
		
		System.out.println("---------------------------------------");
		
		long l2 = 100;
		
		int i1 = (int)l2;

		System.out.println(i1);
		
		System.out.println("---------------------------------------");
		
		
		int i2 = 100;
		
		short s1 = (short)i2;
		
		System.out.println(s1);
		
		System.out.println("---------------------------------------");
		
		short s2 = 100;
		
		byte b2 = (byte)s2;
		
		System.out.println(b2);
		
		System.out.println("---------------------------------------");
		
		double a = 65.5;
		float b = 65.5F;
		long c = 65;
		int d = 65;
		
		char c1 = (char)a;
		System.out.println(c1);
		
		char c2 = (char)b;
		System.out.println(c2);
		
		char c3 = (char)c;
		System.out.println(c3);
		
		char c4 = (char)d;
		System.out.println(c4);
		
		System.out.println("---------------------------------------");
		
		short sho1 = 65;
		
		byte by1 = 65;
		
		char cc1 = (char)sho1;
		System.out.println(cc1);
		
		char cc2 = (char)by1;
		System.out.println(cc2);

	}
}
相关推荐
零千叶13 小时前
【面试】AI大模型应用原理面试题
java·设计模式·面试
坐吃山猪17 小时前
SpringBoot01-配置文件
java·开发语言
我叫汪枫18 小时前
《Java餐厅的待客之道:BIO, NIO, AIO三种服务模式的进化》
java·开发语言·nio
yaoxtao18 小时前
java.nio.file.InvalidPathException异常
java·linux·ubuntu
Swift社区19 小时前
从 JDK 1.8 切换到 JDK 21 时遇到 NoProviderFoundException 该如何解决?
java·开发语言
DKPT20 小时前
JVM中如何调优新生代和老生代?
java·jvm·笔记·学习·spring
phltxy20 小时前
JVM——Java虚拟机学习
java·jvm·学习
seabirdssss1 天前
使用Spring Boot DevTools快速重启功能
java·spring boot·后端
喂完待续1 天前
【序列晋升】29 Spring Cloud Task 微服务架构下的轻量级任务调度框架
java·spring·spring cloud·云原生·架构·big data·序列晋升