数据类型与变量【Java】

36 篇文章 0 订阅

字面常量

定义

字面常量:即程序运行期间,固定不变的量称为常量。

public class Test {
    public static void main(String[] args) {
        System.out.println("hello world!");
        System.out.println("hello java");
        System.out.println(123);
        System.out.println('M');
        System.out.println(true);
    }

}

以上代码中,123,‘M’,true都是常量,称为字面常量。

分类

字符串常量:由双引号" “括起,如"12345”;
整型常量:在程序中直接书写的整数,如;100, 123;
浮点数常量:程序中直接书写的小数,如3.14, 5,20;
字符常量:有单引号’ ‘括起的单个字符,如’A’, ‘M’;
布尔常量:true和false;
空常量:null;

数据类型

JAVA 中的数据类型分为2类:基本数据类型和引用数据类型。

基本数据类型

四类:整型,浮点型,字符型,布尔类型;
八种:

在这里插入图片描述:与C语言不同的是,不论是在16位系统,32位系统,int都占用4个字节,long占用8个字节。

引用数据类型

有以下3种:

类 Class
接口 Interface
数组 Array

其具体表现形式和使用方法将会在之后学习。

变量

定义

所谓变量,就是在JAVA程序中,经常改变的内容。而数据类型就是用来定义不同类型的变量的。

语法格式

数据类型 变量名=初始值;

		int a=10;
        double b=5.20;
        char c='A';
        boolean d=true;
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
        System.out.println(d);

以上就是变量的定义格式。

        a=100;          //变量的值是可以修改的
        int m=5,n=2,z=0;//一行可以定义多个相同类型的变量

整型变量

整型变量

定义方法:

  //方法一:在定义时高出初始值
        int a=34;
        System.out.println(a);

        //方法二:未在定义时给出初始值,但在使用之前必须设置初始值,否则会报错
        int b;
        b=67;
        System.out.println(b);

注意范围:

        //int型变量所能表示的范围,超出范围,程序会报错
        System.out.println(Integer.MIN_VALUE);
        System.out.println(Integer.MAX_VALUE);

运行结果:
在这里插入图片描述

  • int 不论在何种系统下都为4个字节;
  • 为了减少程序报错的频率,推荐在定义变量时,在没有合适初值的情况下,将其设置为0;
  • 变量必须在使用之前赋值;
  • int的包装类为Integer;
长整型变量

定义方法:

        int a=20;
        long b=30;    //long定义的长整型变量
        
        long c=10L;  //为了区分int变量和long变量,在long类型变量的初始值后面加L(小写的L易与1混淆)

范围:

   //long型变量所能表示的范围是极大的,足够大部分场景的使用
        System.out.println(Long.MIN_VALUE);
        System.out.println(Long.MAX_VALUE);

运行 结果:
在这里插入图片描述
注:

  • 长整型变量的初始值后加L或l,更推荐L;
  • 不论系统,long型变量占8个字节;
  • long的包装类是Long;
短整型变量

定义方法:

short a=5;
System.out.println(a);

范围:

        // short型变量所能表示的范围:
        System.out.println(Short.MIN_VALUE);
        System.out.println(Short.MAX_VALUE);

运行结果:
在这里插入图片描述
注:

  • short在任何系统下都占2个字节;
  • short的包装类型为Short;
字节型变量

定义方法:

        byte m=4;
        System.out.println(m);

范围:

    // byte型变量所能表示的范围:
        System.out.println(Byte.MIN_VALUE);
        System.out.println(Byte.MAX_VALUE);

运行结果:
在这里插入图片描述
注:

  • byte在任何系统下都占1个字节;
  • byte的范围是:-128 ~ 127;
  • 字节的包装类型为Byte;

浮点型变量

单精度浮点型

定义方法:

float m=1.0f;
float n=2.0F;
System.out.println(m);
System.out.println(n);

注:

  • float占4个字节;
  • float的包装类型为Float;
双精度浮点型

定义方法:

public class Test {
    public static void main(String[] args) {
        double m=3.14;
        System.out.println(m);
    }
}

