这是一个长长的故事--关于自动包装的理解

今天有学生问了我关于“自动包装”是如何理解的,我稍微思考了一下,写了如下文字,与大家分享,浅见浅见,希望大家多提意见,互相讨论。

早期Java版本(1.4及以前的版本,包括1.4这个版本)把Java分为两种数据类型,一种是基本数据类型,如int,char float boolean等,另一种称为引用类型,如String,Object等类型。其目的是为了既能使用面向对象的思想完成代码的编写,又能让计算机保持一定的计算性能(基本数据类型计算速度较快,而对象型计算速度较慢)。

但是,这样一来,就带来了个很困扰Java程序员的事情:由于基本数据类型和对象类型的完全不兼容,它们之间的类型转换很麻烦。Java设计了将基本型转换为对象型,然后再进行运算的形式,但是整个代码在早期版本的时候需要程序员自己手动完成,这带来了程序员的机械操作和记忆量。

这时微软公司推出了C#2.0,它不需要程序员自己去完成基本数据类型和对象类型的转换,并将这个自动化类型的过程取了两个名字,由基本数据类型转对象类型取名叫“装箱”,由对象类型转基本数据类型取名叫“拆箱”,天呀,妈妈再也不用担心我转不来类型了!程序员们喜大普奔,拍手称快。

微软能搞,咱们Java也能!所以在1.5时推出了“自动包装”的概念,并为了说明这个版本的划历史的大变革,对外发布时不再称为”Java SE 1.5”,而是更名为”Java SE 5.0”,额滴神呀,嘿嘿嘿。

生活在幸福中的今天的你们,应该感谢咱们这些老一辈程序员们的辛苦,正是因为我们这些老一辈程序员孜孜不倦寻找各种偷懒的方案,才让你们生活在幸福的今天。

所以,你们要继承老一辈程序员的遗志,勤奋的愉懒,找到让这个世界更幸福的方法。

时间: 2024-08-26 07:45:42

这是一个长长的故事--关于自动包装的理解的相关文章

看到的一个小故事-回车和换行的区别

          在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符.但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符.要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失.   于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符.一个叫做"回车",告诉打字机把打印头定位在左边界:另一个叫做"换行",告诉打字机把纸向下移一行.   这就是&quo

互联网创业创意养成记4 - 把你的创意编成一个好故事

把你的创意编成一个好故事 以世上正在发生的变化作为方向来思考你的初创企业不仅仅会很大程度上让你的初创企业获得成功,因为它是一个更优秀的技术创新思考模式.除此之外,它还会给你带来更多的惊喜. 在你的初创企业的起步阶段你必须和很多人进行交谈互动 - 潜在用户,顾问,投资商,行业专家,早期员工,甚至记者.这些人问你的第一个问题往往就是"你这企业是干什么的?". 所以应该如何告诉人们你正在打造的是什么东东将会是你需要解决的第一个战略性的问题. 如果你以讲故事的方式来对描述一个事物的话,人类往往

说好一个创业故事的5个步骤

特斯拉CEO伊隆·马斯克告诉你 说好一个创业故事的5个步骤 2015-07-19 10:51· techgogogo  阅读:729 摘要做pitch的时候千万别一开始就太把自己当主角,喋喋不休的推销自己,你的团队,你的产品,以及你所处的市场.相反,你更应该在开始的时候把当前让你的客户不爽的“拦路虎”给搬出来. 话说三周之前,来自旧金山的一家由多个优质风投公司投资的初创企业的CMO给我发了封邮件,并附上了她的最新销售宣传稿. “这吸引力不够,”她说道,“信息量虽说是有了.幻灯片做的也很好.但是总

商业分析师应如何构建一个商业故事

在之前的如何修炼成一个合格的商业分析师中我们提到一个好的分析师最重要的特点就是会讲故事.今天的文章里我们不讲技术,我们来谈谈如何讲故事.* 一个好的商业故事是可以很有力量的,可以很抓人心的,但往往很多故事都会忽略大的远景.一个好的引人入胜的故事关键在于故事中的主人公在经历了严重的灾难或者一些比较严重的问题后有所改变(屌丝变男/女神的逆袭),而这个改变的过程就是故事的主线.而许多不成功的商业故事的问题在于故事中任何人都没能超越自己,故事到结尾主人公什么也没有改变.所以我们要讲什么样的故事呢?要想讲

infer.net 入门2 用一个侦探故事来讲解,通俗易懂

The results look OK, but how do you know that you aren’t missing something. Would a more sophisticated model with more variables work even better? If you add enough variables to a model, you can fit almost anything. However, you generally reach a poi

81进制,用多进制方式把一个长长的整数变短

最近在做项目有些资源要用到唯一的标识code,这个code要全局唯一,因此比较长,有25位,long只能处理到19位.另外25位长的一个整数阅读显示都不是很理想,因此开发了一个多进制的转换类.思想接近把一个域名用几个字符代替.下面就是实现的具体java代码,目前支持到81进制. 1 import java.math.BigInteger; 2 import java.util.Arrays; 3 import java.util.Date; 4 5 /** 6 * 7 * @author 程序员

根据现实中一个实例--线程和进程的理解

进程(process)和线程(thread) 是所有学习计算机行业人员绕不过去的两个基本概念,但是它们却十分的抽象,十分不容易理解. 最近总结了一个例子来解释一下,可能要好一点. 1.我们知道,CUP是一个计算机的核心,它就像一个工厂一样,只要启动计算机,它就会一刻不停的运动.我这样假设,这个工厂的名字是xxx工厂,这个工厂里面有5个车间,车间门牌号是,"1","2","3","4","5",每个车间的标准

2016.8.07 一个自欺欺人的代码(便于理解函数和对象)

之前在对象基础里,我说对象就像游戏里的一个人物,这个人物有血条,魔条,物理攻击力等等的基本属性,也有攻击等基本方法. 在这里,我就写一个小例子,是用来自欺欺人的.真的,随便玩玩就好,如果想认真的做一个回合制游戏,可以参考我这个代码. 不说了,直接上代码: function Person(o){ this.name= o.name; //名字 this.profession= o.profession;//职业 this.rank= o.rank; //等级 this.blood= o.blood

一个新人对于DW标签的理解

标签呢分为 一.一般标签 一般标签内又分为 ① 格式控制标签 格式控制标签的书写格式是: <font .....></font>  以font为开头以/font为结尾 font的后面 可以包含有color=""(颜色)size=""(字体大小)face=""(选择字体) 一下所有要修改的内容都是在间括号中间: <b>要加粗的字体</b>    字体加粗 <i>要倾斜的字体</i&g