Java SE day02-数据类型

一、变量

1. 概念:变量是内存中的一块空间,是存储数据的基本单元

2. 组成:数据类型、变量名、数据

3. 定义:

  a. 声明 数据类型 变量名;例如:int a;

  b. 赋值 = 数据; 例如:a = 4;

  c. 其他方式: i. 声明并赋值:数据类型 变量名 = 值; 例如:int a = 4;

        ii. 数据类型 变量名,变量名 = 值,变量名 例如:int a = 10,b = 20,c,d = 5;

public class TestVar{
    public static void main(String[] args){        
    //变量的声明
    int a;
    //变量的赋值
    a = 4;
    //变量声明的同时赋值
    int b = 3;
    //声明多个变量,同时可以赋值
    //一次声明了三个int类型变量,其中c没有赋值,d和e被赋 值
    int c , d = 5 , e = 6;
} }

二、数据类型

1. 基本数据类型(简答类型,原始类型)

  a. 整数类型

  b. 浮点数类型(小数)

  

  c. 字符类型

    关键字 char

    字节数 2B

    字符类型变量的赋值方式: i. char c = 'A ';使用单引号引起来一个字符

                ii. char c = 65;使用整数去表示一个字符

                iii. char c = '\u0041'; 使用unicode去表示一个字符

public class TestChar {
    public static void main(String[] args) {        
    //使用单引号引起来一个字符          
    char a = 'A';//ok        
    char b = '我';//ok        
    char c = '65';//error!!        //注意:因为引号中只能写单个字符, 注意与第二种声明方式的区别!!                
    //使用整数去表示一个字符        
    char d = 65;//此处的65就代表字 符A        
    //使用unicode去表示一个字符        
    char e = '\u0041';        //注意:这里使用单引号,中间的数字 需要以\u开头,后面必须是四位十六进制数    
        }
}

转义字符:

\t 水平跳格

\n 换行

\' 单引号

\" 双引号

\\ 反斜杠

d. 布尔类型 关键字 boolean

  布尔类型的字面值只有true和false 重要:Java是强类型语言,声明的数据类型和赋值的类型必 须一致 

2. 引用数据类型(对象类型,复杂类型)
在Java中,除去8种基本数据类型,其他的数据类型都是引用数据类型
例如:String(字符串),数组,接口等等
字符串(String):用双引号""引起来的内容称为字符串
字符串是一个或者多个字符的串联,但他们是一个整体 String s = "hello";

public class TestString {
    public static void main(String[] args) {        
    //用双引号""引起来的内容称为字符串        
    //单个字符用双引号之后就不再是char类型,而是 String        
    String s1 = "我";        
    //多个字符是String最常见的形式        
    String s2 = "我爱你";        
    //当使用双引号之后,25105不再代表“我”字,而 是单纯的数字        
    String s3 = "25105";        
    //当使用双引号之后,1+1不再计算结果,而是单纯的文本        
    String s4 = "1+1";  
    }
}

三、数据类型转换
1. 自动类型提升
a. 两个变量互相可以兼容
b. 将范围较小的变量赋值给范围较大的变量
规则:直接赋值
byte-->short-->int-->long-->float-->double
char-->int-->long-->float-->double
注意:由于byte和short具有负数,而char的数字表示没有负数,所以 他们之间不能自动类型提升

public class TestAutoCast {
    public static void main(String[] args) {        
        //将范围较小的变量赋值给范围较大的变量        
        char a = '我';        
        int b = a;
        System.out.println(b);//25105 
        int c = 123456;
        double d = c;
        System.out.println(d);//123456.0
    }
}

2. 强制类型转换
a. 两种数据之间必须能够相互兼容
b. 将范围较大的变量赋值给范围较小的变量
规则:目标数据类型 变量名 = (目标数据类型)源数据变量名/源数据 值;
强制类型转换可能会导致数据的变化,其可能性如下:
a. 整数与整数之间的转换:整数的长度相互匹配,直接赋 值,数据是完整的
b. 整数与整数之间的转换:整数的长度不匹配,数据截断, 舍弃高位
c. 整数与浮点数之间的转换:浮点数转整数,数据截断,舍 弃小数位
d. 布尔类型不参与转换

public class TestCast {
    public static void main(String[] args) {        
        //整数与整数之间的转换:整数的长度相互匹配, 直接赋值,数据是完整的        
        int a = 127;
        byte b = (byte) a;
        System.out.println(b);//127        
    //整数与整数之间的转换:整数的长度不匹配,数 据截断,舍弃高位        
    int c = 129;
    byte d = (byte) c;
        System.out.println(d);//-127        
    //整数与浮点数之间的转换:浮点数转整数,数据 截断,舍弃小数位        
    double e = 12.5;
        int f = (int) e;
        System.out.println(f);//12
    }
}

四、表达式
1. 概念:由变量、常量、数据、运算符组成的式子,通常会产生一个结果
2. 当两个类型不同的基本数据类型进行数学运算之后,其数据类型的规 则如下:
a. 当表达式中有double的时候,结果为double
b. 当表达式中没有double,但是有float的时候,结果为float
c. 当表达式中没有double和float,但是有long的时候,结果为long
d. 当表达式中没有以上三种情况,则结果默认为int类型 int-->long-->float-->double的顺序

五、运算符

1. 算术运算符

  包括 加 + 、减 - 、乘 * 、除 / 、余(模) %

2. 赋值运算符

  包括包括 = 、 += 、 -= 、 *= 、 /= 、 %=

3. 逻辑运算符
  && 短路与 两个表达式的结果都为true则结果为true,如果有false则 结果为false
  & 非短路与 两个表达式的结果都为true则结果为true,如果有false则 结果为false
  || 短路或 两个表达式的结果有一个为true则结果为true,如果都为 false则结果为false
  | 非短路或 两个表达式的结果有一个为true则结果为true,如果都为 false则结果为false
  ! 非 表示对表达式的结果取反
  短路与非短路的区别:
    短路:当前一个表达式已经可以确定结果的时候,不执行后一个表达式
    非短路:无论前一个表达式是否可以确定结果,后一个表达式都要执行

4. 一元运算符 也称自增自减运算符
  包括 a++、 ++a、a--、--a
  区别:a++是先对值进行使用,然后再自增,
     ++a是先自增再使用自增之后的值.

5. 关系运算符
  包括 相等 ==、大于 >、小于 <、大于等于 >=、小于等于 <=、不等于 !=

6. 条件运算符

  语法:布尔表达式?表达式1:表达式2

  解释:当布尔表达式的结果为true的时候执行表达式1,结果为false的 时候执行表达式2

猜你喜欢

转载自www.cnblogs.com/ljh554/p/12121583.html