一.while,do.....while.
1. while语法格式:
while(条件表达式){
循环体语句;
控制题语句;
}
举例:int a=1;
while(a<10){
//条件判断如果满足执行循环体内容
System.out.println("
如果a小于10那么我就循环");
a++; /
/一直累加到条件不满足结束循环
}
while的死循环与if和break一起使用
int cont=0;
while(ture){
//条件为ture,一直循环
cont++;
if(cont<10){
//判断是否成立
语句
//成立输入语句
}else{
//不成立执行break;
break;
//结束此循环体
}
}
2.do ....while语法格式:
do{
循环语句体;
控制体语句;
}while(条件表达式);
举例:int a=5;
//开始执行
do{ /
/执行输出语句
System.out.println("
我先循环一次在进行条件判断");
a++;
//累加a=6;
}while(a>5);//
判断不成立,但是前头输出语句已经执行过了
do...while 和 while 的区别:
od.....while不管条件表达式是否成立都先执行一次而while先进行
条件表达式,如果不成立就不执行。
二. for
语法格式:
1. for(初始化语句;条件表达式;控制体语句或者步长语句){
循环体语句;
}
举例:
for(int i=0;i<10;i++){
System.out.println("条件成立我就打印一次");
}
for怎么循环的:
for先进行括号里的初始化语句 int i=0; 然后判断 i<10 是否成立
如果成立那么执行循环体的语句,否则不运行本循环,成立后执行 i++
自增,在进行 i<10 的判断,如此循环直到条件不满足,结束循环。
-
for循环镶嵌
举例:正三角形
for(int i=0;i<10:i++){
//控制行 i=0;i<10执行循环体
for(int j=0;j<=i;i++){
//控制列 j=0;i<=i执行循环体打印*
System.out.print("*")
//
j++自增;j=1;j<=i不成立执行
结束j的循环 }
//i++自增;i=1;i<10执行循环;j在重新初始化
System.out.println();
//j=0;j<=i;打印*;j++;j<=i;在打印*;j++;j<=i不
}
//
成立;结束j的循环;然后 i++.....
三.switch语发格式
switch((表达式或者某个变量值){
case 值1:
语句1;
break ;
case 值2:
语句2:
break ;
...
default:
语句n;
break ;
}
执行流程
switch接收结果,
1)接收的结果和case后面的值1进行对比,成立,执行语句1,break 结束语句;
2)值1和switch接收的结果不匹配,和值2进行比较,成立,执行语句2, break,结束语句;
3)...
如果上面case都不匹配,执行default语句,语句n,break ,结束...
四.跳转控制语句
break:中断结束(结束循环或者switch)
continue:只是结束当前循环,继续立即进入下次循环(循环语句中使用)
return:结束方法的 (结束有具体返回值的方法)
1. break:不能单独使用,只能在循环中或者switch中用
2.continue:只是结束当前循环,继续立即进入下次循环
3.return:在那个方法中使用就结束那个方法,需要返回值
五.Java中的方法
方法定义格式:
有具体返回值的方法定义格式
public static 返回值类型 方法名(形式参数类型1 参数1,形参2 参数2,...){
//完成业务逻辑
return 具体结果值;
}
有具体返回值类型的方法的调用格式
在
main
方中
赋值调用
接收的结果类型
变量名
=
方法名
(
实际参数
1,
实际参数
2,...) ;
实际参数:直接赋值或者main中键盘录入
没有具体返回值类型的方法定义格式
public static void 方法名(形式参数1 变量名1,参数类型2, 变量名2){
完成业务后输出.....
}
调用格式:
单独调用
方法名(实际参数1,实际参数2.......)
方法重载
overload
:
为了某个功能扩展性,多个方法方法名可以相同(完全相同),参数列表不同,与
返回值无关
方法重载满足条件
方法名相同 参数列表不同 ,参数个数不同,参数类型的顺序不同
六. 数组
Java中数组就是容器,这个容器“只能存储同一种类型的元素”
在数组中定义格式
动态初始化
数据类型[] 数组名称=new 数据类型[数组长度];
举例: int []arr=new int[5]; int arr[]=new int[5];
静态初始化
数据类型[] 数组名称={元素1,元素2,元素3}
举例:int []arr ={1,2,3,4}; int []arr=new int[]{1,2,3,4
};
数组遍历
System.out.print("[") ;
//遍历数组
for(int x = 0 ; x < array.length ; x ++){
//获取到每一个元素了
//判断
//如果角标x == array.length-1
if(x==array.length-1){
//输出最后元素 以及有中括号 元素n]
System.out.println(array[x]+"]") ;
}else{
//中间的元素
//元素1, 元素2, 元素3,
System.out.print(array[x]+", ") ;
}
}
冒泡排序思想
两两比较,较大的值往后方法,第一次比较完毕,最大值出现在最大索引
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 ;
}
}
基本类型作为形式参数,形式参数改变不影响实际参数;
引用类型作为形式参数,形式参数的改变直接影响实际参数;
七. JVM内存分配有那些,有那,些作用
栈内存:存储局部变量用的这个内存区域
堆内存:new 出来的对象 存储在这个区域
方法区: 字节码文件区域------方法调用过程需要加载的类
里面存储很多的方法,这些方法被调用,加载进占内存
static 区域-----main方法就是被static修饰的
常量池------常量的多是在常量池
八. 面向对象
什么是面向对象? Java语言 ---对比 面向过程: 代表 c语言
面向对象的思想特点是什么?
面向对象的三大特征: 封装,继承,多态 (整个java最重要的)
Java重要特点:代码的健壮性(里面涉及Java面向的对象特征以及j
ava设计模
式)
为了某个功能扩展性,多个方法方法名可以相同(完全相同),
参数列表不同,与
返回值无关
为了某个功能扩展性,多个方法方法名可以相同(完全相同),
参数列表不同,与
返回值无关
封装:private 私有化
就是将显示世界事物的属性隐藏了(加入一个关键子private)
私有的,无法直接访问的,对外数据的安全性!(外界不能访问的)
对外提供一个方法,公共的(public)访问方法(setXXX/()getXXX())
注意事项:
以后在书写代码的时候,写一个类,描述真实存在事物的属性的时候
,需要属性(英文单词字母全部小写)全部加入private
以后:描述事务的收,需要定义类,类中的所有成员变量
(实现世界事物的属性),必须都是系优化的private
private关键字的特点:
1)被private修饰的成员变量以及成员方法只能在本类中方问
2)可以修饰成员变量也可以成员方法,就是未来外界不能直接访问
3)被private修饰的成员变量/成员方法可以间接的通过公共的方法访问