1.变量的声明:数据类型+变量名 eg:int a ;
2.变量的初始化:(1)声明并赋值 eg:int a = 10;
(2)先声明再赋值 eg:int a;a = 10;
3.变量的使用:(1)变量的操作必须与数据类型匹配;
(2)变量在使用前必须声明并初始化;
4.变量的命名:(1)只能包含字母数字和_和$符,并且不能以数字开头;
(2)严格区分大小写;
(3)不能使用关键字;
(4)允许中文命名,但不建议,建议英文的见名知意(驼峰命名法和帕斯卡命名法);
1.整数类型
int 4字节(32位) -21多亿~ 21多亿
short 2字节(16位) -32768~32767
long 8字节(64位) -2的63次方~2的63次方-1
byte 1字节(8位) -128~127
2.浮点类型
float 4字节(32位) -3.4e+38 ~ 3.4e+38 0.0f Float
double 8字节(64位) -1.7e+308 ~ 1.7e+308 0 Double
3.字符型
char 2字节(16位)(0~65535)
4.布尔型
boolean 1字节(1位) true, false
注:int:整数相除,结果还是整数,小数无条件舍弃,运算时,若超范围则会发 生溢出;
long:若有可能溢出,在第一个数后面加L;
double:若想表示float,在数字后面加F或f,double和float数据在运算时,有可能发生舍入误差(精确场合不能使用);
char:特殊字符需要通过""来转义 ,字符型直接量必须放在单引号中,有且只能有一个; ‘0’-48,‘a’-97,‘A’-65
1.两种方式
byte
(2)强制类型转换(不能超出范围) 大 ——> 小
2.两点规则
(1)整数直接量可以直接赋值给byte,short,char,只要不超范围即可;
(2)byte,short,char型数据参与运算时,系统一律将其转换为int再运算;
1.JVM:java虚拟机,加载.class并运行.class
2.JRE:java运行环境,除了包含JVM以外,还包含了运行java程序所必须的环境;JRE = JVM+java系统类库(最小的运行环境)
3.JDK:java开发工具包,除了包含JRE以外,还包含了开发java程序所必须的,命令工具; JDK=JRE+编译、运行等命令工具 (最小的开发工具包)
加+、减-、乘*、除/、取余%、++、–
取余:余数为0即为整除
++/–:可在变量前也可在变量后,在前:先运算再赋值,在后:先赋值再运算
大于>,小于<, 大于等于>= ,小于等于<=,不等于 !=
与&&,或||,非 !(),结果都为boolean的值
&&短路:如果前面的判定条件结果为false,则后面的语句就不会执行,遇false则false
||短路:如果前面的判定条件结果为true,则后面的语句就不会执行,遇true则true
“+” : System.out.println(3+4+“tedu”+3+4); 结果:7tedu34
加等+=,减等-=,乘等*=,除等/=,取余等%=,
boolean表达式?表达式1:表达式2
若表达式结果为true,执行表达式1;
若表达式结果为false,执行表达式2;
一条路
if(boolean){
语句块
}
执行过程:判断boolean值,为true执行语句块,为false不执行语句块
两条路
if(boolean){
语句块1
}else{
语句块2
}
执行过程:判断boolean值,为true执行语句块1,为false不执行语句块2
多条路
if(boolean){
语句块1
}else{
语句块2
}if(){
语句块3
}
执行过程:判断boolean值,为true执行语句块1,为false不执行语句块2,若都不符合,则执行语句块3
多条路
优点:效率高,结构清晰
缺点:整数,相等
break:跳出switch
default:所有case都未匹配时才会执行
for(){
}
(1)应用率最高,与次数相关
(2)循环变量作用范围仅在当前的for中
(3)特殊形式:for(;;){}死循环(无条件)
continue:应用率不高,只能在循环中使用
跳过循环体中剩余语句而进入下一次循环
语法:while(boolean值){语句块}
先判断后执行,循环体有可能一次都不执行
do{语句块}while(boolean值);
先执行后判断,至少执行一次
(1)循环中套循环:外层控制行,内层控制列;
(2)执行过程:外层循环走一次,内层循环走所有一次;
(3)建议:嵌套层数越少越好,若业务必须通过三层以上的循环解决,说明设计有问题;
(4)break只能跳出一次循环;
三要素:
(1)循环变量的初始化;
(2)条件(以循环变量为基础);
(3)循环变量的改变(向着循环的结束变);
选择规则:
先看是否与次数相关,若与次数相关,用for循环,若与次数无关,再看要素1与要素3是否相同,若相同,用do while循环,若不相同,则用while循环
1.一种数据类型(引用类型)
2.相同数据类型的集合
int[] arr = new int[10];
int[] arr = new int[10];
int[] arr = {1,3,5,7,9};
int[] arr = new int[]{1,3,5,7,9};
int[] arr ;
arr = new int[]{1,3,5,7,9};
通过数组名.length可以获取数组的长度(元素的个数);
通过下标/索引来访问数据中的元素,下标从0开始,最大到数组的长度减1;
(1)System.arraycopy(a,1,b,0,4);
a:原数组 1:原数组的起始下标 b:目标数组 0:目标数组的起始下标 4:复制的元素个数
(2)int[] a = {10,20,30,40}; int[] b = new int[4];
int b = Arrays.copyOf(a,6)
a:原数组 b:目标数组 6:目标数组的长度
int[] a = {10,20,30,40};
a = Arrays.copyOf(a,a.length+1)
Arrays.sort(arr); 升序排列
1.封装一段特定的业务逻辑功能;
2.尽可能的独立,一个方法干一件事;
3.方法可以多次反复调用
4.减少代码重复,有利于代码的维护,有利于团队的协作
修饰词 返回值类型 方法名(参数列表){
方法体
}
方法名:命名要符合变量的命名规则,见名知意;
参数列表:方法可以有参,也可以无参
注:有参可以使方法更加灵活,无参意味着数据都是写死的;
方法体:具体的业务逻辑功能实现代码;
1.无返回值:方法名(有参传参)
2.有返回值:方法中必须由return来返回数据类型,并且return后的数必须与返回值类型匹配
3.return
(1)return 值; 结束方法的执行,返回结果给调用方(有返回值的方法中);
(2)return ; 结束方法的执行(无返回值的方法中);