第二周Java学习重要知识点总结

1.switch语句与case穿透

格式:

switch(表达式或某个值){

        case 值1:

                        语句1;

                        break;

        case 值2:

                        语句2;

                        break;

                        ...

        default:

                        语句n;

                        break;

}

1)switch后面的表达式的数据类型可以是基本数据类型:byte,short,char,int;JDK5以后可以是枚举类型;JDK7以后可以是String类型;

2)case后只能跟常量,不能跟变量;

3)break不能省略,否则会造成case穿透;

4)switch语句的结束条件:遇break结束或语句执行到末尾;

5)default可以在switch语句中的任意位置,不影响执行流程,当所有case语句都不匹配,执行default.

default在最后时,可省略break.

//case穿透:
public class Demo1 {
    public static void main(String[] args) {
		
	    int a = 1;
	    int b = 2;
	    switch(a){
		    case 1:
				b++;
		    case 2:
				b++;
		    default:
				b++;
	    }
	    System.out.println(b); //5
    }
	
	
}  

//default可以在switch语句中的任意位置,不影响执行流程
public class Demo1_2 {
    public static void main(String[] args) {
		
	int a = 1;
	int b = 2;
	switch(a){
		default:
				b++;
		case 1:
				b++;
		case 2:
				b++;
		
	}
	System.out.println(b); //4
    }
	
	
}  

2.for循环和while循环的比较

相同点:都能体现循环思想,解决代码冗余问题.

不同点:1)结构不同;

            2)使用场景不同;循环次数已知优先使用for循环;循环次数未知用while循环.

            3)从内存角度,for循环更节省内存资源,当循环结束后里面的变量被释放;

                while循环结束后仍可访问变量,因此较耗费资源.具体实例如下:

//while循环结束可以访问变量
public class Demo2{
    public static void main(String[] args) {
		
	   
	   int sum = 0;
	   int x = 1;
	   while(x<5){
		   sum += x;
		   x++; 
	   }
	   System.out.println(x);//5
	   
    }

}  
//for循环结束不能访问变量x

public class Demo2_1 {
    public static void main(String[] args) {
		
	   
	   int sum = 0;
	   for(int x = 1;x<5;x++ ){
		   sum += x;
		   
	   }
	   System.out.println(x);//错误:找不到符号
	   
	  
    }

}  

3.跳转控制语句

1)break:循环语句或switch语句中使用,表示中断,结束.

2)continue:循环语句中使用,表示结束当前循环,立即进入下一循环.

3)return:很少单独使用,一般在方法中用作结束方法.

public class Demo3 {
    public static void main(String[] args) {
		
	for(int x = 1;x<10;x++){
		if(x==3){
			System.out.println("你好");
			return;//很少单独使用
		}
		System.out.println(x); //3-9不再输出
	}

	
    }
	
	
}  

4.死循环

两种格式:

第一种:

for(;;){

          循环体;

}

第二种:

while(true){

                循环体;

}


//应用死循环,实现猜数字游戏
import java.util.Scanner;
public class Demo4 {
    public static void main(String[] args) {
		
	   guessNumber();
	  
    }


	public static void guessNumber(){
		int answer = (int)(Math.random()*100+1);
		int n = 0;
		while(true){
			n++;
			System.out.println("请您猜一个数(1-100)");
			Scanner sc = new Scanner(System.in);
			int guess = sc.nextInt();
			if(guess == answer){
				System.out.println("恭喜您,在第"+n+"次猜对了");
				break;//出口条件
			}else if(guess>answer){
				System.out.println("猜大了");
			}else {
				System.out.println("猜小了");
			}
			
		}
		
	}
	
}  

5.方法的定义格式

有返回值的方法:

public static 返回值类型 方法名(形式参数类型1 变量名1,形式参数类型2 变量名2...){

                //完成业务逻辑

无返回值的方法:

public static void 方法名(形式参数类型1 变量名1,形式参数类型2 变量名2...){

                //完成业务逻辑

6.方法重载

方法名相同,形式参数列表不同,与返回值无关的一组方法.

7.什么是数组?创建数组的格式有哪些

数组是可以存储同一种类型元素的容器.

创建数组的格式:

动态初始化:

                        数据类型[] 数组名 = new 数据类型[数组长度];

                        数据类型 数组名[] = new 数据类型[数组长度];

静态初始化:

                        数据类型[] 数组名 = new 数据类型[]{元素1,元素2,...};

                        数据类型 数组名[] = new 数据类型[]{元素1,元素2,...};

                        简写为    数据类型[] 数组名 = {元素1,元素2,...};

                                       数据类型[] 数组名 = {元素1,元素2,...};

8.冒泡排序思想以及代码体现

冒泡排序思想:相邻两元素比较,大者往后放,第一次比较完毕,数组最大值出现在最大索引值处.

public class BubbleSort {
    public static void main(String[] args) {
        int[] a ={1,2,6,3,7,4};
        System.out.println("排序前:");
        print(a);
        reverse(a);
        System.out.println("排序后:");
        print(a);
    }

    public static void print(int[] arr){
        System.out.print("[");
        for(int x = 0;x<arr.length-1;x++){
            System.out.print(arr[x]+", ");
        }
        System.out.println(arr[arr.length-1]+"]");
    }

    public static void reverse(int[] a){
        for(int x =1;x<a.length;x++){
            for(int y = 0;y<a.length-x;y++){
                if(a[y]>a[y+1]){
                    int temp = a[y];
                    a[y] = a[y+1];
                    a[y+1] =temp;
                }
            }
        }

    }

}

9.基本类型作为形式参数和引用类型作为形式参数的特点

基本类型作为形式参数,形式参数的改变不会影响实际参数的改变;

举例:

public class Demo9 {
    public static void main(String[] args) {
		
	   
	   int a = 1;
	   int b = 2;
	   change(a,b);
	   System.out.println(a);
	   System.out.println(b);//a,b值未改变
	   
	  
    }


	public static void change(int a,int b){
		a = b*2;
		b = b/2;
	}
	
}  

引用类型(除字符串类型外)作为形式参数,形式参数的改变直接影响实际参数的改变;

举例:

public class Demo9_1 {
    public static void main(String[] args) {
		
	   
	   int[] arr = {1,2,3};
	  
	   change(arr);
	   System.out.println(arr[0]);//2
	   System.out.println(arr[1]);//4
	   System.out.println(arr[2]);//6,数组中的3个元素改变
	  
    }


	public static void change(int[] arr){
		for(int x = 0; x<3;x++){
			arr[x]*=2;
		}
		
	}
	
}  

10.面向对象的思想特点和三大特征

面向对象的思想特点:

1)更符合现实生活中人们的思想行为习惯;

2)让复杂的事情简单化;

3)让我们从执行者变为指挥者.

面向对象的三大特征:

封装,继承,多态.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值