栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java学习笔记(二)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java学习笔记(二)

在完成对C语言的学习后,我最近开始了对C++和Java的学习,目前跟着视频学习了一些语法,也跟着敲了一些代码,有了一定的掌握程度。现在将跟着视频做的笔记进行整理。本篇博客是整理Java知识点的第二篇博客。

本篇博客介绍关于Java的运算符相关内容。

本系列博客所有Java代码都使用IntelliJ IDEA编译运行,版本为2022.1。所用JDK版本为JDK11。

目录

运算符

算数运算符

字符的+操作

字符串的+操作

赋值运算符

自增自减运算符

关系运算符

逻辑运算符

短路逻辑运算符

三元运算符


运算符

运算符是对常量或者变量进行操作的符号,用运算符把常量或变量连接起来组成的符合Java语法的式子就称为表达式。

算数运算符

+表示加法,如10 + 5的结果是15。-表示减法,如10 - 5的结果是5。

*表示乘法,如10 * 5的结果是50。/表示除法,如10 / 5的结果是2。

%表示取余数,如10 % 3的结果是1。

两个整数相除得到整数,如果两个整数相除除不尽,会舍去小数部分,不四舍五入。被除数和除数中至少有一个为小数才能得到小数。

除数不能是0。

public class calculate {
    public static void main(String[] args){
        int a = 6;
        int b = 4;
        System.out.println(a + b);
        System.out.println(a - b);
        System.out.println(a * b);
        System.out.println(a / b);
        System.out.println(a % b);
        double m = 6.6;
        double n = 4.4;
        System.out.println(m + n);
        System.out.println(m - n);
        System.out.println(m * n);
        System.out.println(m / n);
    }
}

这段代码的结果是:

10
2
24
1
2
11.0
2.1999999999999993
29.04
1.4999999999999998

字符的+操作

字符的+操作用字符对应的码值进行计算。

算术表达式包含多个基本数据类型时,整个算数表达式的类型自动提升。

public class add1 {
    public static void main(String[] args){
        int a = 10;
        char b = 'a';
        System.out.println(a+b);

        b = 'A';
        System.out.println(a+b);
    }
}

第一行输出107,第二行输出75。

字符串的+操作

+操作运算符两边出现字符串时,+表示字符串连接。+两侧出现字符串进行连接,否则就是算数运算,多个+号从左到右依次进行。

public class add2 {
    public static void main(String[] args){
        System.out.println("Java" + 666);
        System.out.println(666 + "Java");
        System.out.println("hello " + "world");
        System.out.println(2020 + 2 + "year");
        System.out.println("yes" + 202 + 2);
    }
}

输出结果为:

Java666
666Java
hello world
2022year
yes2022

赋值运算符

=表示赋值,执行a = 10后a的值为10。

+=表示加等于,a += b相当于a = a + b。-=表示减等于,a -= b相当于a = a - b。

*=表示乘等于,a *= b相当于a = a * b。/=表示除等于,a /= b相当于a = a / b。

%=表示模等于,a %= b相当于a = a % b。

扩展的赋值运算符隐含了强制类型转换。

public class assign {
    public static void main(String[] args){
        byte bit = 1;
        bit -= 1;
        System.out.println("bit = "+bit);
        bit=(byte)(bit+1);
        System.out.println("bit = "+bit);

        int num = 1;
        num = 10;
        System.out.println("num ="+num);
        num += 5;
        System.out.println("num ="+num);
        num -= 3;
        System.out.println("num ="+num);
        num *=6;
        System.out.println("num ="+num);
        num/=4;
        System.out.println("num ="+num);
    }
}

第一行输出bit = 0,第二行输出bit = 1。对程序中byte类型数据bit而言,直接用扩展的赋值运算符会隐含强制类型转换。而用算数运算符则需要强制类型转换,因为发生了类型抬升。short和float同理。

后5行输出num的值分别为10,15,12,72,18。

自增自减运算符

++是自增运算符,会使变量的值+1。--是自减运算符,会使变量的值-1。

++和--既可以放在变量前面,也可以放在变量后面。单独使用时前置++和后置++效果一样,都是值+1,前置--和后置--效果一样,都是值-1。

如果是前置,会先将变量进行+1(或-1),然后将变量的值作为表达式的结果。如果是后置,会先将变量的值作为表达式的结果,再将变量进行+1(或-1)。

public class change {
    public static void main(String[] args){
        int n = 10;
        n++;
        System.out.println("n = " + n);

        n = 10;
        ++n;
        System.out.println("n = " + n);

        int m;
        n = 10;
        m = n++;
        System.out.println("m = " + m +"   n = "+ n);

        n = 10;
        m = ++n;
        System.out.println("m = " + m +"   n = "+ n);
    }
}

这段代码的输出结果是:

