Annual salary30W+Java开发工程师——2.Java变量与数据类型(初始包装类)

1.Java数据类型的补充

(1)boolean型 (1 byte/1 bit)

Java中新接触的一种数据类型,因为没有确定它的大小,不过有两种说法,一种是大小为一个字节,还有一种是一个比特位,因为布尔型变量只有两个可以储存的值,一个是true,一个是false,与C语言不同,Java的true就是true,而不是非零都可以表示,false就是false,而不是零。定义布尔型变量的方法为 boolean flg = true/false;。

(2)string型 (字符串)

在Java当中,可以直接定义一个字符串类型的变量,但是这种不属于基本数据类型,而属于引用型,Java当中还有其它引用型例如枚举,数组等等,之后我们再谈这些。定义字符串类型的格式是string ch = “Hello”;。

2.初识Java的包装类

在Java语言中,在各种数据类型之上可以实现了一个升级,这就是包装类,可以理解为数据类型的plus版本。例如int的包装类为Integer,char的包装类为character,除了这两个以外剩下的全部都是首字母大写即可,包装类将一个数据类型中附加了很多方法,例如获取int类型最大可以接收的值可以利用方法Integer.MAX_VALUE,利用包装类可以很方便的实现很多功能。

3.Java变量的命名

在Java中,我们一般以小驼峰的格式来对变量进行命名,例如firstNumber,这种格式便是小驼峰命名法。
我们要遵循的硬性要求是,变量只可以由字母,数字,下划线和美元符号组成,但是数字不可以作为开头,同时命名时大小写不同的是完全不同的两个变量。
以上硬性要求是编译器无法通过的变量命名,但是事实上还有一些软性要求,一般我们在命名时要尽量不用美元符号等,而且尽量不要用中文拼音,要让变量名简单易懂。

4.Java常量

之前我们说过,Java中变量是在程序运行时才可以知道它的值,而常量是在程序编译时已经确定值的一种量,一般分为两种,一种是字面值常量,例如我们直接写入的100,true,0.5,100L等等,还有一种是final修饰的变量,也属于常量,final应该类似于c语言中的const关键字,被final修饰的关键字也是无法改变其值的,因为常量在编译时便确定了值,所以常量只可以被初始化一次。同时我们对于常量一般以所有字母大写来命名。

5.Java数据类型的转换

我们之前提到了Java是一个强类型语言,因此变量不可以随意转换赋值,下面我们来详细的介绍一下。

(1)int和long,double的转换

我们知道int是四个字节,long,double都是八个字节,因此我们只可以将int的值赋给long或者double,但是不可以反过来,这样会造成精度丢失。

(2)强制类型转换

在进行不同类型的赋值中,也存在一种强制类型转换的方法,可以将某一种数据强制转化为其他类型,格式是(想要得到的数据类型)转化的变量名,例如long a = 10000L;int b = (int)a;在这个时候我们可以强行使得long定义的a变量变为int类型并且赋值入b变量中。但是这种强制转换的方法是有一定风险的,比方说long中的变量超过了int型可以存储的数据范围,那么这个时候程序便会崩溃,因此在进行强制类型转换之前一定要确保数据可以存储。

(3)boolean型

因为boolean型的特殊性,它里边存储的数据只有true和false,与任何其他的数据类型都不兼容,因此布尔型无法与其他数据类型进行类型转换,包括强制类型转换。

(4)byte型

byte型有一个特殊的地方,就是它小于四个字节,在CPU处理数据时,小于四个字节的数据会自动提升为四个字节,因此如果两个byte型变量相加,我们必须要将结果再强制转换为byte型才可以
举例:byte a = 1; byte b = 3; byte c = (byte)a + b;

(5)类型提升

在若干个变量进行操作时,会将类型小的变量自动提升为类型大的变量,这样是为了方便CPU处理数据,例如:int a = 4; double b = 10L; int c = a + b;
代码是无法编译通过的,因为a这时以及提升为了long类型,两个long类型相加是不可以利用int型储存的。

(6)int和字符串相互转换

在Java当中,进行int和string相互转换的时候,我们需要利用一个方法是valueOf,例如:int a = 132; string ch = String.valueOf(a);这时,ch中储存的便是将a转换后产生的字符串了,我们从这里也可以发现Java包装类的好处。

6.逻辑运算符

在Java当中,逻辑运算符有&&,||,!=等等,这些我们早已接触过,不过值得一提的是&&和||的短路问题,短路是什么呢,比方说(10<20)|| (i++)
我们可以知道这个布尔表达式的结果是true,因为10<20,因此后边的i++便不被执行,同理,若(10>20)&&(i++),那么i++也不被执行,如果根据前一个条件便可以判断布尔表达式的结果,那么后一个表达式便不被执行,这就是短路。

7.>>>无符号右移符号

Java当中多了一个运算符是无符号右移运算符,我们可以理解为二进制位右移一个,在最左边补符号位统一补0,不论该数是正是负。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值