标识符、关键字、变量、数据类型、转义字符
标识符:
程序员自己有权利命名的单词。用于标识类名、方法名、变量名、接口名、常量名
某些Java已经定义好的标识符是不能修改的,如:main
命名规则和命名规范有什么区别 ?
命名规则是语法,不遵守就会报错。
命名规范是大家统一的命名方法,命名方法不一致的代码是可以编译通过的,但是你的代码风格和大姐不一致,那么你的代码可读性就会很差。
规则类似于:现实世界中的法律。
规范类似于:现实世界中的道德。
标识符的命名规则:
1、标识符由字母(包括中文)、数字、下划线、$组成。
2、标识符的首字母以字母、下划线或$开头,不能以数字开头。
3、标识符的命名不能与关键字、布尔值和null相同。
4、标识符区分大小写,没有长度限制,坚持见名知意原则。
5、标识符不能用空格分隔、关键字不能做标识符
标识符的命名规范:
1、见名知意
2、遵循驼峰命名规则(一高一低),有利于单词与单词之间很好的进行分隔
3、类名、接口名每个单词的首字母==都要大写 ==如:StudentAgeTest
4、变量名、方法名第一个单词首字母小写、后面单词首字母大写 如:getStudentAge
5、常量名:所有字母全部大写,单词和单词间用下划线连接 如:MAXNAME_AGE
关键字:
在开发Java语言时,提前定义好了一些具有特殊含义的单词,这些单词全部小写,具有特殊含义,不能用作标识符。
变量:
1、关于程序中的数据?
开发软件是为了解决现实世界中的问题。
而现实世界中,很多问题都是使用数据进行描述的。
所以软件执行过程中最主要的就是对数据的处理。
Java中如何表示数据呢?------字面量
在Java语言中“数据”被称为“字面量”
如:10、false、“bad”、‘s’
字面量有很多类型:
整数型字面量、浮点型字面量、布尔型字面量、
字符串字面量、字符型字面量
思考:以下三个10在内存中是一块空间还是三块空间?
System.out.println(10);
System.out.println(10);
System.out.println(10);
==答:虽然都是10,但是三个整形变量10占用了三块不同的内存空间
所有只有“字面量”机制是远远不够的,只要字面量内存是无法重复利用的
//定义/声明一个变量I
Int i=10;
System.out.println(i);
System.out.println(i);
System.out.println(i);
这样三个i就只占用了一块内存空间
2、什么是变量?
顾名思义。变量就是可以改变的量
是内存中存储数据最基本的单元
三要素:数据类型、变量名、变量值(字面量)
变量是标识符
在同一个域中变量名不能重名
变量分类:全局变量、局部变量、成员变量
变量的作用域:
成员变量,声明在类中,不属于任何一个方法,作用域是整个类。
局部变量是指在方法或者方法代码块中定义的变量,其作用域是其所在的代码块。
类级变量又称全局级变量或静态变量,需要使用static关键字修饰。类级变量在类定义后就已经存在,占用内存空间,可以通过类名来访问,不需要实例化。
3、数据类型
根据不同的数据类型,JVM会分配不同的内存空间大小
数据类型在Java中包括两种:
1、基本数据类型
4大类8小种:
第一类:整数型
第二类:浮点型
第三类:布尔型
第四类:字符型
8小种:
Byte,short,int,long
Float,double
Boolean
char
2、引用数据类型
字符串型string属于引用数据类型
Java中除了基本数据类型之外,剩下的都是引用数据类型。
4、转义字符 ‘’
char a = '\t';
\t实际上是一个字符,属于字符串
5、类型转换
小容量可以直接赋值给大容量,成为自动类型转换
如: long x = 10000;
大容量不能直接赋值给小容量,需要使用强制类型转换(可能会有精度的损失)
如: int x = (int)100000011L
***结论:byte、char、short做混合运算时,各自先转换成int再做运算
多种数据类型做混合运算时,最终结果的类型是最大容量的数据类型
关于Java中的浮点数据类型:
float 4个字节
double 8个字节
注意:如果在银行或者财务方面,double类型也是远远不够的,Java提供了一种精度更高的数据类型(Java.math.BigDecimal)这是一种引用数据类型
float和double存储数据时都是存储的近似值
long类型占用8个字节
float类型占用4个字节
但是::float容量>double容量
注意:任意一个浮点型都比整数型空间大
Java中规定,任何一个浮点型数据默认被当成double来处理。如果想让这个浮点型字面量当做float类型来处理就需要在后面加上 f/F
容量:
byte<short(char)<int<long<float<double