Java基础语法——Java变量、基本数据类型以及强制类型转换

Java变量及基本数据类型



前言

本文主要介绍什么是变量以及Java的基本数据类型有哪些,还有在使用过程中要注意的点以及可能会遇到的问题,这节讲的相对全面,适合学过一遍还想复习重点问题的初学者,以及初学语法的人


一、什么是变量?

  变量,按照字面意思就是可以随时改变的量,而在java中,变量不仅可以随时改变,而且也是存放数据的一个空间,这个空间存放什么样的数据,就是由下面要说的数据类型而决定的
  变量命名的时候要注意遵守以下规范(良好的习惯从刚开始学的时候就要养成哦)
  1、变量是由字母、数字和下划线组成,并且首字母只能为英文字母、$和下划线。
  2、变量的命名要见名知义。(比如说姓名的变量,你可以直接用name来作为变量名,但是不要用n(英文首字母),x(姓名首字母)这样的)
  3、用驼峰命名法命名多个单词组成的变量名。(比如这个变量是人的姓名,那么你可以以peopleName作为变量名,驼峰命名法就是第一个单词的首字母小写,后面你的单词首字母都是大写)
  4、变量名不要使用Java关键字。(关键字就是写java的大神们已经定义好的单词,你就别想用了,例如:class,public,main等)

二、Java的基本数据类型

  在我们的日常生活中数据处处存在,我们学的数学中就有小数、整数,对应于Java的double/float和int等类型,在java中我们需要使用相应的关键字来声明每个变量的类型是什么
  定义格式为:基本数据类型关键字 变量名
  下面我们就来讲一讲基本数据类型的关键字有哪些,以及使用过程中需要注意的点

1.整型(int,long)

  整型就是数学中的整数,没错,就是你理解的那样,整数包括正整数、负整数和0,整数有大有小,Java又根据数的大小分为short、int和long类型,它们所包含数的范围如下:

(1)short

占有字节:2
二进制位数:16
最小值:Short.MIN_VALUE=-32768 (-2的15次方)
最大值:Short.MAX_VALUE=32767 (2的15次方-1)

(2)int

占有字节:4
二进制位数:32
最小值:Integer.MIN_VALUE= -2147483648 (-2的31次方)
最大值:Integer.MAX_VALUE= 2147483647  (2的31次方-1)

(3)long

占有字节:8
基本类型:long 二进制位数:64
最小值:-9223372036854775808 (-2的63次方)
最大值:9223372036854775807 (2的63次方-1)

  这里稍微解释下吧,1字节=8位,因为计算机存储的是二进制,并且它的最高位如果是0的话代表是正数,如果是1的话代表是负数,以int为例它的最大值也就是位数全部占满的话就是01111111 11111111 11111111 11111111从右向左依次是1×20 + 1×21 + … + 1×230 也就是2的31次方-1,而负数的最小值是10000000 00000000 00000000 00000000也就是-2的31次方,暂且可以这么理解,其中可能有些歧义,具体的请了解计算机的二进制相关知识

注意的问题:
  因为在Java中整数默认都为 int 类型,所以要在定义的 long 型数据后面加 l或 L,一般都加L,因为l有点辨别不清楚,以上的意思并不是表面上的那么简单,我有必要说明一下:
请看如下代码:

  这里我定义一个int类型,赋予一个在其范围内的数值,同样也给long赋予相同数值,两者不会报错

int number1 = 123456;
long number2 = 1234567;

  这里赋予一个在int范围之外的数值,同样也给long赋予相同数值,发现int和long变量都会报错,这是怎么回事,long不是比int的范围大吗,那为什么都会报错呢?
  解释:我上面说的是整数默认都为int类型,也就是说,如果我们赋给long类型的变量后面的数值没有加L或者l的话,那么它就默认的是把int类型的数字赋予给long,而后面的数字又超出了int类型的最大范围,所以long那里也会报错。

