(二)Java标识符及数据变量(Java基础笔记)

一、关键字

1、关键字

Java内置的有特殊含义的单词。

注意:

  • const,goto这两个词也是关键词,但没有任何功能,是java的预留关键字。

  • 开发工具对于关键字会有特殊颜色的标识

用于定义数据类型的关键字
classinterfacebyteshortintlong
floatdoublecharbooleanvoidenum
用于定义数据类型值的关键字
truefalsenull
用于定义流程控制的关键字
ifelseswitchcasedefaultwhile
doforbreakcontinuereturn
用于定义访问权限修饰符的关键字
privateprotectedpublic
用于定义类、函数、变量修饰符的关键字
abstractfinalstaticsynchronized
用于定义类与类之间关系的关键字
extendsimplements
用于定义建立实例、判断实例的关键字
newthissuperinstanceof
用于异常处理的关键字
trycatchfinallythrowthrows
用于包的关键字
packageimport
其他修饰符关键字
nativestrictfptransientvolatileassert

二、标识符

1、定义

我们给包、类、接口、方法、变量等起名字的字符序列

2、组成规则

中文字符 、英文大小写字母 、$、 _ 以及数字组成

注意事项

  • _不能单独作为标识符,否则编译报错

  • 数字不能开头

  • 建议尽量不要使用中文

  • 严格区分大小写

3、命名规则

见名知义

驼峰规则

  • 包:

    单个单词, 所有英文字母均小写

    多个单词 , 每个单词字母均小写,单词之间要用.隔开

  • 类和接口:

    单个单词首字母大写;

    多个单词构成 PersonDemo , 每个单词的首字母均大写,其他小写

  • 方法和变量:

    单个单词,字母全部小写 main a

    多个单词构成 addAge,第一个单词字母均小写,从第二个开始,首字母均大写,其他小写

  • 常量:

    单个单词,字母均大写

    多个单词,每个字母均大写,单词之间_分隔 , PI= 3.14

三、进制

1、进制的概念

数字在累计时,进位的机制称之为进制。

  • 十进制

满十进一

0 1 2 3 4 5 6 7 8 9 10 11 12 19 20

  • 二进制

满二进一

基于计算机硬件实现的便利性考虑,计算机底层存储和处理数据都是以二进制的形式进行的。

0 1 10 11 100 101 110 111………

2 ^ 0 = 1
2 ^ 1 = 2
2 ^ 2 = 4
2 ^ 3 = 8
2 ^ 4 = 16
2 ^ 5 = 32
2 ^ 6 = 64
2 ^ 7 = 128
2 ^ 8 = 256
2 ^ 9 = 512
2 ^ 10=1024
  • 八进制

满八进一

0 1 2 3 4 5 6 7 10 11 12….

  • 十六进制

满十六进一

0 1 2 3 4 5 6 7 8 9 a b c d e f 10 11 12 13 14 15 16 17 18 19 1a ….

2、进制之间的转换
  • 十进制转二进制
234							12
234/10=23	4				12/2=6		0
23/10=2		3				6/2=3		0
2/10=0		2				3/2=1		1
							1/2=0		1
							
							二进制:1100

用十进制数除2取余,直至商为0;余数反转,即为二进制数

十进制:19

19/2=9		1
9/2=4		1
4/2=2		0
2/2=1		0
1/2=0		1

二进制:10011
  • 二进制转十进制
1011
=1*2^3 + 0*2^2 + 1*2^1 +1*2^0
=11

用二进制的位数乘以2的相应的幂次求和的结果为十进制;

从右到左,依次加1,起始为0

  • 八进制转二进制
八进制:34256

	3		4		2		5		6
   011		100		010		101		110
   
二进制:011100010101110

将每一位八进制数转成相应的二进制数,从左向右连起来即为最终的二进制数。

  • 二进制转八进制
二进制:

	011		010		101		011		110		001		111
	3		2		5		3		6		1		7
	
八进制:3253617

从右往左,三个二进制组成一组;本组求得数,就是相应的八进制数;

连起来就是最终的八进制

  • 十六进制转二进制
十六进制:

	a		b		c		d		6		e
	1010	1011	1100	1101	0110	1110
	
二进制:101010111100110101101110
  • 二进制转十六进制
二进制:

	1011	1101	1100	0110
	b		d		c		6
	
十六进制:bdc6
3、二进制的单位

在计算机的内部,每一位的二进制称之为一个比特位(bit),简称比特,也称之为二进制位。而每八位二进制组合在一起,称之为一个字节(Byte);

在计算机内部,最基本单位是Byte

每1024个Byte,称之为一个KB,每1024个KB,称之为一个MB,

每1024个MB,称之为一个GB,每1024个GB,称之为一个TB,

每1024个TB,称之为一个PB

1Byte = 8bit  2^8

1KB=1024Byte

1MB=1024KB

1GB=1024MB 

1TB=1024GB

1PB=1024TB

四、计算机中的数据表示形式

1、信息的二进制表示方式

计算机可以处理很多不同类型的数据 - 数字、文本、图片、音频、视频…,但是计算机无论处理什么数据,都是将数据转换为二进制来进行存储和处理的。

计算机需要将不同的数据按照不同方式转换为二进制后才可以处理

2、码表

码表就是字符到二进制的映射关系。

