Java自学第一课之基本数据类型与表达式——自学笔记

本文详细介绍了Java编程语言的基础知识,包括变量与常量的概念、基本数据类型如byte、short、int等,以及类型转换的规则。适合Java初学者快速掌握语言核心。

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

第一节主要学习变量与常量、基本数据类型、类型转换的Java语言基本知识

一、变量与常量

1.标识符
要学习变量和常量,首先要知道标识符的概念。标识符是一个名称,是用户编程时使用的名字,对于变量、常量、函数、语句块也有名字,我们统统称之为标识符。不同的编程语言对标识符的取名规则大体相同,Java中对标识符的取名有以下几点规则:

  1. 标识符由字母、数字、下划线“_”、美元符号“$”组成,第一个字符不能是数字。如:1student,开头为数字,不合法。
  2. 不能把java关键字和保留字作为标识符。如:if,是关键字,不合法。
  3. 标识符没有长度限制。
  4. 标识符对大小写敏感。如:A和a是两个标识符。

有一部分已被系统定义,用户不能用来作为标识符,被称为保留字和关键字,如下所示:

abstractassertbooleanbreakbyte
casecatchcharclassconst
continuedefaultdodoubleelse
enumextendsfinalfinallyfloat
forgotoifimplementsimport
instanceofintinterfacelongnative
newpackageprivateprotectedpublic
returnstrictfpshortstaticsuper
switchsynchronizedthisthrowthrows
transienttryvoidvolatilewhile

其中constgoto是java的保留字,保留字是为java预留的关键字,他们虽然现在没有作为关键字,但在以后的升级版本中有可能作为关键字。是语言已经定义过的字,一些保留字可能没有相对应的语法,考虑到扩展性,为了向后兼容不能再将其作为变量名。有面试题问Java中有goto关键字吗,答案是有的,是作为保留关键字,现在几乎不用。

2.变量
变量是一个由标识符命名的项,它具有类型和作用域。变量的声明语法如下:Type varName [=value][, varName [=value]…];
Type为数据类型,VarName为变量名(变量名的命名一般采用驼峰命名并且见名知意,这是一种规范,增加程序可读性,并不是规定)。方括号中为可选项,即同时声明并赋值多个变量 。如int a=1,b=2;
变量的作用域以后再写。

3.常量
变量的声明前加上关键字final修饰符,该变量就变成了一个常量,常量一旦被初始化(赋值)就不能再被改变了其值了。语法如下:
final int a=1;
变量与常量还有许多不一样,以后再写。

二、基本数据类型

数据也有类型,Java的基本数据类型(还有其他类型不是基本数据类型)有8种:byte、short、int、long、float、double、char、boolean。
其中 数字型:

类型说明长度最小值最大值
byte带符号微整数8位-128127
short带符号短整数16位-2^152^15-1
int带符号整数32位-2^312^31-1
long带符号长整数62位-2^632^63-1
float单精度浮点型32位-2^149太大了
double双精度浮点型64位2^-1074太大了

字符型:char
布尔型:boolean,只有两个值true和flase

三、 类型转化

每个表达式都有类型,如果表达式的类型和上下文不符,要么产生编译错误,要么发生隐含的类型转换。类型转换可以分为扩展转换和窄化转换。
1.扩展转换(自动转换)
整型数据从低精度类型转换为高精度时不会损失精度,即byte,short(char),int,long
浮点数和整数的转换会发生精度丢失,程序也会报错。从float到double不会丢失精度,但反过来会丢失精度。

2.窄化转换(强制转换)
转换按照double、float、long、int、short、byte这个方向会丢失精度,这时程序会报错,但可以用强制转换。转换方式为int a;float b=2;a=(int)b;

下面四中情况可能发生类型转换。

  1. 赋值转换:表达式运算结果的类型和被赋值的变量类型不一致时,表达式结果的类型自动被转换成变量所对应的类型。
  2. 方法的调用转换:在方法或者构造方法中进行类型转换。
  3. 强制类型转换:讲一个表达式类型强制转换为另一个类型,例如(double)6。
  4. 字符串转换:在"字符串+操作数"的情况下,操作数会被自动转换成字符串类型。

最后需要注意的是,Java中的浮点数默认是double类型的,整数默认是int类型的,哪怕浮点数你声明的类型的是float或其他。如果非要声明一个float类型的,可以在结尾加F或f。基本类型做强制转换不会出错,但是他们相应的包装类做强制转换时,会出错,比如将Double类的对象强制转换为Integer类的对象时就会出错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值