Java匹马行天下之教你用学汉语式方法学编程语言
前言:
前段时间接连更新了带小白从入门到了解的几篇博客:
- 《Java匹马行天下之编程常识知多少》
- 《Java匹马行天下之走进编程的殿堂》
- 《Java匹马行天下之高级语言大锅烩Java匹马行天下之高级语言大锅烩》
- 《Java匹马行天下之C国程序员的秃头原因》
- 《Java匹马行天下之Java国出了个Java》
- 《Java匹马行天下之Java帝国的崛起》
我试着从不同的角度带新手理解编程,希望能帮助一些真正需要的朋友进行学习,后面的三篇故事新手朋友就当真正看故事了,等你学了后面的知识,你就能理解了,现在留个简单印象就可以了。一个月前我的《Java匹马行天下》其实已经更新到Spring框架了,但是我没有继续更新下去,因为又有一届大一新生步入了软件这个大家庭,作为“学长”,为了弥补自己内心的一丝遗憾,我毅然停下来我前进的脚步,决定再回过头去重新带他们走一遍,跟我一起行天下。或许我写的不都是对的,但我保证每一篇都是用我自己的理解认真去写的,是真的站到了作为小白的立场去写的,我也不知道我这样做的意义何在,或许是感恩,也或许是善良,也或许是自作多情,不管是什么吧,都不重要,重要的是我已经做了,那就坚持并做好,别的都让时间去解释吧。我最近注册了公众号,为了方便大家查看,我把文章发布到公众号上了,博客中因为还有别的文章,所以顺序有点乱,建议关注我的公众号,我做了系统的整理,方便你按顺序查看,公众号二维码在文章末尾有,自行关注。
用学汉语式方法学编程
看过上面六篇博客的朋友现在应该已经知道要跟电脑沟通交流就要学那些编程语言,现在我们要思考的问题是如何学编程语言。如何学?说句废话,“该咋学咋学呗”,认真点,你想想你小时候学汉语是怎么学的,是不是先学的“声母韵母”、“一声平二声扬三声拐弯四声降”、“嘴巴张大啊啊啊”,还有那些汉字的笔顺笔画,这些是学习汉语最基本的规则吧,等你学完了这些,你是不是才能组词、造句,然后你就能看懂别人写的优美的句子,写作的时候能引用别人的句子,直到你能自己写出更加优美的句子,再往后,你就能为所欲为了,思想有多远,世界舞台就有多大,天高任你飞。是不是勾起你的回忆了,嗯,看看下面的图片,感叹一声童年真好,再加一句时间真快,继续我们的编程语言吧。
其实编程语言的学习过程和学汉语差不多,首先就是要学习编程语言中最基本的“规则”,等学完这些规则,你才能做一些别的事,至于要做什么那是后面的事,此篇我就只教你编程语言里的“规则”,既然我的题目是Java匹马行天下,我就以Java这门编程语言为例了,此后的所有内容都是用Java。
Java的规则
首先我用最简单的例子普及一下这些规则,平时上学我们都离不开数学,学数学有时候真的很头疼,现在我学高数可痛苦,那现在我们看看计算机是如何“学数学”的。
常量
第一种:
1+1=2 简单吧,这都不用算,但是你发现了没,加号两边的数1是固定的,1就是1,不能再改变了,这在编程语言中把1称为“常量”。
那你知道了,规则一就是让你识别什么是常量?
常量:指在程序运行过程中其值不能改变的量。这是常量的官方定义,不难理解吧。
变量
第二种:
X+Y=Z
看到这个你是不是想到了你学过的方程式了,没错,这就是方程式,你看,加号两边的X和Y你可以给它们赋任意值,是可以变化的,Z随着X、Y的改变而改变,在数学中我们把X、Y、Z叫未知数,但在编程语言中它们有个名字叫“变量”。
规则二:识别什么是变量?
变量:用于存储可变数据的容器。
变量的特点:
必须要有大小 存储一定格式的可变数据 必须要有名字
数据类型
好,明白了常量和变量,再看,上面的变量X和Y给它们赋值,我们可以赋整数,也可以赋小数,这个整数和小数在编程语言中称为”数据类型“,整数和小数只是数据类型中的两种。
规则三:数据类型有哪些?
数据类型分为两种:
一种是内置数据类型,另一种是引用数据类型。
目前我们先了解内置数据类型,引用数据类型在后面会提到。
内置数据类型有八种:
- 整数型:byte short int long
- 浮点型:float double
- 字符型:char
- 布尔型:boolean
这个数据类型要怎样理解呢?其实也简单,你把整数型、浮点型、字符型、布尔型分别看成是四个容器,生活中牛奶瓶中装的是牛奶,饮料瓶中装的是饮料,同样的道理,整数型这个容器中装的是整数,浮点型容器中装的是小数,字符型容器中装的是字符,布尔型容器是个特例,它里面就装了两个东西,true和false*.
我们往牛奶瓶中倒牛奶的时候,如果牛奶很多,小牛奶瓶装不了,我们是不是要换一个大点的瓶子来装牛奶,假如本来准备的是500ML的牛奶瓶,装不了,又换了个1000ML的牛奶瓶。同理,整数型容器中装的是整数,整数都有大小,byte、short、int、long就相当于容器的容量,byte最小,依次增大,这样你就要注意了,以后在往整数型这个容器中“装整数”的时候,要看所选整数的大小,特别小的数放多大的容量里都可以,但最好是物尽其用,别浪费空间,大点的数就要根据实际情况具体分析了,要做到不浪费空间,也要“装得下,不遗漏”。
浮点型容器中装的是小数,float和double也可以看成是容器的容量,float叫单精度,double叫双精度,理解同上。
两者的主要区别如下: 1.在内存中占有的字节数不同
单精度浮点数在机内存占4个字节 双精度浮点数在机内存占8个字节
2.有效数字位数不同
单精度浮点数有效数字8位 双精度浮点数有效数字16位
3.数值取值范围
单精度浮点数的表示范围:-3.40E+38~3.40E+38 双精度浮点数的表示范围:-1.79E+308~-1.79E+308
4.在程序中处理速度不同 一般来说,CPU处理单精度浮点数的速度比处理双精度浮点数快 如果不声明,默认小数为double类型,所以如果要用float的话,必须进行强转
例如:float a=1.3; 会编译报错,正确的写法 float a = (float)1.3;或者float a = 1.3f;(f或F都可以不区分大小写)
注意:float是8位有效数字,第7位数字将会四舍五入
数据类型转换
在上面我提到了一个词叫强转,我来解释一下:
自动类型转换
假如现在你分别有一个500ML和1000ML的牛奶瓶,然后你需要装300ML牛奶,你先用500ML的牛奶瓶装了那300ML牛奶,然后你又把装在500ML牛奶瓶中的牛奶装到了1000ML的牛奶瓶中,这个过程在编程语言中叫自动类型转换(也叫隐式类型转换),根据这个例子也可以解释为把一个数赋值给更大数值范围的变量,例如可以将byte类型的整数赋值给short类型的整数,可以将short类型的整数赋值给int类型的整数,可以将int类型的整数赋值给long类型的整数。
强制类型转换
好,现在再想,依旧有两个分别是500ML和1000ML的牛奶瓶,然后你需要装800ML牛奶,你先用1000ML的牛奶瓶装了那800ML牛奶,然后你现在想把装在1000ML牛奶瓶中的牛奶倒进500ML的牛奶瓶中,想想会怎样,如果你强行倒入,是不是会溢出牛奶啊,这个过程在编程语言中叫强制类型转换(也叫显式类型转换)。
对应到编程语言中,可以把byte 理解为1两的碗,short 2两的碗,int 4两的碗,long 8两的碗。1两碗的满碗酒可以倒入 2两 4两 8两的碗中。但是 4两碗的酒倒入1两碗的酒就有一些问题。
运算符
上面介绍的都是编程语言中对数的理解,了解了这些之后终究离不开运算,运算离不开加减乘除,编程语言中把数学中的(+、-、*、/)叫运算符。
OK,学完上面这些其实我们可以让计算机进行一些运算了,不过还没那么简单,你要让计算机运算,你怎么告诉计算机你需要让它运算什么啊?难道就跟平时说话一样问它1+1等于几?哈哈,开玩笑的,别忘了计算机是死的,不会思考,就拿那个方程式来说吧,你给变量X赋一个数值,你得告诉它这个数值是什么数据类型,计算机才能知道,才能进行相应的计算。这个过程在编程语言中叫变量的声明和赋值。
例:int X =10;
好,下面我们让计算机做一道加法题吧,我们在现实生活中写作业是在笔记本上写的吧,那在电脑上写作业,你也得找个"笔记本",在编程语言中这个“笔记本”叫编译器,然后你看你的笔记本上有画的像四线三格那样的各种线,老师让你把作业写到线里面,不要乱写,在编程中也一样,电脑老师让你把作业写到笔记本的“四线三格”中(暂且这样理解吧,等你学到后面之后就会有自己的理解了,目前就先按我说的这样理解),下面我就开始在编译器上写加法题了:
public class AddDemo {
public static void main(String[] args) {
int X=10;
int Y=20;
System.out.println("X+Y的和为:"+(X+Y));
}
}
我用的这个编译器叫IDEA,也就是我写作业的笔记本,下面图片中的这个就相当于笔记本上的四线三格,你要把你的作业写到这里面电脑才会看,你必须按老师说的做
下面这个已经不陌生了吧,这个就是上面讲到的声明变量和给变量赋值。
其实现在你看不懂的应该是下面这句
System.out.println()这是一个函数,函数我到后面会讲到,暂时做个了解,你现在只需要知道,这个就跟生活中你跟老外说声Hello,他就知道你在跟他问好一样,你给电脑输入System.out.println(),电脑就知道你要在屏幕上输出东西,你只需要把你想要输出到电脑屏幕上的东西写道System.out.println()函数里面即可,你看,我在函数里面写的是System.out.println("X+Y的和为:"+(X+Y));电脑就会给我在屏幕上输出X+Y的值,至于里面为什么要那样写,后面我也会说,这就是编程语言里面的一些规则,你只有会这些规则,你才能跟计算机进行沟通交流,让计算机做你想做的事。