第二天基础变量及八种基本数据类型

  1. 变量:存数的

    • 声明:-------------相当于在银行开帐户

      int a; //声明一个整型的变量,名为a
      int b,c,d; //声明三个整型的变量,名为b,c,d
      //int a; //编译错误,变量不能同名
    • 初始化:第一次赋值---------相当于给帐户存钱

      int a = 250; //声明整型变量a并赋值为250
      int b;   //声明整型变量b
      b = 250; //给变量b赋值为250
      b = 360; //修改变量b的值为360
      int c=5,d=10; //声明两个整型变量c和d,并分别赋值为5和10
    • 使用:---------使用的是帐户里面的钱

      • 对变量的使用就是对它所存的那个数的使用

        int a = 5;
        int b = a+10; //取出a的值5,加10后,再赋值给变量b
        System.out.println(b);   //输出变量b的值15
        System.out.println("b"); //输出b,双引号中的原样输出
        a = a+10; //在a本身基础之上增10
        int c = 5000; //帐户余额
        c = c-1000; //取款1000
      • 变量在用之前必须声明并初始化

        //System.out.println(m); //编译错误,变量m未声明
        int m;
        //System.out.println(m); //编译错误,变量m未初始化
    • 命名:

      • 只能包含字母、数字、_和$符,并且不能以数字开头
      • 严格区分大小写
      • 不能使用关键字
      • 允许中文命名,但不建议,建议"英文的见名知意"、"小驼峰命名法"
      int a_2$,_4c,$_;
      //int a*b; //编译错误,不能包含*号等特殊符号
      //int 1a; //编译错误,不能以数字开头
      int aa = 5;
      //System.out.println(aA); //编译错误,严格区分大小写
      //int class; //编译错误,不能使用关键字
      int 年龄; //允许使用中文,但不建议
      int age; //建议"英文见名知意"
      int score,myScore,myJavaScore; //建议"小驼峰命名法"
  2. 八种基本数据类型:byte,short,int,long,float,double,boolean,char

    • int:整型,4个字节,-21个多亿到21个多亿

      • 整数直接量默认为int类型,但不能超范围,若超范围则发生编译错误
      • 两个整数相除,结果还是整数,小数位无条件舍弃(不会四舍五入)
      • 整数运算时,若超出int范围则发生溢出(溢出不是错误,但需要避免)
      //1)int:整型,4个字节,-21个多亿到21个多亿
      int a = 25; //25称为整数直接量,默认int类型
      //int b = 10000000000; //编译错误,100亿默认为int类型,但超出int范围了
      //int c = 3.14; //编译错误,整型变量中只能装整数
      System.out.println(5/2); //2
      System.out.println(2/5); //0
      System.out.println(5/2.0); //2.5
      int d = 2147483647; //int的最大值
      d = d+1;//int值等于是一个圆,最大的int值加一等于最小的int最小的值
      System.out.println(d); //-2147483648(int最小值),发生溢出了,溢出是需要避免的
      d = d+1;
      System.out.println(d); //-2147483647
      
    • long:长整型,8个字节,很大很大很大(最大9223372036854775807)

      • 长整型直接量需在数字后加L或l
      • 运算时若有可能溢出,建议在第1个数字后加L
      //2)long:长整型,8个字节,很大很大很大
      long a = 25L; //25L为长整型直接量
      //long b = 10000000000; //编译错误,100亿默认为int类型,但超出int范围了
      long c = 10000000000L; //100L为长整型直接量
      //long d = 3.14; //编译错误,长整型变量只能装整数
      
      //运算时若有可能溢出,建议在第1个数字后加L
      long e = 1000000000*2*10L;
      System.out.println(e); //200亿,10亿乘2没有溢出
      long f = 1000000000*3*10L;
      System.out.println(f); //不是300亿,因为10亿乘3是int型,超出int最大值,溢出了
      long g = 1000000000L*3*10;
      System.out.println(g); //300亿,因为10亿直接转换为long,所以没溢出
    • double:浮点型,8个字节,大的离谱

      • 浮点数直接量默认为double型,若想表示float需在数字后加F或f
      • double与float型数据参与运算时,有可能会出现舍入误差,精确场合不能使用
      //3)double:浮点型,8个字节,很大很大很大
      double a = 3.14; //3.14为浮点数直接量,默认double型
      float b = 3.14F; //3.14F为float型直接量
      double c = 1234000000000000000000000000000000.0;
      System.out.println(c); //1.234E33,科学计数法表示,相当于1.234*(10的33次幂)
      
      double d=3.0,e=2.9;
      System.out.println(d-e); //0.10000000000000009,有可能会发生舍入误差,精确场合不能使用
    • boolean:布尔型,1个字节

      • 只能赋值为true或false
      //4)boolean:布尔型,1个字节
      boolean a = true;  //true为布尔型直接量-----真
      boolean b = false; //false为布尔型直接量----假
      //boolean c = 250; //编译错误,布尔型只能赋值为true或false
    • char:字符型,2个字节

      • 采用Unicode字符集编码格式,一个字符对应一个码

        表现的形式是字符char,但本质上是码int(0到65535之间)

        ASCII码:'a'---97 'A'---65 '0'---48(记住)

      • 字符型直接量必须放在单引号中,并且只能有1个

      • 特殊符号需通过\来转义

      //5)char:字符型,2个字节
      char c1 = '女'; //字符女
      char c2 = 'f';  //字符f
      char c3 = '6';  //字符6
      char c4 = ' ';  //空格符
      //char c5 = 女; //编译错误,字符型直接量必须放在单引号中
      //char c6 = ''; //编译错误,必须有字符
      //char c7 = '女性'; //编译错误,只能有1个字符
      
      char c8 = 65; //0到65535之间
      System.out.println(c8); //输出A  println输出时会依据c8的数据类型显示
      //若c8为char型,则显示字符
      //若c8为int型,则显示数字
      char c9 = '\\';
      System.out.println(c9); //\
  3. 类型间的转换:

    基本类型由小到大依次为:

    byte----short----int----long----float----double

                            char----(int和char平行)    

    • 两种方式:

      • 自动/隐式类型转换:小类型到大类型

      • 强制类型转换:大类型到小类型

        语法:(要转换成为的数据类型)变量

        强转有可能溢出或丢失精度

      //类型间的转换:
      int a = 5;
      long b = a; //自动类型转换,自动转不需要加类型
      int c = (int)b; //强制类型转换,b是long型,必须在前面加低于他的转换类型
      
      long d = 5;   //自动类型转换,默认为int转换为long
      double e = 5; //自动类型转换,默认为int转换为double
      
      long f = 10000000000L;
      int g = (int)f; //高转低,强制类型转换
      System.out.println(g); //1410065408,因为int最大值20多亿,而这个值100亿,强转有可能发生溢出
      
      double h = 25.987;
      int i = (int)h; //强制类型转换
      System.out.println(i); //25,int没有小数,强转有可能丢失精度
    • 两点规则:

      • 整数直接量可以直接赋值给byte,short,char,但不能超出范围
      • byte,short,char型数据参与运算时,系统一律自动将其转换为int再运算
      byte b1 = 5; //byte的范围为-128到127之间
      byte b2 = 6;
      byte b3 = (byte)(b1+b2);
      
      System.out.println(2+2);     //4
      System.out.println(2+'2');   //52,2加上'2'的码50
      //char'0'是48,'2'是50
      System.out.println('2'+'2'); //100,'2'的码50,加上'2'的码50
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值