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

	}
}
相关推荐
xyliiiiiL21 分钟前
从责任链模式聊到aware接口
java·开发语言
码农老起3 小时前
与Aspose.pdf类似的jar库分享
java·pdf·jar
程序猿小D4 小时前
第三百八十九节 JavaFX教程 - JavaFX WebEngine
java·eclipse·intellij-idea·vr·javafx
self-discipline6346 小时前
【Java】Java核心知识点与相应面试技巧(七)——类与对象(二)
java·开发语言·面试
wei3872452326 小时前
java笔记02
java·开发语言·笔记
zjj5876 小时前
Docker使用ubuntu
java·docker·eureka
士别三日&&当刮目相看6 小时前
JAVA学习*简单的代理模式
java·学习·代理模式
ShareBeHappy_Qin7 小时前
设计模式——设计模式理念
java·设计模式
程序猿大波9 小时前
基于Java,SpringBoot,Vue,HTML高校社团信息管理系统设计
java·vue.js·spring boot
小李同学_LHY10 小时前
微服务架构中的精妙设计:环境和工程搭建
java·spring·微服务·springcloud