《Java 标识符、变量、常量、进制、原码、反码、补码》

本文详细介绍了Java中的关键字、标识符、变量、常量等基本概念,同时深入解析了不同进制间的转换方法及计算机中数值的表示方式,包括原码、反码、补码的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

《Java 标识符、变量、常量、进制、原码、反码、补码》

1.    Java常用元素

1.1 什么是关键字

Java的关键字对Java编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名、方法名、类名、包名和参数。Java语言规定关键字不能作为标识符。目前共有50Java关键字,其中,"const""goto"这两个关键字在Java语言中并没有具体含义。Java语言把它们列为关键字,只是因为"const""goto"是其他某些计算机语言的关键字

1.2  50个关键字

1. abstract              表明类或者成员方法具有抽象属性
2. assert               用来进行程序调试
3. boolean               基本数据类型之一,布尔类型
4. break               提前跳出一个块
5. byte                 基本数据类型之一,字节类型
6. case                用在switch语句之中,表示其中的一个分支
7. catch                用在异常处理中,用来捕捉异常
8. char                基本数据类型之一,字符类型
9. class               
10. const               保留关键字,没有具体含义
11. continue                回到一个块的开始处
12.default               默认,例如,用在switch语句中,表明一个默认的分支
13. do                 用在do-while循环结构中
14.double               基本数据类型之一,双精度浮点数类型
15.else                用在条件语句中,表明当条件不成立时的分支
16.enum                枚举
17.extends                表明一个类型是另一个类型的子类型,这里常见的类型有类和接口
18.final                用来说明最终属性,表明一个类不能派生出子类,或者成员方法不能被覆盖,或者成员域的值不能被改变
19.finally               用于处理异常情况,用来声明一个基本肯定会被执行到的语句块
20.float               基本数据类型之一,单精度浮点数类型
21.for                 一种循环结构的引导词
22.goto                保留关键字,没有具体含义
23.if                 条件语句的引导词
24.implements                  表明一个类实现了给定的接口
25.import               表明要访问指定的类或包
26.instanceof                 用来测试一个对象是否是指定类型的实例对象
27.int                 基本数据类型之一,整数类型
28.interface               接口
29.long                基本数据类型之一,长整数类型
30.native               用来声明一个方法是由与计算机相关的语言(如C/C++/FORTRAN语言)实现的
31.new                 用来创建新实例对象
32.package                
33.private              一种访问控制方式:私用模式
34.protected                一种访问控制方式:保护模式
35.public               一种访问控制方式:共用模式
36.return               从成员方法中返回数据
37.short                基本数据类型之一,短整数类型
38.static               表明具有静态属性
39.strictfp              用来声明FP_strict(单精度或双精度浮点数)表达式遵循IEEE 754算术规范
40.super                表明当前对象的父类型的引用或者父类型的构造方法
41.switch               分支语句结构的引导词
42.synchronized                   表明一段代码需要同步执行
43.this                指向当前实例对象的引用
44.throw                抛出一个异常
45.throws               声明在当前定义的成员方法中所有需要抛出的异常
46.transient               声明不用序列化的成员域
47.try                 尝试一个可能抛出异常的程序块
48.void                 声明当前成员方法没有返回值
49.volatile              表明两个或者多个变量必须同步地发生变化
50.while               用在循环结构中
 

1.3 标识符

Java语言中,对于变量,常量,函数,语句块也有名字,我们统统称之为Java标识符。标识符是用来给类、对象、方法、变量、接口和自定义数据类型命名的。

1.3 标识符的组成

Java标识符由数字,字母和下划线(_),美元符号($),人民币符号(¥)或中文组成。在Java中是区分大小写的,而且还要求首位不能是数字。最重要的是,Java关键字不能当作Java标识符。

 

注:虽然标识符可以由中文组成,但是还是不要使用。因为程序语言由歪国人创造,使用中文可能会在程序运行过程中产生无法预知的问题。

public class First {

    public static void main(String[] args) {

   String 姓名 = "陈小二";

   int ¥年龄 = 22;

   System.out.println("使用中文作为标识符,姓名:"+姓名+",年龄:"+¥年龄 );

}

}


 

1.4 标识符的命名规则

1. 类和接口名。

     每个单词的首字母大写,含有大小写。例如,MyClass

