闲聊Java编程入门四:常用类型

欢迎访问我的博客,同步更新: 枫山别院

基于Java 8

类型是什么,从哪里来的

从这节开始,我们就正式进入编程语言的学习了。

我先提个问题考一下大家:

1 + 1 = ?

这个非常简单,在计算正确的情况下,不出意外应该是等于2.幼儿园的小朋友在没看过那个小品的情况下,基本都能算对。

那么,请问:

A + B = ?

也许是AB?或者BA?或者123吗?

可以说,没有人知道等于什么。英文字母不能做加法计算,所以没有结果,这是常识。

人类世界的常识在计算机世界也是有效的。人类都不知道等于什么,计算机这个榆木脑袋更不可能知道了。

不同的东西运算规则不一样,为了区分什么样的内容能做运算,我们就有了类型这个概念。

123321,这种,我们叫做数字的,可以做加减乘除等各种数学运算。

A,B,C,这种的,是字母,不能做加减乘除等数学运算。

我们人类的数字,在计算机中,叫做整数类型,简称整型。

小数类型对于计算机来说,比123这种整型要复杂一点,所以它有个单独的类型,叫做浮点类型。在有的编程语言中也不区分,整数和小数是同一种类型,但是Java是一种严谨的语言,它是区分的。

浮点这个名字很奇怪,词不达意。这是因为外国人先发明了计算机,他们有了优先命名权,这些奇怪的词语都是直接从英文翻译过来的,我们觉得不能理解很正常的,只要知道它表示小数就可以了,不用深究,这种词语还有很多。

那么字母这些,也有一个类型,叫做字符类型。这个好理解吧?

现在我们有了理论支持,我们就知道了,什么能计算,什么不能计算。
我们给计算机定义好了这些规则,计算机就可以按照规则,计算我们给出的算式。

实践一下整型计算

我们在网页中打开运行代码的网站,我们以后以w3cschool这个网站为例。

打开之后,可以在黑框中看到如下代码:

