Java面试1

这篇博客主要涵盖了Java面试中常见的基础知识,包括逻辑运算符优先级、原码、反码、补码的解释,位运算符及其应用,数据类型转换规则,数组的操作,对象和类的相关概念,以及OOP的基本原理。内容详细解答了与或非的优先级,原码、反码和补码的含义,位运算符的理解,以及数组和对象类的各种问题。
摘要由CSDN通过智能技术生成

一、基本知识

1.与或非三个逻辑运算符的优先级是怎么排列的?

“非”优先级最高,”与”其次,”或”优先级最低

2.原码,反码,补码分别是什么意思?

·       原码:将数字转换为二进制,第一位为符号位,正数为0,负数为1

例如:12的原码是00001100 -12的原码是10001100

·       反码:正数的反码和原码相同,负数的反码将原码符号位之外的位逐位取反

例如:12的反码是00001100 -12的反码是11110011

·       补码:正数的补码和原码相同,负数的补码将反码加1

例如:12的补码是00001100 -12的补码是11110100

最后强调一点,计算机存储数据用补码形式来存储。

二、位运算及

1.位运算符都有哪些?

&与 |或 ^异或 ~非 >>右移 <<左移 >>>无符号右移

2.1<<35怎么理解?

1是int类型是32位(4字节),所以需要把35%32=3,事实上和执行1<<3等价

3.数据类型转换需要遵循什么原则?

小类型向大类型转换,是自动转换的,或者说隐式转换的

大类型向小类型转换,是需要强制转换的,或者说显式转换

    例如:

    byte b = 1;

    short s = b;//自动转换    

    b = (byte) s;//强制转换

4.byte b = 10这个语句是正确的,为什么10是int型比byte大还不需要强制转换呢?

因为在java中做了特殊处理,其中规定byte,short,char类型可以直接赋予int类型的直接量,

例如:

byte b = 10;

short s = 10;

char c = 10;

以上赋值语句都是正确的。

但是不能超出超出类型的范围(byte占1字节),例如以下赋值就是错误的:

byte b = 128;

如果超出范围,必须得作强制转换,例如以下语句是正确的:

byte b = (byte) 128;

需要强调的是,必须是int类型的直接量,以下语句就是错误的:

byte b = 10L;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值