当前位置: 首页 > news >正文

网站开发基础知识试题江苏 做网站

网站开发基础知识试题,江苏 做网站,浙江品牌网站建设,优质网站建设哪家好小伟刚毕业时面的第一家公司就被面试官给问住了#xff0c;记忆尤深啊… 如何理解Java中的自动拆箱和自动装箱#xff1f; 自动拆箱#xff1f;自动装箱#xff1f;什么鬼#xff0c;听都没听过啊#xff0c;这…这…知识盲区… 回到家后小伟赶紧查资料#xff0c;我…小伟刚毕业时面的第一家公司就被面试官给问住了记忆尤深啊… 如何理解Java中的自动拆箱和自动装箱 自动拆箱自动装箱什么鬼听都没听过啊这…这…知识盲区… 回到家后小伟赶紧查资料我透这不就是问基本类型跟封装类型吗面试官整啥名词呢… 别问结果问就是没过。 1、 什么是自动装箱自动拆箱 定义基本数据类型和包装类之间可以自动地相互转换 理解装箱就是自动将基本数据类型转换为封装类型拆箱就是自动将封装类型转换为基本数据类型。 我们知道Java中提供了四大类基本数据类型分别是整数、浮点数、字符型和布尔型其中 整数包含byte、int、short、long浮点数包含float、double字符类型char布尔类型boolean 基本数据类型相信大家一定很熟悉了吧来来来说说他们的取值范围~ 数据类型取值范围byte-128 ~ 127short-32786 ~ 32767int-4294967296 ~ 4294967295long-264 ~ 264 -1float3.4e-038 ~ 3.4e038double1.7e-308 ~ 1.7e308char\u0000 ~ \uffffbooleantrue 、false 日常开发中靠这些基本数据类型几乎能够满足我们的需求但是基本类型终究不是对象往重了说不满足面向对象的开发思想往轻了说就是使用不方便。怎么讲例如做一些数据类型转换获取int数据类型的取值范围等等。 我们知道类的优点在于它可以定义成员变量、成员方法提供丰富便利的功能因此Java在JDK1.0的时候就设计了基本数据类型的包装类而在JDK1.5中引入了新特性自动装箱和拆箱。 我们来看一下基本类型跟封装类型之间的对应关系 数据类型封装类byteByteshortShortintIntegerlongLongfloatFloatdoubleDoublecharCharacterbooleanBoolean 2、 使用包装类型后的便捷 我们以上边提到的数据类型转换为例看看使用包装类型后的便捷性。 小伟在数据库中存放商品库存用的是 varchar 类型来存储的所以在代码中的实体与之对应的是 String那么问题来了既然是库存那么势必就要用到加减乘除之类的运算所以就需要先转换成 数值类型(int\long\float等)来运算我们看一下通过包装类是如何快速转换的「int\long\float」 public class Test {public static void main(String[] args) {// 数据库中的商品数量 numberString number 666;// 借助封装了 Integer 转换为 intint intVal Integer.valueOf(number);// 借助封装了 Float 转换为 floatfloat floatVal Float.valueOf(number);// 借助封装了 Long 转换为 longlong longVal Long.valueOf(number);// 依次输出三个值的内容System.out.println(intintVal);System.out.println(floatValfloatVal);System.out.println(longVallongVal);} }3、 落实自动装箱、拆箱 看完了包装类型的便捷性后我们再来落实到自动装箱、自动拆箱上… 怎么就自动装箱自动拆箱了呢 上一段代码看看哪是自动装箱跟自动拆箱 // 自动装箱 1. Integer a 100; // 自动拆箱 2. int b a;自动装箱相当于Java编译器替我们执行了 Integer.valueOf(XXX); 自动拆箱相当于Java编译器替我们执行了Integer.intValue(XXX); 我们证实一下首先通过 javac 编译得到 class 文件接着反编译看看 指令为javap -c class文件名得到下图所示 看完编译器替我们做的接下来我们再通过源码看看首先是自动装箱 valueOf() 方法: public static Integer valueOf(int i) {if (i IntegerCache.low i IntegerCache.high)return IntegerCache.cache[i (-IntegerCache.low)];return new Integer(i); }我们可以看到首先是if方法 对传入的int 数值进行判断如果 i -128 且i 127 那么就会从IntegerCache缓存中获取指定数字的封装类如果不存在则 new 出一个新的封装类关于 IntegerCache 其内部实现了一个Integer的静态常量数组在类加载的时候执行static静态块进行初始化-128~127之间的Integer对象存放到cache数组中cache属于常量存放在java的方法区中对方法区不太了解的小伙伴可以先留空后面我会单独水一篇的~ 额外补充一下上边我们只看了Integer封装类的自动装箱方法从方法中我们了解了在-128~127之间使用了缓存那么是不是意味着别的封装类也是这样呢其实不是的首先Integer使用缓存原因是该区间会被经常使用到且数量个数比较确定就256个值所以为了提高效率防止每次自动装箱都创建一次对象实例然后就你懂得~而double、float浮点型是没有使用缓存的因为小数点的原因所以在这个区间范围内个数是比较泛的即不适合缓存没有意义。 我们通过一段代码看看这个缓存的效果吧 public class Test2 {public static void main(String[] args) {Integer a 100;Integer b 100;Integer c 200;Integer d 200;System.out.println(ab); // 打印trueSystem.out.println(ab); // 打印false} }接着再来看自动拆箱 intValue() 方法 private final int value;public int intValue() {return value; }这个方法就比较简单了调用时直接返回了基本数据类型的 value 值。 至此我们看完了自动装箱、自动拆箱以Integer为例我们知道了使用 valueOf() 方法实现装箱使用 intValue() 方法实现拆箱接下来我们再结合几行代码重新回顾一下 1. Integer a new Integer(100); 2. Integer b 100; 3. b100;第一行代码new 了一个 Integer 对象实例将 int 类型的数据传入包装成了 Integer 类型。 第二行代码首先我们知道 100 是 int 类型的但是等待复制的 b 是 Integer 类型此时就用到了自动装箱b Integer.valueOf(100)将100包装成包装类了「通过反编译验证」 第三行代码用到了自动装箱自动拆箱b b 100 Integer.intValye(b) 100 此时计算结果得到的应该是 int 类型的 b但是 b 又被限定了是 Integer 类型所以就又要用到 Integet.valueOf() 自动装箱。 4、 上才艺 才艺一如何理解Java中的自动拆箱和自动装箱 答自动装箱就是将基本数据类型自动转换为封装类型自动拆箱是将封装类型自动转换为基本数据类型。 才艺二能说一下是通过哪些方法实现自动拆箱、装箱的吗 答以Integer为例使用Integer.valueOf()方法实现装箱使用Integer.intValue()方法实现拆箱。 推荐阅读 跟小伟一起学习类加载机制 为什么有这么多领优惠劵的群 单招计算机类哪个专业比较好 本文首发于博客园https://www.cnblogs.com/niceyoo
http://www.yutouwan.com/news/396698/