int number1 = 2147483648;
long number2 = 2147483648;

我们只需要在数字后面加L或者l,Java就知道我们后面的数字是要用long类型,就不会报错了

int number1 = 2147483648;
long number2 = 2147483648L;

2.浮点型(float、double)

  浮点型其实跟整型的理解类似,他们之间的区别在于他们的精确度不同

(1)float

占有字节:4
二进制位数:32
取值范围:3.402823e+38~1.401298e-45(e+38 表示乘以10的38次方,
而e-45表示乘以10的负45次方)

(2)double

占有字节:8
二进制位数:64
取值范围:1.797693e+308~4.9000000e-324

注意的问题:
  1.与整型类似,在Java中浮点数默认都为 double类型,所以要在定义的 float 型数据后面加 F或 f
  2.将整型数字赋值给float变量,输出是以小数的形式输出

double number = 1;
System.out.println(number)
//输出结果为1.0

3.byte型

  byte类型的数据是8位带符号的二进制数。

byte

占有字节:1
二进制位数:8
最小值:-128 (2的7次方)
最大值:127 (2的7次方-1)

注意的问题:
  1.如果将大于127或小于-128的数赋予byte类型,那么原位数会有所丢失,比如说把32位的int类型赋予byte类型,那么赋予之后byte只会取最后8位来进行运算,前面的位数都会丢失
  2.该数据类型目前接触用的不多,后面涉及IO流的时候会用在byte数组中,这个目前初学作为了解即可

4.char型

  char 类型是一个单一的 16 位 Unicode 字符,

char

占有字节:2
二进制位数:16
最小值:0 (Unicode字符集中无负数)
最大值:65535(2的16次方-1)

注意的问题:
  1.只能放单个字符
  2.char类型可以赋予任意单个字符,任意汉字,以及0-65535的整型,赋值整型时会转化为相应Unicode码值的字符,Unicode码兼容ASCII码(其中的相关知识会在后面的字符集中讲)
  3.定义字符时,使用单引号定义’a’
  4.字符间进行运算时,会转换成相应的码值进行计算

char ch1 = 'a';
char ch2 = '程';
char ch3 = 97//相当于字符'a'
char ch4 = 40 + 57;//等于97,相当于字符'a'

5.boolean型

  boolean数据类型表示一位的信息,只有true和false两个值,默认值为false

boolean

布尔数据类型只有两个可能的值:真和假。
它的“大小”并不是精确定义的(没必要纠结于其大小,关于这点官方说法是与
int一直都是4字节)。

三、不同数据类型间的转换

  因为每种数据类型的存储空间不同,有的范围大,有的范围小,从小的转为大的Java会隐式转换(自动转换),而从大数据类型转为小数据类型就需要我们手动进行强制类型转换,否则Java就会报错。
  举例说明一下,我们一共10个人去坐车旅游,一开始我们坐的是大巴,10个人绰绰有余,后面又要换成小轿车,那么就意味着我们10个人当中必然有人坐不下,也就是会丢失,大巴就相当于大的数据类型,10个人就相当于存储的数据

  数据类型的转换
    1.隐式转换(自动转换)
        数字表示范围小的数据类型可以自动转换成范围大的数据类型
    2.强制转换
        从大到小的数据类型转换
            格式:被转换的数据类型 变量 = (要转换的数据类型)(变量名)
//驼峰命名法
double doubleNumber = 2.53;
int intNumber = 2;
//大范围数据类型double转换为小范围数据类型int
intNumber = (int) doubleNumber;
System.out.println(intNumber);
//输出结果为:2,数据丢失一部分

注意的问题:
  注:不要随便使用强制类型转换,因为可能会损失精度

四、总结

本节介绍了Java的八种基本数据类型及类型间的转换以及再使用过程中要注意的一些问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

yuan生的小小白

感谢您未来我将提供更精彩的文章

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

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

打赏作者

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

抵扣说明:

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

余额充值