JAVA-初步认识-第二章-字符类型的运算
一. 第二章知识点脉络分析
第二章的题目就叫《JAVA语言基础》,先介绍了JAVA语言中,常见的基础知识点名词:关键字,标识符,注释,常量和变量,语句,函数和数组。到目前为止,还没有完全学完。在现有的学习过程中,我们做一个知识点脉络分析。
前三个基础知识点,关键字,标识符和注释,只是介绍了书写的规则。后面的常量和变量是一个重点,而函数和数组压根就没有进行介绍。在常量和变量这个重点知识点中,无论是常量还是变量都是数据,从而我们在定义和使用变量时,会涉及不同类型的数据,这就需要我们对数据的类型进行仔细地分析。数据类型的分析又集中在基本数据类型和变量的运算上。先了解数据的类型,给变量的定义提供依据,接着对不同类型的变量进行运算。→学到现在,突然发现,视频是在一点点地介绍源程序中每一部分的到底是什么,关键字,标识符,文档,类型,变量。
在标识符的书写中,貌似在不同的地方书写的要求不一样。类名的书写如果是多个单词,每个词首的字母必须是大写。如果是书写的函数名,多个单词只是在第二个词首标注大写。
前一小节我们讨论的主要是数值型变量间的运算,现在我们讨论基本数据类型中剩下类型的运算。
二. 字符型运算
这里说的是两类,字符型和布尔型,ch型和boolean型。而且听这意思,也都是将这里两种类型和数值型进行运算。对于boolean类型而言,无法同数值型进行运算。
这里讲解时,出现了一些无法理解的知识点,如下:
这里说,输出语句中的a既不是常量也不是变量,那么常量的组成是什么?就目前的理解来看,常量就是指数字。而且学到现在,我们已经知道各种数据类型,这里a如果直接在输出语句中输出,除非之前已经定义过,否则这里应该用''来代表字符型。只有常量或者定义过的变量才可以直接输出。
这里谈论的字符型和数值型的运算,背后设计一个知识点,就是字符型在底层其实也是二进制编码,也可以充当数值。
上图显示,'a'+1的输出结果是一个数值98,这就很说明问题,背后涉及的是编码的知识点。字符型占据内存空间两个字节,1是int型,占据四个字节。在运算时,会存在一个自动类型提升。浮点型是四个和八个字节。只要是数值型变量参与的运算,必然有自动类型提升和强制类型转换在里面,因为数值型的种类也分好几种,每一种也不一样。
原理的讲解:计算机只认识二进制,最初的时候,我们将二进制编码和数值挂上关系,这样一来计算机就可以识别生活中的数字了,当前是通过二进制编码过后的生活中的数字。思维发散一下,就是想办法让计算机识别生活中的文字,具体的操作就是利用二进制编码来代表字母,符号等。由于数字,字母等都是和二进制编码挂钩,自然计算机就可以将两者进行运算。(按道理说,boolean型也是二进制编码组成的,为什么不能和数值型进行计算?→唯一的解释就是这个编码表当初就没有将true和false编进去,或者说不在一个编码体系里面?至少美国的ASC码中数字和字母是在一张表中的。)
语句System.out.println('a'+1); 输出的是97,如果要输出字母,就必须强制类型转换一下,System.out.println((char)('a'+1)); 这样输出就是b。
这里需要记忆,‘A’,‘a’,和0背后的编码值,分别是65,97,48。
总结:前一节笼统地阐述变量在运算的过程中涉及的两个概念,自动类型提升和强制类型转换。以及数值型变量之间进行的运算,本节将数值型和字符型结合在一起。对于浮点型和整数型之间的计算认识还不清楚。