Java语言基础(二)
一、编程基础(查漏补缺)
运算符
1.算术运算符
+可做字符串连接 从左到右运算 只要碰上字符串,就是字符串的人了!
(注:A 65 a 97 0 48
2.赋值运算符
= (注:int a = a+10;× a未定义前就使用
+= 加后赋值 隐含强制类型转换 能用+=则用+=
(注:short s = 10; s+=20;√ s = s+20;× s = (short)(s+20);√
-= *= /= %=
3.自增自减运动算符
++ --
4.关系运算符
作用:判断 结果一定为true/false
> < >= <= == !=
(注:区分==和=的区别;String不可用> < >= <=,可用== !=,但是不是比较内容,比较结果会不正确,不用==和!=比较字符串内容
5.逻辑运算符
&逻辑与 “并且” 有false则false
|逻辑或 “或者” 有true则true
!逻辑非 “非”
^逻辑异或 “异或” 相同为false 不同为true
短路逻辑运算符 &&短路与 左边若为false则右边不执行 ||短路或 左边若为true则右边不执行
6.三元运算符 判断
关系表达式 ?表达式1 :表达式2
关系表达式为true->表达式1的值为结果,否则表达式2的值为结果
流程控制语句
1.顺序结构
2.分支语句
if语句
switch语句 表达式为byte short int char(注:JDK5以后可以是枚举,JDK7
switch(表达式){
case 值1:
语句体1;
break;
...
default:
语句体n+1;
[break;]
}
(注:case穿透 多个case对应一个语句体;case default之间没有顺序要求
3.循环结构
for循环语句 每一次都执行条件判断语句
(扩展:任意数字指定为上的数字如何求?-先用整除操作将哟啊求的数字移动到各位上,再使用取余操作取出最后一位上的值
while循环语句
do...while循环语句
(注:三种循环区别
1)do...while先做一次循环体再做判断 for while 先执行再判断
2)死循环 for一直循环 while(true)一直循环<一般使用> do...while(true)一直循环
3)注意局部变量和全局变量的关系
跳转控制语句
continue 用在循环中 基于条件控制 跳过某次循环体内容的执行,继续下一次的执行
break 用在循环中 基于条件控制 终止循环体内容的执行 结束当前的整个循环
循环嵌套
循环语句中包含循环语句
Random
作用:产生一个随机数
1.导包 import java.util.Random;//导包的动作必须出现在类定义的上面
2.创建对象 Random r = new Random();//r是变量名可以变,其余不可变
3.获取随机数 int number = r.nextInt(10);//获取数据的范围[10)
数组
多个相同类型 一次性声明大量用于存储数据的变量 要存储的数据都是同类型的数据
数组类型[] 变量名 定义int数组<推荐>
数组类型 变量名[] 定义了一个int型变量 变量名是数组
初始化
为数组中的数组元素分配内存空间
动态初始化:只指定数组长度 系统分配数组初始值 int[] arr = new int[3];
静态初始化:指定每个数组元素的初始值 由系统判定数组长度 int[] arr = {1,2,3};
内存分配
默认值:整数数组0 小数数组0.0 字符数组'\u0000' 布尔数组false String以及其他引用型数组null
常见问题
索引越界:访问了数组中不存在的索引对应的元素,造成索引越界问题ArrayIndexOutOfBoundException
空指针异常:访问的数组已经不再指向堆内存的数据,造成空指针异常NullPointerException
数组常见操作
1.遍历
获取数组元素数量 数组名.length
通用遍历格式 for(int i = 0; i<arr.length; i++){System.out.println(arr[i])};
2.获取最值
定义一个变量 用于保存最大值
取数组中的第一个数据作为变量的初始值
与数组中剩余的数据逐个对比,每次对比将最大值存到变量中
方法
先创建再使用 创建后手动使用后才执行
定义时数据类型与变量名不能少 调用时参数的 数量与类型必须与方法定义中的设置相匹配,否则程序将会报错
形参:方法定义中的参数 等同于变量定义格式
实参:方法调用中的参数 等用于使用变量或常量
方法的返回值通常会使用变量接收,否则该返回值将无意义
(注:方法不能嵌套定义;void表示无返回值,可省略return,也可单独书写return,后面不加数据;return还可以还可以起到跳出当前方法的作用
方法重载
同一个类中定义的多个方法之间的关系
满足:多个方法在同一个类中,多个方法具有相同的方法名,多个方法参数不相同,类型不同或者数量不同
重载仅对应方法的定义,与方法的调用无关
仅针对同一个类中方法的名称与参数进行识别,与返回值无关
方法的参数传递
基本数据类型,形参的改变不影响实际参数的值;引用类型的参数,形参的改变,影响实际参数的值(数组)