Java学习第二篇-----java数据类型转换和运算符

一.数据类型转换
概述:Java程序中要求参与的计算的数据,必须要保证数据类型的一致性,如果数据类型不一致将发生类型的转换。分为强制转换和自动转换。
1.自动转换:将 取值范围小的类型 自动提升为 取值范围大的类型

public static void main(String[] args) {
    int i = 1;
    byte b = 2;
   //如果是 byte j = b + i; 会报错  
    int j = b + i;
    //int类型和byte类型运算,结果是int类型
    System.out.println(j);
}

转换原理:byte 类型内存占有1个字节,int类型4个字节,因此byte类型在和 int 类型运算时会提升为 int 类型 ,自动补充3个字节,因此计算后的结果还是 int 类型。
**转换规则:**范围小的类型向范围大的类型提升, byte 、short、char 运算时直接提升为 int 。
byte、short、char‐‐>int‐‐>long‐‐>float‐‐>double
2.强制转换:将 取值范围大的类型 强制转换成 取值范围小的类型 。
转换格式:数据类型 变量名 = (数据类型)被转数据值;

int i = (int)2.5;

**注意:**浮点转成整数,直接取消小数点,可能造成数据损失精度。
int 强制转成 short 砍掉2个字节,可能造成数据丢失。
自动转换与强制转换的区别:自动转换是Java自动执行的,而强制转换需要我们自己手动执行。
ASCII (American Standard Code for Information Interchange 美国标准信息交换码)编码表
概述:将所有的英文字母,数字,符号都和十进制进行了对应起来组成一张表格。
在这里插入图片描述

public static void main(String[] args) {
  //字符类型变量
  char c = 'a';
  int i = 1;
  //字符类型和int类型计算
  System.out.println(c+i);//输出结果是98
}

在char类型和int类型计算的过程中,char类型的字符先查询编码表,得到97,再和1求和,结果为98。

二、运算符
1.算数运算符
在这里插入图片描述
**++ 运算,**变量自己增长1。反之, – 运算,变量自己减少1,用法与 ++ 一致
独立运算:变量在独立运算时, 前 ++ 和 后 ++ 没有区别 。
混合运算:变量 前 ++ :变量a自己加1,将加1后的结果赋值给b,也就是说a先计算。a和b的结果都是2。

public static void main(String[] args) {
    int a = 1;
    int b = ++a;
    System.out.println(a);//计算结果是2
    System.out.println(b);//计算结果是2
    }

变量 后 ++ :变量a先把自己的值1,赋值给变量b,此时变量b的值就是1,变量a自己再加1。a的结果是2,b的结果是1。

public static void main(String[] args) {
    int a = 1;
    int b = a++;
    System.out.println(a);//计算结果是2
    System.out.println(b);//计算结果是1
}

+ 符号在字符串中的操作:+ 符号在遇到字符串的时候,表示连接、拼接的含义。“a”+“b” 的结果是“ab”,连接含义。
2.赋值运算符:将符号右边的值,赋给左边的变量。
在这里插入图片描述
3.比较运算符:个数据之间进行比较的运算,运算结果都是布尔值 true 或者 false 。
在这里插入图片描述

public static void main(String[] args) {
    System.out.println(1==1);//true
    System.out.println(1>2);//false
}

**4.逻辑运算符:**用来连接两个布尔类型结果的运算符,运算结果都是布尔值 true 或者 false。在这里插入图片描述

public static void main(String[] args)  {
    System.out.println(true && true);//true
    System.out.println(true && false);//false
    System.out.println(false || false);//falase
    System.out.println(false || true);//true
    System.out.println(!false);//true
}

5.三元运算符
**格式:**数据类型 变量名 = 布尔类型表达式?结果1:结果2。
三元运算符计算方式:
布尔类型表达式结果是 true,三元运算符整体结果为结果1,赋值给变量。
布尔类型表达式结果是 false,三元运算符整体结果为结果2,赋值给变量。

public static void main(String[] args) {
    int i = (1==2 ? 10 : 20);
    System.out.println(i);//20
    int j = (3<=4 ? 50 : 60);
    System.out.println(j);//50
}
发布了32 篇原创文章 · 获赞 28 · 访问量 1343

猜你喜欢

转载自blog.csdn.net/weixin_42369886/article/details/104388384