Java基础语法(二)

3.类型转换

由于Java是强类型语言,所以要进行一些运算的时候,需要用到类型转换。

低  ------------------------------------>  高
byte,short,char-> int-> long-> float-> double//等级由低到高排列

运算中,不同类型的数据先转化为同一类型,然后进行运算。

  1. 强制类型转换——数据类型由高等级转换成低等级

因为高等级的数据类型的范围往往比低等级的高,由高等级转换成低等级的时候,有可能出现内存溢出的情况。

  1. 自动类型转换——数据类型有低等级转换成高等级

因为等级低的数据类型范围比等级高的范围小,所以不会出现内存溢出的情况,也不用强制转换。

在这里插入图片描述

int类型的范围比byte大(int等级byte高),当int类型的数超出byte的范围时,int类型转换byte类型就会出现内存溢出

下面是有关内存溢出问题的拓展:

在这里插入图片描述

①数字的数值比较大时,我们可以用下划线进行分割,下划线不会被输出,这是jdk7版本后的新特性。

②int类型占4个字节的范围(-2147483648 ~ 2147483647),大概在正负21亿之间。上图中money*years的结果是200亿,很明显已经超过了int类型的范围,我们把这种情况定义为内存溢出。溢出部分会在范围内循环,所以我们会看到图中输出的结果为-1474836480(感兴趣的小伙伴可以自己算一下)

③我们可以通过强制转换把int类型转换为long类型,从而扩大其范围,使数据在数据类型的范围内。但是问题来了,按照图中的方法:long total2 = money*years;,我们把式子计算的结果转换成long类型后,输出的结果还是-1474836480,而不是200亿?其实仔细想一下我们不难发现,其实这条代码是用int类型的数据计算出一个int类型的结果,再把这个结果转换成long类型,所以它的结果和int类型是一样的。

④我们改变一下思路,用下面一条代码long total3 = money*((long)years);,在计算前先把式子中其中一个变量转换成long,这样计算结果就会是long的结果,输出200亿

4.变量、常量

变量

变量——可以变化的量

Java是一种强类型语言,每一个变量都必须声明其类型

Java变量是程序中最基本的储存单元,其要素包括变量名,变量类型和作用域

type varName [=value] [{,varName[=value]}]
//数据类型  变量名 = 值;可以使用逗号隔开来声明多个容类型变量。(不建议)

在这里插入图片描述

注意事项:

  • 每个变量都有类型,类型可以是基本类型,也可以是引用类型
  • 变量名必须是合法的标识符
  • 变量声明是一条完整的语句,因此每一个声明都必须以分号结束

变量作用域

  • 类变量(在类下定义的变量【前面有static】,方法里可以使用)
  • 实例变量(在类下定义的变量【无static】,方法里不能直接使用)
  • 局部变量(在方法里定义的变量)
public calss Variable{
    static int allClicks=0;		//类变量
    String str="hello world";	//实例变量
    
    public void method(){
        int i = 0;// 局部变量
    }
}

常量

  • 常量(Constant):初始化(initialize)后不能再改变值!不会变动的值。
  • 所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。
  • 常量名一般使用大写字符。
final 常量名=;
final double PI = 3.14;

在这里插入图片描述

变量的命名规范

  • 所有变量、方法、类名要见名知意
  • 类成员变量:首字母小写和驼峰原则:mouthSalary(除了第一个单词,后面的单词首字母大写 如:lastName)
  • 局部变量:首字母小写和驼峰原则
  • 常量:所有字母大写和下划线:MAX_VALUE
  • 类名:首字母大写和驼峰原则:Man,GoodMan
  • 方法名:首字母小写和驼峰原则:run( ),runRun()

学习资料:狂神说

欢迎大家关注博主的公众号:小黄的阁楼,里面的学习笔记会和CSDN同步,欢迎前来一起学习!!
在这里插入图片描述

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值