java的或运算到底怎么算啊

System.out.println(5丨8)的输出结果为什么是0啊有人知道吗?

该回答引用chatgpt:
在Java中,竖线(|)被用作位运算符(按位或)。在表达式"5 | 8"中,5和8被解释为二进制数,并且执行按位或运算。

将5和8转换为二进制数:
5的二进制表示为:00000101
8的二进制表示为:00001000
该回答引用chatgpt:
按位或运算符对应位进行逻辑或操作:
00000101
00001000

00001101

结果是13(十进制),而不是0。因此,System.out.println(5 | 8)的输出结果应该是13,而不是0。

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7438040
  • 你也可以参考下这篇文章:java的几种运算符以及优先级
  • 你还可以看下java参考手册中的 java-入门 - 对Java技术的介绍,以及安装Java开发软件和使用它来创建一个简单程序的课程。- Java技术现象 提供了整个Java技术的概述。它同时讨论了Java编程语言和平台,广泛介绍了这项技术能做什么,以及它将如何使你的生活更轻松。-Java技术将如何改变我的生活?
  • 除此之外, 这篇博客: java实现网络的连接中的 总结 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 两台服务器想要再网络中连接并且通信,首先要借助操作系统中的Socket库来建立连接传递和发送以及接收消息;接着要客户端需要知道服务器端的IP地址以及端口号才可以连接上;最后连接成功后就相当于两台电脑建立了一条道路,也就是这条通路上所用到的路由器连接等资源会被持续占用一直到通话结束,我们就可以将二进制的信息再这条道路上进行传输。当全部通讯结束后,至少一方断开连接了,那么这条占用的信息通道就会释放。想要下次连接,就需要重新建立连接。

  • 您还可以看一下 大熊老师的Java中的反射机制课程中的 反射概述小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    Java中的或运算符是"|",它在二进制位上进行操作,只要操作数中的二进制位有一个是1,运算结果位就是1;只有操作数的二进制位全部为0时,运算结果才为0。以下是或运算符的语法:

    boolean_expression1 | boolean_expression2
    

    其中boolean_expression1和boolean_expression2都是boolean型的表达式,可以是变量或常量,也可以是数学表达式。

    下面是一个例子,使用或运算符来查找整数中的数字是否在指定的范围内:

        public boolean compare(int value, int min, int max) {
    
            if (value < min | value > max) return false;
    
            return true;
        }
    
        public static void main(String args[]) {
    
            JavaDemo test = new JavaDemo();
    
            if (test.compare(5, 1, 10)) {
                System.out.println("5 is in the range!");
            } else {
                System.out.println("5 is out of the range!");
            }
        }
    

    关于或运算符的用途,它可以用来判断两个表达式中有一个为真时,整个表达式就为真。它常用于位运算。

    至于多态机制的问题,Java中实现多态有三个必要条件:继承、重写、向上转型。我们需要继承一个父类,并Override父类中的方法,然后将子类的引用赋给父类的对象,该引用才能够调用父类的方法和子类的方法。

    参考娃娃机例子,我们可以这样写Java代码来实现:先定义一个大小为10的整型数组,从键盘输入10个整数,并把他们放到数组中,然后输出数组中的最大值。可以采用一个循环来遍历这个数组,然后使用一个临时变量来保存最大值,每次遍历结束后,判断这个临时变量是否比当前值大,如果是,就把它的值赋给这个临时变量,最终,这个临时变量就是整个数组中的最大值。

    import java.util.Scanner;
    
    public class MaxNumInArray {
        /**
         * 传递一个整形数组,获取数组中的最大值
         * @param intArrays
         * @return
         */
        public static int maxNum(int[] intArrays){
            int max = intArrays[0];//保存最大值
            for (int j = 0; j < intArrays.length; j++) {
                    //依次和数组中的值判断大小来获取最大值
                    if (max < intArrays[j]) {
                        max = intArrays[j];
                    }
            }
            return max;
        }
    
        public static void main(String[] args) {
            Scanner in = new Scanner(System.in);
            int[] intArrays = new int[10];
            for (int i = 0; i < intArrays.length; i++) {
                System.out.printf("输入第%d个值:",i+1);
                intArrays[i] = in.nextInt();
            }
            //得到最大值
            int max =maxNum(intArrays);
            System.out.println(max);
        }
    }
    

    最后,关于段落四的问题,当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,这里到底是值传递还是引用传递?答案是值传递。Java语言的方法调用只支持参数的值传递。Java中没有值传递,只有引用传递。在Java的方法调用中,对象的引用被当作值传递。