JAVA基础 关键字 标识符 数据类型(转换) 常量 变量

一、关键字概述 (查字典 甲骨文官网有)

关键字是指被java语言赋予了特殊含义的、被保留的、用做专门用途的字符串(单词)。

  • JAVA关键字的特点

1、全是小写字母 (只要有大写,必然不是关键字)

2、在增强版记事本(notepad++),或者IDEA等集成工具中。关键字有特殊颜色

 扩展:JAVA保留字

现有JAVA版本尚未使用,但以后版本可能会作为关键字使用。自己命名标识符时要避免使用这些保留字。

goto(其他语言中用于跳转到哪里)、const(C++中,声明常量)

二、标识符

指Java对各种变量、方法和类等要素命名时使用的字符序列称为标识符。

解释:凡是我们自己可以起名字的地方都是标识符。比如类的名字,变量名字,方法的名字、包的名字,接口名字等等,都是标识符。

JAVA标识符命名规则:硬性要求(违反就报错)

1、标识符可以包含英文字母26个(区分大小写)、0-9数字、$(美元符号)和_(下划线)。

2、标识符不能以数字开头。

3、标识符不能是关键字。

命名规范:软性建议

1、类名规范:首字母大写,后面每个单词首字母大写:XxxYyyZzz(大驼峰命名法)

2、变量名(函数方法)规范:首字母小写,后面每个单词首字母大写xxYyyZzz(小驼峰式)

3、包名规范:多单词组成时,所有字母都小写:xxxxyyyyzzzz

4、常量名:所有字母都大写。多单词时,每个单词用下划线连接:XXX_YYY_ZZZ

5、起名字时,为了提高阅读性,名字要尽量有意义即“见名知意”。

三、数据类型  基本数据类型和引用数据类型

对于每一种数据都定义了明确的具体数据类型(强类型语言),在内存中分配了不同大小的内存空间。

1、基本数据类型

(1)整数型 byte(1字节) short(2字节) int(4字节 默认) long(8字节  数字后面加L)

说明:整数型默认为int型,如果一定要用long类型,需要加上后缀L(不区分大小写,推荐大写)。

(2)浮点型 float(4字节) double(8字节 默认)

说明:由于计算机是二进制,没法表示无理数,无限循环小数,所以浮点数都是不精确的,只能想对你精确。字节数越多(小数位数越多),越精确,显然double比float精度高一倍,因此double是默认。

浮点型采用科学计数法,因此4字节float比8字节long范围更广。

浮点数默认类型是double,如果非要使用float类型,需要在小数后面加上后缀F

(3)字符型 char( character 2个字节) 2个字节可以表示65535种字符,所有中英文加起来都没这么多,所以两个字节足矣

说明:字符型在计算机底层表示的是数字。按照各种编码(ASCII码表<Unicode码表<UTF-8码表)表排序

语法: char 变量 = '变量值' ;

说明:定义char型变量时,通常使用一对' ',内部只能有一个字符,但这个字符允许是转义字符 \n 或\t.....

注意:注意字符串不是基本类型,而是引用类型。

(4)布尔型 boolean (1个字节)

只有两个值,true、false。常在条件判断,循环结构中使用。

2、引用数据类型(To Be Continued)   //Js里面字符串是基本数据类型

数组([ ])、类(class)(字符串是String类,所以字符串是引用数据类型)、接口(interface)、Lambda

2.1 String类型变量的使用

1、String属于引用数据类型,翻译为:字符串

2、声明String类型变量时,使用一对" " 

说明:字符串里面每一个字符都会被拆成一个字符解析。特别注意,字符串里的转义字符也会被识别到,输出转义结果。

3、String重载了+运算符,可以和8种(包含boolean)基本数据类型变量做拼接运算。结果返回String

四、常量

指在程序运行期间,固定不变的量。

常量分类:

1、整数常量:直接写上数字,没有小数点。例如:100、0、-250

扩展:不同进制的整数写法

二进制:0,1,满2进1。以0b或0B开头

十进制:0-9,满10进1。

八进制:0-7,满8进1,以数字0开头(特别小心)

十六进制:0-9及A-F,满16进1。以0x或0X开头表示。此处的A-F不区分大小写。

2、浮点数常量:直接写上的数字,有小数点。例如:2.5,-3.2,0.0

3、字符常量:凡是用单引号引起来的单个字符,就叫做字符常量。例如:'A','9','大'   //字符是单引号而且有且只有一个字符