相关计算:

        int a1=1;
        int b1=2;
        System.out.println(a1/b1);
        double a2=1.0;
        double b2=2.0;
        System.out.println(a2/b2);
        int a3=1;
        double b3=2.0;
        System.out.println(a3/b3);

运行结果:
在这里插入图片描述

可以看到:

在JAVA中,int除以int的值仍然是int型,需要得到浮点型结果时,除数或被除数至少一个为浮点型。

注:

  • double型占8个字节;
  • double 的包装类为Double;

字符型变量

定义方法:

        char c1 = 'A'; // 大写字母
        char c2 = '1'; // 数字字符
        System.out.println(c1);
        System.out.println(c2);
      // java中的字符可以存放整形
        char c3 = '乖';
        System.out.println(c3);

注:

  • JAVA中,字符字面值的表现形式是:单引号’ '+单个字符;
  • 由于计算机中的字符本质是一个整数,而在JAVA中使用Unicode表示字符,所以一个字符占用2个字节,表示的字符种类也就更多,可以包括中文。

布尔型变量

布尔型的一般使用情形是表示真假。

定义方法:

boolean b = true;
System.out.println(b);
b = false;
System.out.println(b);

注:

  • . boolean 类型的变量只有两种取值, true 表示真, false 表示假;
  • . Java 的 boolean 类型和 int 不能相互转换, 这一点与C语言是不同的,不存在 1 表示 true, 0 表示 false 这样的用法;
  • boolean的包装类型为Boolean;

类型转换

在JAVA中,当参与运算数据类型不一致时,就会进行类型转换;
而JAVA中的类型转换分为自动类型转换(隐式)和强制类型转换(显式);

自动类型转换

自动类型转换即:在不处理代码的情况下,当进行代码编译时,编译器自动进行处理;
自动类型转换的特点:数据范围小的转为数据范围大的时会自动进行;

以代码为例:
在这里插入图片描述

可以发现:

小范围的值赋给大范围的值,编译器自动整型提升;
大范围的值赋给小范围的值,产生数据丢失,编译时报错;

强制类型转换

强制类型转换:当进行操作时,代码需要经过一定的格式处理,不能自动完成;
特点:数据范围大的到数据范围小的;

以代码为例:
在这里插入图片描述可以发现:

不同类型的变量之间赋值, 表示范围更小的类型能隐式转换成范围较大的类型;
强制类型转换有可能造成精度丢失;
不是所有的强制转换都可以成功;

类型提升

不同类型的数据之间相互运算时,数据类型小的会被提升为数据类型大的;

  1. int与long之间:int会被提升为long;
    在这里插入图片描述
  2. byte与byte的运算
    在这里插入图片描述
    byte 和 byte 都是相同类型, 但是为什么会出现编译报错呢?
    原因是:

虽然 a 和 b 都是 byte, 但是计算 a + b 会先将 a 和b 都提升成 int, 再进行计算, 得到的结果也是 int, 这是赋给 c, 就会出现上述错误.

那么为什么byte型的a和b都会被提升为int型呢?

这是由于计算机的 CPU 通常是按照 4 个字节为单位从内存中读写数据. 为了硬件上实现方便, 像 byte 和 short 这种低于 4 个字节的类型, 会先提升成 int, 再参与计算.

正确的写法应该是这样的:

byte a = 10;
byte b = 20;
byte c = (byte)(a + b);
System.out.println(c);

小结:

不同类型的数据混合运算, 范围小的会提升成范围大的;
对于 short, byte 这种比 4 个字节小的类型, 会先提升成 4 个字节的 int , 再运算;

字符串类型

在Java中使用String类定义字符串类型;

public static void main(String[] args) {
String s1 = "hello";
String s2 = " java";
System.out.println(s1);
System.out.println(s2);
System.out.println(s1+s2); // s1+s2表示:将s1和s2进行拼接
}

而在一些情况下,字符串和整型数字之间也需要转换:

  1. int 转成 String
        int num = 20;
        // 方法1
        String str1 = num + "";
       // 方法2
        String str2 = String.valueOf(num);
  1. String 转成 int
String str = "100";
int num = Integer.parseInt(str);

这里只是对字符串类型的初步了解,具体知识点以后慢慢学习吧!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值