Java基础02: 数据类型转换及运算符

一 数据类型的转换

基本类型按照取值范围排序:byte,short,char->int->long->float->double

1 自动类型转换

指的是小的数据类型往大的数据类型转换

public class DataType01 {
    public static void main(String[] args) {
        /*
           100是整数,整数默认类型是int型
           下面的代码属于将int型的100赋值给了long型的num1

           小类型赋值给了大类型,发生了自动类型转换
         */
        long num1 = 100;

        /*
          100是整数,整数默认类型是int型
          下面的代码属于将int型的100赋值给了double型的b
          小类型赋值给了大类型,发生了自动类型转换
         */
        double b = 100;

        System.out.println(b);

    }
}

2 强制类型转换

指的是大的数据类型往小的数据类型转换

public class DataType02 {
    public static void main(String[] args) {
        /*
          等号右边是小数,小数默认类型是double
          下面的代码是将double给了int
          属于将大的类型赋值给了小的类型
          需要强转
         */
        //int i = 2.5;
        int i = (int)2.9;
        System.out.println(i);
        
        
         /*
          等号右边是long型
          下面的代码是将long给了int
          属于将大的类型赋值给了小的类型
          需要强转
         */
        int j = (int) 100L;
    }
}

强转的注意事项
①不要随意使用强转,会出现数据丢失的现象;
②byte,short,char直接赋值整数,如果不超范围,不会报错,jvm为其做了一个优化
byte,short如果定义的时候等号右边出现了变量,需要强转
如果char类型变成了int,那么会去码表中查询字符对应的int值->ASCII码表

ascii码表只适用于说英文的人来看
如果是中文,去unicode码表(万国码)

二 运算符

1 算数运算符

/*
+:相加
  如果和字符串之间用+,此时+不再运算了,直接拼接(任何类型和字符串之间用+,都会变成字符串)
-
*
/:如果是两个整数相除,取的商(整数部分);如果是整数和小数相除,会带小数点的
%:模(取余数部分)
算数运算符可以用在,变量和变量之间,常量和常量之间,变量和常量之间
*/

public class Demo01SuanShu {
    public static void main(String[] args) {
        int i = 10;
        int j = 3;
        System.out.println(i%j);

        int x = 100;
        String s = x+"1";
        System.out.println(s);

        System.out.println("===================");

        int y = 100;
        int z = 200;
        System.out.println(y+z+"1");//3001
        System.out.println(y+"1"+z);//1001200
        System.out.println("1"+y+z);//1100200
        System.out.println("1"+(y+z));//1300

        System.out.println("y与z的和为:"+(y+z));
    }
}

2 赋值运算符

/*
=   :赋值 int a = 10
+=  :int i = 10 ; i+=20 -> i = i+20
-=
*=
/=  如果是两个整数相除,取的商(整数部分);如果是整数和小数相除,会带小数点的
%=  取余数部分
*/
public class Demo02FuZhi {
    public static void main(String[] args) {
        int i = 10;
        i+=20;//i = i+20

        i-=10;//i = i-10
        System.out.println(i);

        System.out.println("==============");

        int x = 100;
        //x/=30;
        x%=30;
        System.out.println(x);
    }
}

3 自增自减运算符

/*
++   -> 加1
--   -> 减1

注意:++ -- 必须要和变量一起使用  i++ ++i

(最常用)单独使用:自己独立成为一句  i++;  ++i;
        符号在前在后无所谓,都是先运算
        
(简单看一下)混合使用:跟赋值语句,输入语句混合使用
        符号在前:先运算,再使用
        符号在后:先使用原来的值,使用完毕,再计算
*/
public class Demo03ZiZengZiJian {
    public static void main(String[] args) {
        int i = 10;
        //i++;
        //++i;
        int sum = i++;
        System.out.println(sum);
        System.out.println(i);

        int x = 10;
        int y = 20;
        /*
           10 - 19 + 19
         */
        int sum1 = x++ - --y + y++;
        System.out.println(sum1);
        System.out.println(x);//11
        System.out.println(y);//20
    }
}

