JAVA-初步认识-第二章-字符类型的运算

一. 第二章知识点脉络分析

第二章的题目就叫《JAVA语言基础》,先介绍了JAVA语言中,常见的基础知识点名词:关键字,标识符,注释,常量和变量,函数和数组。到目前为止,还没有完全学完。在现有的学习过程中,我们做一个知识点脉络分析。

前三个基础知识点,关键字,标识符和注释,只是介绍了书写的规则。后面的常量和变量是一个重点,而函数和数组压根就没有进行介绍。在常量和变量这个重点知识点中,无论是常量还是变量都是数据,从而我们在定义和使用变量时,会涉及不同类型的数据,这就需要我们对数据的类型进行仔细地分析。数据类型的分析又集中在基本数据类型和变量的运算上。先了解数据的类型,给变量的定义提供依据,接着对不同类型的变量进行运算。

前一小节我们讨论的主要是数值型变量间的运算,现在我们讨论基本数据类型中剩下类型的运算。

二. 字符型运算

这里说的是两类,字符型和布尔型,ch型和boolean型。而且听这意思,也都是将这里两种类型和数值型进行运算。对于boolean类型而言,无法同数值型进行运算。

这里讲解时,出现了一些无法理解的知识点,如下:

这里说,输出语句中的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。

时间: 2024-12-28 13:50:07

JAVA-初步认识-第二章-字符类型的运算的相关文章

Java图示(第二章 Java语言基础)

Java图示(第二章 Java语言基础) 三个基本部分:一个包声明(package语句).任意数量的引入(import语句).类和接口声明(class和interface语句) 1.包声明—package语句 1)包是类和接口的集合,即类库 2)用类库管理类,方便管理 3)Java类都在类库中 4)只有一条包声明,且为第一条 2.引入语句—import语句 1)import语句在包语句后,所有类或接口前 2)两种形式 (1)import 包名.类名: (2)import 包名*://编译器会识别

Thinking In Java笔记(第二章 一切都是对象)

第二章 一切都是对象 2.1 用引用操纵对象 每种语言都具有操纵内存中元素的方式,必须注意将要处理的是什么数据类型,是直接操纵元素还是基于某种特殊语法间接表示(例如C和C++里的指针)来操纵对象. java中一切都被视为对象,可以用单一固定的语法,但程序员所操纵的标识符实际上只是对象的一个"引用",引用可以独立于对象存在,也可以和实际的对象相关联.例如: String s1; String s2 = new String("hello world"); 上面的s1即

java编程思想 第二章

这篇时间较之前篇章时间靠后,是由于,某一天晚上看完Java编程思想文献之后来不及做笔记了. 以下笔记基本为转载,不是原创 第二章   一切都是对象 目录: 2.1 用引用操纵对象 2.2 必须由你创建所有对象 2.3 永远不需要销毁对象 2.4 创建新的数据类型:类 2.5 方法.参数和返回值 2.6 构建一个Java程序 2.7 你的第一个Java程序 2.8 注释和嵌入式文档 2.9 编码风格 2.1 用引用操纵对象 一切都看作对象,操纵的标识符实际上是对象的一个“引用”,遥控器(引用)操纵

Windows核心编程之核心总结(第二章 字符和字符串处理)(2018.5.27)

学习目标 第二章是学习字符和字符串处理,为了更好理解这一章的内容,我自行添加了其他辅助性内容:存储模式(大端存储和小端存储).字符编码方案(一看就懂).以下是这一章的学习目标:1.大端存储和小端存储2.字符编码方案3.ANSI和Unicode字符.字符串,Windows自定义数据类型(为了兼容ANSI和Unicode)4.Windows的ANSI函数和Unicode函数5.C运行库的ANSI和Unicode函数6.C运行库的安全字符串函数7.C运行库的安全字符串函数(进阶版)8.字符串比较函数9

[Effective Java 读书笔记] 第二章 创建和销毁对象 第一条

第二章  创建和销毁对象 第一条 使用静态工厂方法替代构造器,原因: 静态工厂方法可以有不同的名字,也就是说,构造器只能通过参数的不同来区分不同的目的,静态工厂在名字上就能表达不同的目的 静态工厂方法不用每次调用的时候都创建新的对象(其实是因为它是static的,所以只能用static的,所以是一早就创建了,不需要重复创建吧..),比如书中 Boolean.valueOf(boolean) 1 public static final Boolean TRUE = new Boolean(true

java编程思想--第二章 一切都是对象

如果不做引申的话,本章没有多少可总结的内容.有些以前没有注意的细节可以写下来. 1.数据存储的位置 (1).寄存器.程序控制不了. (2).堆栈.对象的引用.基本类型. (3).堆.各种对象. (4).常量存储.和代码在一起. (5).非RAM存储.主要指流对象和持久化对象,前者准备网络传输,后者被丢到了硬盘上. 2.java中的数组会被自动初始化: (1).基本类型数组元素会被初始化为0 (2).引用类型数组元素会被初始化为null 3.变量作用域 (1).基本类型的跟C一样 (2).引用类型

Java基本的程序结构设计 字符类型

字符型 从概念上讲,java的字符型就是unicode字符序列. 不可变: 一旦定义了一个字符串,就没有方法修改它.java没有提供修改字符串的方法,对于C程序来说,字符串相当于是个数组,你可以改变任何一个下标的值.但是Java不可以. 如果要对java字符串修改下标,只能新建一个字符串,然后通过substring和拼接来实现,这样一定程度上效率很低. 但是java设计者认为字符串修改操作很少,对于字符串的操作,大多是比较,和合并等操作.所以java设计者将字符串设置为不可变,然后实现了共享.

java学习笔记第二章

二.面向对象 Oriented Object 以类组织代码,以对象来封装数据 面向过程:以方法(函数)组织数据,以线性的思维去解决:当数据量少,无问题:当数据多了,方法多了,以 方法为核心组织代码,累人:扩展性差,不易维护(当多人协同项目时) C语言结构体,多个变量集合在一块,方便管理:按照这个想法,横向竖向扩散/深入思考,把相近的方法也放在一起,方法反复调用变量, 深度发散,就把方法及变量打包到一块,这种概念在C语言里没有,就起名叫做类 class [ YY] 以类来组织代码,易于维护,易于扩

JAVA-初步认识-第二章-自动类型提升&强制类型转换

一. 深入理解变量 在之前的讲解中,我们谈论的都是定义不同类型的变量时要注意的问题.这一节中,我们将变量投入运算,探索在运算过程中,应该遵守的规则. 在这里对上一节<变量的基本演示>做一个小结,主要有三点.直接书写数字常量时,系统会给常量一个默认的类型,如int和double,当书写的常量赋值给定义好类型的变量时,就会产生错误.还有就是书写的常量和本身默认的类型起冲突.最后一点就是在书写源程序的过程中,一定要采用英文字符. 二. 变量的运算规则 运算的两端都是相同类型才可以,不然无法进行运算.