数据类型与变量(一)

目录

1.字面常量

1.1 简单举例

1.2 常量概念

1.3 字面常量的分类

2.数据类型

2.1 数据类型的分类

3.变量

3.1 变量概念

3.2 语法格式

3.3 整型变量

3.3.1 整型变量

3.3.2 长整型变量

3.3.3 短整型变量

3.3.4 字节型变量

3.4 浮点型变量

3.4.1 双精度浮点型

3.4.2 单精度浮点型

3.5 字符型变量

3.6 布尔型变量


1.字面常量

1.1 简单举例

看下面这个语句:

System.out.println("Hello World");

不论程序何时运行,输出的总是Hello World,”Hello World“就是字面常量。

1.2 常量概念

即程序运行期间,固定不变的量。

比如:一周有七天,一年有12个月...

举例:

public class Test {
  public static void main(String[] args) {
     System.out.println(false);
     System.out.println('b');
     System.out.println(13.14);
     System.out.println(2);

   }
}
       

这里的false,‘b’,13.14,2都是常量,将其称为字面常量。

1.3 字面常量的分类

①字符串常量:由" "括起来的,例如:"Hello","1314"。

②整形常量:程序中直接写的数字(无小数点),例如:10,100。

③浮点型变量:程序中直接写的小数,例如:13.14。

④字符常量:由‘ ’括起来的当个字符,例如:‘A’。

⑤布尔常量:只有true和false。

注意:①②③④⑤在Java中都称为数据类型。

2.数据类型

2.1 数据类型的分类

  

                                                    数据类型
       基本数据类型          引用数据类型
                      基本数据类型关键字内存占用范围变量包装类型
 四类八种整型字节型byte1字节-128~127Byte
短整型short2字节-32768~32767Short
整型int4字节-2^31~2^31-1Integer
长整型long8字节-2^63~2^63-1Long
浮点型单精度浮点型float4字节有,一般不关注Float
双精度浮点型double8字节有,一般不关注Double
字符型字符型char2字节0~65535Character
布尔型布尔型boolean无明确规定true和falseBoolean

注:①不论在16位系统还是32位系统,内存占用都不变。

       ②整型与浮点型都是带有符号的。

       ③整形默认为int型,浮点型默认为double型。

       ④字符串属于引用类型。

       ⑤由于int类型为4个字节,32个比特位(一个符号位和31个数值位)

           所以最大值为2^31-1,最小值为-2^31。

           (整形范围计算皆同上)

       ⑥浮点数与整数在内存中的存储方式不同,不能简单使用2^n的形式计算

       ⑦在Java虚拟机规范中,没有明确规定boolean占几个字节,也没有专门用来处理boolean的字节码指令;而在Oracle公司的虚拟机实现中,boolean占1个字节。

3.变量

3.1 变量概念

即经常改变的内容。例如:人的年龄,体重等。

而数据类型就是用来定义不同种类变量的。

3.2 语法格式

数据类型 变量名=初始值;(左操作数=右操作数)

例如:

public class Test2 {
    public static void main(String[] args) {
        int a = 10;//在Java中=表示赋值
        double b = 1.1;
        char ch = 'c';
        boolean d = true;
        int m1 = 1,m2 = 2,m3 =3;//在一行可以定义多个相同类型的变量
        System.out.println(a);
        System.out.println(b);
        System.out.println(ch);
        System.out.println(d);
        System.out.println(m1);
        System.out.println(m2);
        System.out.println(m3);
    }
}

运行结果如下:

那么如果不赋值会发生什么呢?让我们浅试一下

public class Test2 {
    public static void main(String[] args) {
        int a;
        System.out.println(a);
    }
}

可以看出,当不赋初值时,编译器会报错,无法运行,由此可见,Java很安全。

3.3 整型变量

3.3.1 整型变量

①int定义的整型变量(初值设置)

//方式一:在定义时给出初始值
int a = 10;
System.out.println(a);
//方式二:在使用前设置初值
int b;
b = 10;
System.out.println(b);

注:如果没有合适的初始值设置,可以设置为0。

 ②int型变量所能表示的范围:

public class Test2 {
    public static void main(String[] args) {
        System.out.println(Integer.MAX_VALUE);
        System.out.println(Integer.MIN_VALUE);
    }
}

运行结果如下:

③变量设置初始值时,不能超过int的表示范围,否则会导致溢出。

public class Test2 {
    public static void main(String[] args) {
        int m = 12334556766;
        System.out.println(m);
    }
}

运行结果如下:

3.3.2 长整型变量


①long定义的长整型变量

public class Test2 {
    public static void main(String[] args) {
     long a = 10L;//为了区分int和long类型,一般在long类型变量的初始值后加L
     System.out.println(a);
    }
}

 运行结果如下:

②long型变量所能表示的范围

public class Test2 {
    public static void main(String[] args) {
        System.out.println(Long.MAX_VALUE);
        System.out.println(Long.MIN_VALUE);
    }
}

运行结果如下:

3.3.3 短整型变量

①short定义的短整型变量 

public class Test2 {
    public static void main(String[] args) {
        short a = 10;
        System.out.println(a);
    }
}

运行结果如下:

②short型变量所能表示的范围

public class Test2 {
    public static void main(String[] args) {
        System.out.println(Short.MAX_VALUE);
        System.out.println(Short.MIN_VALUE);
    }
}

运行结果如下:

3.3.4 字节型变量

①byte定义的字节型变量

public class Test2 {
    public static void main(String[] args) {
        byte a = 10;
        System.out.println(a);
    }
}

 运行结果如下:

 ②byte型变量所能表示的范围

public class Test2 {
    public static void main(String[] args) {
        System.out.println(Byte.MAX_VALUE);
        System.out.println(Byte.MIN_VALUE);
    }
}

运行结果如下:

3.4 浮点型变量

3.4.1 双精度浮点型

①double定义的双精度浮点型变量

public class Test2 {
    public static void main(String[] args) {
        double d = 1.1;
        System.out.println(d);
    }
}

运行结果如下:

神奇的代码Ⅰ

​
public class Test2 {
    public static void main(String[] args) {
        int a = 1;
        int b = 2;
        System.out.println(a/b);//会输出0.5么
    }
}

​

看运行结果:

 为什么输出的不是0.5呢?

在Java中int/int的值仍然是int(会直接舍弃小数部分),所以为了得到0.5,需要用double类型计算,如下所示:

public class Test2 {
    public static void main(String[] args) {
        double a = 1;
        double b = 2;
        System.out.println(a/b);
    }
}

运行结果如下:

 神奇的代码Ⅱ

public class Test2 {
    public static void main(String[] args) {
        double a = 1.1;
        double b = 1.1;
        System.out.println(a*b);//会输出1.21么
    }
}

看运行结果:

那么为什么不是1.21呢?

因为小数在计算机当中,没有一个非常完全的表示,而是精确到了某一位。

比如说一个抽奖活动,说你有99.99%的概率获奖,其实这个是精确之后的表述,但其实可能是99.99000002%。

3.4.2 单精度浮点型

①float定义的单精度浮点型变量

public class Test2 {
    public static void main(String[] args) {
        float a = 1.8f;//1.8F也可
        System.out.println(a);
    }
}

运行结果如下:

 

②由于float类型表示的数据精度范围较小,所以一般在工程上用到浮点数都优先考虑double。

3.5 字符型变量

①char定义的字符型变量

​
public class Test2 {
    public static void main(String[] args) {
        char ch = 'A';//大写字母
        char m  = '1';//数字字符
        System.out.println(ch);
        System.out.println(m);
    }
}

​

运行结果如下:

 

 注:①java中使用单引号+单个字母的形式表示字符字面值。

        ②Java中的字符可以存放整形(Java中使用Unicode表示字符,一个字符占用两个字节,表示的字符种类更多,包括中文)

           例如:

public class Test2 {
    public static void main(String[] args) {
        char ch = '帅';
        System.out.println(ch);
    }
}

 运行结果如下:

3.6 布尔型变量

①boolean定义的布尔型变量

public class Test2 {
    public static void main(String[] args) {
        boolean a = true;
        boolean b = false;
        System.out.println(a);
        System.out.println(b);
    }
}

运行结果如下:

 注:①boolean类型的变量只有true(表示真)和false(表示假)两种取值。

        ②不存在1表示true,0表示false的用法。

        ③Java的boolean类型和int类型不能相互转换,看以下代码:

public class Test2 {
    public static void main(String[] args) {
        boolean a = true;
        System.out.println(a+1);
    }
}

看运行结果:

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值