2. 方法名和变量名。

     首字符小写,其余的首字母大写,含大小写。尽量少用下划线。这种命名方法叫做驼峰式命名。例如,testmyName等。

3. 常量名。

     基本数据类型的常量名使用全部大写字母,字与字之间用下划线分隔。对象常量可大小混写。例如,SIZE_NAME。

4. 包名。

   多单词组成时所有字母全部小写,包对应的就是项目所在目录下的文件夹,所以同个目录不可重复。一般使用公司域名的反序作为包名。

   如:域名:www.baidu.com  包名:com.baidu.www  对应目录:com\baidu\www

1.5 java注释

Java的编写过程中我们需要对一些程序进行注释,除了自己方便阅读,更为别人更好理解自己的程序。

注释分为以下三类:

1,// 注释一行,又称单行注释

2,/* ...... */ 注释若干行

3,/**……*/文档注释

  后面2种又被称为多行注释,区别是/**….*/可以被javadoc命令提取生成API文档。

1.6 数据类型

     数据类型分为基本数据类型和引用数据类型。

    1)基本数据类型如下:

    

基本型别

大小

最小值

最大值

默认初始化值

boolean

-----

-----

------

false

char

16-bit

Unicode 0

Unicode 2^16-1

'\u0000'

byte

8-bit

-128

+127

0

short

16-bit

-2^15

+2^15-1

0

int

32-bit

-2^31

+2^31-1

0

long

64-bit

-2^63

+2^63-1

0L

float

32-bit

-3.4E38

+3.4E38

0.0f

double

64-bit

-1.7E308

+1.7E308

0.0d

      

      字符char存储数据:

      计算机只能处理数据,不能处理字符,为了能够处理字符,就需要用数据来表示字符,当许多的字符用数据表示出来就形成了一张表格,那就是ASCII(美国标准信息交换码表)码表。后来ASCII表不满足国际化的需求,就采用unicode编码,它的前128字节编码与ASCII兼容。

      Java中一个字符(char)表示Unicode字符集中的一个元素。Unicode字符由16位组成,因此,有(65535)个不同的字符可用。

      2)引用数据类型

        类,接口,枚举,数组,字符串,引用数据类型默认初始化值为null。

1.7 常量

   常量:就是在程序运行过程中,不会被修改的量。

   常量又分2种:

1.   就是一个值,这个值本身,我们可以叫它常量

1)  整数常量:所有整数

2)  小数常量:所有小数

3)  布尔型常量:只有两个值,fasle和true

4)  字符常量:将一个数字字母或符号用单引号(’ ’)标识,如: ’a’

5)  字符串常量:将一个或多个字符用双引号标识

6)  Null常量:就是个null值,啥也不是。

 

2.    表示不可变的变量,这种也叫常量,使用final关键字来修饰某个变量

如:finalint MONTH = 12;

 

1.8 变量

定义:变量的本质就是一块内存空间。

特性:1.内存中的内容可以改变。2.只能是同一种数据类型的内容

定义格式:变量的类型 变量名称 = 变量的值。例:intnum = 10;

变量的类型:基本类型或引用类型

变量名称:标识符,一定要符合标识符命名规则。

变量值:变量中存放的内容

理解:变量类似于数学中的未知数X,只是在改变值时被数据类型所限制。

2.    进制

2.1 进制的定义

进制也就是进位制,是人们规定的一种进位方法。对于任何一种进制---X进制,就表示某一位置上的数运算时是逢X进一位。

2.2 java中的常用进制

1)二进制:它由两个基本数字01组成,二进制数运算规律是逢二进一。

2)八进制:有数码01234567并且每个数码正好对应三位二进制数,所以八进制能很好地反映二进制。为了区分进制之间的区别,八进制数据前面必须带上前缀0。如:int a =  0144;  //0144是八进制的100

3)十进制:由012….9十个基本数字组成,十进制数运算规律是逢十进一

4)十六进制:它由十六个字符09以及ABCDEF组成(它们分别表示十进制数1015),并且每个数码正好对应四位二进制数,十六进制数运算规律是逢十六进一。十六进制数据前面必须带上前缀0X(注意:0x中的0是数字0,而不是字母O)  

