ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

牛客刷题笔记(一)

2021-04-19 13:00:00  阅读:178  来源: 互联网

标签:10 java 补码 取反 笔记 牛客 修饰 原码 刷题


NO.1

What results from the following code fragment?
翻译:以下代码片段的结果是什么?

int i = 5;
int j = 10;
System.out.println(i + ~j);

A.Compilation error because”~”doesn’t operate on integers
B.-5
C.-6
D.15

解析:

位非运算符(~)

运算规则:将后面的数的补码按位取反(0变1,1变0,符号位也要变哦)
公式-n= ~n + 1可推出 ~ n = - n - 1。
所以~10=-11再加5结果为-6。

在Java中,所有数据的表示方法都是以补码的形式表示,如果没有特殊说明,Java中的数据类型默认是int,int数据类型的长度是8位,一位是四个字节,就是32字节,32bit.

~这个符号是计算机在计算,下面是原理:
众所周知,计算机本身储存的都是二进制的补码;
那么10的补码就是10的原码(因为正数的原反补一样):0000 0000 0000 1010——这是补码,因为现在是计算机在计算,将10转换成了补码。
~10的补码就是:1111 1111 1111 0101—— '~'这个符号按位取反(符号位也要取反)
~10的反码就是:1111 1111 1111 0100——补码减1(因为它符号位为1,是负数,反码求补码 + 1)
~10的原码就是:1000 0000 0000 1011——反码取反:这个才是正常二进制数,换算为整数为-11
原码才可以对应为正常的整数,补码只有转换为原码才能被正常人类识别。

带~的数的计算机的运算过程:(这只是 ~正数的过程)
1、对原数的二进制每位数依次取反,得到结果的补码;
2、通过对结果的补码减一,得到结果的反码;(看符号位,判断是真还是负)
3、最后通过对结果的反码取反,得到结果的原码,这就是我们要的二进制数。

参考资料:
原码,反码,补码的关系

NO.2

下面的程序输出的结果是( )

public class A implements B{
public static void main(String args[]){
    int i;
    A a1=new  A();
    i =a1.k;
    System.out.println("i="+i);
    }
}
interface B{
    int k=10;
}

A.i=0
B.i=10
C.程序有编译错误
D.i=true

解析:

接口中的成员:

java接口中变量的默认修饰符为 public static final
java中定义全局常量,通常使用public static final修饰,接口中可不写修饰符。

java接口中方法的默认修饰符为 public abstract

接口中不存在变量,只有常量,默认为public static final,要么不写,要么只能出现这个修饰词中的一个或多个这个来修饰“变量”,接口中方法也是要么不写,要么只能出现这个修饰词中的一个或多个这个来修饰“方法”。
补充:
1.final关键词修饰变量时,声明时变量必须初始化。

2.类中的全局变量:声明时可以不初始化,因为再声明时,java虚拟机(JVM)为其赋默认值。

3.方法中的局部变量:声明时可以不初始化,但是使用之前要初始化。

NO.3

Java的跨平台特性是指它的源代码可以在多个平台运行。()
正确答案: B 你的答案: B
A.正确
B.错误

解析:

JAVA的跨平台特性表述为“一次编译,到处运行”,JAVA程序运行在JVM上,而JVM对上屏蔽了底层操作系统差异。

“write once,run everywhere ”指的是编译后的字节码可以跨平台执行,也就是.class文件,而不是.Java源文件。

跨平台是指可以在一个平台上编写和编译程序,而在其它平台上运行。保证java跨平台性的机制为字节码文件(.class文件)和java虚拟机(其主要作用)。java程序被编译后不是生成能在硬件平台上可执行的代码,而是生成了字节码文件。不同的硬件平台会安装不同的jvm,由jvm负责把字节码翻译成硬件平台能执行的代码。

NO.4

构造方法

Java 构造方法有以下特点:

  • 方法名必须与类名相同

  • 可以有 0 个、1 个或多个参数

  • 没有任何返回值,包括 void

  • 默认返回类型就是对象类型本身

  • 只能与 new 运算符结合使用

注意:构造方法不能被 static、final、synchronized、abstract 和 native(类似于 abstract)修饰。即不能被非访问修饰符修饰,可以被访问修饰符修饰。

参考文章:
牛客评论

小伙伴们,有没有觉得收获满满,我写时,我感到很充实,我学到了~用法,复习了原反补码的转换,接口的成员的修饰,构造方法的特点。
觉得可以的小伙伴,记得点赞关注收藏哟

标签:10,java,补码,取反,笔记,牛客,修饰,原码,刷题
来源: https://blog.csdn.net/weixin_51333606/article/details/115859814

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有