【Java SE】第三话·数据类型与变量

本文已收录于专栏
📖《Java SE》📖

前言

大家好,我是Anya-.-,欢迎来到Anya的小世界。

本期Java内容与c有很多相似,学习过c的同学肯定会感觉到很熟悉,但是嗷,在熟悉的街角也可以看到不一样的风景~

一、字面常量

常量是指在程序运行期间,固定不变的量。

字面常量又叫做常量值,通过数据直接显示。

字面常量的分类:

  • 字符串常量: 由双引号直接括起来的,比如 “123456”,“I am Chinese”,“你好”
  • 整型常量: 程序中直接写的数字(ps:没有小数点),比如:100,520
  • 浮点型常量: 程序中直接写的小数,比如:0.20,3.14
  • 字符常量: 由单引号直接括起来的单个字符,比如 ‘a’,‘1’
  • 布尔常量: 只有 t r u e true true f a l s e false false
  • 空常量: n u l l null null

二、数据类型

Java中数据类型分为基本数据类型引用数据类型

数据类型用来定义变量,我们可以这样理解,碗有大有小,大的用来盛汤,小的用来盛饭。程序运行时会给变量分配内存,至于分配多少看给变量定义了几个字节。数据类型与变量结合正是可以给变量定义多少个字节。

评 判 一 个 数 据 占 用 多 大 内 存 , 表 示 的 单 位 : ( 从 小 到 大 ) \color{Green}{评判一个数据 占用多大内存,表示的单位:(从小到大)}
bit byte kb mb gb tb
1 byte = 8 bit
1 kb = 1024 byte
1 mb = 1024 kb
1 gb = 1024 mb
1 tb = 1024 gb

1.基本数据类型(四类8种)

四类:整型、浮点型、字符型、布尔型

2.引用数据类型

引用数据类型有很多种,常见有数组、String、类、接口、枚举…

三、变量

1.1 概念

变量:程序运行过程中,可以修改的。

语法格式:
数据类型 变量名 = 数值;

public class TestDemo {
    /**
     * 整型:
     * 1.大小:4个字节【可移植性强:不管是32位还是64位系统,int字节都为4个字节】
     * 2.在Java里,int没有所谓的无符号整数。so,int既能表示正数,又能表示负数
     * @param args
     */
    public static void main(String[] args) {
        //数据类型 变量名 = 数值
        int a = 1;
        System.out.println(a);
        System.out.println("最大值:"+Integer.MAX_VALUE);
        System.out.println("最小值:"+Integer.MIN_VALUE);
    }
}

运行结果如下:

在Java,局部变量在使用时必须进行初始化,否则会编译不通过报错

补 充 : \color{RoyalBlue}补充:
局部变量:方法内部定义的变量

成员变量:方法外定义的变量,在类里面,类里面有成员变量和成员方法

1.2 一些有趣的报错

编译器会自动进行检查 你赋值的字面常量值是否超出了 当前数据类型能够表示的数据范围。

byte是8个比特位,范围是-128~127

Anyway,下面这个报错原因与上面不一样,
前者是赋值的字面常量超过当前数据类型能够表示的数据范围,编译器自动报错;
后者是表达式右边进行了整型提升,4个字节欲赋值给一个字节的变量里。

正确方式,进行强制类型转换

输出结果为-128

有些同学可能会在这里有疑问了,128不是超过byte范围了吗?上面说超过当前数据类型能够表示的数据范围,编译器自动报错

哈哈哈不要急,跟小戴一起慢慢来~
这里的130是字面常量,

前文有提,此话重点在 字 面 常 量 \color{Red}字面常量

嘻嘻,再回来,

这 里 会 解 决 你 之 前 的 疑 惑 \color{Black}这里会解决你之前的疑惑

a a a 是变量,所以,只能在程序运行的时候才能知道 a a a里面是几

编译的时候不知道 a a a里面是几,运行的时候 a + 1 a+1 a+1 一加等于128,由于128是四个字节,然后再 强 制 类 型 转 换 强制类型转换 为一个字节。输出内容就变成了 − 128 -128 128

1.3 float类型变量

6.2 6.2 6.2 默认是 d o u b l e double double 类型的数据,
double类型占8个字节,而float类型的数据占4个字节

好家伙,那在Java中怎样定义一个float类型的变量呢?

如下图,直接在数据后面加 f 或者 F 表示该数据为 f l o a t float float 型的数据。

1.4 float与double

运行截图:

计算器中 1.1 × 1.1 = 1.21 1.1×1.1=1.21 1.1×1.1=1.21
但用程序写出来计算结果如上图

Why?
因为在计算机中,小数是没有精确的数字的,它只能精确到小数点后几位

f l o a t float float 类型的数据可以精确到小数点后6位

1.5 boolean类型变量

在Java中,没有 0 0 0 是假,非 0 0 0 是真的说法
Java的真值只有两个,就是 t r u e true true f a l s e false false

问:boolean几个字节?
嘻嘻,Java中没有明确规定 b o o l e a n boolean boolean 类型的大小

四、类型转换

1.1 初识

类型转换分为两种:

  • 自动类型转换(隐式类型转换)
  • 强制类型转换(显示类型转换)

当小字节变量赋值给大字节变量时,发生自动类型转换

大字节变量直接赋值给小字节会编译器进行报错
so,需进行强制类型转换

注意所有的强制类型转换会出现精度丢失的情况

1.2 类型转换错误分析

这里,小戴会分析两个比较有趣的报错~

What?
i n t int int 类型和 f l o a t float float 不都是4个字节吗?

是的,没错。
但是float类型表示的数据宽度宽于int类型,float类型除了可以表示整数之外,还可以表示小数。
如果编译器准许将float类型可以直接赋值给int类型,那小数该怎么办呢?

so,爱学习的你会了吗?嘻嘻,让我们继续往下看:

分析:
这里涉及到 类型提升

所有小于4个字节的数据进行运算的时候,都会先转为4个字节,然后再参与运算。

Moreever,
当两种不一样的数据类型 进行运算的时候,会把其中较小的数据类型,转换为较大的类型,再进行运算

这样可以提高运算的效率

五、String类型

C语言中没有String类型,但Java中有

String str = "hello";
Java中,这里的字符串常量"hello"和C不一样,不是以\0结尾,Java中没有这种说法。

六、写在后面

每逢高考毕业季,是否选择复读是个热门话题,昨天看到群里有提想要回去复读的。

同作为一个21级大一下结束的湖南考生,我想了很久,以我的角度看,选择回去复读会面临着教材改革,知识闭塞等等的挑战,

这个问题真的像一个“妈妈和女朋友同时掉进水里,你会选择救谁” 难以选择的问题

不过我更喜欢往前面走,

只要我们充满期待,勇敢向前,都会有属于我们的花季。

  • 39
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 65
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刹那芳间-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值