n = 11
n = 11
m = 10   n = 11
m = 11   n = 11

关系运算符

==是等于,判断两侧值是否相等。!=是不等于,判断两侧值是否不相等。>是大于,>=是大于等于,<是小于,<=是小于等于。

关系运算符的结果是boolean类型,关系成立返回true,不成立返回false。

不要混淆==和=

public class compare {
    public static void main(String[] args){
        int a = 10;
        int b = 20;
        int c = 10;

        System.out.println(a == b);
        System.out.println(a == c);
        System.out.println(a != b);
        System.out.println(a != c);

        System.out.println(a > b);
        System.out.println(a > c);
        System.out.println(a < b);
        System.out.println(a < c);
    }
}

输出结果分别是:

false
true
true
false
false
false
true
false
 

逻辑运算符

&是逻辑与,对于a&b,只有a和b都是true时,结果为true,否则为false(同真为真,遇假则假)。

|是逻辑或,对于a|b,只有a和b都是false时,结果为false,否则为true(同假为假,遇真则真)。

^是逻辑异或,对于a^b,当a和b一个是false,一个是true时,结果为true,a和b都是true或都是false时,结果为false(同取假,不同取真)。

!是逻辑非,对于!a,当a为true时,结果为false,当a为false时,结果为true。

public class logic1 {
    public static void main(String[] args){
        int a = 10;
        int b = 15;
        int c = 20;

        System.out.println((a < b) & (a < c));
        System.out.println((a > b) & (a < c));
        System.out.println((a < b) & (a > c));
        System.out.println((a > b) & (a > c));

        System.out.println((a < b) | (a < c));
        System.out.println((a > b) | (a < c));
        System.out.println((a < b) | (a > c));
        System.out.println((a > b) | (a > c));
        System.out.println((a < b) ^ (a < c));
        System.out.println((a > b) ^ (a < c));
        System.out.println((a < b) ^ (a > c));
        System.out.println((a > b) ^ (a > c));

        System.out.println((a < b));
        System.out.println(!(a < b));
        System.out.println((a > b));
        System.out.println(!(a > b));
    }
}

运行结果是:(为了便于显示,每4个结果换行一次)

true   false   false   false
true   true   true   false
false   true   true   false
true   false   false   true

短路逻辑运算符

&&是短路与,作用与&相同,但是会发生短路。

||是短路或,作用与|相同,但是会发生短路。

对于逻辑与&,不管左侧结果是真假,右侧都要执行。对于短路与&&,如果左侧为真,右侧执行,但是如果左侧为假(此时整个表达式的结果已经能确定为假),则右侧不执行。

对于逻辑或|,不管左侧结果是真假,右侧都要执行。对于短路或||,如果左侧为假,右侧执行,但是如果左侧为真(此时整个表达式的结果已经能确定为真),则右侧不执行。

常用的逻辑运算符是&&,||和!。

public class logic2 {
    public static void main(String[] args){
        int a = 10;
        int b = 15;
        int c = 20;

        System.out.println((a < b) && (a < c));
        System.out.println((a > b) && (a < c));
        System.out.println((a < b) && (a > c));
        System.out.println((a > b) && (a > c));

        System.out.println((a < b) || (a < c));
        System.out.println((a > b) || (a < c));
        System.out.println((a < b) || (a > c));
        System.out.println((a > b) || (a > c));

        int m = 5;
        int n = 10;
        System.out.println(((m += 5) > 10)&(n += 5 ) > 10);
        System.out.println("m = " + m + "   n = " + n);
        m = 5;
        n = 10;
        System.out.println(((m += 5) > 10)&&(n += 5 ) > 10);
        System.out.println("m = " + m + "   n = " + n);

        m = 5;
        n = 10;
        System.out.println(((m += 5) > 5)|(n += 5 ) > 10);
        System.out.println("m = " + m + "   n = " + n);
        m = 5;
        n = 10;
        System.out.println(((m += 5) > 5)||(n += 5 ) > 10);
        System.out.println("m = " + m + "   n = " + n);
    }
}

对于前八个表达式,结果分别为:

true   false   false   false
true   true   true   false

结果和上面一个例子的前八个结果一样(数值一样,只是&和|分别变成了&&和||)。

后面的结果是:

false
m = 10   n = 15
false
m = 10   n = 10
true
m = 10   n = 15
true
m = 10   n = 10
 

三元运算符

三元运算符的格式是:关系表达式?表达式1:表达式2

先计算关系表达式的值,为true则表达式1的值为最终结果,为false则表达式2的值为最终结果。

public class three {
    public static void main(String[] args){
        int a = 10;
        int b = 20;
        int max = (a > b) ? a : b;
        System.out.println("max = " + max);
    }
}

输出结果为max = 20,实际求a和b的最大值。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1036034.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号