相关文章:

  • 2019做网站图片用什么格式邯郸seo排名
  • 重庆建筑特种作业查询网长沙优化官网公司
  • 怎样用手机搭建网站公司网站建设维护管理办法
  • 河北网站建设企业有什么好看的网站
  • 下列哪一项不属于电子商务网站建设推广有奖励的app平台
  • 网站方案编写seo网站培训班
  • 美食网站 怎么做滨州网站建设
  • 肇庆网站建设遵义市建设局网站
  • 网站开发薪资删除wordpress网页无用
  • 石家庄专业制作网站个人网站能不能做论坛
  • 网站参考页面设计wordpress导航目录
  • 展示系统 网站模板免费下载长沙市建设局网站
  • 怎么免费给自己建网站wordpress 煎蛋网插件
  • 网页设计与网站建设试卷wordpress新闻插件
  • 网站上线有什么线上活动可以做枣庄手机网站建设电话
  • 网站备案需要收费么大英做网站
  • 不再更新的网站深圳广告公司集中在哪里
  • 网站建设公司高端网站建设销售实训报告
  • 网站响应式与电脑版有什么区别橙色企业网站源码
  • 网站浮动窗口怎么设置公会网站免费建设
  • wordpress 文章目录西安seo网站设计公司
  • p2p网站建设说明书qq直接登录网站无需下载
  • 上海医疗网站建设沈阳企业网站制作哪家好
  • 网站设计 广州百度快照不更新怎么办
  • 网站建设图片教程视频昆明做网站建设怎么样
  • 潍坊网站排名优化wordpress插件储存目录
  • 网站导航栏设计wordpress搜索标题
  • 没有公司自己做网站微信小程序开发文档
  • 做网站成功的企业服务器一年多少钱
  • 做网站_你的出路在哪里怎样做违法网站