Java基础语法


字面量(直接量)

概述

字面量,也叫直接量: 是指在Java程序中固定不变的数据。

分类

在这里插入图片描述

书写形式

除了通常的十进制书写形式,整数直接量也经常写16进制的形式(以0X或0x开头)或8进制的形式(以0开头)。

基本数据类型

四类八种基本数据类型:
在这里插入图片描述
所以

在这里插入图片描述

问题一:整数直接量超出了整数的范围

如果直接写出的整数超过了int的表达范围,将出现编译错误。

int d = 10000000000;

以上代码中,10000000000不属于int类型的直接量,因为Java认为所以直接写出的整型都是int类型,而这个数值超过了int的表达范围。

问题二:整数运算的溢出

两个整数进行运算时,其结果可能会超过整数的范围而溢出。

int a = 2147483647;
int b = -2147483648;
a = a + 1;
b = b - 1;
System.out.println("a=" + a);
System.out.println("b=" + b);

上述代码运行后的输出结果为:

a = -2147483648
b = 2147483647

变量a最初值为2147483647,是int类型的最大值,加1后出现溢出现象,a的值变成了int类型的最小值。而b变量最初赋的值为-2147483648,是int类型的最小值,减1后出现溢出现象,b的值变成了int类型的最大值。这显然不符合加法和减法的规则,所以,今后使用的时候要注意类似的问题。

问题三:浮点数存在舍入误差问题

由于浮点数内部使用二进制的方式来表示十进制,会存在舍人误差。二进制系统中无法精确的表示1/10,就像十进制系统中无法精确表示1/3 一样。对于一些要求精确运算的场合会导致代码的缺陷。

double money = 3.0;
double price = 2.9;
System.out.println(money - price);

上述代码运行后的输出结果为:

 0.10000000000000009

如果需要精确的运算可以考虑放弃使用double或float而采用BigDecimal类来实现。

数据类型的转换

Java程序要求参与的计算的数据,必须要保证数据的一致性,如果数据类型不一致将发生类型的转换。

自动转换

在这里插入图片描述

转换原理图解

bytel类型内存占一个字节,在和int类型运算时会提升为int类型,自动补充3个字节,因此计算后的结果还是int类型。
在这里插入图片描述

转换规则

在这里插入图片描述

强制转换

在这里插入图片描述

转换原理图解

在这里插入图片描述

注意

在这里插入图片描述

+=符号的扩展

下面的程序有问题吗?

public static void main(String[] args) {
short s = 1;
 s += 1;
 System.out.println(s);
}

在这里插入图片描述

字面量和变量的运算

下面的程序有问题吗?

public static void main(String[] args) {
byte b1 = 1;
 byte b2 = 2;
 byte b3 = 1 + 2;
 byte b4 = b1 + b2;
System.out.println(b3);
System.out.println(b4);
}

在这里插入图片描述

选择语句 – – switch

格式

switch (表达式) {
case 常量值1:
语句体1;
 break;
case 常量值2:
 语句体2;
 break;
 ...
 default: 语句体n+1;
break;
}

表达式数据类型

表达式的数据类型,可以是byte,short,int,char,enum(枚举),JDK7后可以接收字符串。

case的穿透性

在switch语句中,如果case的后面不写break,将出现穿透现象,也就是不会再判断下一个case的值,直接向后运行,直到遇到break,或者整体switch结束。

if(…)中关系运算符的短路运算

对于&& :当第一个条件不满足时,后面的就不再计算,哪怕后面是类似于 5/0这种运行一定会报错的表达式

  
 对于|| :当第一个条件满足时,后面的条件就不参与运算

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值