Java基础之(一) 变量

一、变量的类型

这里写图片描述

引用数据类型就是对一个对象的引用,对象又包括实例和数组两种。实际上,引用数据类型变量就是一个指针,只是java里不再运用指针这个说法。
另外引用类型有一种特殊的null类型,也称为空类型。空引用(null)是null类型变量唯一的值。空引用可以转换为任何引用类型,但它不能转换为基本类型,因此不要把null值赋值给任何基本数据类型变量。

基本数据类型字节表:

boolean 布尔型 1/8
byte 字节类型 1
char 字符型 2 一个字符能存储一个中文汉字
short 短整型 2
int 整数类型 4
float 浮点类型(单精度) 4
long 长整形 8
double 双精度类型(双精度) 8

问题:String是基本的数据类型吗?
回答:String不属于基本数据类型范畴内,但String属于最常见的一种引用类型。

二、变量的命名规范

这里写图片描述

问题:int age; int Age; int _age; int $age; int 1age; int-age哪个是会编译出错的?-

三、字面量

字面常量就是一个确定的值本身
有名常量,即是把常量 赋给这个名字

int a= 1
1是字面量
然后这个字面量有个名字a,就是有名常量

1.整数字面量为整型(int)
2.小数字面量为双精度浮点型(double)

问题:

public class test{
public static void main(String args[]{
    byte b = 1;
    int i = 1;
    short s = 1;
    long l = 1;
    float f = 1.0;
    doule d = 1.0
    i = l;

}
}

以上代码编译是否出错?
回答:错误-可能损失精度;1.0是双精度浮点型;float f = 1.0F;
-可能损失精度;l的数据类型大于i的数据类型;不能把大的数据类型赋值给小的数据类型;

问题:int j = 0.5 * 10;有什么错?short sl = 1;sl = sl + 1;有什么错?
short sl = 1;sl += 1;有什么错?
回答:数据类型在运算时,结果的数据类型由字面量最大的数据类型决定。0.5是double型,因此j是int型,在赋值给j时,编译器会报错,应改为double j = 0.5*10;同理,sl + 1运算时会自动提升表达式的类型。对于最后一种情况,由于sl+=1是java语言规定的运算符,java编译器会对它进行特殊处理,因此可以正确编译。

问题:char c = “a”;是否会编译出错?
回答:错误。不兼容的类型,需要char,找到String。

注意:char只能用单引号。

但是需要注意的是:

  1. 如果直接将一个较小的整数常量(在byte或short类型的表述范围内)赋给一个byte或short常量,系统会自动把这个整型变量当成byte或者short类型来处理。
  2. 如果使用一个巨大的整数变量时,java不会自动的把这个整数常量当成long类型来处理,应在这个整数常量后增加L作为后缀。
  3. 如果把0~65535范围内的一个int整数赋给char类型变量,系统会自动把这个int整数当成char类型来处理。

下面举个简单的例子:

public class Test{
    //下面这行代码正确,因为在byte的表述范围内
    byte a = 127;
    //error:超过byte表述范围
    byte b = 128;
    //error:超出int表述范围
    long bigvalue = 9999999999;
    //正确
    long bigvalue = 9999999999L;
    //正确
    char c = 97;
}

整型数据表述范围如下图:
这里写图片描述

四、常量

在java中,利用关键字final指示常量。例如:

public class Constants{
    public static void main(String[] args){
        final double CM_PER_INCH = 2.54;
        double paperWidth = 8.5;
        double paperHeight = 11;
        System.out.println("PaperSize in centimeters:"+ paperWidth * CM_PER_INCH + "by"+ paperHeight * CM_PER_INCH );
}
}

关键字final表示这个变量只能被赋值一次。一旦被赋值后,就不能够再更改了,习惯上,常量名使用全大写。

使用常量有三个好处:

  1. 不必重复输入同一个值;
  2. 如果必须修改常量值,只需在源代码中一个地方做改动;
  3. 给常量赋一个描述性名称会提高程序可读性;
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值