Java的数据类型与变量

学习目标:
1. 字面常量
2. 数据类型
3. 变量

一· 字面常量

何谓常量,常量即程序运行期间,固定不变的量称为常量 ,那什么是字面常量呢,就是程序直接输出的常量就是字面常量,直接看几个代码就可以理解了。

 public static void main(String[] args) {

        System.out.println(100);//整形常量
        System.out.println('A');//字符常量
        System.out.println(3.14);//浮点数常量
        System.out.println("hello");//字符串常量
        System.out.println(true);//布尔常量
        
    }

 通过编译结果可知,类似于100,A,3.14,hello,true这些常量均属于字面常量

二·数据类型

注意:在Java中数据类型分为基本数据类型和引用数据类型,这节我们主要讲解基本数据类型,引用数据类型后期会详细讲解,其中Java的基本数据类型同C语言大相径庭。

基本数据类型:

类型关键字字节
字节型byte1
短整型short2
整形int4
长整型long8
单精度浮点型float4
双精度浮点型double8
字符型char2
布尔型boolean未知

注意:

1.Java中每个字符所占的字节大小是固定不变,不论是在32位机器还是64位机器

2.整形和浮点型都是带有符号,故也有负数(这点不同于C语言)

3.对于字面常量来说,整形默认为int类型,浮点型默认为double类型

示例如下:

这里的100默认int类型,3.5默认为double类型,假如我输入的字面常量超过范围,编译器就会报错,比如说int类型,最大表示的整数是2^31-1(因为在Java中int类型4个字节,占32个比特位,第一位表示符号位,故最大表示的整数是2^31-1),当我们输入一个字面常量超过这个范围,系统就会报错:

 求一个类型所表示的最大值和最小值,方法都和图中所示一样,用该类型的包装类.MAX_VALUE/MIN_VALUE.

 

 各个类型的包装类如下:

类型包装类
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charCharacter
booleanBoolean

 

三·变量 

Java中定义变量的方式同C语言一样,故这里不再赘述,我们只需了解几个与C语言中不一样的知识就可以了,其中C语言中变量的知识可以参考我的这博客:

CSDNicon-default.png?t=M666https://mp.csdn.net/mp_blog/creation/editor/123935676

语法格式:

变量类型 变量名称 = 初始值(其中变量名称要符合标识符定义的合法性)

 各种类型定义变量的方法如下:

 不同之处:

1.上面我们说过了,一个浮点型常量编译器会默认位double类型的,所以我们在定义float类型的变量时为了和double类型进行区分,会在数值后面加上f

2.长整型变量我们在定义变量时一般加上L/l(也可以不加) ,通常我们都是加上L,而不是l(为了和1区分)

3.Java中char类型与C语言中char类型所占字节不同,C语言中char类型为一个字节,而Java中是两个字节,故我们在Java中可以用char类型定义一个汉字(汉字占两个字节),C语言却不可以

 4.Java比C语言多了一中判断真假的类型:boolean类型,boolean类型定义的变量只能位true或者false,Java中真位true,假位false(C语言中规定:0为假,非0为真)

 四·类型转换

Java中类型转换分为两种:自动类型转换(隐式) 和 强制类型转换(显式)

4.1自动类型转换

自动类型转换即: 代码不需要经过任何处理,在代码编译时,编译器会自动进行处理 。特点: 数据范围小的转为数 据范围大的时会自动进行

 

4.2 强制类型转换

强制类型转换:当进行操作时,代码需要经过一定的格式处理,不能自动完成。特点:数据范围大的到数据范围小的。

 

注意:

1. 不同数字类型的变量之间赋值, 表示范围更小的类型能隐式转换成范围较大的类型
2. 如果需要把范围大的类型赋值给范围小的, 需要强制类型转换, 但是可能精度丢失
3. 将一个字面值常量进行赋值的时候, Java 会自动针对数字范围进行检查
4. 强制类型转换不一定能成功,不相干的类型不能互相转换

五·类型提升

1.intlong之间:int会被提升为long

2.bytebyte的运算

有的同学会问这里a+b=30并没有超过byte类型的最大范围,为什么会报错呢?

原因是:

byte 和 byte 都是相同类型, 但是出现编译报错. 原因是, 虽然 a 和 b 都是 byte, 但是计算 a + b 会先将 a 和 b 都提升成 int, 再进行计算, 得到的结果也是 int, 这是赋给 c, 就会出现上述错误.
由于计算机的 CPU 通常是按照 4 个字节为单位从内存中读写数据. 为了硬件上实现方便, 诸如 byte 和 short 这种低于 4 个字节的类型, 会先提升成 int, 再参与计算

 

 总结:对于 short, byte 这种比 4 个字节小的类型, 会先提升成 4 个字节的 int , 再运算

六·字符串类型

在C语言中并没有字符串类型,而在Java中我们却要去学习字符串类型,而字符串类型并不属于基本数据类型,而是属于引用类型

6.1 + 的作用

+在Java中只要出现就是拼接的作用,比如我们把两个字符串拼接在一起

 又比如输出时进行数据的整合

 本节Java中数据类型和变量的学习到这里就全部结束了,学习过C之后学习这个会显得非常简单,我们只需多用就行,记住那些与C语言不一样的类型即可,感谢支持!!!

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值