Java基础知识点
关键字:Java预定义的有特殊含义的单词(Java提供了50个)
特点: 都是小写字母组成;
都是有特殊含义的;
常用的开发工具能够变颜色的一些标识符。
注意:关键字不能作为标识符!
标识符:Java对包、类、方法、参数和变量等要素命名时使用的字符序列称为标识符。
规则:必须准守
1.由字母,数字,下划线_,美元符号$组成
2.不能以数字开头
3.Java对于大小写严格区分
4.不能是Java中的关键字
规范:
1.见名知意
2.不允许使用中文和拼音
3.满足驼峰命名法
4.命名的长度最好不要超过31个字符
一套开发中标准规范:
包,类,抽象类,接口,接口的实现类,变量,方法,常量
包(文件夹)
1.一般都是公司的域名反写
2.所有单词使用.隔开
3.每个单词都是小写组成
eg: www.sxt.com com.sxt.www
类(满足抬头骆驼) class
1.所有单词的首字母大写,其他字母小写
eg: HelloWorld IdentifiedDemo
接口: (满足抬头骆驼) interface
1.所有单词的首字母大写,其他字母小写
2.一般会在第一个单词的前面加上一个大写的I
eg: IStudent ITeacher
接口的实现类 (满足抬头骆驼)
1.所有单词的首字母大写,其他字母小写
2.一般都会在最后一个单词后面加上 Impl
eg: StudentImpl
抽象类(满足抬头骆驼)
1.所有单词的首字母大写,其他字母小写
2.在单词的开头一般都会加上 Abs
AbsStudent
变量 (满足低头骆驼)
1.第一个单词首字母小写,其他单词首字母大写
2.一般都是名词
eg: studentName studentScore score totalScore
方法(满足低头骆驼)
1.第一个单词首字母小写,其他单词首字母大写
2.一般都是动词
eg: getTotalScore getAverageScore getMaxValue getMinValue
常量:
1.所有单词都是大写
2.每一个单词都使用_隔开
eg: MAX_VALUE MIN_VALUE PI
变量: 在程序的执行过程当中,其值可以发生改变的量,类似于数学的未知数X
变量的定义:
变量的三要素:
1.声明
2.赋值
3.使用
注意:
1.变量一定要先声明再赋值再使用
2.变量不能够重复定义
3.变量不能够连续定义 int a = b = c = 10;
4.建议一行只写一条语句
常量: 在程序的执行过程中,其值不会发生改变的量
整型常量:二进制、八进制、十进制 、十六进制
小数常量:0.2F float类型的小数常量
0.2D double类型的小数常量
布尔常量:true false
字符常量:
1.字符常量由 '' 包裹
2.里面只能够有一个字符
3.转义字符可以由两个字符组成,第一个是\
字符串常量:
1.由双引号包裹
2.里面可以有一个字符也可以有多个字符
3.字符串里面可以是空串
null常量
自定义常量
变量在使用前必须对其声明, 只有在变量声明以后,才能为其分配相应长度的存储单元
注意事项:
每个变量都有类型,类型可以是基本类型,也可以是引用类型。
变量名必须是合法的标识符。
注意:
1.System.out.println();输出的都是数值的十进制
2.默认整型常量默认是 int 类型
3.默认小数类型就是 double 类型
4.字符的数量不会超过65535
5.windows系统的换行符是 \r\n \n \R
6.计算机最多能表示36进制
数据类型的分类
八大基本数据类型
整数类型 字节数 取值范围
byte 18bit = 256种状态 -128~127
short 2 -2^15 ~ 2^15-1
int 4 -2^31 ~ 2^31-1
long 8 -2^63 ~ 2^63-1
浮点类型
float 4 -3.403E38 ~ 3.403E38
double 8 -1.798E308 ~ 1.798E308
字符类型
char 2 0 ~ 65535 00000000 00000000
布尔类型
boolean 1 true false 000000000 00000001
注意:同样是8个字节的long和double类型,double>long是因为存储的方式不一样!
在处理金融相关的项目的时候,不能使用float和double类型来计算,因为会出现精度丢失
*类型转换
类型转换的依据: 取决于数据的取值范围,而不是字节数
byte -> short -> int -> long -> float -> double
注意:
1.char和byte/short有交集关系,而没有子集关系
2.其他的都满足子集关系
3.boolean不能参与类型转换
自动类型转换:将小类型赋值给大类型,系统会自动将小类型转换成大类型,不会出现任何问题
强制类型转换:将大类型赋值给小类型,可能会出现如下问题
格式:强制类型转换格式:目标类型 变量名=(目标类型)(被转换的数据);
a.精度的丢失
b.数据的溢出
byte/short 和 char 之间参与转换,都需要强制类型转换
byte/short特例 因为30正好在-127~128之间,所以可以通过编译
byte by2 = 30;
System.out.println(by2);
short s = (short)32768;
System.out.println(s);
表达式类型提升: 类型会自动向高类型转换
byte short char 之间参与运算,底层都会转换成int类型来计算
boolean类型不能够参与类型转换
字符串和任何类型进行加法运算都是拼接操作,在JavaScript中可以进行其他运算
变量计算和常量计算问题
a.常量计算,编译器会自动帮我们计算结果
b.变量计算,编译器无法帮我们识别类型和结果
交集范围关系的两种类型之间相互转换都需要强制类型转换
double类型不能参与比较!
在Java中int类型数据的大小比较可以使用双等号,double类型则不能使用双等号来比较大小,如果使用的话得到的结果将永远是不相等,即使两者的精度是相同的也不可以