7.12.5 数据类型和常量(字面量)和变量

数据类型和常量(字面量)和变量

1.数据类型

在java中 的数据类型分为两类数据类型

  • 基本数据类型(8种)
    • 整数:byte short int long
    • 小数: float double
    • 布尔: boolean
    • 字符: char
  • 引用数据类型
    • 字符串: String

1.1 整数

类型占用内存范围
byte(字节) 8位(bit) 2^8=256,-128~127          1111 1111~0111 1111                     
short(短整型) 16bit 2^16 = 65536              **~0111 1111 1111 1111
int(整型) 32bit 超出20亿                    **~0111 1111 1111 1111 1111 1111 1111 1111
long(长整型) 64bit 2^64                             **~*

注意:

  • 如果一个整数没有加上任何的标识的时候,那么默认是int类型的数据。
  • 如果需要把该数据表示成一个long类型的数据,那么需要加数据后面加上L表示,L是不区分大小写的,但是建议使用大写。

疑惑:存储整数可以使用四种数据类型,那么具体怎么选择使用呢?

选用数据类型的原则: 在能满足需求的情况下,能小就小。节省内存空间。

1.2 小数(浮点数)

小数的数据类型:

float(单精度浮点型) 32bit double(双精度浮点型) 64bit

注意如果一个小数没有加上任何标识的时候,那么该小数默认是double类型的数据,如果

需要表示成float类型,那么需要在小数的后面加上f表示。f不区分大小写的。
float数据类型不精确的问题:因小树部分转换为二进制时采用乘二取余法,所以小树部分不精确!

1.3 布尔类型

布尔类型只有两个值:true或者false。

boolean:1字节或者4个字节

如果使用boolean声明一个基本类型的变量时,那么该变量占4个字节, 如果使用boolean声明一个数组类型 的时候,那么每个数组的元素占 一个字节。

1.4 字符类型:

char 2字节(16bit)

字符串的数据类型是:String 引用数据类型,不属于基本数据类型。

java中的八种基本数据类型:

2. 常量(字面量)

3. 变量

变量:变量就是在程序运行过程中其值可以发生变化的量,变量就是一个存储数据的容器。

容器具备什么特点:

  1. 容量(大小)。
  2. 存储一定格式的数据。
  3. 名字.

声明(定义)一个变量的格式:

数据类型 变量名字 = 数据值;

变量名的命名规范

首单词小写,其他单词首字母大写,其他小写。

java表示一个变量的容量多大是使用了数据类型描述的。

注意:

  1. 变量是必须先声明再使用。
  2. 在一个作用域中不能声明同名 的变量。

4. 数据类型转换

数据类型转换:

  • 小数据类型-------->大数据类型 自动类型转换
  • 大数据类型--------->小数据类型 强制类型转换

强制类型转换的格式:

小数据类型  变量名 = (小数据类型)大数据类型;

数据类型转换要注意的细节:

  1. 凡是byte、short 、 char数据类型数据在运算的时候都会自动转换成int类型的数据再运算。(包括赋值运算!)
  2. 两个不同数据类型的数据在运算的时候,结果取决于大的数据类型。
  3. char类型的一个字符可以看做无符号的short类型的数!
class Demo{
  public static void main(String[] args){
    /*
    System.out.println(12); //整数常量
    System.out.println(3.14); //小数常量
    System.out.println(false); //布尔常量
    System.out.println('1'); //字符常量
    System.out.println("hello world"); //字符串常量

    如果一个数据没有加上任何的标识之前,默认就是十进制的数据。
    */
    System.out.println(10);// 十进制
    System.out.println(0b10); //二进制 , 如果一个数据要表示二进制,那么要在该数据的前面加上0b开头。
    System.out.println(010); //八进制数据, 八进制的数据需要以0开头
    System.out.println(0x10); //十六进制数据, 十六进制的数据需要以0x开头
  }
}
class Demo5
{
    public static void main(String[] args) 
    {

        //需求1: 定义一个变量存储一个正常人的年龄。 
        byte age = 120;  //声明了一个byte类型的变量,该变量的名字叫age,把120存储到了age变量中。
        //改变变量的值
        age = 121;
        //需求2: 定义一个变量存储老师口袋钱。
        short money = 128;

        //需求3: 定义一个变量存储老黎的钱。
        int bossMoney = 1000000000;

        //需求4: 定义一个变量存储周小川老板
        long  allMoney = 10000000000000000L;


        //存储小数
        float f = 3.14f;

        double d = 3.1415926537;

        boolean b = false;


        char c = 'a';

        String str = "hello world";

        System.out.println(str); //需要获取一个变量存储的数据,只需要使用变量名即可。
    }
}
class Demo 
{
    public static void main(String[] args) 
    {    
        //int age = 12; //声明一个变量
        int age ,height ;  //声明了变量
        //给变量赋值
        age = 10;
        height = 175;
        System.out.println(age);
        System.out.println(height);
    }
}
class Demo1 
{
    public static void main(String[] args) {
        String str = ""; //字符串还是字符呢?  ""字符串没有内容是属于一个空字符串。
        System.out.println(str);
    }
}

class Demo2

 { 

   public static void main(String[] args) { 

/* 

     byte b= 11; // 一个字节 

     short s = b; // 把b变量存储的值赋予给s变量。 

     int i = s; // i是4字节

     long l = i; // l 是8个字节。 

              System.out.println(l);

         int i = 128;  //4个字节
         byte b =(byte) i;  // 1个字节
         System.out.println(b);  // -128


         //如果是负数,那么最高位肯定是1, 正数的二进制位的最高位是0。
         System.out.println(Integer.toBinaryString(-7));  //sun给我们提供一个功能 Integer.tobinaryString()  查看一个数据的二进制数据形式的。
         //   11111001(补码)
         凡是byte、short 、 char数据类型数据在运算的时候都会自动转换成int类型的数据再运算。
         byte b1 =1;
         byte b2 = 2;
         byte b3 = (byte)(b1+b2);
         System.out.println(b3); //3  
         System.out.println('a'+1); //98 
         两个不同数据类型的数据在运算的时候,结果取决于大的数据类型
         int i =10;
         long l = 20;
         i = (int)(i+l); 
         System.out.println(i);
*/

         int i = 10;  //
         byte b = i;  // 一个整数没有加上任何标识的时候,默认是int类型的数据。
         //10 是一个常量, 编译器在编译的时候就能够确认常量的值了,byte b = 10,在编译到的时候
         //java编译器就会检查到10并没有超出byte的表示范围,所以允许赋值。
         //java编译器在编译的时候并不能确认变量所存储的值,变量存储的值是在运行的时候才在内存中分配空间的
         System.out.println(b);

}
posted @ 2017-08-24 13:20  ~~晴天~^.^  阅读(525)  评论(0编辑  收藏  举报