Java漫谈4

之前的一篇文章,我们用段誉比武的方式类比了构件类的方式,其中把段誉和慕容复共有的出招这个动作写成了一个功能方法。所谓出招,换个角度来看,就是将人身体中的能量,比如肌肉的能量,来自于内功真气的能量,通过一些步骤集中在一点提供出去,而最终的结果评判就是比的双方在接触点上的力的大小。而这些身体中的能量是最基本的,其它的一系列的活动都是由它在时间和空间上的排列组合而构成的。而它们也是有类型的,比如肌肉能量,内功真气等。

同样的,上述例子中的能量在Java中就对应了Java的数据类型,这些基本的数据类型就构成了Java的Bean,方法,函数等。这里提到的Bean,就相当于是一个精细化定制型的模版,并且这个模版还要接受一定的写作规范,具体的当以后聊到JavaBean与类的时候还会再次详细的说一下它。

说回到Java的数据类型,Java中有8大数据类型,在我看来就像是8大金刚一样,它们分别是:

boolean金刚:主判断,法宝为if尺,常用招数——if判断。

byte金刚:金刚界元老,可以与天庭直接交流,是其它金刚的叔父。这里多说一句,多了解一点儿计算机方面知识就会知道,在计算机里,所有代码的最终形态是传说中的机器码,也就是0和1,通常用bit-位来表示。理论上说,从写完HW代码,到出现“Hello world”结果,中间要经过词法分析、语法分析、语义分析、机器码生成、操作系统硬件执行结果。在不同的平台上执行的时候就需要在这些平台上不断地重复这个步骤,因为机器码会根据每台电脑(或者说是机器)的配置不同有略微的差别,那如果出现一种编码,它能在所有机器上都执行,那不就能将之前的5步直接降低至2步么,即编译成目标代码,运行目标代码,而这里所说的目标代码就是编译成byte类型的.class文件。在每一台要运行java的机器上都装了虚拟机,虚拟机会根据每台机器做对字节码文件做快速处理,完成字节码到机器码的快速转换。而这样一来似乎就能达到这样的效果,首先,我可以在任意的机器上将代码编译成.class文件,从而将词法、语法、语义分析做预处理,也就是将这三布提前完成。其次,任意的机器上,我都可以用虚拟机对.class进行执行。这样一个过程中,.class文件就是字节码文件,也就是byte类型。由此就可见byte类型的重要性,不过这种重要更多地体现在底层,对于刚入门的人来说,可能会在相当长的一段时间内都不会重点关注这个数据类型,我也是学到IO流的上传下载那一块才重点关注过一次,之后发现了比较不错的上传下载代码,也就保留了对它的印象而已。最近又重新开始关注是因为使用Hadoop、HBase的API时,需要以byte的形式传递参数。

short金刚:主短整型,外号小组长,有16只手臂,管理 10^(−15) 到 (10^16−1)的数,也就是-32768 到 32768。

int金刚:主整形,外号班长,会比较常用,有32只手臂,管理10^(-31) 到 (10^31−1)的数,也就是-2147483648 到 2147483648。

long金刚:主长整型,外号大队长。不出手则以,出手则泣鬼神。有64只手臂,管理10^(−63) 到 (10^63−1)的数。

char金刚:主字符型。字词句段篇,这句话形象地说明了篇章是由段落构成的,段落是由句子构成的,句子是由词组构成的,词组是由字构成的,但字又是由什么构成的呢?如果你比较敏感地话,你可能会告诉我,就把字作为最小单位就可以啦,这样就可以结束这个循环了。不过这样一来,又如何表示“Hello World”呢。如果把字当做是最小的单位的话,那么单独的H这个字符又该如何表示呢?所以计算机中就将字符char作为了最小的单位。在此,一个有意思的点又出现了——在开发中,char的使用不如String多,甚至与在入门之前的一段时间里,我一直是将String当成是与char一样的基本的数据类型。后来入门后才渐渐缓过来,才知道String是类,是由char构成的字符类。关于String和char,以后还会聊到,这里有个印象即可。

float金刚:主浮点型,简单说就是小数型,一般称为单精度浮点数。

double金刚:主浮点型,一般称为双精度浮点数。

对于float与double的描述略微单薄,主要是因为我自己并没有理解两个概念,一个是“浮点型”,另一个是“单精度与双精度”。维基百科上明确说了浮点数不是小数,但在日常编程脏哦功能我就是把它当做小数处理的。只是记住了float与double都可以用来表示小数,一般情况下float就已经够用了,遇到了数位不够的时候,就用double。

这一次,我们聊了Java中的八大数据类型,并且借用了8大金刚的概念来阐述它。希望这能让你对java的数据类型有个印象,咱们下回见。

原文发布于微信公众号 - 怀英的自我修炼(hydzwxl)

原文发表时间:2017-09-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Golang语言社区

GO语言 TCP传输实例

package main import ( "net" "fmt" ) var ( maxRead = 1100 msgStop = []byt...

3406
来自专栏xingoo, 一个梦想做发明家的程序员

【插件开发】—— 6 SWT 复杂控件使用以及布局

前文回顾: 1 插件学习篇 2 简单的建立插件工程以及模型文件分析 3 利用扩展点,开发透视图 4 SWT编程须知 5 SWT简单控件的使用与布局搭...

2349
来自专栏王磊的博客

Net连接mysql的公共Helper类MySqlHelper.cs带MySql.Data.dll下载

MySqlHelper.cs代码如下: using System; using System.Collections.Generic; using System...

4479
来自专栏互联网开发者交流社区

STC-单片机控制系统

1113
来自专栏hbbliyong

socket 通信 多线程调用窗体(委托)的几个知识点,记录在案,以备查阅

1.socket 通信传输汉字的方法:Encoding.GetEncoding("GB2312").GetString(Receivebyte) 发送接收都这样...

2737
来自专栏跟着阿笨一起玩NET

使用延迟的FileSystemWatcher来避免重复触发事件

  程序里需要监视某个目录下的文件变化情况: 一旦目录中出现新文件或者旧的文件被覆盖,程序需要读取文件内容并进行处理;但在实际处理中发现当一个文件产生变化时,C...

912
来自专栏c#开发者

xmldocument内嵌入另一个xmldocument,xmlnode的方法

string xmlstr1 = @"<root><head>myHead</head><body></body></root>"; s...

2725
来自专栏菩提树下的杨过

Silverlight:利用异步加载Xap实现自定义loading效果

关键点: 1.利用WebClient的DownloadProgressChanged事件更新下载进度 2.下载完成后,分析Xap包的程序集Assembly信息 ...

18610
来自专栏张善友的专栏

通过SmtpClient发送Exchange会议邮件

看到C#中调用Outlook API 发起会议 ,这个完全可以用SMTP方式实现的,下面我的项目中使用的代码: 对于.NET而言,从2.0开始,发邮件已经是一件...

1949
来自专栏我和未来有约会

Silverlight制作逐帧动画 v2 - part2

Silverlight制作逐帧动画 v2 - part2 在这里完善了一下算法,加入了fps的机制进去。 private string[] ...

1896

扫码关注云+社区