Java基础
1、注释
定义:注释就是给程序说明的作用,我们要养成写注释的良好习惯,增强代码的可读性。Jvm运行时注释不会被解析。Jvm会跳过注释。
1.单行注释语法:注释代码中的一行,建议大家放在要注释的代码的上面 //
2.多行注释:通常用于方法内的多行或者类的多行注释 /*…*/
3.文档注释:用于类的说明和方法的说明
/**
*
*/
2、标识符
定义:在java语言中,对各种变量,方法和类等要素命名时所使用的字符序列就是标识符。
java中标识符由26个英文字符大小写,数字0-9,符号_ $。注意:数字不能开头。
java中是严格区分大小写。
在实际写程序的过程中定义标识符遵守“见名之意”。
(1)、代码规范
1.类名和接口的规范:
在上面的约束的命名规范的情况下,首字符要大写。如果由多个单词构成每个单词的首字符都大写。
XxxYyy
如:PersonService
2.变量名和方法名:
在上面的约束的命名规范的情况下,我们遵守单词首字符不要大写,如果由多个单词构成,从第二个单词起首字符都大写。这叫驼峰模式。
xxxYyyZzz
如:personDao
3.包名
在上面的约束的命名规范的情况下,都小写。
xxx.yyy.zzz
4.常量
所有字符都大写,多个单词之间使用下划线来分隔。
XXX_YYY_ZZZ
(2)、关键字
Jdk定义的标识符就是关键字,我们不可以使用。所以我们定义标识符的时候一定要避开关键字。
用于定义数据类型的关键字:
数据类型 | 数据类型值 | 流程控制 | 权限修饰符 |
---|---|---|---|
class | true | if | private |
interface | false | else | protected |
int | null | switch | public |
3、数据类型
Java的数据类型:基本数据类型(8种)+引用数据类型
引用数据类型:类、接口、数组
基本数据类型:布尔类型(boolean)、字符型(char)、数值型
数值型:整数类型(byte、short、int、long)、浮点类型(float、double)
拓展:
//整数拓展:进制 二进制0b 十进制 八进制0 十六进制0x
int i=10;//10
int i2=010;//8
int i3=0x10;//16
//浮点数拓展:银行业务怎么表示钱?---BigDecimal 数学工具类
//float 有限 离散 舍入误差 大约 接近但不等于
//double
//最好完全避免使用浮点数进行比较
float f=0.1f;//0.1
double d=1.0/10;//0.1
System.out.println(f==d);//false
float f1=232323232323232f;
float f2=f1+1;
System.out.println(f1==f2);//true
//转义字符
// \t 制表符
// \n 换行符
//JDK新特性,数字之间可以用下划线分割
int i=10_0000_0000;//1000000000
4、类型转换
自动转换:byte-->short-->int -->long-->float-->double
强制转换:当大容量类型的变量向小容量的类型去转换需要强制转换。格式:(类型名)表达式
5、变量
变量定义:程序在运行期间,不断发生变化的量。(变量是存储数据的一个基本单元)
变量要素:变量名、变量类型、作用域。
变量作用域:类变量、实例变量、局部变量。
类变量:static
实例变量:从属于对象,不自行初始化,则有默认值。
局部变量:必须声明和初始化值。
常量定义:程序在运行期间,不发生变化的量。(final)
6、运算符
(1)算数运算符
一元运算符:
++、--给数值变量自身加1或减一(i++:先使用后对自身加一;++i反之)
二元运算符:
+,-,*,/,%
三元运算符:
a>100?200:500;
(2)赋值运算符
=,+=,-=,*=,/=, %=
=:将左边的数值赋给右边的变量
+=:int x = 2;x+=3;相当于x=x+3
(3)比较运算符
== 等于
!= 不等于
> 大于
>= 大于等于
< 小于
<= 小于等于
(4)逻辑运算符
&&:两个变量都为真,结果才为true。
||:两个变量有一个为真,则结果为true。
!:取反
拓展:
位运算符:&,|,<<,>>
&不同变0 |不同变1
<<:*2 >>:/2
2*8=16 ==> 2*2*2*2 ==> 2<<3
7、程序的流程控制
(1)if
1.if
语法:if(条件判断表达式){
执行语句
}
2.if…else
语法:if(条件判断表达式){
执行语句
}else{
执行语句
}
3.多重 if….else if…else
语法: if(条件判断表达式){
执行语句
}else if(条件表达式1){
执行语句
}else if(条件表达式2){
…
}else{
}
(2)switch
swtich的表达式只能是byte, short, char, int, String
switch(表达式){
case 常量1:
执行语句1;
break;
case 常量2:
执行语句2;
break;
…..
default: //默认
执行语句 ;
break;
}
(break只能用于循环和switch)
(3)循环
1.while
语法:while(表达式){
循环体
}
表达式结果如果是true那么就执行循环体,如果是false就结束循环
2.do…while
语法:
do{
循环体
}while(表达式)
3.for循环
语法:for(表达式1; 表达式2; 表达式3){
循环体
}
表达式1:计数器的初始化,它只初始化一次
表达式2:循环条件的判断,多次执行
表达式3:修改计数器,多次执行
增强for循环:for(声明语句:表达式){
//代码块
}
continue:也是来控制循环,在某次循环的时候放弃,后续的接着循环。
8、函数(方法)
定义:方法是一段能完成独立功能的代码块。
修饰符 返回值类型 方法名(参数类型 参数名){
...
方法体
...
return 返回值;
}
如果方法的返回值是void,那么return;是代表程序的终止,如果方法要是有返回值那么就不能有return;
拓展:
1.值传递(Java)和引用传递
2.可变参数:在方法声明中,在指定参数类型后加一个省略号(...)。(一个方法中只能指定一个可变参数,它必须是方法的最后一个参数,任何普通的参数必须在它之前声明)
3.递归:自己调用自己。
9、重载
定义:在同一个类中函数(方法)名字一样,参数列表不一样(1参数个数不一样,或者对应索引位类型不一样)的两个方法是重载关系,跟返回值一点关系没有。
10、数组
数据类型[] 数组名=new 数据类型[整数];
整数:数组的长度
三种初始化:
1.静态初始化:int[] a={1,2,3};
2.动态初始化:int[] a=new int[2];
3.默认初始化:数组是引用类型,它的元素相当于类的实例变量,一经创建每个元素默认初始化。
小结:
1.数组是相同数据类型(数据类型可以为任意类型)的有序集合。
2.数组也是对象。数组元素相当于对象的成员变量。
3.数组长度是确定的,不可变的,如果越界,则报错:ArrayIndexOutofBounds
多维数组:数组的数组(二维数组:int[][] a=new int[2][5];)
稀疏数组:当一个数组中大部分元素为0,或者为同一值的数组时,可以使用稀疏数组来保存该数组。