java入门的基础部分(中)


前言:在java中的整数型字面量值默认为int类型,浮点型字面量值默认为double类型 。

1.运算符

  • Java 语言支持如下运算符:
    • 算术运算符: +,-,*,/,%,++,–

    • 字符串连接运算符:+

    • 关系(比较)运算符: >,<,>=,<=,!=

    • 逻辑运算符: !,& , | , &&,||

    • 赋值运算符: =,+ =,- =,*=,/

    • 条件运算符

    • 位运算符

1.算术运算符

在这里插入图片描述

public static void main(String[] args){   
    int i1 = 10,i2 = 20;   
    int i = i1++;    
    System.out.println("i="+i);    
    System.out.println("i1="+i1);    
    i = ++i1;    
    System.out.println("i="+i);    
    System.out.println("i1="+i1);
}

在这里插入图片描述`# 10.逻辑运算符

/*
    逻辑运算符
     &       |        !     ^  可以参与逻辑运算还可以参与位运算
     逻辑运算: true & false
     位运算: 二进制bit位运算  6 & 3

     &&(短路与)   ||(短路或)

 */
public class OperateDemo3 {

    //java程序的入口/主方法/主线程
    public static void main(String[] args) {
         int a = 10;
         int b = 5;
         int c = 6;
         int d = 20;

       /* //& 左右都为true 结果为true  遇到第一个false时,后面的表达式继续执行
        System.out.println(a>b&b<c);//true & true = true
        System.out.println(a>b&b>c);//true & false = false
        System.out.println(a<b&b>c);//false & false = false

        //&&左右都为true 结果为true   遇到第一个false时,就发生短路,后面的表达式就不在执行了
        System.out.println(a>b&&b<c);//true && true = true
        System.out.println(a>b&&b>c);//true && false = false
        System.out.println(a<b&&++b>c);//false && false = false
        System.out.println(b);*/

        //| 只要有一为true 结果为true
        System.out.println(a>b|b<c);//true | true = true
        System.out.println(a>b|b>c);//true | false = true
        System.out.println(a<b|b>c);//false | false = false

        //||只要有一为true 结果为true 只要遇到第一个true 后面的表达式就不行了
        System.out.println(a>b||b<c);//true || true = true
        System.out.println(a>b||++b>c);//true || false = true
        System.out.println(a<b||b>c);//false || false = false
        System.out.println(b);

       /* //!
        System.out.println(!(a>b));
        
        //^  异或运算  相同为false  不同为true
        System.out.println(a>b^b<c);//true ^ true = false
        System.out.println(a>b^b>c);//true ^ false = true
        System.out.println(a<b^b>c);//false ^ false = false*/
    }
}

2.比较运算符

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-X3aFtJxQ-1622291049068)(C:\Users\123\AppData\Roaming\Typora\typora-user-images\1622288381298.png)]

比较运算符的结果都是boolean型,也就是要么是true,要么是false。

注意:比较运算符“==”不能误写成“=” 。

# 9.比较运算符

/*
   比较运算符
   ==
   !=  数值,布尔,引用类型
   > < >= <= 适用于数值类(char)
   instanceof 类型检测
 */
public class OperateDemo2 {

    //java程序的入口/主方法/主线程
    public static void main(String[] args) {
        //==
        int a = 10;
        int b = 5;
        boolean c = true;
        boolean d = false;
        String e = "abc";
        String f = "efg";
        System.out.println(a==b);
        System.out.println(c==d);
        System.out.println(e==f);
        //!=
        System.out.println(a!=b);
        System.out.println(c!=d);
        System.out.println(e!=f);

       /* System.out.println(e>f);
        System.out.println(c>e);*/

        Object x = 10;
        //Object类型可以表示任何类型,但是实际表示的是哪种类型呢?
        System.out.println(x instanceof Integer);
    }
}

3.逻辑运算符:

&—逻辑与 | —逻辑或 !—逻辑非
&& —短路与 || —短路或 ^ —逻辑异或

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-no4hccZc-1622291049073)(C:\Users\123\AppData\Roaming\Typora\typora-user-images\1622288866335.png)]

“&”和“&&”的区别:

单&时,左边无论真假,右边都进行运算;

双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。

“|”和“||”的区别同理,||表示:当左边为真,右边不参与运算。

异或( ^ ):当左右都为true时,结果为false。

理解:异或,追求的是“异”!

# 10.逻辑运算符

/*
    逻辑运算符
     &       |        !     ^  可以参与逻辑运算还可以参与位运算
     逻辑运算: true & false
     位运算: 二进制bit位运算  6 & 3

     &&(短路与)   ||(短路或)

 */
public class OperateDemo3 {

    //java程序的入口/主方法/主线程
    public static void main(String[] args) {
         int a = 10;
         int b = 5;
         int c = 6;
         int d = 20;

       /* //& 左右都为true 结果为true  遇到第一个false时,后面的表达式继续执行
        System.out.println(a>b&b<c);//true & true = true
        System.out.println(a>b&b>c);//true & false = false
        System.out.println(a<b&b>c);//false & false = false

        //&&左右都为true 结果为true   遇到第一个false时,就发生短路,后面的表达式就不在执行了
        System.out.println(a>b&&b<c);//true && true = true
        System.out.println(a>b&&b>c);//true && false = false
        System.out.println(a<b&&++b>c);//false && false = false
        System.out.println(b);*/

        //| 只要有一为true 结果为true
        System.out.println(a>b|b<c);//true | true = true
        System.out.println(a>b|b>c);//true | false = true
        System.out.println(a<b|b>c);//false | false = false

        //||只要有一为true 结果为true 只要遇到第一个true 后面的表达式就不行了
        System.out.println(a>b||b<c);//true || true = true
        System.out.println(a>b||++b>c);//true || false = true
        System.out.println(a<b||b>c);//false || false = false
        System.out.println(b);

       /* //!
        System.out.println(!(a>b));
        
        //^  异或运算  相同为false  不同为true
        System.out.println(a>b^b<c);//true ^ true = false
        System.out.println(a>b^b>c);//true ^ false = true
        System.out.println(a<b^b>c);//false ^ false = false*/
    }
}

4.赋值运算符

符号:=
当“=”两侧数据类型不一致时,可以使用自动类型转换或使用强制类型转换原则进行处
理。支持连续赋值。
扩展赋值运算符: +=, -=,*=, /=,%=

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KYSLP0UW-1622291049079)(C:\Users\123\AppData\Roaming\Typora\typora-user-images\1622290212022.png)]`# 11.赋值运算