4、字符串常量:凡是用双引号引起来的部分,叫做字符串常量。例如"abc","123","true" //字符串,双引号中可以有任意多字符

5、布尔常量:true、false

6、空常量:null   代表没有数据。直接打印会报错(没有你打印什么),即不能system.println(null);

五、变量 

      变量时内存中的一个存储区域,该区域的数据可以在同一类型范围内不断变化。变量是程序中最基本的存储单元,包含变量的类型,变量名和存储的值。变量可以看成是一个容器,用于在内存中保存数据,一次只能放一个数据。

注意:

打印变量的时候,是打印变量的内容,而不是变量名称。

变量的创建

声明格式:

数据类型 变量名称【,变量名称...】;  //创建了一个变量,注意如果创建多个变量,多个变量名称不可以重复。

变量名称 = 数据值; //赋值,将右边数据值,赋值给左边的变量

可合并为: 数据类型 变量名称 = 数据值【,变量名称=数据值...】; //在创建一个变量的同时,立刻放入指定的数据值

exp: float a;// 创建了一个float类型的名为a的变量,此时变量内容为空。java中使用未定义变量直接报错(Js赋值undefined)

a=5.3F; //此时 变量a的值为5.3,注意float类型变量,后面要加F,整型long同理。(不加也没事,会发生数据类型自动转换)

使用变量的注意事项:

1、右侧值不要超过左侧数据类型范围,特别是用byte的时候,要特别小心。超过了直接报错

2、没有赋值的变量,不能直接使用,否则报错。(Js会给未赋值的变量赋值undefined)

3、变量的使用不能超过其作用域范围。(作用域指从定义变量一行开始,一直到直接所属大括号结束为止)

4、可以通过一个语句(带;就是一个语句),声明多个变量,用,隔开,并分别赋值。

六、数据类型转换   只针对7种数据类型,不包含boolean类型

当赋值运算符“=” 左右数据类型不一致时,将会发生数据类型转换。 

特别注意:Java中,boolean类型不能发生数据类型转换(Js中可以转换成0或1)

1、自动类型提升(隐式转换) 

指代码不需要进行特殊处理,自动完成。

转换规则:数据范围从小到大(各种类型数据范围查表  自动提升顺序(即类型范围排序):byte、short、char<int<long<float<double   (涉及运算时,byte、short、char会自动升级为int型  这么设计主要原因可能是这三个范围确实太小了,容易出现溢出问题,所以官方做运算时给他们升级,并规定运算的最小类型为int)

当容量小的数据类型的变量与容量大的数据类型变量做运算时(包括且不限于加法,赋值运算),就会自动发生隐式转换。

注意:字符类型(char)会被自动转换成ASKII码对应的数字。赋值时可能会导致错误(小容器装不下大数据类型)。

说明:因为数据范围从大到小,会导致数据损失,大到小就直接报错,不触发隐式转换。

exp: float num3 = 30L ;

说明:左侧为float类型,右侧为long型。将long型30赋值给float型num1(long-->float),符合从小到大规则,从而自动触发隐式转换。num3=30.0

exp:double num2 = 2.5F;

说明:左侧为doule类型,右侧为float类型。将float型2.5赋值给double型num2(float-->double),符合从小到大规则,从而自动触发隐式转换

exp:char zifu = 'c';  //ASCII 码 99

      int num = zifu;  //左侧int类型,右侧char。(char-->int),符合从小到大规则,从而自动触发隐式转换。此时num=99

exp:

byte num4=40;  

byte num5=50;

byte result= num4+num5; //报错

说明:num4+num5会被自动提升为int,int赋值给byte,没做强制转换则报错

2、强制类型转换(显示转换) 自动类型提升的逆运算

代码需要进行特殊格式处理,不能自动完成,用于数据范围从大到小转换(小到大转换会自动隐式完成)。

应用场景:数据库为了防止数据溢出,默认都是long类型,实际不需要那么大,就需要强制转换成小数据类型。

注意:数据范围从大到小,如果大数据的数据范围已经超过小数据的最大范围。大数据类型多出的部分会导致小数据类型数据溢出(整数类型强制转换),精度损失(浮点数类型强制转换)等问题。

转换语法:

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

exp: int num = (int) 600000000L;

说明:将long类型600000000 强制转换成int数据类型。由于int最高范围才21亿,装不下60亿,发生数据溢出。会输出很奇怪的数字比如1705032704

exp:int num3=(int) 3.99; //num3=3

说明:将double类型3.99 强制转换成int数据类型。会导致直接丢掉小数部分,这就是精度损失。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值