面试题小记


第一题:
byte b1=3,b2=4,b;
b=b1+b2;
b=3+4;
哪句是编译失败的呢?为什么呢?

第二题:
byte  by = 130;
有没有问题?有问题如何解决?结果是多少呢?

第一题中的b1b2都是byte类型它们进行运算的时候首先转换成int类型,由于b是byte类型,会发生精度损失的错误;第二题中,byte类型的最大值是127,需要对130进行强转,因为内部是以补码形式存放的,所以得先将补码转化为原码进行输出,结果为-126。希望今天记录下来,以此为戒,打好每一步基础

第三天遇到的其实都是一些经常用的东西,也比较熟悉,其中自认为比较重要的就是&&和&以及|和||的区别得搞清楚,无疑就是&&和||提高了代码的效率,在今后写程序的时候一般都会优先使用这两种。还有就是三目运算符,之前接触过,但是没有当回事儿,今天发现这东西还是很好使用的,特别方便,对于一些简单的比较可以缩短代码量,基本格式就是a=a>b?a:b;。

今天讲的是方法的重载以及一维数组和二维数组的基本知识,跟我以前对比,其中对于数组在栈以及堆中占用内存空间的分析是我之前没有理解的,经过下面的画图,以及自己的分析,今天彻底弄明白了,创建数组的时候,其实和声明变量是有相似之处的,局部变量其实都是存放在栈中的,定义一个数组就是在栈中开辟一个内存空间存放数组的首地址,然后在堆中开辟内存空间存放数组中各个元素的值。因为数组元素在堆中的首地址给了,栈中定位数组类型的变量,所以它们就连接在一块儿,也就是说数组类型的变量通过它存储的地址就可以在堆中找到这一块内存空间,再而,如果在栈中再定义一个数组类型的变量,依旧将这个地址给新创建的数组变量,那么它们就都可以找到堆中存放的数组元素,当程序执行结束后,不再需要使用开辟的内存空间时,它们就会释放连接,等待垃圾回收机制空闲的时候回收。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值