• 数据类型与变量


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

    创建一个变量

    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

  • 相关阅读:
    解决Eclipse没有serve及无tomcat9.0
    Java Swing 飞机大战游戏
    『现学现忘』Docker基础 — 24、Docker图形化管理工具Portainer
    设计模式之访问者模式
    挑战30天学完Python:Day2 夯实基础 - 变量和内置函数
    软件测试面试丨关于JMeter的问题,看这篇就够了
    【光学】基于matlab模拟双孔干涉附matlab代码
    教务(选课)管理系统
    Java类加载器
    【渝偲】DSPE-PEG-Galactose;DSPE-PEG-半乳糖;磷脂聚乙二醇半乳糖 长循环脂质体
  • 原文地址:https://blog.csdn.net/youstory/article/details/126960728