变量与数据类型
主要内容
标识符与关键字
变量与常量
数据类型
类型转换
转义字符与进制问题
第一节 关键字和标识符
1. 编程规范
Ø 任何地方的名字都需要见名知意;
Ø 代码适当缩进
Ø 书写过程成对编程
Ø 对代码进行合理注释
2. 关键字
2.1、定义
是被系统征用的特殊单词(标识符),而且是被广大程序员所认知的。
2.2、特点
全部小写
2.3、注意事项
A:goto和const作为保留字存在。
B:类似于Notepad++这样的高级记事本会对关键字有特殊颜色标记
2.4、Java所有关键字和保留字
2.5、常用关键字
3. 标识符
3.1 定义
就是给类,接口,方法,变量等起名字的字符序列。用来查找、定位、标明、唯一确认内容。
3.2 组成规则:
A:英文大小写字母(字符统称-->中英文皆可,强烈不推荐使用中文)
B:数字
C:$和_
3.3 注意事项:
A:不能以数字开头
B:不能是java中的关键字
C:区分大小写
3.4)常见的命名规范——见名知意
A:包 全部小写
单级包:小写
举例: com,shsxt,helloworld
多级包:小写,并用.隔开
举例:com.shsxt.helloworld
域名倒着写+模块名称
B:类或者接口
一个单词:首字母大写
举例:Student,Demo
多个单词:每个单词首字母大写
举例:HelloWorld,StudentName
C:方法或者变量
一个单词:首字母小写
举例:name,main
多个单词:从第二个单词开始,每个单词首字母大写
举例:studentAge,showAllNames()
D:常量
全部大写
一个单词:大写
举例:PI
多个单词:大写,并用_隔开
举例:STUDENT_MAX_AGE
命名规范:见名知意
第二节 数据与变量
1. 数据
1.1、定义
承载信息的符号
1.2 常见的数据
A:字符串常量 "hello"
B:整数常量 12,
C:小数常量 12.
D:字符常量 'a','A','0'
E:布尔常量 true,false
F:空常量 null(后面讲)
1.3 在Java中针对整数常量提供了四种表现形式——(理解)
A:二进制 由 0 , 1 组成。以0b开头。
B:八进制 由 0 , 1 ,...7组成。以 0 开头。
C:十进制 由 0 , 1 ,...9组成。整数默认是十进制。
D:十六进制 由 0 , 1 ,...9,a,b,c,d,e,f(大小写均可)组成。以0x/0X开头。
2. 变量
程序在运行过程中会处理很多数据,这些数据极有可能需要一个临时的栖息地,变量则可以提供这样的一个场所。变量就是内存中用来存储数据的一块空间。
2.1 定义
在程序的执行过程中,其值在某个范围内可以发生改变的量
2.2 变量的定义格式:
A:数据类型 变量名 = 初始化值;
B:数据类型 变量名;
变量名 = 变量值;
2.3 变量的两种操作:
1 、存值
2 、取值
3 、改值
2.4 变量的关注点
1 、数据类型
2 、变量名称
3 、变量的值
4 、变量的作用域,根据{} 来定
同一个作用域当中,变量不能重名
同一个变量在某一时刻,里面只能存在一个值,后来的值将替代/覆盖掉前面的值(前面的值永远找不到,没有撤销)
2.5 使用变量注意项:
1 、变量本身存在
2 、变量的值要存在
3 、使用时一定要存在于作用域之内
其作用域:从定义开始,到离它最近的左大括号相对的右大括号结束
注意:变量一旦被使用,那么必须保证它的值已经存在(形式参数除外)
第三节 数据类型(掌握)
3.1 定义
程序需要处理各种各样的数据,例如文字、图片、音频、视频等,对于不同的数据,处理方式当然也不同,数据能够进行的运算也是不同的。
Java是一种强类型语言,针对每种数据都提供了对应的数据类型。不同的类型,指定不同大小的空间,适当的数据
范围使用适当的数据类型进行存储。
为了能够方便和更好地处理数据,在程序中我们也将数据进行划分称不同的数据类型。
3.2 分类
A:基本数据类型: 4 类 8 种
B:引用数据类型:类,接口,数组。
3.3 基本数据类型
注意:整数数值默认为int类型,如果需要定义一个long类型的变量,当超出int的范围时,需要在该值后加 l或者L
float有效位是 8 位,double有效位是 16 位
注意:浮点数默认为double类型,如果需要定义一个float类型的变量,则数值后需要加 f或者F
要求:用 ' '将字符括起来
注意:
整数默认是int类型,浮点数默认是double。
长整数要加L或者l,单精度的浮点数要加F或者f。
本节作业
- 四类八种分别是哪些,各自有什么区别
- 变量的类型和数据的类型不都是一摸一样,可以么?
第四节 数据类型转换(掌握)
4.1 定义
数据在不同类型之间进行转换,boolean类型不参与转换
4.1.1 默认转换
A:从小数据到大类型
B:byte,short,char --> int long float double
C:byte,short,char之间是平级的,不相互转换,直接转成int类型参与运算。
4.1.2 强制转换
A:从大到小
B:可能会有精度的损失,一般不建议这样使用。
C:格式:
目标数据类型 变量名 = (目标数据类型) (被转换的数据);
4.1.3 思考题和面试题:
A:下面两种方式有区别吗?
float f1 = 12.345f;
float f2 = (float)12.345;向下类型转换,浮点数默认是double类型
B:下面的程序有问题吗,如果有,在哪里呢?
byte b1 = 3;
byte b2 = 4;
byte b3 = b1 + b2;
short s1=3;
short s2=3;
short s3=s1+s2;
char c1=3;
char c2=4;
char c3=c1+c2;
byte、short、char在运算时,会自动向上转型为int型,所以返回的结果是int类型,而接收的类型均不是int,由于
类型不匹配,所以报错
byte b4 = 3 + 4;
short s=3+4;
常量进行计算后的值,预编译时能够判断其是否超出范围
int a=1;
int b=2;
int c=a+b;
long l1=3l;
long l2=3l;
long l3=l1+l2;
float f1=2.3f;
float f2=2.3f;
float f3=f1+f2;
double d1=3.7;
double d2=3.9;
double d3=d1+d2;
均不会报错,java进行了优化。
C:下面的操作结果是什么呢?
byte b = (byte)130;
D:字符参与运算
是查找ASCII里面的值
'a' 97
'A' 65
'0' 48
空格 32
System.out.println('a');
System.out.println('a' + 1);
E:字符串参与运算
这里其实是字符串的连接
System.out.println("hello"+'a'+1);
System.out.println('a'+1+"hello"); System.out.println("5+5="+5+5); System.out.println(5+5+"=5+5");
运行结果:helloa
98hello
5+5=
10=5+
第五节 转义字符(掌握)
\
:代表转义
\\
:代表一个\
\”
:代表一个双引号字符
\b
:退格 ,是将光标移动到当前字符的前一个字符,并不会删除当前字符。
注意:eclipse当中不识别,需要在DOS环境下运行
\n
:换行,将当前位置移到下一行的开头
\r
:回车,将当前位置移到本行的本行开头
注意:\n、\r在eclipse没有区别,需要在DOS环境下运行
\t
:水平制表位:跳到下一个Tab位置