1、标识
(1) 什么是标识符?
在Java源程序中凡是程序员有权利自己命名的单词都是标识符,标识符在Editplus(一种文本编辑器)中以黑色高光字出现。
(2) 标识符可以命名什么?
- 类名
- 方法名
- 变量名
- 接口名
- 常量名
- …
(3) 标识符的命名规则?[不按照规则会报错]
一个合法的标识符只能以“数字、字母、下划线、美元符号¥组成”,不能以数字开头,严格区分大小写,关键字不能做标识符,理论上无长度限制。
(4) 标识符的命名规范[只是一种规范,不属于语法,不遵守规范不报错]
- 最好见名知意
- 遵守驼峰命名方式 eg:SystemService
- 类名,接口名:首字母大写,后面每个单词首字母大写。
- 变量名、方法名:首字母小写,后面每个单词首字母大写。
- 常量名:全部小写。
2、关键字
Java中关键字都是小写的,在Editplus(一种文本编译器)中是蓝色字。
3、字面值
(1) 字面值
- 10、100
- “abc”
- ‘a’
- ture false
***注意:Java语言中所有字符串型字面值必须使用双引号括起来,双引号为半角双引。Java语言中字符型字面值必须使用半角单引号括起来。***
(2) 字面值就是数据
(3) 数据类型
- 10、100属于整数型字面值。
- 3.14属于浮点型字面值。
- ture、false属于布尔型字面值。
- “abc”"中国人"属于字符串型字面值。
- ‘A’、'人’属于字符型字面值。
4、 变量
(1) 什么是变量?
- 变量本质上来说是内存中的一块空间,这块空间有“数据类型”“名字”“字面值”。
- 变量包括三部分 :数据类型,名字,字面值。
- 变量是内存中储存数据的最基本的单元。
(2) 数据类型的作用?
- 不同的数据有不同的类型,不同的数据类型底层会分配不同大小的空间。
- 数据类型是指导程序在运行阶段应该分配多大的内存空间。
(3) 变量要求
变量中存储的具体“数据”必须和变量的“数据类型”一致,不一致时报错。
(4) 变量名
只要是合法的标识符就行。规范中要求:首字母小写,后面每个单词首字母大写。
(5) 变量声明后怎么赋值?
- 格式: 变量名 = 字面值
注意:等号是一个运算符,叫做赋值运算符,赋值运算符先运算等号右边的表达式,表达式执行结束后的结果赋值给左边的变量。 - 要求:字面值的数据类型必须和变量的数据类型一致。
(6) 声明和赋值可以放到一起完成
int i=10;
(7) 变量赋值后,可以重新赋值,变量的值可以变化。
(8) 有了变量的概念后,内存空间得到了重复的利用。
(9) 通常一个变量包括两种访问形式:
第一种,读取变量中保存的具体数据;第二种,修改变量中保存的具体数据。
(10) 变量在一行上可以声明多个。
(11) 变量必须先声明,再赋值,才能访问。
注意:1.在方法体中Java代码,是遵守自上而下的顺序依次执行的。
2.在同一个作用域中,变量名不能重名,但变量可以重新赋值。
作用域:变量的有效范围,出了大括号就不认识了。
(12) 变量的分类:
根据变量声明的位置来分类:
- 局部变量:在方法体当中声明的变量。
- 成员变量:在方法体以外【类体之内】声明的变量.
在不同作用域中,变量名是可以相同的。
在同一个作用域当中,变量名不能重名。
注意:Java遵循就近原则,类体中不能直接编写Java语句【除变量声明外】
5、数据类型(基础)
(1) 数据类型的作用是什么?
程序中有很多数据,每一个数据都是有相关类型的,不同数据类型的数据占用空间大小不同,数据类型的作用是指导JVM在运行程序的时候给该数据分配多大的内存空间。
(2) java中的数据类型包括两种
- 基本数据类型
- 引用数据类型
(3) 关于基本数据类型
基本数据类型包括四大类八小种
- 第一类:整数型:
byte、short、int、long - 第二类:浮点型:
float、double - 第三类:布尔型:
boolean - 第四类:字符型:
char
(4) 字符串“abc”不属于基本数据类型,属于引用数据类型,字符属于基本数据类型。
- 字符串用双引 “abc”
- 字符用单引 ‘a’
(5) 八种基本数据类型各自占用空间大小是多少呢?
(6) 计算机在任何情况下都只能识别二进制
什么是二进制?
数据的一种表示形式,十进制表示满十进一,二进制表示满二进一。
(7) ***字节(byte)***
(8) 八种基本数据的取值范围
数据类型 | 取值范围 |
---|---|
byte | (-128~127) |
char | (0~65535)字符型无负数 |
boolean | (turn / false) |
short | (-3768~32767) |
int | (-2147483648~2147483647) |
short 和char表示种类总数是一样的,不过char可以表示更大正整数。
(9) 关于八种基本数据类型的默认值
默认值:成员变量没有手动赋值系统会默认赋值【局部变量不会】
数据类型 | 默认值 |
---|---|
byte short int long | 0 |
float double | 0.0 |
boolean | flase |
char | \u0000 |
6、数据类型(详解)
(1)char类型
- 一个中文占用两个字节,char正好是两个字节,所以Java中的char类型变量可以存储一个中文字符。
- 转义字符
转义字符出现在特殊字符之前,会将特殊的字符转换成普通字符,反斜杠在Java中具有转义功能。
\n换行符 \t制表符(TAB)【与空格不同,他们的ASCII不一样】
(2)整形
- 关于java语言中的整数型
- Java语言中的“整数型字面值”被默认当作int类型来处理。要让这个“整数型字面值”被当作long类型来处理的话,需要在该字面值后面加 l / L ,建议使用大写L
public class Test01
{
public static void main(String[] args)
{
long x = 456;
System.out.println(x);
//456整形字面值被当作int类型,占用4个字节;x变量在声明的时候是long类型,占用8个字节,int类型的字面值456赋给long类型的变量x,存在类型转换。
//int类型转行成long类型,int为小容量,long为大容量,小容量可以自动转换为大容量,称为自动类型转换。
long z = 2147486348;
//编译错误:过大的整数
//2147483648被当作int类型4个字节处理,但这个字面值超过int类型范围
//解决:
long z = 2147483648L;
long x = 100L;
//100L是long类型字面值,x是long类型变量,不存在类型转换,直接赋值
int y = x;
//编译错误
//x是long类型,y是int类型,强制类型转换需要加“强制类型转换符”,加符后编译通过,但会损失精度
//解决:
int y = (int)x;
}
}
(3)浮点型
- float 单精度【4个字节】
- double 双精度【8个字节,精度较高】
- double不适合做财务软件,财务涉及到钱的问题,要求精度较高,所以sun公司在基础SE类库当中为程序员准备了精度较高的类型,只不过这种类型是一种引用数据类型,不属于基本数据类型,他是java.math.BigDecimal
(4)布尔型
boolean 在Java语言中只有两个值:true 和 false,没有其他值。(不太像c语言中0和1可以表示假和真)在底层存储中,boolean类型占用一个字节,因为实际存储时false为0,ture底层为1 。
布尔类型在实际开发中非常重要,经常在逻辑运算和条件控制语句中。
7、关于基本数据类型之间的互相转换
(1)八种基本数据类型当中除布尔型之外,剩下七种类型之间都可以互相转换。
(2)小容量向大容量转换,称为自动类型转换,容量从小到大排序:
byte < short < int < long < float < double
注:任何浮点类型不管占用多少个字节,都比整数型容量大,char和short可表示的种类数量相同,但char可以取更大的正整数。
(3)大容量转小容量,叫做强制类型转换,需要加强制类型转换符,程序才能编译通过,但是在运行阶段可能会损失精度,所以谨慎使用。
(4)当整数型字面值超出byte、short、char的取值范围,可以直接赋值给byte、short、char类型的变量。
(5)byte、short、char混合运算时,各自先转换成int类型再做运算。
(6)多种数据类型混合运算,先转换为容量最大的那种类型再做运算。