CoreJava Day02

CoreJava Day2

一、变量

  • 作用:计算机中的一块内存空间,是数据的基本存储单元

  • ``

  1. 定义变量后必须为变量赋值,否则该变量将无法使用(没有默认值)
  2. 值的类型必须与变量的数据类型一致,否则赋值失败(Java强类型机制)


#### 2、数据类型

- 基本数据类型

| 数据类型 |    关键字    | 所占空间 | 数值范围                                          | 字面值                            |
| :------: | :----------: | :------: | ------------------------------------------------- | --------------------------------- |
|   整数   |     byte     |    1b    | -128~127                                          | 整数                              |
|          |    short     |    2b    | -32768~32767                                      | 整数                              |
|          |  int(默认)   |    4b    | -2147483648~2147483647                            | 整数                              |
|          |     long     |    8b    | -9223372036854775808~<br />9223372036854775807    | 整数l<br />整数L                  |
|  浮点型  |    float     |    4b    | 1.4e-45~3.4e38<br />-3.4e-38~-1.4e45              | 小数f<br />小数F<br />科学计数法F |
|          | double(默认) |    8b    | 4.9e-324~1.7e308<br />-1.7e-308~-4.9e324          | 小数<br />小数D<br />科学计数法   |
|  布尔型  |   boolean    |    4b    | true\|false                                       |                                   |
|   字符   |     char     |    2b    | 整数:0~65535<br />unicode编码:'\u0000'~'\uFFFF' | 整数<br />unicode编码<br />' '    |

- 引用数据类型

```markdown
String 字符串 用来存储多个字符
字面值: " "
JDK 13 : 新增字面值 """ """ 文本域
  • 转义字符:转换某个字符的含义

    将有特殊意义的字符转换为普通字符 或 为普通字符赋予特殊意义
    语法:\字符
    常见的转义字符组合
    1. \" :" 双引号
    2. \' :' 单引号
    3. \t :制表符(跳格)
    4. \n :换行
    5. \\ :斜杠
    
  • 补充

    1. float与double只能存储近似结果,运算时可能丢失运算精确度
    2. Java中存储数据的内存空间以slot为单位,1个slot占用4b
    3. 数字类型进制符号:0 8进制,0x 16进制, 0b 2进制(JDK7)
    4. 数字类型支持分隔符 _ 下横线(JDK7)
    5. JDK10后支持 var 类型变量(编译器自动推断数据类型)
    

二、变量的类型转换

1、自动类型转换
  • 编译器自动将A类型的数据转换为B类型,无需人工干预

  • 满足两个前提条件

    1. 两种类型兼容 数字类型之间兼容 String与boolean不与其他类型兼容
    2. 目标类型大于(可存储数值范围)源类型
       byte b = 10;
       目标     源
       int a = b;
    
2、强制类型转换
  • 当两种类型兼容,目标类型小于源类型时,屏蔽编译器可能损失精度的错误

  • 语法:

    目标类型 变量名 = (目标类型)源类型数据;
    
  • 例:

    int a = 10;
    //目标类型 变量名 = (目标类型)源类型数据;
    byte b = (byte)a;
    
  • 整数长度合适数据完整

  • 例:

    int a = 10;
    byte b = (byte)a;
    System.out.println( b );// 10
    
  • 整数长度不合适数据截取(舍前取后)

  • 例:

    int a = 128;
    byte b = (byte) a;
    System.out.pirntln( b );//-128
    
  • 小数转换为整数(只保留整数)

  • 例:

    double d = 12.65;
    int a = (int)d;
    System.out.pirntln( a );// 12
    

三、表达式

  • 概念:用运算符链接的变量或数据,最终可以得到一个结果

  • 自动类型提升:当两种类型不同的变量运算时,运算结果的数据类型与其中较大的数据类型一致。

  • 提升规则:

    两个变量有一个为double  结果为 double 
    没有double出现float   结果为 float
    没有float出现long	  结果为 long
    没有long出现int       结果为 int
    其他类型运算时结果默认为int类型
    

四、运算符

1、算术运算符
  • 用于数学运算 + - * / %

  • 例:

    int a  = 10, b  = 5; String str = "Hello";
    a + 10 	----> 结果:20
    a + b  	----> 结果:15
    a + str ----> 结果:"10Hello"(字符串拼接)
    str + b ----> 结果:"Hello5"(字符拼接)
    a - b   ----> 结果:5
    a * b   ----> 结果:50
    a / b   ----> 结果:2
    a % b   ----> 结果:0 (除法竖式)
    
2、赋值运算符
  • 用于存储或改变一个变量的值 = += -= *= /= %= ++ –

  • 例:

    int a  = 10, b  = 5;
    a = 20  ---->20赋值给变量a  表达式的结果为 20 a变量的值为:20
    a +=b   ----> 等同于 a = a + b  表达式结果为:15  a变量的值为:15
    a -=b   ----> 等同于 a = a - b  表达式结果为:5   a变量的值为:5
    a *=b   ----> 等同于 a = a * b  表达式结果为:50  a变量的值为:50
    a /=b   ----> 等同于 a = a / b  表达式结果为:2   a变量的值为:2
    a %=b   ----> 等同于 a = a % b  表达式结果为:0   a变量的值为:0
    ++a     ----> 等同于 a = a + 1  表达式结果为:11  a变量的值为:11
    --a     ----> 等同于 a = a - 1  表达式结果为:9   a变量的值为:9
    a++		----> 等效于 a = a + 1  表达式结果为:10  a变量的值为:11
    a--     ----> 等效于 a = a - 1  表达式结果为:10  a变量的值为:9
    
4、逻辑运算符
  • !(取反),对boolean结果取相反的值

  • 例:

    int a = 10, b = 5, c = 2;
    
    !(a > b)  ----> a > b为true  对其取反 结果为:false    
    
5、三元运算符(三目运算符)
  • 特点:可以根据一个条件的真假,返回不同的结果

  • 语法:

    布尔表达式? 结果1 : 结果2;
    当布尔表达式结果为 true时,返回 结果1
    当布尔表达式结果为 false时,返回结果2
    
  • 例:

    int a = 10,b = 5, c = 2;
    
    (a > b ? 10 : 20); -----> 结果:10
    (a < b ? 10 : c+1 ); -----> 结果:3    
    
  • 补充

    逻辑运算符 |、&非短路运算符,左右两侧表达式必须运行
    		 ||、&&短路运算符,如果左侧表达式能够决定结果,右侧表达式不再执行
    		 
    位运算符  &(与)、|(或)、~(非)、^(异或)、<<(向左位移)、>>(向右位移)、>>>(无符号右移)
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值