数据分类


基本数据类型(4类8种)

整数类型(关于整数)

数据类型 关键字 内存占用 取值范围
       
字节型 byte 1个字节 -128 ~ 127
       
短整型 short 2个字节 -32768 ~ 32767
       
整形 int (默认) 4个字节 -2147483648 ~ 2147483647
       
长整型 long 8个字节 -2,147,483,648 ~ 2,147,483,647
       

浮点类型(关于有小数的整数)

数据类型 关键字 内存占用 取值范围
       
单精度浮点数 float 4个字节 1.4013E-45 ~ 3.4028E+38
       
双精度浮点数 double (默认) 8个字节 4.9E-324 ~ 1.7977E+308
       

字符类型(关于符号)

数据类型 关键字 内存占用 取值范围
       
字符型 char 2个字节 0 ~ 65535
       

 

布尔类型(关于true和false)

数据类型 关键字 内存占用 取值范围
       
布尔类型 boolean 1个字节 true ~ false
       

 

引用数据类型(往后的篇章中用)

数据类型   关键字    
         
  class    
         
数组   array    
         
接口   interface    
         

 

数据类型的使用

 class test {
     
     public static void main(String[] args){
         //整数类型
         System.out.println(4738);//打印 4738,默认是:int
         System.out.println(4738L);//打印long类型的 4738
         //注意!如果想要打印long类型的数值,就要在数值的后面加上大写的 L
         
         //浮点类型
         System.out.println(3.1415926);//打印 3.1415926,默认是:double
         System.out.println(3.1415926F);//打印float类型的 3.1415926
         //注意!如果想要打印float类型的数值, 就要在数值的后面加上大写的 F
         
         //字符类型
         System.out.println('A');//注意!字符类型是一对单引号(''),并且在单引号内只能填写唯一一个字符
       
         //类似字符型的有【字符串】
         System.out.println("Adjskljf");
         //注意!【字符串是引用类型不是基本类型】,而字符串是双引号(""),在字符串内可以填写多个数值
         //比如:System.out.println("我爱Java");等等...
         
         //布尔类型
         System.out.println(true);//打印 true, boolean类型
         System.out.println(fasle);//打印 false, boolean类型
    }
 }

 

常量


什么是常量?

java中常量是代码中不会变的数据,一直保持着不变的数据。

比如:在数据分类里有“ 数据类型的使用 ”那些都是常量,且在程序里没改变他们的数值。

 

常量打印

 class test{
     
     public static void main(String[] args){
         //常量的打印
         //整数
         System.out.println(2);//输出语句:System.out.println();,打印2,默认是:int
         System.out.println("HelloJava");//打印 HelloJava,类型是:字符串
    }
 }

练习题

  1. 打印 两个整数型,两个浮点型, 一个字符串,一个字符类型,并且编译运行。

 

 

变量


什么是变量?

Java中变量就是在程序运行中,数值可以发生改变的数值叫做:“ 变量 ”。

 

变量的创建方式

 

方式一:

数据类型(也称:变量类型) 变量名称;

变量名称 = 数值;

 

= 是什么意思?

= 在java中代表着“ 赋值 ”。

 

什么是赋值?

赋值是把右边的数值放到左边的变量名称里面。

相信大多数的朋友都知道 我的世界 吧,在游戏中可以让武器附魔,你们可以把武器想象成变量名,然后把附魔的属性想象成数值,把属性赋值到武器上面,也就是等于变量名有了数值(变量名 = 数值)

 

方式二:

变量类型 变量名称 = 数值;

 

方式三:(非常(不推荐(一般不(这么(写)))))

变量类型 变量名称1,变量名称2,变量名称3...

变量名称1 = 数值;

变量名称2 = 数值;

变量名称3 = 数值;

演示

 class test {
     
     public static void main(String[] args){
         //方式一
         //变量类型 变量名称;
         int num;
         //变量名称 = 数值;
         num = 10;
         
         //方式二
         //变量类型 变量名称 = 数值;
         int num1 = 11;
         
         //字符串
         String str = "java";
         //注意!String不是关键字
         
       
        /*
        方式三:
        变量类型 变量名称1,变量名称2,变量名称3...;
 
    变量名称1 = 数值;
 
    变量名称2 = 数值;
 
    变量名称3 = 数值;
        */
         int a, b, c;
         a = 1;
         b = 2;
         c = 3;
    }
 }

 

注意事项

  1. 可以创建多个变量,但是不能有多个变量名。

  2. 创建float和long类型变量是不要忘了后缀F和L。

  3. 没有赋值的变量就不能用。

  4. 使用byte和short的数据类型的时候要注意取值范围。

练习题

  1. 创建 每一个类型的变量,并且每个变量都输出两遍,第一遍用方式一,第二遍用方式二。

  2. 分别为如下值,找到合适的类型来定义 3.14 2.769343 365 12 '吃' false "不可描述"

  3. 定义如下变量,然后为每种不同类型的变量赋予合法的字面值 byte b; short s; int i; long l; float f; double d; char c; String str;

 

 

数据类型转换


什么是数据类型转换?

数据类型转换就是 小变大,容量小的类型变成大的类型,还可以容量大的类型变成容量小的类型,但是这有风险。

 

自动类型转换(隐式)

转换的格式

范围大的类型 变量名称 = 范围小的变量值;

 

自动类型转换的规则:double --> float --> long --> int --> char/short/byte。

注意!

  1. byte/short/char不能互相转换,他们只能转换成为int或者跟高的类型。

  2. boolean类型不能发生转换。

 class test{
     
     public static void main(String[] args){
 
         //int转换为long
         long num = 1;
         //int转换为float
         float num2 = 1;
         //float转换为double
         double num3 = 3.14F;
         
    }
 }

 

强制类型转换

转换的格式

范围小的类型 变量名称 = (范围小的类型)范围大的变量值;

 class test{
     
     public static void main(String[] args){
 
     //long转换为int
     int num =(int) 1L;
     //float转换为int
     int num2 =(int) 1.2F;
     //double转换为float
     float num3 =(float) 3.14;
     
  }
 }

强制类型转换的风险

  1. 如果赋值一个数值比范围小的类型的范围还大则数据溢出

    什么是数据溢出?

    假如你有一个杯子他能装2L水,你另一个杯子能装2.5L水,当你把能装2.5L的杯子里的水装到能装2L的杯子里,哪还有500ml会溢出来,这就叫做数据溢出

  2. 对于浮点数类型来说还有可能发生精度损失。

    什么是精度损失?

    假如double的值是3.9,但是发生了精度损失,则double的值会变成3.0,这就叫做精度损失

练习题

  1. 自动转换所有类型,除了char(double --> float --> long --> int -->short/byte)。

  2. 强制转换所有类型,除了char(byte/short --> int --> long --> float --> double)。