这是一篇Java入门的文章,有经验的开发者可以直接路过就好
简介
这里想用一个不同视角来学习编程。这个视角就是设计一门编程语言。
这里我们从简单到复杂一步步设计一个语言,从这个过程中去理解Java的方方面面。
如果大家能从设计的思路去入手去理解Java,那么在做开发时候一定得心应手的。
在学习的过程中更是能知其然,知其所以然。这个过程会让你真的懂得自己学习的是什么,学到又是什么。下面我开始一步一步带大家一起探索Java。
基本数据类型int
大家不要被int这几个字母迷惑了,其实他的全称是integer翻译一下就是整数的意思,后来为了编写方便简化为int,现在大多数语言都是用int。这里就跟数学里面的整数对应起来了,只有一点点区别。就是取值范围不同。因为计算机需要存储一个数字,需要设计一个存储区用来放这个数字。那么这个区域用多大适合呢?其实这个地方设计的时候是考虑计算机内部实现设计的,比如你的电脑现在一般是32位和64位。而Java设计之初也是32位系统刚刚发展的阶段,所以设计的时候就要根据具体需求考虑如果用32是不是合适,那时候16位系统还是很多的,可是有个问题就是16位二进制数很多时候不够用,而且一个语言一定是面向未来的,那么选择32位就刚刚好,为什么不选择64位呢,这个就更好理解了,一个是浪费空间,其实大多时候用不上,第二在32位机器上做64位运算,性能差很多倍,所以int的存储范围就定在了32位,根据这个还有计算机实际的存储方式,Java的int类型定位了32位取值范围也是根据这个计算的。了解了这个后面的基本数据类型就好办了。
基本数据类型int
基本数据类型long
long又是什么鬼.只看单词以为就是长的意思,不好理解
其实long原来是 long integer的意思,翻译就是长整型,就是长的整型,整型是32位,长整型用64表示。
看他的由来也大概知道因为int表达的范围不大,所以对于特殊计算使用表示范围更大的long来表示,可以使用更大的范围数字。
基本数据类型short
short又是什么呢
其实short的表示是 short integer的意思,翻译就是短整型,就是短的整型,整型是32位,短整型用16位表示。
为什么用int还要short呢。这个是因为有些特殊情况下,存储空间有限,为了能节省一部分空间,可以使用短一些的整形来表示。
由于时代发展,现在电脑内存都比较大,所以很少考虑用short去节省内存的问题了。至少我是很少用,估计嵌入式那些小内存程序会用的多吧。
基本数据类型float&double
float怎么理解
之前写了几个变量都是整数,那么小数自然也有一个表示,java里用的是float表示小数,float这个翻译成因为中文就是。。。就是。。。 浮动的!
我们叫浮点数,浮点数代表的是实数就是包含整数和小数。这个名字来源是10的科学计数法,小数点可以浮动的意思。
具体内容可以百度下,还是比较抽象了,其实只要懂了float就是代表实数也就够了,可以带小数点。
double有是什么呢
double有点类似之前的long 和int 的关系。double 是 double float的简称 翻译就是双精度浮点数。
由于计算机的特性,其实计算机是很难精确表达小数的,所以float一般会是一个近似值。double就是让精确度更高一点的实数。
计算机 float 用32位保存 double呢为了更高的精度就需要更多的位数来牺牲空间,使用64位保存一个实数。
基本数据类型boolean
boolean这个名称是为了纪念英国数学家GeorgeBoole。
boolean代表真和假,用于逻辑判断,就是我们数学里学的真假。真的时候值为true;假的时候为false;这两个值因为就可以直接理解为真假。
这个东西特别常用,所以被定义为基本类型,比如你写个游戏判断游戏是不是胜利了,如果胜利了就显示胜利页面。
这些东西在开发中用的就特别多,而且boolean特别节省空间因为只有2个值所以只用1位就可以表示。其实C语言什么的也有用0,1表示的。其实都一样,只是用true;和false;更直观
基本数据类型char
char类型
char是因为character的缩写,character因为代表字母的意思。本意就是用来引入一个字母。
字母一般是a-z 26 个,因为标点符号也要有个显示规则,就都加入到字符里面了。这就是我们现在的说的char。美国一般不会使用中文的,所以字符过去不考虑中文,但是我们使用就会用,所以java把中文也加入了char里面,就是我们现在看到的char了
之前说了这么多类型其实都是数值型的,一般用于计算,随着技术的发展,计算机就很需要文字了,char就是为了解决程序里的问题的。
这里忽略各种编码。char就是用来表示一个字符,'a','b','c'也可以表示中文,'中','国'.
char类型的值一般写在单引号里面,char用16位表示一个值。每个值都是一个字符,标点符号也在char内表示。
char类似其实用的不多,我们一般情况使用的都是字符串,char代表一个字符而已。
基本数据类型byte
上面说了这么7个类型,其实基本数据类型还有一个byte。这个要单独拿出来说。
类型byte可以理解为一个更小的整型,比short还小。用8位表示。
那为什么要把byte单独拿出来说呢。因为一般我们用byte来定义一个存储单位。
这里用一个简单的字符编码的设计铺开来说。
什么是字符编码
字符编码,其实就是一个约定,计算机存储数据其实只有0和1,像abcdefg对计算机来说他本身是不认识的,他只认识0和1,那么如果我想把字母存储到计算机要怎么做呢。字符编码就是做这个事的,比如我固定用8位二进制数代表一个字符。八位二进制数可以表示0~256。我可以编码规定0代表a,1代表b,2代表c,26代表z,然后我可以规定27代表0,28代表1,29代表2.以此类推,我可以用八位二进制数代表各种数字字符和,一些基本的操作符号,这个过程。虽然我们计算机保存的是二进制数,可是我可以根据这个编码去转化位具体的字母数字。
想了解的小伙伴可以看看ASCII编码,这个基本就是一个最简单的编码了。
关于我
我是IsCoding,7年Android从业经验。
QQ群号 121915371
QQ 号 1400100300 (个人QQ 建议加群咨询)