java 案例分析 选择题_java笔记之byte的面试题案例分析

前言

这里只举例简单的数据类型的byte,其他的数据类型类似。

主要分为

byte的案例分析和数据类型的笔记两部分

正文

byte的案例分析

1. byte n=10+127;

1)分析:

a. 10和127属于字面量,经过javac优化后 byte n=127;

b.n 的类型是byte,127的类型默认为int,造成数据类型不匹配,那么javac会判断127是否位于byte类型的取值范围之内;若为范围之内将127的类型转换byte,否则报错。

2)原理:

1))127在内存中以32位进行存储,那么赋值号右边的数据类型为整形,与赋值号左边的类型不匹配,需要类型转换。

2))校验127是否位于byte的取值范围之内,如果位于,就将第32位的符号记录在第8位,其他位的截掉;若超过范围,就提示错误。

2.案例2

byte i=10;

byte j=117;

byte m=i+j;//报错

解析:

等值号右边不是常量,而是变量,无法确定其值是否位于bye的取值范围,所以报错。

数据类型的笔记

1.关于char类型的笔记

java支持Unicode编码,两个字节存储文字,前255仍然存储ASCII所表示的文字信息。

2.关于float与Double的笔记

1)float

1))folate 4字节,1位符号位,8位指数位,23位用来记录数字。

2))int与folate相比,int的精度高,float的范围大。

(int 使用32位存储数字而float为23位,所以int精度高;folate使用8位指数,所以folate的范围大)

3))因为folate精度尚且不如int类型,所以一般计算不采用float。

2)Double

Double内存的存储结构:1位的符号位,11位的指数位,52位的数字位。

3.简单数据类型与进制之间的类型转换

1)例:

Integer.toBinaryString(int i);//二进制

toHexString(int);//十六进制

toOctalString(int);//8进制

2)数据的存储方式:

在计算机中都是以补码的形式存储数字

正数:原码与补码都一样。

负数:补码在反码的基础上+1.

4.关于byte的简单笔试题

1)byte的强转换的案例

1))代码

byte b=(byte)140;

System.out.println(b);//b=-116

2))代码的分析如下“

补码:11111111  11111111  10001100

反码:11111111  11111111  10001011

原码:10000000 00000000  01110100

原理与案例一类似。

总结

1.不管题目如何的变,只要你理解了原理,掌握一些常用的内存分析方法就游刃有余地面对面试;

2.重点掌握对象的内存分析以及JVM的内存的栈和堆在内存中的分配。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值