JAVA 04

发布于:2023-02-17 ⋅ 阅读:(561) ⋅ 点赞:(0)

一,&和&&的区别?

两者都能用作逻辑与的运算符,表示逻辑与(and),两边都为true才为true,但是&&还具有短路的功能,即第一个式子为false则不在计算第二个表达式

二,位运算符

位运算符主要操作二进制的位进行运算,其操作数和运算结果都是整型,&按位与的运算规则是将两边的数转换位二进制位,两个1才是1,1&0=0,0&1=0,0&0=0,1&1=1

按位或 | 

1|0=1,1|1=1,0|0=0,

异或  ^  不一样的就为1

1 ^0=1,0^0=0,1^1=0,

<<  二进制向左移两位,右边补0  ,如果是负数,右边补1

>>二进制向右移两位,正数左边第一位补0,负数补1

>>>  无符号右移运算符

与右移运算符的区别就是在右移的时候无论正负数左边都是补0

~ 取反运算符  把相应的二进制按位取反

三,关于二进制的问题?

负数的二进制:例:

-2:  先求2的二进制 0000 0010

  按位取反  1111 1101

加1  1111 1110

求负数二进制的十进制  :例如 1111 1110

先按位取反0000 0001

加1  0000 0010 为2 加负号就是-2

四,java文件名与类名称的一致性问题

1,java文件中最多只有一个public类,可以没有public类

2,如果Java文件中有public类,则Java文件名必须与public类的类名相同,否则会编译错误.

3,如果文件中有多个类但没有public类,Java文件的名称可以是任意的,既可以是与Java文件中的类的名称相同,也可以不同.

五,跳出多重嵌套循环方法

1,使用标签

 a:for (int i = 0; i < 5; i++) {
            for (int j = 0; j < 5; j++) {
                System.out.println(j);
                if(j==3){
                    break a;
                }
            }
        }

2让外层的循环条件表达式的结果可以受到里层循环体代码的控制

 boolean b=false;
        a:for (int i = 0; i < 5&&!b; i++) {
            for (int j = 0; j < 5; j++) {
                System.out.println(j);
                if(j==3){
                    b=true;
                    break ;
                }
            }
        }

六,经典类型转换问题

short s1=1;
        s1=s1+1;//编译报错
        s1+=1;

s1+1 会自动升为int类型,不能赋值给short

+=是java语言规定的运算符,java编译器会进行特殊处理,所以可以正确编译

七,基础知识点

1,char是用来存储Unicode编码的,其中包含了汉字,如果某个特殊的汉字没有被包含在unicode编码字符集中,那就不能存储,unicode编码占用两个字节,所以,char类型的变量也是占用两个字节

2,error表示恢复很困难的情况下的一种严重问题,比如说内存溢出,exception表示一种设计或实现问题,如果程序正常运行,从不会发生的情况.


网站公告

今日签到

点亮在社区的每一天
去签到