4 关系运算符(比较运算符)

/*
作用:专门用于判断的,结果一定是一个boolean型

==  :判断两个数是否相等,如果相等,返回true,否则false
>   :判断符号前面的是否大于符号后面的,如果大于,返回true,否则false
<   :判断符号前面的是否小于符号后面的,如果小于,返回true,否则false
>=  :判断符号前面的是否大于或者等于符号后面的,如果大于或者等于,返回true,否则false
<=  :判断符号前面的是否小于或者等于符号后面的,如果小于或者等于,返回true,否则false
!=  :判断两个数是否不等,如果不等返回true,否则相等返回false
*/

public class Demo04BiJiao {
    public static void main(String[] args) {
        int i = 100;
        int j = 200;

        //先看等号右边的比较,有一个boolean的结果,我们定义一个boolean变量去接收比较的结果
        boolean result01 = i<j;

        System.out.println(result01);

        System.out.println(i==j);
        System.out.println(i<=j);
        System.out.println(i!=j);
    }
}

5 逻辑运算符

/*
1.作用:为了连接boolean型结果的   逻辑运算符前后都要是boolean型的结果  
2.结果:boolean型
3.有哪些呢?
  && :双与  有假则假  符号前后只要有一个是false的,整体结果就是false
  || :双或  有真则真  符号前后只要有一个是true的,整体结果就是true
  ^  :异或  符号前面结果一样,整体为false  符号前后结果不一样,整体为true
  !  :取反(非)  不是true就是false  不是false就是true
*/
public class Demo05LuoJi {
    public static void main(String[] args) {
        int i = 10;
        int j = 20;
        int k = 20;

        boolean result01 = (i > j) && (i < k);
        System.out.println(result01);

        boolean result02 = (i > j) || (i < k);
        System.out.println(result02);

        boolean result03 = (i < j) ^ (i < k);
        System.out.println(result03);

        boolean result04 =  !(j==k);
        System.out.println(result04);

        /*
           需求 :定义一个变量x,初始化为10  判断此变量是否在1-100之间
                数学写法:1<=x<=100
                java写法:x>=1 && x<=100
         */

        int x = 10;
        boolean result05 = (x>=1) && (x<=100);
        System.out.println(result05);

    }
}

/*
> 注:
>
> &:单与->有假则假
>
> |:单或->有真则真
>
> 和双的有什么区别:
>
> &&:有假则假    如果符号前面的比较一旦是false,符号后面的不看了
>
> ||:有真则真     如果符号前面的比较一旦是true,符号后面的不看了
>
> &:有假则假    即使符号起那么是false,符号后面的依然会判断一下
>
> |:有真则真     即使符号前面的比较是true,符号后面的依然会判断一下

6 三元运算符

/*
1.格式: boolean表达式?表达式1:表达式2
2.执行流程:
  先走boolean表达式,如果是true,走?后面的表达式1;否则走:后面的表达式2
3.作用:可以根据boolean表达式的结果,去决定执行哪一句代码
*/
public class Demo06SanYuan {
    public static void main(String[] args) {
        int i = 10;
        int j = 20;
        int result01 = i>j?i:j;
        System.out.println(result01);
    }
}

三 键盘录入

1.Scanner
2.作用:通过键盘输入的方式将输入的数据放到代码中参与运行
3.怎么使用:
a.导包:import java.util.Scanner ->不用我们手动导包,因为我们有alt+回车
b.创建对象:
Scanner 变量名 = new Scanner(System.in);
c.调用方法,实现键盘录入
变量名.nextInt()->输入一个整数

public class Demo01Scanner {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请您输入一个整数:");
        //键盘输入一个整数
        int i = sc.nextInt();
        System.out.println(i);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值