JavaSE 之旅01——进制转换、运算符、流程控制关键词、重载的概念

xiaoxiao2021-02-28  25

进制转换

其他进制转十进制

公式:系数 * 基数的权次幂相加 (系数指每个数字,基数指的是多少进制,权指的是从右到左从0开始,次幂就是乘方)

例如:计算 0x100 的十进制值.

0x100 = 1*16^2 + 0 * 16^1 + 0 * 16^0 = 16*16 = 256

十进制转其他进制

公式:除基(基数,也就是要转的进制)倒取余(余数)

例如:计算 60 的二进制.

结果为:0b111100 或者 0B111100

原码、反码、补码

原码

总共 8 位。最高位表示该数是正数还是负数,正数最高位用 0 表示,负数最高位用 1 表示.

比如:0b10110100

反码

正数的反码和原码是一样的。所以原码是正数的反码不用计算,原码是负数的反码计算规则是:

保持最高位不变0 -> 1,1->0

补码

要求补码,先要求原码的反码。补码的计算规则:

在反码基础上加 1如果有多余8位的,直接砍掉最高位根据进位变化

已知补码,求原码:

根据补码 -1 求出反码,对反码进行取反就是原码

逻辑运算符、位运算符

&& 与 & 的区别

二者具有相同的结果&& 具有短路效果(如果左边为 false,那么右边就会不执行),& 则是两边都会执行

|| 与 | 的区别

二者具有相同的结果前者具有短路效果(如果左边为 true,则右边不执行),| 是两边都会执行

|、&、^、~用法:

|:有 1 则 1&:有 0 则 0^:相同则 0,不同则1~:安位取反

位异或运算符特点

一个数据对另一个数据位异或两次,结果还是该数本身

典型示例:交换两个整数的值,无需借助第三个变量。

解法一(借助第三方变量,开发中推荐使用)

int x = 5; int y = 55; int temp = x; x = y; y = temp; System.out.println("x= "+x+" y= "+y);

解法二(两个整形相加,弊端就是有可能相加之和超出 int 最大值)

int x = 5; int y = 55; x = x + y; y = x - y; x = x - y; System.out.println("x= "+x+" y= "+y);

解法三(异或运算符,面试考题)

int x = 5; int y = 55; x = x ^ y; // x = 5 ^ 55 y = x ^ y; x = x ^ y; System.out.println("x= "+x+" y= "+y);

<<、>> 、>>>

特点:

<< :左移几位,就是乘以 2 的几次幂>>:右移几位,就是除以 2 的几次幂>>>:无符号右移,无论最高位是 0 还是 1,左边补齐 0

面试题:计算 2 * 8 的结果,要求效率最高

2 << 3

流程控制语句

continue 关键词

作用:终止本次循环,继续下次循环。

特点:当执行到 continue 语句时,后面的语句不会在本次执行。

标号

作用:指定循环跳到某处。

使用场景:一般用在多层循环中。循序执行的语句也可以应用。

面试题:下面程序运行是否会出错?

public static void main(String[] args){ System.out.println("您好,欢迎您能来参加我司的面试"); http://blog.csdn.net/wufeng55 System.out.println("请您告诉我,我能被顺利执行吗?"); }

解答:

​ 这里的 http: 是下面输出语句的标号而已,而其后面的语句是单行注释。所以,这段代码编译运行没有错,可以正常输出。

方法重载

重载:方法名相同,参数列表不同。与方法返回值无关。

参数列表不同的表现形式包括:

参数的顺序参数的类型参数的个数
转载请注明原文地址: https://www.6miu.com/read-2627610.html

最新回复(0)