java基础语言 运算符

/*
    ++,--运算符的使用:
        单独使用:
            放在操作数的前面和后面效果一样。(这种用法是我们比较常见的)
        参与运算使用:
            放在操作数的前面,先自增或者自减,然后再参与运算。
            放在操作数的后面,先参与运算,再自增或者自减。

    作用:就是对变量进行自增1或者自减1。
*/
public class Text3 {
        public static void main(String[] args) {
            //定义两个变量
            int x = 3;
            int y = 4;
            //单独使用
            //x++;
            //y--;
            ++x;
            --y;
            System.out.println("x:"+x+",y:"+y);//x++或者++x,单独使用时,输出的值都是一样,这里为4;y--或者--y,单独使用时,输出的值都是一样,这里为3
            System.out.println("-------------------");

            //参与运算使用
            int a = 3;
            int b = 4;

            //int c = a++;
            //int d = b--;

            int e = ++a;
            int f = --b;

            System.out.println("a:"+a); //4
            System.out.println("b:"+b); //3
            //System.out.println("c:"+c); //3
            //System.out.println("d:"+d); //4
            System.out.println("e:"+e); //4
            System.out.println("f:"+f); //3
        }
}
/*
    ++,--的练习题

    第一题:
    int a = 10;
    int b = 10;
    int c = 10;

    a = b++;
    c = --a;
    b = ++a;
    a = c--;
    请分别计算出a,b,c的值

    第二题:
    int x = 4;
    int y = (x++)+(++x)+(x*10);
    请分别计算出x,y的值
*/
public class Text3 {
    public static void main(String[] args) {
        int a = 10;
        int b = 10;
        int c = 10;

        a = b++; //a=10,b=11,c=10
        c = --a; //a=9,b=11,c=9
        b = ++a; //a=10,b=10,c=9
        a = c--; //a=9,b=10,c=8

        System.out.println("a:"+a);  //9
        System.out.println("b:"+b);  //10
        System.out.println("c:"+c);  //8
        System.out.println("--------------");

        int x = 4;
        int y = (x++)+(++x)+(x*10);
        //4+6+60
        //x=5,6

        System.out.println("x:"+x);  //6
        System.out.println("y:"+y);  //70
    }
}
/*
    面试题(可能性大):
        short s=1;s = s+1; 

        short s=1;s+=1;
        上面两个代码有没有问题,如果有,那里有问题。

        为什么第二个木有问题呢?
            扩展的赋值运算符其实隐含了一个强制类型转换。

            s += 1;
            不是等价于 s = s + 1;
            而是等价于 s = (s的数据类型)(s + 1);
*/
public class Text4 {
    public static void main(String[] args) {
        //short s = 1;
        //s = s + 1;
        //System.out.println(s); //损失精度,

        short s = 1;
        s += 1; //好像是 s = s + 1;
        System.out.println(s);  //2
    }
}
/*
    位运算符:
        &,|,^,~
        <<,>>,>>>

    注意:
        要做位运算,首先要把数据转换为二进制。
*/
public class Text4 {
    public static void main(String[] args) {
        //&,|,^,~

        int a = 3;
        int b = 4;

        System.out.println(3 & 4);  //0
        System.out.println(3 | 4);  //7
        System.out.println(3 ^ 4);  //7
        System.out.println(~3);     //-4
    }
}
/*
    分析:因为是位运算,所以我们必须先把数据换算成二进制。

    3的二进制:11
        00000000 00000000 00000000 00000011
    4的二进制:100
        00000000 00000000 00000000 00000100

    &位与运算:有0则0。
        00000000 00000000 00000000 00000011
       &00000000 00000000 00000000 00000100
        -----------------------------------
        00000000 00000000 00000000 00000000
        结果是:0

    |位或运算:有1则1。
        00000000 00000000 00000000 00000011
       |00000000 00000000 00000000 00000100
        -----------------------------------
        00000000 00000000 00000000 00000111
        结果是:7

    ^位异或运算:相同则0,不同则1。
        00000000 00000000 00000000 00000011
       &00000000 00000000 00000000 00000100
        -----------------------------------
        00000000 00000000 00000000 00000111
        结果是:7

    ~按位取反运算符:0变1,1变0
        00000000 00000000 00000000 00000011
       ~11111111 11111111 11111111 11111100 (补码)

       补码:11111111 11111111 11111111 11111100
       反码:11111111 11111111 11111111 11111011
       原码:10000000 00000000 00000000 00000100
        结果是:-4
*/
/*
    面试题:
        请自己实现两个整数变量的交换
        注意:以后讲课的过程中,我没有明确指定数据的类型,默认int类型。
*/
public class Text4 {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;

        System.out.println("a:"+a+",b:"+b);

        //方式1:使用第三方变量(开发中用的)
        /*
        int c = a;
        a = b;
        b = c;
        System.out.println("a:"+a+",b:"+b);
        System.out.println("------------");
        */

        //方式2:用位异或实现(面试用)
        //左边:a,b,a
        //右边:a ^ b
        /*
        a = a ^ b;
        b = a ^ b; //a ^ b ^ b = a
        a = a ^ b; //a ^ b ^ a = b
        System.out.println("a:"+a+",b:"+b);
        */