2.3 位权

     对于形式化的进制表示,我们可以从0开始,对数字的各个数位进行编号,即个位起往左依次为编号012……;对称的,从小数点后的数位则是-1-2……

数制中,各位数字所表示值的大小不仅与该数字本身的大小有关,还与该数字所在的位置有关,我们称这关系为数的位权

十进制数的位权是以10为底的幂,二进制数的位权是以2为底的幂,十六进制数的位权是以16为底的幂。数位由高向低,以降幂的方式排列。

2.4   进制之间的转换

2.4.1 二进制数、八进制、十六进制数转换为十进制数(按权求和)

   二进制数、八进制、十六进制数转换为十进制数的规律是相同的。把二进制数(八进制或十六进制数)按位权形式展开多项式和的形式,求其最后的和,就是其对应的十进制数——简称按权求和



某个数字所在的位置和数字值大小关系称为位权。



 

2.4.2 十进制转成其他进制

整数转换:一个十进制整数转换为其他进制整数,通常除以要转换的进制底数取余数倒排序,

即用十进制数连续除以要转换的进制底数(如:2816),直到商为0逆序排列余数即可得到――简称除基(相应进制底数)取余法.


2.4.3二进制和八进制,二进制和十六进制互相转换

二进制转八进制:分别向左,向右每三位一组,依次写出每组3位二进制数所对应的八进制数,――简称三位合一位.

二进制转十六进制:分别向左,向右每四位一组,依次写出每组4位二进制数所对应的十六进制数――简称四位合一位.

八进制转二进制:只要将每一位八进制数用对应的3位二进制数替代即可。

八进制转二进制:只要将每一位十六进制数用对应的4位二进制数替代即可。


3.  计算机容量单位

1)电脑的容量单位最小的是Bit,二进制数体系中,每个01就是一个位(bit)。

而8位为一个字节,也就是Byte。而其他相邻容量单位之间比例是1024(1024进制)。

1Byte=8bit

1KB=1024Byte(字节)=8*1024bit

1MB=1024KB

1GB=1024MB

1TB=1024GB

1PB=1024TB

1EB=1024PB

1ZB=1024EB

1YB=1024ZB

1BB=1024YB

2)硬盘厂商的计算方法(奸商),除bitbyte之间,其实相邻之间容量单位使用1000进制。

1Byte=8bit

1KB=1000Byte(字节)

1MB=1000KB

4.  原码、反码、补码

   计算机中所有的数据均01编码表示,也就是将我们能识别的数据转换为计算机能识别的二进制数据。其中编码又分为原码、反码、补码。

4.1 原码反码补码的共性

   1)计算机中最高位为符号位,其他位为数值位。

   2)符号位0表示正数,1表示负数。

4.2 原码

   原码:将相应的数据转换为二进制数即可,其中最高位表示符号位。

如图:-6的原码是:10000110其中最高位表示符号位,1表示负数

      +5 的原码是:00000101其中最高位表示符号位,0表示正数。

原码不能直接参加运算,可能会出错。例如数学上,1+(-1)=0,而在二进制

00000001+10000001=10000010,换算成十进制-2。显然出错了。


4.3 反码

反码:正数的反码与其原码相同(最高位为0);负数的反码是对其原码逐位取反,但符号位不变。


4.4 补码

 补码::正数的补码与其原码相同;负数的补码是在其反码的末位加1

 

4.5 转码注意事项

a. 0的反码也有两种形式,即

   [+0]=00000000B

   [-0]=11111111B

 b. 0的补码就一种形式,即

     [+0/-0]=00000000

c. 8位二进制反码的表示范围:-127+127

d. 若字长为8位,则补码所表示的范围为-128+127;进行补码运算时,应注意所得结果不应超过补码所能表示数的范围。

e. 采用补码后,可以方便地将减法运算转化成加法运算,运算过程得到简化。采用补码进行运算,所得结果仍为补码,所以最后还需要将补码转换为原码。

4.6 原码转补码

    1)正数不需要转换,正数的原、反、补相同。

    2)负数,负数的原码转成反码,再转成补码(不准确简单记忆:补码 = 原码取反+1)

 

4.7 补码转原码

    1)正数不需要转换,正数的原、反、补相同。

    2)负数,负数的补码转成反码,再转成原码(不准确简单记忆:原码=补码-1再取反)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值