/*
   赋值运算符
   =  注意在赋值时,值的类型与声明的变量类型一致.
      牵扯到数据类型的转换(基本类型之间) 自动转换,强制转换
   扩展赋值运算
   +=  会自动隐式转换为原本的类型(例如: int i=1;i+=0.1;  结果i=1)
   -=
   *=
   /=
   %=
 */
public class OperateDemo4 {

    //java程序的入口/主方法/主线程
    public static void main(String[] args) {

         byte a = 12;//隐式的将int12 转为 byte
         int b = a;
         short c = (short)b;

         float d = 10.5f;
         int e = (int)(c+b+d);//混合运算时,数据类型默认会转为表达式中最大的类型

       /* int x = 5;
        long y = 10;
            x += y; // x=x+y
        System.out.println(x);*/

        short s = 3;
              //s=s+2; s = short+ int = int
              s+=2;//隐式转换 short + int = short


    }

5.条件运算符(三元运算符)

语法:
(条件表达式)? 表达式1:表达式2;
为true,运算后的结果是表达式1;
为false,运算后的结果是表达式2;
表达式1和表达式2为同种类型

# 12.条件运算符


/*
     条件运算符(3元运算符)
      类型  结果 = (条件表达式)?表达式1:表达式2
       必须返回一个结果,结果的类型与定义结果类型一致

      if(条件){
        ssss
      }else{
        ssss
      }
 */
public class OperateDemo5 {

    //java程序的入口/主方法/主线程
    public static void main(String[] args) {

         int score = 70;

        String res = (score>=60)?"考试及格":"挂科";
        System.out.println(res);

    }
}

6.位运算

常开发中位运算不是很常用,但是巧妙的使用位运算可以大量减少运行开销,
优化算法,运算效率最高.

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-51f0EdqF-1622291049084)(C:\Users\123\AppData\Roaming\Typora\typora-user-images\1622290617814.png)]`# 13.位运算(了解)

/*
    位运算符, 二进制的bit位的运算
    <<
    >>
    >>>
    &
    |
    ^
    ~
 */
public class OperateDemo6 {

    //java程序的入口/主方法/主线程
    public static void main(String[] args) {
       // <<  010  左移1位  100  乘法
       //int a  = 2;
        //System.out.println(a<<2);

        //带符号
       //>> 0000 0011 右移 1位
       //>> 1000 0011 右移 1位
       //int b = -6;
        //System.out.println(b>>1);

        //>>> 无符号右移 0100 0011 右移 1位  最高位只需要补0
        //System.out.println(b>>>1);

        /*
          & 按位与
            0000 0110
          & 0000 0011
                 0010
         */
        /*int a = 6;
        int b = 3;
        System.out.println(a&b);*/


         /*
          | 按位或
            0000 0110
          | 0000 0011
                 0111
         *//*
        int a = 6;
        int b = 3;
        System.out.println(a|b);*/

        /*
          ^ 按位或
            0000 0110
          ^ 0000 0011
                 0101

           0000 0101
           0000 0110
                0011
         */
        int a = 6;
        int b = 3;

            a=a^b;
            b=a^b;
            a=a^b;
        System.out.println(a);
        System.out.println(b);


        //~  按位取反
    }

`

2.表达式的运算顺序

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Zx32iWV3-1622291049089)(C:\Users\123\AppData\Roaming\Typora\typora-user-images\1622290750676.png)]

3.控制台输入

使用标准输入串System.in
使用Scanner取得一个字符串或一组数字
在新增一个Scanner对象时需要一个System.in对象,因为实际上还是System.in在取得用户输入。Scanner的next()方法用以 取得用户输入的字符串;nextInt()将取得的输入字符串转换为整数类型;同样,nextFloat()转换成浮点型;nextBoolean()转 换成布尔型。
例:
System.out.print(“输入”);
Scanner scan = new Scanner(System.in);
String read = scan.next ();
System.out.println(“输入数据:”+read);

在使用Scanner对象时,需要在文件头带入 java.util.Scanner;
an.next ();
System.out.println(“输入数据:”+read);

在使用Scanner对象时,需要在文件头带入 java.util.Scanner;
写法为: import java.util.Scanner
在这里插入图片描述结果:
在这里插入图片描述

代码如下:

public class ScannerDemo {
    public static void main(String[] args) {
        //例:在控制台随便输入一个名字
        Scanner sc = new Scanner(System.in);//创建一个Scanner类的对象,并且赋给将其一个Scanner变量sc
        String st = sc.next();//因为名字是一个字符串,所以要创建一个String类,变量sc通过调用方法后名字存在st中
        System.out.println("---------------------------");//这行代码用来区分一下
        System.out.println(st);//验证一下是不是已经存进st中

    }
}

最后,觉得有用的话,可以点赞、收藏,加关注哟,要不下次就找不见了哟!

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值