变量


变量的定义和使用

package tech.aistar.day02;

import java.util.Date;

public class VarInitDemo {
    public static void main(String[] args) {
        byte b = 127;

        short s = 100;//使用频率很少

        //开发中常用的整数型类型 - int,long
        //int类型可以初始化的值有哪些
        int a = 100;

        //存储一个二进制,只要0b二进制,1010对应的十进制
        //java中的int类型表示的是十进制的数据
        //1010 = 1*2^3+1+2^1 = 10
        int a1 = 0b1010;
        System.out.println(a1);

        //java中使用单引号来表示一个字符
        //'a'->char类型->int类型
        //'a'对应的ascii码97
        //'A'对应的ascii码是65
        //'0'对应的ascii码是48
        int a2 = 'a';
        System.out.println(a2);

        //java中以0开头的代表是八进制
        //八进制转换十进制032 = 3*8^1 + 2*8^0 = 26
        int a3 = 032;
        System.out.println(a3);//26

        //长整型 - long

        //int类型->long类型
        long x1 = 100;

        //推荐定义long的方式采用隐式转换
        long x2 = 200L;

        //jdk7.x提供的 - 为了增强数字的可读性而已.
        long x3 = 3_14_15_926L;

        System.out.println(x3);

//        Date date = new Date(3L*24*60*60*100*1000*1000*2000);
//        System.out.println(date);

        //浮点数 - 并不是用来进行精确计算的
        //后面java.math.Decimal类解决小数计算的时候精度丢失的问题.
        double d = 1.75;

        //推荐定义double
        double d2 = 5.67D;

        //float的精度是7或者8
        //double的精度是16

        //double类型强制转换成float类型
        float f = (float) 3.14;

        //隐式转换
        float f2 = 3.14F;
        System.out.println(f2);

        //补充
        //数字进行计算的时候,都会转换成二进制进行计算
        //小数进行计算的时候,还是不可逆的
        //0.8999999999999999
        System.out.println(2.0-1.1);

        //0.9
        System.out.println(2.0f - 1.1f);

        //int->float  ×
        //int->double √
        int n = 123456789;
        float ft = n;
        System.out.println(ft);//1.23456792E8

        double db = n;
        System.out.println(db);//1.23456789E8

        float f3 = 1.234567565f;
        System.out.println(f3);//1.2345675

        //定义布尔类型
        boolean flag = true;

        System.out.println(flag);

        //最特殊的是char类型

        char c = 65;
        System.out.println(c);
    }
}

char类型

java中是使用单引号表示char类型,使用双引号来表示字符串.

java的底层的编码是unicode编码,char类型也是采用unicode编码

unicode编码是双字节[16bit],所以存储一个汉字.

ascii码和unicode码的关系?

不同的国家,符号表示的方式不同,所以ascii码[0127]不够用.所以unicode[065535]码诞生了,几乎

包含了所有国家的符号,unicode码包含ascii码.char类型在进行计算的时候会转换成ascii码来进行计算.

代码

package tech.aistar.day02;

public class CharDemo {
    public static void main(String[] args) {
        //java中是使用单引号表示char类型
        //char的空间大小也是确定的
        char c = 'a';
        System.out.println(c);

        //十六进制
        //由数字0-9或者字母a-f/A-F,字母a代表就是数字10

        //cmd - 输入native2ascii -> 输入中文
        char c2 = '\u34af';
        System.out.println(c2);

        //char底层采用的是unicode编码,所以存储一个汉字
        char c3 = '星';
        System.out.println(c3);

        char c4 = 48;
        System.out.println(c4);

        int m = 48;
        char c5 = (char) m;
        System.out.println(c5);

        //char类型在进行计算的时候会转换成ascii码来进行计算.
        //'a' = 97,'A' = 65,'0' = 48
        //char类型的计算 - 进阶部分
        char n1 = 'a' + 1;//ok
        System.out.println(n1);// 'b'

        char cc = 'a';
        char nn = (char) (cc + 1);
        System.out.println(cc);

        //char->int
        int result = 'a' + 'b';//ok
        System.out.println(result);//195
    }
}

变量的赋值方式

  1. 单个赋值 int a = 10;

  2. 通过表达式赋值

    int a = 10;
    int b = 20;
    //表达式:由字面量或者变量以及运算符号组成的合法的语句
    int result = a + b;
    
  3. 链式赋值

    int a=10,b=20,c=30;//同时声明了三个变量,并且都进行初始化
    
    int a,b,c = 100;//此处仅仅是对c进行赋值操作,如果一个局部变量没有进行赋值,那么将不能够使用
    
  4. 可以先定义变量,然后再进行赋值

    int a;
    a = 10;
    a = 20;
    System.out.println(a);
    
  5. 通过方法进行赋值 - 暂时了解

    int result = getResult();
          
    /**
         * 自定义了一个方法 - 千万不要将它放在main方法中
         * java语法 - 方法体内部是不能够再去定义方法的
         * @return 整数
         */
    public static int getResult(){
      return 100;
    }
    

变量的分类

  1. 局部变量 - 定义在方法体内部

    使用的范围就是在它所在的最近的那个{}中

  2. 全局变量 - 定义在方法体外部的变量

    生命周期 - 面向对象

常量

使用final修饰的变量 - 常量 - 不可改变的量

语法

final 数据类型 变量 [= 初始值];
package tech.aistar.day02;

/**
 * 本类用来演示: 局部变量和全局变量
 *
 * @author: success
 * @date: 2021/7/16 10:04 上午
 */
public class LocalVarAndGlobalDemo {
    //定义全部变量
    static int c = 100;//静态变量 - 暂不了解

    public static void main(String[] args) {

        //代码块
        //局部变量 - 定义在方法体内部
        int a= 10;
        {
//            使用的范围就是在它所在的最近的那个{}中
            int b = 20;

            System.out.println(a);//ok

            System.out.println(b);//ok
        }

        //使用的范围就是在它所在的最近的那个{}中

        //System.out.println(b);//error

        //访问全局变量
        System.out.println(c);
        
        //定义一个常量 - 不可改变的量
        final int s = 100;
        //s = 200;
        
        
        //final - b肯定不可变
        final byte b = 100;
        
        byte result = b + 1;//ok

    }
}

文章作者: 码农耕地人
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 码农耕地人 !
  目录