        //方式3:用变量相加的做法
        /*
        a = a + b; //a=30
        b = a - b; //b=10
        a = a - b; //a=20
        System.out.println("a:"+a+",b:"+b);
        */

        //方式4:一句话搞定
        b = (a+b) - (a=b); //b=30-20=10,a=20
        System.out.println("a:"+a+",b:"+b);
    }
}
时间: 2024-10-14 05:14:58

java基础语言 运算符的相关文章

从0开始学大数据-Java基础-三元运算符/键盘录入(4)

我们从零开始学习大数据技术,从java基础,到Linux技术涉猎,再深入到大数据技术的Hadoop.Spark.Storm技术,最后到大数据企业平台的搭建,层层递进,由点到面!希望技术大牛能过来指导学习. 上一节了解Java运算符,其中三元运算符没有做讲解,本节我们开始学习Java基础-三元运算符/键盘录入,将会围绕以下几个知识点进行展开学习: 三元运算符 键盘录入数据 一.运算符 1.三元运算符 接着上一节的话题运算符,本节讲三元运算符,在讲三元运算符之前,可能会有很多朋友会问,是不是有一元运

Java基础-位运算符Bitwise Operators

Java基础-位运算符Bitwise Operators 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 原文地址:https://www.cnblogs.com/yinzhengjie/p/8689059.html

Java基础 3. 运算符

Java基础 3. 运算符 目标 掌握数据类型转换 掌握算术运算符.赋值运算符 掌握逻辑运算符 掌握关系运算符.条件运算符 一.数据类型转换 //Demo1.java public class Demo1 { public static void main(String[] args) { //按照数值非数值分类 //数据类型:数值(整型int 浮点型float.double) //非数值(字符串String,字符char,布尔boolean(true.false)) //按照基本引用数据类型

JAVA基础知识——运算符

1.整数被0除会产生一个异常,而浮点数被0除将会得到无穷大或NaN的结果 2.例如: double w = x * y /z   JAVA是注重可移植的语言,但是在进行计算的时候,由于64位存储一个double值和80位浮点寄存器存储一个double值是不一样的,很多Intel处理器都是一步一计算的(这样计算的结果更精确),最后结果再截断为64位,这就和64位的机器计算的结果有所不同(直接结算,没有中间过程),一次运算一储存,有可能出现溢出或者计算速度慢的情况,JAVA程序设计语言承认了最优性能

java基础总结-运算符

[变量的赋值与计算都离不开表达式,表达式的运算依赖于变量.常量和运算符.本节课讨论Java的表达式的构成.常量的定义.运算符的分类及应用.通过本课的学习你将掌握运用表达式和运算符完成变量赋值.条件判断.数学运算.逻辑运算等功能操作] 在讲述课程内容之前,先看一个求圆面积的问题.求圆面积的公式为: 其中S为圆面积,π为圆周率,r为半径. 假设用程序来计算圆的面积,S.π.r均为变量,省略的乘号为运算符,r的2次方可以描述为r*r.则上面的公式即为求圆面积的表达式. 结合上面的案例,本节课程分为三个

Java基础(运算符)

---恢复内容开始--- Java中的运算符: 算术运算符:+  -  *  /   %    ++     -- %运算符叫取模:它就是取余的例如:43%7=1 其他的都是和数学里的运算符一样(不过在字符串中如果是两个字符串相加那么就是拼接了) ++和--它们的作用是自增,自减 单独使用:a++与++a没什么区别 操作使用:System.out.println(a++)这是先打印后运算System.out.println(++a)这是先运算后打印. 赋值运算符:=,+=,-=,/=,%=(这是

Java基础语言视频

java语言教程-第01讲-Java考古学java语言教程-第02讲-Java创世纪java语言教程-第03讲-Java基本概念java语言教程-第04讲-Java的变量java语言教程-第05讲-Java的基本数据类型java语言教程-第06讲-练习课(一)java语言教程-第07讲-运算符与表达式java语言教程-第08讲-分支语句java语言教程-第09讲-练习课(二)java语言教程-第10讲-循环语句 java语言教程-第11讲-练习课(三)java语言教程-第12讲-面向对象基础(一

java基础语言

1,java关键字:goto和const是保留关键字,在java中没有实现.true   false和null是特殊的字面量值,从技术角度上讲,它们不是java关键字. 2,标识符:是在java代码中我们自己选用的单词.      ⑴,标识符不能是关键字或true,false,null. ⑵,标识符可以包含字母,数字0-9,下划线(_),或美元符号($). ⑶,标识符的第一个字符必须是一个字母,下划线(_)或美元符号($). ⑷,标识符是区别大小的,并且没有规定最大长度. 3,数据类型:java

Java基础--语言环境和特点

在当前,学习Java程序是一件非常火的事情,而在大学时代,多数不是计算机专业的学生只知道C语言,对于Java只是听说过.我们可以从Java的发展史了解到,Java是美国斯坦福大学网络公司(SUN)在当时的科学环境下根据C++假设的一种新型计算机语言,是为了更加方便快捷的解决当时嵌入式的芯片.处理器等内部程序的跨平台应用而产生的. 现在常说的Java ME,JavaSE,JavaEE这三大版本中,Java ME当时就是为了面向这些嵌入式的电子设备,而它所面向的问题,决定了它的应用范围相对窄小,多用