世界上有很多码表,通常由国家或国际标准化组织定义,在一定范围内使用。

Latin-1 也叫ASCII或ISO8859-1只有英文、数字、常见符号 历史上出现最早的码表一个字符占用一个字节<<ASCII码对照表.mht>>
GB2312兼容Latin-1 在Latin-1的基础上增加了常用汉字 由中国国家标准定义一个字符占用两个字节
GBK兼容GB2312,增加了更多的汉字 由中国国家标准定义一个字符占用两个字节
unicode编码是一种映射规则,将全世界所有的字符都对应到一个数字上只是为每个符号指定了一个编码,并没有指定如何映射成二进制<<Unicode编码表(全).pdf>>
Utf-16/utf-32兼容latin1 是unicode编码的实现,占用2/4个字节将unicode定义的符号对应的数字转为定长二进制来代表该符号 java语言的底层使用utf-16来代表字符
Utf-8兼容latin1 是unicode编码的实现,是一种变长的编码形式,用1至4个字节来表示符号,常用符号用1个字节表示,次常用符号用2个字节,非常用符号用3个字节表示,极特殊符号用4个字节表示。 其中汉字在utf-8码表中占3个字符。将unicode定义的符号对应的数字转为变长二进制来代表该符号,节省空间,通常在将数据写出磁盘 通过网络发送等操作时优先使用utf-8<<彻底弄懂 Unicode 编码 - hezh1994的博客 - CSDN博客.mht>>

五、变量

1、变量概述

在程序中,值会在一定范围之内变化的量。

2、变量定义格式

数据类型 变量名 = 初始化值;

变量定义的格式是固定的,记住格式,以不变应万变。

数据类型 变量名; //先声明

变量名 = 初始值; //再赋值

注意:

1、变量要先定义再使用

2、变量要赋初始值才能被使用

在同一作用域中,变量名不能重复

3、变量作用域
  • 局部变量:定义再方法内部或方法上的变量

从定义变量的位置开始生效,在后边整个方法内都可以使用

  • 全局变量:定义再类中方法外的变量

在整个类中都可以使用

如果没有赋初始值,可以使用;会自动赋值默认值

整数类型:默认值 0

浮点型:默认值0.0

布尔类型:默认值false

六、java语言-数据类型

1、直接量(字面量)
  • 数字直接量

整数可以用二进制、八进制、十进制、十六进制表示;但是不同的进制需要

有不同的前缀表示。

十进制:123

二进制:0b111

八进制:010

十六进制:0xa

小数直接用 3.14
  • 字符直接量

1、用单引号括起来 表示单个字符

​ 注意: 只能表示单个字符,‘ab’不对

2、也可以表示中文字符

3、不允许出现空字符

转义字符意义ASCII码值(十进制)
\a响铃(BEL)007
\b退格(BS) ,将当前位置移到前一列008
\f换页(FF),将当前位置移到下页开头012
\n换行(LF) ,将当前位置移到下一行开头010
\r回车(CR) ,将当前位置移到本行开头013
\t水平制表(HT) (跳到下一个TAB位置)009
\v垂直制表(VT)011
\代表一个反斜线字符’’'092
代表一个单引号(撇号)字符039
"代表一个双引号字符034
\0空字符(NULL)000
\ddd1到3位八进制数所代表的任意字符三位八进制
****uxxxx1到2位十六进制所代表的任意字符二位十六进制
  • 布尔直接量
true  真的

false 假的
2、数据类型的概述

基本数据类型:四类八种

引用数据类型(复杂):类 接口 数组

3、基本数据类型
  • 整数型:4种
byte字节型1字节-27-27-1 -128-127
short短整型2字节-215-215-1 -32768~32767
int整型4字节-231-231-1
long长整型8字节-263-263-1

直接量:整数默认为int类型

Long类型:如果数值超过了int的范围,则需要在数值后加L或l表示long类型

  • 浮点型:2种
float单精度4字节
double双精度8字节

默认小数的直接量是double类型;如果要赋值给float,需要在数值后边加F f表示float类型

  • 字符型:1种
char字符型2字节
  • 布尔型:1种
boolean布尔类型1字节
4、类型的转换

java中数据具有类型。这些类型是可以互相进行转换的。



byte ----> short ----> int ---->long ----> float ---->double
						|
						|
						char

  • 自动类型转换
  1. 六个和数字相关的基本类型,可以自动由小到大进行类型转换。但从大到小编译报错。

 byte ->   short -> int -> long -> float -> double   

char类型可以根据ASCii码表自动转换为int类型。数值类型在ASCii码表有效字符范围内也可以自动转为char

 char -> int->long->float->double   
  • 强制类型转换

由大转小,则需要强制类型转换

格式:

数据类型 变量名 = (数据类型)要强制转换的值;

注意:

1、强制类型转换可能会有精度损失

2、浮点型转整形,直接舍弃小数位

3、大转小,大数大于小类型可以表示的最大范围,则直接截取大数中最后的需要的字节作为小类型数据使用。

经典面试题

如果byte short char类型参与运算,则会先自动提升为int类型

byte b1=3,b2=4,b;

b = b1 + b2;//编译报错

解决方案:b = (byte)(b1+b2);

b=3+4;//编译不会报错,因为编译期会对求和的结果判断是否在byte的范围之内,如果在,则没问题;如果超出范围则编译报错;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值