Java基本语法篇 [1](常量、变量,数据类型详解)

在这里插入图片描述

🔔博客主页👉 @Nerhimisum.code.com
🎁欢迎关注👍点赞👉 留言⭐️收藏
🎁系列专栏持续更新👉 JavaSE学习
🎁
欢迎大佬指正,一起学习,共同进步!

1.常量与变量

1.1常量

  • 定义:程序运行期间固定不变的量。自定义常量是通过使用finalabstract关键字修饰的变量。
    • 格式final/ abstract 常量名 = 数据值;
final double pai = 3.1415926abstract int i = 1;
 - 常量的分类:
 	- 字符串常量:‌用双引号括起来的内容,‌例如:‌"ABC"。‌
 	- 整数常量:‌所有整数,‌例如:‌12, 23。‌
 	- 小数常量:‌所有小数,‌例如:‌12.34, 56.78。‌
 	- 字符常量:‌用单引号括起来的内容,‌例如:‌‘a’, ‘A’, ‘0’。‌
 	- 布尔常量:‌特有的true和false,只在量中取值。
 	- 空常量:‌null(‌数组部分讲解)‌。‌

此外,‌Java针对整数常量提供了多种表现形式,‌包括二进制(‌以0b开头)‌、‌八进制(‌以0开头)‌、‌十进制(‌整数默认)‌和十六进制(‌以0x开头)‌。‌

1.2变量

1.2.1 变量的定义:
  • 定义格式数据类型 变量名 = 数据值;
    (❗️ ‘=’表示“赋值”,将右边的赋值给左边;‘==’表示相等)

底层理解:在数据结构中我们了解到,变量是线性结构的基本组成部分。‌【线性结构是有序的数据集合,‌其中的数据元素之间存在一对一的关系。‌】变量存储程序中经常改变的数据,数据类型定义了变量可以存储的数据种类,‌如整数、‌浮点数、‌布尔值等。‌并且不同的数据类型(‌如int、‌double、‌char等)‌具有不同的存储空间和取值范围。
变量是存储数据值的单元,数据类型限制了变量可以存储的数据值种类

1.2.2 变量的类别
  • Java中的变量可以分为两类:基本类型变量和引用类型变量。
    • 基本类型变量:存储基本数据类型值,如int, float, double, char等。
int a = 10;
float b = 20.5f;
char c = 'c';
  • 引用类型变量:存储对象引用,通过new关键字创建对象实例。
String str = new String("Hello");
1.2.3 变量的基本用法:
  • 定义变量后直接输出
public class Variable {
    public static void main(String[] args) {
        int a = 5;
        System.out.println(a);//输出5
    }
}
  • 变量参与计算
 		int a = 5,b=5,c=0;
 		c=a+b;
        System.out.println(c)//10
  • 修改变量记录的值(以数据交换举例:使用临时变量进行数据交换。)
 int a = 5;
int b = 10;
int temp = a;//定义了临时变量temp存储数据
a = b;
b = temp;//通过赋值交换了两个变量中存储的数据

❗️ 注意事项:
1.变量在使用前需要赋值,可在定义时同步赋值。int a =0;
2.变量只能存储一个数据。
3.同一变量名不可重复定义使用。
4.注意变量作用域。

2. 数据类型

在刚才对常量、变量的学习中我们已经初步认识了数据类型,接下来就具体了解一下吧😊。

2.1数据类型分类

Java中的数据类型主要分为两类:
1️⃣基本数据类型:直接存储在栈(Stack)中
2️⃣引用数据类型:存储在栈中的是对象的引用,实际的对象存储在堆中。这种设计使得Java支持自动垃圾回收,提高了内存管理的便捷性。我们会在数组面向对象的学习中深入了解。(例如,在C#中的指针类型,指针变量实际上存储的是指向实际数据的地址,而不是数据本身。这个指针包含了对象的地址信息。)

2.2 基本数据类型

在Java中,数据类型包括【1】整数类型(byte,short,int,long),【2】浮点类型(float,double),和【3】字符类型(char)【4】布尔型(
boolean)。每种数据类型有特定的取值范围和占用的内存空间,因此再给不同数据类型的变量赋值时一定要在相应的取值范围内(内存溢出),❌ 错误案例byte a = 200;

2.2.1 基本数据类型(4类8种)

下面是一个描述数据类型取值范围和内存占用的表格:(不包括布尔型)

数据类型取值范围内存占用(字节)
byte-128 到 1271
short-32768 到 327672
int-2147483648 到 2147483647(10位数)4
long-9223372036854775808 到 9223372036854775807(19位数)8
float大约 -3.4e+38 到 3.4e+384
double大约 -1.7e+308 到 1.7e+3088
char0 到 65535 (Unicode字符)2
booleantrue,false1

如果想更深入理解该表格内容,需要理解变量,数据类型在计算机中的存储,可以戳👉 http://t.csdnimg.cn/ccBf5

3. 类型转换

我们经常会处理整数与浮点数的混合运算,当Java运算涉及不同数据类型时,为需要确保结果类型与需求相符,会进行类型转换。类型去转换分为自动转换(隐式转换)强制转换(显式转换)

3.1 自动转换

int a = 10;
long b = 100L;
a=b;//编译报错
b=a;//编译成功,此时输出的b=10

为什么会出现上述的区别,其实是代码的运行状态下发生了自动转换。

隐式转换(自动转换):

  1. 从小范围的数据类型到大范围的数据类型:此时会先将小类型提升为大类型再参与计算。
    2.数据类型按照如下顺序
    byte -> short -> char -> int -> long -> float -> double

3.2 强制转换

上述示例代码中b=a;是从大类型到小类型,需要强制转换。

强制转换(显式转换):

  1. 从大范围的数据类型到小范围的数据类型。
  2. 可能会导致精度降低或者数据溢出
    ❗️浮点数到整数的转换是向零舍入,不是四舍五入。
  3. 强制转换格式变量名1=(变量名1的数据类型)(变量2)
int i = 10;
byte b = (byte) i; // 强制转换为 byte,可能会丢失数据

数据溢出情况:如果转换后的值超出了目标数据类型的表示范围,就会发生数据溢出。如将一个int类型的值转换为byte类型,如果int值超出了byte的表示范围(-128到127),就会发生数据溢出。

3.3 转换中的特殊情况

1.字符串与基本数据类型的转换
2.基本数据类型与包装类的转换
3.布尔类型不参与其他数据类型的转换
想要详细了解具体原理👉 http://t.csdnimg.cn/Z1kOd

  • 11
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值