Java疯狂讲义

3.2标识符和关键字

3.2.1 分隔符

  • 分号:实现对语句的分隔,每个Java语句都会使用分号作为语句的间隔,因此每个Java语句必须使用分号作为结尾,Java程序允许一行书写多个语句,也可以一个语句跨多行。
  • 花括号:定义一个代码块,代码块在逻辑上是一个整体,对Java语言而言,类定义部分必须放在一个代码块里,方法部分也必须放在一个代码块里,除此之外,条件语句的条件执行体和循环语句中的循环体也必须放在花括号里。
  • 方括号:访问数组元素,方括号通常紧跟数组变量名,而方括号里指定希望访问的数组元素的索引。
  • 圆括号:定义方法时必须使用圆括号来包含所有的形参声明,调用方法时也必须使用圆括号来传入实参值,不仅如此,圆括号还可以将表达式中某个部分扩成一个整体,保证这部分优先计算,除此之外,圆括号还可以作为强制类型转换的运算符。
  • 空格:作为分隔一条语句的不同部分
  • 圆点:通常作为类/对象和它的成员(包括成员变量、方法和内部类)之间的分隔符,表明调用某个类或者某个实例的指定成员。

3.2.2 Java9的标识符规则

标识符就是给程序中变量、类、方法命名的符号。Java语言的标识符必须以字母、下划线和美元符开头,后面还可以跟任意数目的字母、数字、下划线和美元符。

Java9规定:不允许使用单独的下划线作为标识符,即下划线必须和其他字符组合在一起才能作为标识符。

  • 标识符可以由字母、数字、下划线和美元符组成,其中数字不能打头。
  • 标识符不能是Java关键字和保留字,但可以包含关键字和保留字
  • 不能包含空格
  • 只能包含美元符,不能包含@、#等其他特殊字符

3.2.3 Java关键字

  • Java所有的关键字都是小写的
  • Java一共包含50个关键字

3.3 数据类型分类

Java语言是强类型语言,强类型包含两方面的含义:

  • 所有变量必须先声明,再使用
  • 指定类型的变量只能接受类型与之匹配的值

类型限制一个变量能被赋的值,限制了一个表达式可以产生的值,限制了在这个值上的可以进行的操作,并确定了这些操作的含义。

程序对变量赋值,实际上就是把数据装入该变量所代表内存区的过程,程序读取变量的值,实际上就是从该变量所代表的内存区取值的过程。

定义变量时,既可以指定初始值,也可以不指定初始值,随着变量的作用范围的不同,变量还可以使用其他修饰符。但是不管是哪种类型,必须指明变量类型和变量名。

Java语言支持的类型分为两类:基本类型和引用类型

  • 基本类型:boolean类型和数值类型(整数类型和浮点类型)
  • 引用类型(对一个对象的引用,对象包括实例和数组两种):类、数组和接口类型,null类型没有名称,所以不可能声明一个null类型的变量或者转换到null类型,空引用是null类型变量唯一的值,空引用可以转换为任何引用类型。

3.4 基本数据类型

  • boolean类型
  • 数值类型


3.4.1 整型

  • byte:字节
  • short:两个字节
  • int:整型
  • long:长整型

Java中整数值有4种表达方式:十进制、二进制、八进制和十六进制。

当定义32位的二进制整数时,最高位其实是符号位,当符号位为1时,表明它是一个负数,负数在计算机里是以补码的形式存在的,因此还需要换算为原码。

所有数字在计算机底层都是以二进制的形式存在的,原码是直接将一个数值换算为二进制数,但计算机以补码的形式存储所有的整数。补码的计算规则:整数的补码和原码完全相同,负数的补码是其反码+1, 反码是对原码按位取反,只有最高位(符号位)保持不变。

3.4.2 字符型

字符型通常用于表示单个的字符,字符值必须使用单引号括起来。

对于保存电影、音乐等,首先将其转换为二进制码才能保存,但对于字符型的保存,只需要将其编号保存为二进制码然后保存。

字符型值有如下三种表示形式:

  • 直接指定字符型值
  • 转义
  • Unicode值表示字符型值

char类型的变量、值完全可以参与加减乘除等数学运算,也可以比较大小,实际上都是用该字符对应的编码进行运算。

Java没有提供字符串的基本数据类型,而是通过String类来表示字符串,由于字符串由多个字符组成,因此字符串要用双引号括起来。

注意:
char类型使用单引号括起来,而字符串应该使用双引号括起来。

3.4.3 浮点型

  • float:第一位是符号位,接下来8位表示指数,再接下来的23位表示尾数
  • double:第一位是符号位,接下来的11位表示指数,再接下来的52位表示尾数

Java语言的浮点数有两种表现形式:

  • 十进制形式
  • 科学计数法形式

Java还提供了三个特殊的浮点数值:正无穷大、负无穷大和非数,用于表示溢出和出错。POSITIVE_INFINITY, NEGATIVE_INFINITY, NaN

必须指出的是:所有的正无穷大数值都是相等的,所有的负无穷大值都是相等的,而NaN不予任何数值相等,甚至和NaN都不相等。

注意:
只有浮点数除以0才可以得到正无穷大和负无穷大,如果一个整数除以0,则会抛出一个异常。

3.4.4 数值中使用下划线分隔

使用下划线分隔,可以更直观的分辨数值中到底包含多少位。

3.4.5 布尔型

在Java语言中,boolean类型的数值只能是true或false,不能用0或者非0来表示,其他数据基本类型也不能转换为boolean类型。

如果使用一个boolean类型的值和字符串进行连接运算,则boolean类型的值将会自动转换为字符串。

Java语言中使用boolean类型的变量或值控制的流程主要包括:

  • if条件控制语句
  • while循环控制语句
  • do while循环控制语句
  • for循环控制语句

3.5 基本类型的类型转换

Java语言提供了7种数值类型之间都可以相互转换,有两种类型转换方式:自动类型转换和强制类型转换。

3.5.1 自动类型转换

Java所有的数值类型都可以相互转换,如果系统支持把某种基本类型的值直接赋给另一种基本类型的变量,这种方式被称为自动类型转换。当把一个表数范围小的数值或变量直接赋给另一个表数范围大的变量时,系统将可以进行自动类型转换,否则需要强制转换。

  • int类型可以自动转换为float类型
  • byte类型不能自动转换为char类型,但是可以自动转换为double类型

不仅如此,当把任何基本类型的值和字符串值进行连接运算时,基本类型的值将会自动转换为字符串类型,虽然字符串尅性不是基本类型,而是引用类型。因此,如果希望把基本类型的值转换为对应的字符串时,可以把基本类型的值和一个空字符串连接。

3.5.3 表达式类型的自动提升

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

推荐阅读更多精彩内容