public class Main {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

有很多内容,我们目前还没有学习,没有关系,学习的初级阶段就是照猫画虎。

其实我们关注的重点就是这一句代码而已:

System.out.println("Hello, World!");

这句代码的意思就是,把Hello, World!显示在屏幕上。

那么我现在想让计算机帮我计算一下1+1这个难题。应该如何写呢?
其他的地方不要动,我们修改下括号里面的内容,照猫画虎如下:

System.out.println(1 + 1);

请大家注意:必须一个字不差的跟上面一样,因为计算机是个榆木脑袋,任何一次字母或者符号错了,它就不认识了。

1 + 1 这个算式,为了美观,我在+号的两边添加了空格,当然你也可以这么写 1+1

写完之后,点击运行代码,看看结果是什么。

结果是2,如果你跟我一样,那么你的第一个程序就运行成功了,恭喜。

你可以改成其他的试试,比如123 + 321 或者 321 - 100
看看计算结果对不对。

字符类型

在上面我们已经试过整型的计算了。

那么,字符如何操作呢?

我们讨论过了,字符是跟数字不一样的类型,计算机这个榆木脑袋,是区分不出来A 和 1的明显差别的,如果你直接写一个A给计算机,它会报告一个错误给你,不认识A这个符号。。。。。。

唔。。。。。。这是个问题,假如你是当年发明计算机的科学家,你如何解决呢?

最好是跟数字的书写方法不一样,计算机就能认识了。

于是,他们发明了字符的书写方法。很简单,用单引号来包裹住字符就可以了。

像这样:

'A'

这么写,计算机就能认识了,哦。。用单引号来裹住的,是个字符。

实践一下字符类型

同样的,我们在网页中修改代码,照猫画虎如下:

System.out.println('A');

然后运行一下代码看看,如果你看到显示了A,那么就是成功了。计算机认识我们输入的A,并且给我们显示了出来。

如果你的没有成功显示A,那么检查一下是否跟上面一样。

初学者常犯的错误就是,忘记了区分中文和英文的逗号引号分号。因为计算机是外国人发明的,所以他们都是用的英文的符号,不是中文的。

逗号和引号在中文输入法和英文输入法中,是不一样的。

我在上面用的单引号是',而不是中文的单引号,这两个符号是有细微区别的,中文的有一点倾斜。

英文的逗号是, 中文的逗号是这两个比较难区分,中文的要精致一些,英文的就是个小撇。

英文的分号是;,中文的分号是,也不太一样,中文的要小一些。

所以在写代码的时候,我们都是直接切换到英文输入法。

目前在没有在专用的编辑器中写代码,只能靠大家自己的眼力了,后面我们会使用专业的编辑器,它们可以提示我们符号写错了。

如果你实在分不清单引号,那也没有关系,字符类型其实我们平时用的很少。但是逗号和分号是用的很多的。

多个字符

单个字符的我们已经学会了,单引号表示。我现在不想用字符了,我要写单词,我要写个Love

应该怎么表示?

'Love'这样写吗?

这种写法在有些编程语言中是可以的,但是!Java是个严谨的编程语言,单个字符跟多个字符还是有差别的嘛。

那么,多个字符就用双引号好了,顺理成章吧?

多个字符组成一个串,名字就叫字符串好了。我们就有了字符串类型,用来表示多个字符。

像这样:

"Love"

同样的道理,我想显示一句话:I Love You !

就这样:


"I Love You !"

我们已经跟计算机约定好,双引号包裹住的内容,是文字内容,我们可以写一句话,或者一封表白信。

但是也有个问题,左右两个双引号只能在同一行,计算机才能认为两个双引号是一对的,真是有点榆木脑袋。

像这样是不行的:

"I Love 
You !"

这样就是左右两个双引号不在同一行中,计算机会不认识。

实践一下字符串类型

像这样照猫画虎改一下:

System.out.println("I Love You !");

运行一下,是不是显示出来了呢?

如果没有,再检查一下是否一样,有没有忘了使用英文的引号。

显示中文也是可以的

System.out.println("我爱你!");

我们似乎还忘了一种简单的计算

小学课程里,除了加减乘除,好像还有大于和小于的比较。
如果我在代码里输入如下的代码,会显示什么呢?

System.out.println(3 > 2);

3 > 2,说了一句大实话。请执行一下看看。

我的计算机告诉我,结果是true。如果你跟我一样,那么我们就发现了一个新大陆。

那么如果是这样呢?

System.out.println(3 < 2);

这时候计算机告诉我,结果是false

我们知道,在英文中,true的意思是符合事实的,真实的,真的。 false的意思是假的,错误的。

那么,我们在计算3 > 2的时候,计算机其实是想告诉我们,这是真的,正确的。3 < 2的时候,告诉我们,这是错误的,假的。

看来,计算机还能做一些比较大小的计算,可以告诉我们结果是不是正确的。如果是正确的,就告诉我们true,错误的就告诉我们false

那么,我们推断,肯定计算机是认识truefalse两个词的。

是的,这两个词也是对应一个类型的,叫做布尔类型,英文是boolean。这个类型仅有这两个值,对计算机来说,不是对的,就是错的,它是榆木脑袋,理解不了其他的。又是一个奇怪的名字,不要深究,因为我干了这么多年,到现在也不知道为什么,只知道是英文翻译来的。

实验

之前我们在上面说,A和B是不能相加的,除非我们约定一种计算规则。
请自己尝试一下,我们是否跟计算机有关于字符相加的约定规则,计算结果是什么呢?

System.out.println('A' + 'B');

如果是小写的a和b呢?

System.out.println('a' + 'b');

再如果是字符串呢?能相加吗?

试一试看:

System.out.println("hello" + "Java");

如果是减法呢?

System.out.println('A' - 'B');

如果我们比较两个字母的大小呢?

System.out.println('A' > 'B');

请大家尝试一下。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容