Java 阶段性学习总结
一、Java运算符
运算符:
指明对操作数的运算方式的符号,如+、-、* 、/、等等
表达式
用运算符连接起来的符合Java 规则的式子,称为表达式,如a+b
1、 算术运算符:
+ 正号
- 负号
+ 加
- 减
* 乘
/ 除
% 取模
++ 自增(前)
++ 自增(后)
-- 自减(前)
-- 自减(后)
+ 字符串相加
/ 和 %
a/b 计算的结果是a除以b的商
a%b 计算的结果是a除以b后的余数
++a 和 a++
a++ 是先运行,后自增
++a 是先自增,再运行
2、 赋值运算符:
= 赋值
+= 加等于
-= 减等于 ;
*= 乘等于 ;
/= 除等于 ;
%= 模等于
运算顺序
先计算右边,将结果赋值给左边的变量
a+=2 和 a=a+2意义相同
a-=3 和 a=a-3意义相同,其它类推
3、 关系运算符:
== 相等于
!= 不等于
< 小于
> 大于
<= 小于等于
>= 大于等于
instanceof 检查是否是类的对象 ;
“Hello” instanceof String ------ true
运算结果
关系运算符的结果都是boolean型,不是true,就是false
==运算符:
关系运算符“==”不能误写成“=”
4、 逻辑运算符:
& AND(非短路与)
| OR(或)
^ XOR(异或)
! Not(非)
&& AND(短路)
|| OR(短路)
逻辑运算符用于连接关系表达式
在Java中表达式不可以写成 3<x<6,应该写成 x>3 & x<6
“&”和“&&”的区别:
&时,左边无论真假,右边都进行运算
&&时,如果左边为真,右边参与运算,如果左边为假,右边不参与运算
“|”和“||”的区别同理,双或时,左边为真,右边不参与运算
5、 三元运算符:
格式
条件表达式?表达式1:表达式2;
如果条件表达式结果为true,运算后的结果是表达式1
如果条件表达式结果为false,运算后的结果是表达式2
二、分支结构
If的三种语句:
1、If(条件表达式){
表达式返回true的时候要执行代码
}
2、If(条件表达式1){
表达式1返回true的时候要执行代码
}else if(条件表达式2){
表达式2返回true的时候要执行代码
}
3、If(条件表达式1){
表达式1返回true的时候要执行代码
}else if(条件表达式2){
表达式2返回true的时候执行代码
}else{条件1与条件2都不满足的其他情况要执行的代码}
switch语句
switch(变量){变量类型:byte short int char /1.7版 本后支持string
case 1:
代码;
break;
case 2:
代码;
break;
case 3:
代码;
break;
default
代码;
}
三、循环结构
while 循环
语法:
while (条件)
{
需要执行的代码
}
do/while 循环
do/while 循环是 while 循环的变体。该循环会执行一次代码块,在检查条件是否为真之前,然后如果条件为真的话,就会重复这个循环
语法:
do
{
需要执行的代码
}
while (条件);
无限循环
只要指定条件为 true,循环就可以一直执行代码
for 循环
for (语句 1; 语句 2; 语句 3)
{
被执行的代码块
}
语句 1 在循环(代码块)开始前执行
语句 2 定义运行循环(代码块)的条件
语句 3 在循环(代码块)已被执行之后执行
while 和 for的区别
while:一般用于无限次循环
for:一般用于 固定次数的循环
四、数组
数组:存储一组数据
数组是在java内存空间中 分配了一段连续的空间
声明数组:
公式:数据类型 [ ] 数组名; 推荐使数 据 类型 数组名[ ];
赋值:
1、静态赋值
1)数组名 = {元素1,元素2,……};元素就是我们要存储进数组的数据 (精简版) 不能将声明和赋值分开写
2)数组名 = new 数据类型 []{元素1,元素2,……}; (完整版)
2、动态赋值
数组名 = new 数据类型[数组大小];
取数据:
* 数组名[对应下标];
* 存放数据:
* 数组名[对应下标] = 值;
* 直接获取我们数组的长度:
* 数组名.length
二维数组:
一维数组中的元素是另一个一维数组
声明:
* 数据类型 [ ][ ] 数组名;
* 静态初始化:
* 1、简单版: int[ ][ ] arr = {{1,2,3},{4,5,6},{7,8,9}};
* 2、完整版:int[ ][ ] arr = new int[ ][ ]{{1,2,3},{4,5,6},{7,8,9}};
* 动态初始化:
* int [ ][ ] arr = new int [2][3];
* [2]: 外层数组有多少个元素 (行数)
* [3]: 内层数组有多少个元素 (列数)
五、随机数
随机数:随机产生的数据
产生随机数的方式:
1、
* Math.random() 产生的是小数 [0~1):包含0 不包含1
* (int)(Math.random()*100): 产生0~100的整数 不包括100
* 产生 1000 ~ 10000 之间的随机数?
* (int)(Math.random()*9000+1000)
2、Random
1>、创建随机数工具Random
* Random random = new Random();
* random.nextInt(10) : 产生 10以下的随机数
六、冒泡排序
原理
两两之间进行比较,满足条件交换位置
总结
排的轮数比数列的长度少一
双层for循环
第一层:比较的轮数
第二层:比较的次数
例
public class 冒泡排序 {
public static void main(String[] args) {
int [] arr = {15,49,33,21,1};
for(int x = 0;x<arr.length-1;x++){//比较轮数
for(int y = 0;y<arr.length-1-x;y++){//比较次数
if(arr[y]>arr[y+1]){
int temp = arr[y];
arr[y] = arr[y+1];
arr[y+1] = temp;
}
}
}
System.out.println(Arrays.toString(arr));
}
}
七、方法
方法
具有某一个特定功能的代码,封装提取成一个方法
方法的好处:
1.提高代码的复用率
2.减轻main方法的压力
3.使用代码看起来干净利落
方法的格式:
修饰符 返回值类型(参数类型 参数名,参数类型 参数名){return值}
2:方法中怎么判断是否有参数和返回值
:是否需要操作数据——参数
有没有结果————返回值