数据类型与变量

在这里插入图片描述
数据类型可以形象的必做一个箱子, 而箱子有大有小, 要拿多大的需要具体去分析

创建一个变量

int类型

/**
     * 整形:
     * 1、大小: 4个字节(32个比特位)
     * 2、在Java里面, int没有所谓的无符号整数.
     *    所以, int既能表示整数, 也能表示负数
     * @param args
     */
    public static void main(String[] args) {
        // 数据类型  变量名 = 数值
        int a = 10;
        System.out.println(a);
        System.out.println("最大值: "+Integer.MAX_VALUE);
        System.out.println("最小值: "+Integer.MIN_VALUE);
    }

Integer是包装类, 可以粗暴理解为一个大号的int

包装类: 每个基本数据类型都会对应个类类型. 这个类类型就是包装类

long类型

/**
     * 长整型:
     * 1、他占8个字节->64个比特位
     *             -2^63       2^63-1
     * @param args
     */
    public static void main(String[] args) {
        long a = 10L;
//        L 是为了标识 a 为长整型
        System.out.println(a);
        System.out.println("最大值: "+Long.MAX_VALUE);
        System.out.println("最小值: "+Long.MIN_VALUE);
    }

short类型

/**
     * 短整型:
     * 1、2个字节-> 16个比特位
     *            -2^15     2^15-1
     * 2、没有无符号的, 只有有符号的
     * @param args
     */
    public static void main(String[] args) {
        short a = 10;
        System.out.println(a);
        System.out.println("最大值: "+Short.MAX_VALUE);
        System.out.println("最小值: "+Short.MIN_VALUE);
    }

byte类型

    /**
     * 字节型:
     * 1、占用1个字节->8个比特位
     *              -2^7     2^7-1
     *              -128     127
     * @param args
     */
    public static void main(String[] args) {
        byte a = 10;
        System.out.println(a);
        System.out.println("最大值: "+Byte.MAX_VALUE);
        System.out.println("最小值: "+Byte.MIN_VALUE);
    }

下面看几个常见的报错例子

public static void main(String[] args) {
        byte a = 128;
    }

在这里插入图片描述

    public static void main(String[] args) {
        byte a = 127;
        byte b = a + 1;
    }

在这里插入图片描述
解决方法

    public static void main(String[] args) {
        byte a = 127;
        byte b = (byte) (a + 1);
//      强转为byte类型
    }
强制类型转换, 整形提升

思考: b为什么是-128呢 ?
在这里插入图片描述
通常情况下编译器会自动检查, 你的赋值是否超出当前数据类型的范围, 但是这个例子使用的是变量

在这里插入图片描述

强制类型转换一般会面临数据丢失的风险, 后果需自己承担 !

float类型

public static void main(String[] args) {
        float a = 12.5;
    }

在这里插入图片描述
解决办法: 后面加个f说明a是float类型

public static void main(String[] args) {
        float a = 12.5f;
    }

double 类型

    public static void main(String[] args) {
        double a = 12.3;
    }

小数除法

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

        int c = 1;
        int d = 2;
        System.out.println(c*1.0/d);
    }

char 字符型变量

Java当中 使用的是Unicode字符集
Unicode字符集: 包含了很多的语言–> 中文, 拉丁文…
ASSIC字符集: 只能表示英文相关的

    public static void main(String[] args) {
        char ch = 'a';
        char ch2 = 97;
        
        System.out.println(ch);
        System.out.println(ch2);
    }

打印26个字母

        char ch = 'a';
        char ch2 = 97;
        for (int i = 0; i < 26; i++) {
            System.out.print(ch2+" ");
            ch2+=1;
        }
        System.out.println();

boolean 类型

	/**
     * boolean 类型 比较特殊 JVM没有明确大小
     * @param args
     */
    public static void main(String[] args) {
        boolean flg = true;
        boolean flg2 = false;

        System.out.println(flg);
        System.out.println(flg2);
    }

下图就是学习过的数据类型了
在这里插入图片描述

类型转换
  1. 隐式类型转换
public static void main(String[] args) {
        int a = 10;
        long b = 100L;
        
        b = a;// 发生了隐式类型转换
        a = b;//错误写法, 大类型转换不了小类型, 但是可以强制类型转换
        a = (int) b;//强转会发生数据丢失 !
    }

隐式类型转换一般发生在小类型 转换 为大类型

思考

在这里插入图片描述

在这里插入图片描述

  1. 显示类型转换
    在这里插入图片描述
类型提升
  1. 小于4个字节的都需要类型的提升
    由于计算机的 CPU 通常是按照 4 个字节为单位从内存中读写数据. 为了硬件上实现方便, 诸如 byte 和 short这种低于 4 个字节的类型, 会先提升成 int, 再参与计算
  2. 当两种不一样的数据类型进行运算的时候,会把其中的一个较小的数据类型,转换为较大的参与运算
    在这里插入图片描述

字符串类型

单引号引起来的内容是字符
双引号引起来的是字符串

    public static void main(String[] args) {
        String str = "abcababerab";
        System.out.println(str.length());// 3
        System.out.println(str.toUpperCase(Locale.ROOT));//小写变大写
        System.out.println(str.replace("ab", "NB"));//把ab换成NB
    }

.length()

在这里插入图片描述

String --> int
int --> String

    public static void main(String[] args) {
        String str = "1234";
        int a = Integer.parseInt(str);//把str内容换成数字
        System.out.println(a+1);//1235

        int i = 1234;
        String ret = String.valueOf(i);
        System.out.println();
    }

呼~~~~~~~~~~~~可算码完了😍😍😍

2022年9月20日23:10:49

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值