一、java基础:
1、基础语法:
1.1:注释
//单行注释
/* / 多行注释
/* */ 文档注释:一般写在 class、interface、enum、method、属性上面
javadoc -d doc xx.java
1.2:标识符
定义:给 class package interface(接口) enum method field variable 所起的名字,名字就叫标识符。
标识符的命名规则:
1、 不能是数字开头
2、 可以用字母 数字 _ $
3、 大小写敏感
4、 没有长度限制
5、 不能是关键字,保留字
1.3:关键字
关键字:java中有特殊含义的、修饰的单词package public class static int
保留字
1.4:数据类型
1)基本数据类型:
boolean: true | false
char: 单个字符 16 bit(16位二进制)四种赋值方式
整型:
byte: 1字节 8 bit
short: 16bit
int : 32bit
long: 64bit
浮点型:
float: 32bit
double: 64bit
2)引用数据类型
生活中的对象(事物)------》抽象-------》class(类)------》机器中的对象
抽象:关注的点抽象出来
1.5:数据类型转化
1、 整型和整型之间,浮点型和浮点型之间窄类型转宽类型,隐式转换
2、 整型和整型之间,浮点型和浮点型之间宽类型转窄类型,显式转换
3、 整型转浮点型隐式转换;浮点型转整型显示转换
1.6:变量
变量:
数据类型 变量名; //声明变量
变量名=value; //第一次赋值,叫初始化
变量名=value; //赋值
数据类型 变量名=value; //声明并初始化
实例变量:
1、 在类中声明的变量,是实例变量
2、 实例变量的作用范围是依赖与实例的(对象);创建类的实例时,类中声明的实例变量存在;对象(实例)引用不到时,实例变量消失。
3、 实例变量在使用之前也要进行初始化;在创建对象(实例),jvm会对对象的实际变量进行默认初始化;不同数据类型的实例变量,默认初始化的值不同
byte int short long 0
float double 0.0
char ‘\u0000’
boolean false
引用类型 null
局部变量:
1、 方法、匿名块、静态块、语句块中定义的变量都是局部变量
2、 声明的位置开始,到变量所在的{ }结束,变量都可以起作用
3、 局部变量在使用之前,必须进行初始化
-
1.7:操作符 int i=value a+b=value value=a+b
-
instanceof 变量 instanceof 数据类型
(引用类型)变量是否是后面的数据类型,如果是返回 turn;如果不是返回false
-
移位运算符:
>>:右移 <<:左移
>>>:无符号位右移int i=3;
int res=i>>2;
0000 ……… 0000 0011二进制运算符
&:与 两个都是1 才为1 其他情况都是0
|:或 两个都是0 才是0
^:异或 相同为0 不同为1
~:非逻辑运算符:
&&:逻辑与
符号两边都是布尔表达式,只有两边都是true ,整体结果为true|| :逻辑或 符号两边都是布尔表达式;只有两边都是false,结果整体为false
三目运算符:
boolean ? value1:value2;
boolean 如果是true;表达式结果就是:前面的
boolean 如果是false;表达式结果就是:后面的
1.8:流程控制语句
条件控制语句:
if else
注意:
1、如果代码块只有一行代码,可以不用写{};
2、if的语句块执行完之后,下面的代码还是会执行的switch case
注意:
1、 variable变量必须是 int ;short ;char; byte ;enum ;(jdk1.7)后可使用String 类型
2、 case到的语句块中有break;switch语句结束;如果没有break语句,下面的语句块都要执行,直到遇到break语句,switch语句才结束
3、 default语句块可以放在switch中的任何位置
循环控制语句:
for
for(var;bool;altervar){
block;
}
-while(bool){
block;
}
do while(先判断代码块,在执行布尔类型)
do{
block;
}while(bool);
- 其他控制语句:
- break [lable]退出当前循环
continue[lable]:退出当前循环的当次循环,进入当前循环下一次循环
1.9:数组 在程序运行当中,临时存放相同数据类型数据的容器;数组也是个对象。 使用容器:
1、 创建容器:
数据类型【】 变量名=new 数据类型【length】
数据类型 变量名【】=new 数据类型【length】
2、 向容器中放数据:数据下标称为:下标或index或索引
变量名【index】=value;
3、 从容器中取数据
变量名【index】
1.10:数组的数组
- 声明:
数据类型【】【】 变量名;
数据类型 变量名 【】【】;
初始化数组的数组(创建数组对象):
数据类型【】【】 变量名=new 数据类型【length】【】;
1)、开辟一个长度为length连续的空间;
2)、准备在每一个空间的位置放一个数组;要放置的数组还没有;所以在长度为length的数组中的每一个位置放一个默认值null
数据类型【】【】 变量名=new 数据类型【length1】【length2】;
1)、开辟一个长度为length1的连续空间
2)、在length1的空间的每一个位置都放置一个长度为length2的数组
3)、对length1对每一个位置中的长度是length2对数组中每一个位置进行初始化
初始化的值由声明数组时的数据类型决定
-
获取数据/放数据:
变量名【index1】【index2】
length属性: 变量名.length;
变量名【index1】.length;1.11:数组的copy
1、 原有的数组长度不够使用的时候;需要创建长度更长的数组来存放更多的数据
2、 把原有数组里面的数据放到新数组;
System.arraycopy(src, src0p, dest, dest0p, length);
src:原有的数组
src0p:要copy原有数组从哪一个位置开始copy
dest:新的数组(copy到的目标数组)
dest0p:要把原有数组中的数据放入目标数组中时,从目标数组的哪一个位置开始
length:要copy的原有数组的数据个数
1.12:可变参数
1、 可变参数必须放在方法后面的小括号中;
2、 如果方法有多个参数,那么可变参数必须作为方法的最后一个参数
3、 调用有可变参数的方法时,可变参数的位置可以传任意一个数据
4、 在有可变参数的方法中使用可变参数时,像使用数组一样使用可变参数