#java笔试复习(二)#

1、(1)short s1 = 1; s1 = s1 + 1;有什么错? (2)short s1 = 1; s1 += 1;有什么错? 

答:(1)当进行s1=s1+1的操作时,s1会被自动升格成为int类型,而根据转换规则,int类型无法隐式的转化成为short类型,因此会报错。
        (2)+=符号是java语言规定的运算符,编译器会对他进行特殊的处理,因此不会报错。

2、char型变量中能不能存贮一个中文汉字?为什么?
答:char型变量存储的是Unicode字符集,而汉字也包含其中,因此可以存储,但若是某些生僻的汉字不在这个字符集中,自然就不能存储了。

3、用最有效率的方法算出2乘以8等於几? 

答:2<<3
        将一个数左移几位,就相当于将它乘以2的几次方,因此只需将2向左移动3位即可。而位运算是cpu支持的,效率最高。

4、使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变?
答:是指引用变量不能变,而引用变量所指向的内容是可以改变的。

5、"=="和equals方法究竟有什么区别?

答:对于基本数据类型(int,short等)应使用”==“来比较两个变量的值;而对于复合数据类型(类)”==“比较的是他们的内存地址,因此在比较的时候,除非是同一个初始化的对象,否则一定会返回false,JAVA当中所有的类都是继承于Object这个基类的,在Object中的基类中定义了一个equals的方法,这个方法的初始行为是比较对象的内存地址(相当于==),但在一些类库当中这个方法被覆盖掉了,如String,Integer,Date在这些类当中equals有其自身的实现,而不再是比较类在堆内存中的存放地址了。因此,当我们在自己定义类,想用equals时,就必须重写这个方法了。

6、值类型和引用类型究竟有什么区别?

答:  值类型指的就是八种基本数据类型;

         引用类型(除了基本数据类型外的类型)类似于指针,不同的引用类型可以指向同一个数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值