java 基础 2
来源:互联网 发布:富士康java开发笔试题 编辑:程序博客网 时间:2024/05/22 03:22
一.分支结构
1、if语句:
(1) if(){
}
(2) if(){
}else{}
(3) if(表达式1){
执行语句1
}else if(表达式2){
执行语句2
}else if(表达式3){
执行语句3
}else{
执行语句4
}
switch(表达式){
case 值1:
语句体1;
break;
case 值2:
语句体2
break;
......
default:
break;
}
3、if - else 和 switch - case 区别:
(1)适用场景不同:
①要判断区间范围时,用 if - else
②要判断单个的定值时,用 switch-case (值不多的时候 switch比if快,效率略高)
(2)语句的表达式值类型不同:
① if(表达式) : boolean、 true、false
②switch(表达式) : byte、short、int、char、枚举、String
二.循环结构
1、while循环
语句格式:
初始化语句;
while(判断条件语句){
循环体语句;
控制条件语句;//不一定要写 不写就死循环 没有跳出循环的可能性了
}
2、do-while循环
语句格式:
初始化语句;
do{
循环体语句;
控制条件语句;
}while(判断条件语句);
3、for循环
语句格式:
for(初始化语句;判断条件语句;控制条件语句){
循环体;
}
4、for、while和do-while三种循环的异同点
(1)do-while循环至少执行一次循环体
(2)for循环和while循环的初始化变量的作用域不同 :
① for循环只在循环体内部可以使用
② while在方法体中可以继续使用
三.方法的重载
概念:在同一个类中,方法名相同,参数列表不同、顺序不同,类型不同与返回值无关。
四.递归
递归:由此及彼,以此类推,自己调用自己的过程
两个步骤:
1、给程序一个出口,当满足这一条件的时候,循环结束
2、在符合条件的情况下,简化同性质的问题,调用自己,得到问题的答案
五.数组
1、 数组就是用来存储同一种数据类型,定长的容器。数组是引用数据类型。
2、数组的好处:
(1)数组可以存储多个同类型数据
(2)数组可以给这些数据从0开始编号,方便操作这些数据
3、语法格式:
(1)动态初始化:
数据元素类型 [] 数组名 = new 数组元素类型 [数组中的元素个数];
int [] x = new int[3];
(2)静态初始化
①数组元素类型 [] 数组名 = new 数组元素类型[]{元素1,元素2....};
int [] x = new int[]{20,30,40};
②数组元素类型 [] 数组名 = {元素1,元素2.....};
注意:静态初始化[] 不写长度 会根据你元素的多少 给数组长度
4、什么时候用静态初始化?什么时候用动态初始化?
(1)当确定了元素内容,就用静态初始化.(静态初始化格式 new 数组元素类型[])
(2)当确定了数组长度,不确定元素内容,用动态初始化
5、遍历数组的两种方式
(1)普通for循环
for(int i=0;i<x.length;i++){ //i不只是循环条件 还是数组的角标 从0开始
System.out.print(x[i]+" ");
}
(2)增强型or循环[ForEach循环]
for(数组中元素的类型 变量 : 数组名){
数组中的元素类型 临时变量 = 变量;
}
(3)普通for循环与增强型or循环区别:
①普通for循环的变量代表角标,在循环体中,可以获取角标 /元素,可以进行复杂的操作
②增强型for循环的变量代表的是数组中的元素,不存在角标的意思
6、数组的排序:
排序也是比较 但是和求最值有些不同 从小到大排序 或者从大到小
(1)选择排序
选择一个位置 拿这个位置的值不断和其他位置的值进行比较
(2)冒泡排序
相邻两个元素 进行比较
(3)快速排序
①设置起始点 、结束点和一个基准值
②将比基准值小的移动到左边,比基准值大的移动到右边
起始点 循环 右移
结束点 循环 左移
③让比 基准值小的范围扩大,让比基准值大的范围扩大
当起始点和结束点错开后,证明第一轮循环结束
递归去反复做②③步
7、数组角标的查找:
(1)顺序查找
(2)二分查找(折半查找)
前提:必须是有序数列,升序或降序都可以
通过将待查找的元素与中间索引值对应的元素进行比较,
若小于中间元素,去左边end = middle-1
若大于中间元素,去右边 start = middle+1
继续折半,直到当arr[middle] == 元素时就找到了,否则返回一个负数。
- Java基础--基础语法2
- Java基础 -- 线程2
- java基础2
- java基础(2)
- java基础1、2
- Java基础2
- java基础笔记2
- java基础2
- java基础 - 2
- java编程基础2
- java基础语法2
- Java基础学习2
- java基础复习--2
- JAVA 基础加强2
- Java基础笔记2
- Java基础2
- java基础--连载2
- java基础2
- git命令大全
- 87年兔竟然和88年龙是绝配,以后不要拿兔龙不合当借口了。
- iptables删除已有的iptables规则-yellowcong
- 单链表的建立、测长、删除、插入、排序、逆置及打印(数据结构)
- 47-不用加减乘除做加法
- java 基础 2
- 【面经笔记】范围搜索/最近邻搜索
- vb.net 教程 3-4 窗体编程 公共控件11 ToolTip
- 蛇形填数
- Android 属性动画 源码解析 深入了解其内部实现
- 深入分析C++中deque的使用
- c++实现顺序表、单链表和双向链表
- Linux c文件操作总结
- Tomcat Server.xml详解