学习Java进度总结(二)

目录

1、for的循环嵌套

2、跳转控制语句以及其各自的作用

3、Java中的方法

4、方法的重载

5、Java中的内存分配

6、数组

7、数组的高级排序--冒泡排序

8、面向对象

9、成员变量和局部变量

10、方法的形参类型是引用类型时的参数传递

11、匿名对象

12、this关键字


1、for的循环嵌套

for(初始化语句;条件判断表达式;步长语句/控制题语句){
        //循环体语句:for
        for(初始化语句;条件判断表达式;步长语句/控制题语句){
        }
}

2、跳转控制语句以及其各自的作用

break:结束中断,结束循环;在switch中使用;不能单独使用。

continue:跳过当前这次循环,执行下一次循环;不能单独使用。

return:结束当前方法。

3、Java中的方法

方法:需使用{}代码块将业务包裹起来,并起一个名字:方法名。

java中方法分为两种情况:
1)有返回值的方法的定义
2)没有具体返回值类型的定义
有返回值的代码格式:

public static 返回值类型 方法名  (传入的参数类型  变量名){

           return 结果;

}

调用:

单独调用;赋值调用;输出调用。

4、方法的重载

在一个类中,允许存在一个以上的同名方法,只要他们的参数个数或者参数类型不同即可。

特点:与返回值无关,只看参数列表,必须不同。

目的:就是为了提高某个功能的延展性。

5、Java中的内存分配

1、栈(stack):存放的都是方法中的局部变量;方法的运行一定是在栈中。

局部变量:方法的参数,或者是方法{}内部的变量;

作用域:一旦超出作用域,立刻从栈内存当中消失。

2、堆(heap):New出来的东西,都在堆中。

3、方法区:存储.class相关信息,包含方法的信息。

4、本地方法栈:与操作系统相关。

5、寄存器:与cpu相关。

基本数据类型,值是保存在栈中,引用对象,值保存在堆中,栈中存在的对象在堆中的地址。

6、数组

数组:可以存储多个元素的容器: 前提条件:数据类型必须一致!
    定义格式:
            数据类型[] 数组名称;        int[] arr;
            数据类型 数组名称[] ;       int arr[];

数组类型:动态数组和静态数组

动态初始化:给定数组的长度,由系统默认分配元素的内容

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

静态初始化:给定数组的元素,系统默认分配长度!
             原始格式:
                数据类型[] 数组名称= new 数据类型[]{元素1,元素2,元素3....} ;

            简化格式:    
                数据类型[] 数组名称 = {元素1,元素2,元素3....} ;
                //int[] arr = {87,69,57,32,13,"wold"} ; 类型必须一致!

7、数组的高级排序--冒泡排序

冒泡排序思想:
        两两比较,较大的值往后放,第一次比较完毕,最大值出现在最大索引处依次这样比较,可以得到排好序的数组!
 

        int[] arr = {12,41,32,4,21,16};
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 ;
                }
            }
        }

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 ;
                }
            }
        }

8、面向对象

类:能够描述现实世界真实事物的一组属性和行为的集合!

对象:客观存在的具体的事物

类名 对象名 = new 类名() ;
对象名.属性名称(成员变量)= 赋值;
对象名.行为(成员方法名())

面向对象的三大特征:封装、多态、继承。

面向对象的设计理念:

不断地去创建对象,使用对象,只会对象做事情。

思想特点:
    1)更贴近我们生活中的思想行为习惯
    2)让复杂的事情简单化
    3)角色发生变化:从执行者到指挥者

9、成员变量和局部变量

区别:

1)在程序中的书写位置不同
        局部变量:
            方法定义中或者方法声明上
        成员变量:
            在类中,成员方法外定义的变量
    2)在内存中的位置不同的
        局部变量:
                在栈内存中
        成员变量:
                在堆内存中
    3)生命周期不同
        局部变量:
                随着方法调用而存在,随着方法调用完毕而消失!
        成员变量:
                随着对象的创建而存在,随着对象创建完毕之后,不会立即消失,需等待GC回收。      
    4)初始化不同

        局部变量:
                可以先定义,但是必须在使用之前必须赋值,否则:可能尚未初始化变量
        成员变量:
                可以不初始化,它存在系统默认初始化。

10、方法的形参类型是引用类型时的参数传递

//方法的形式参数:引用类型:数组,类,接口
//如果是一个具体类,在调用这个方法的时候,实际参数需要传递的是当前类的对象!
class Student{
    public void study(){
        System.out.println("学习JavaEE...") ;
    }
}
class StudentDemo{
    public void method(Student s){//形式参数是具体类
        s.study() ; //形式参数名.方法名()---->需要通过对象名来访问
    }
}

//测试类
class StudentTest{
    public static void main(String[] args){
        //需要调用StudentDemo类中的method方法
        //创建StudentDemo类对象
        StudentDemo sd = new StudentDemo() ;
        //创建一个具体的学生对象
        Student student = new Student() ;
        sd.method(student) ;
    }
}

11、匿名对象

//匿名对象:就是没有名字的对象
//有名字的对象:  类名 对象名 = new 类名() ;
//匿名的格式
//new  类名() ;
//匿名对象特点:匿名对象可以作为参数传递,而且它开发中使用一次就可以,只在堆内存开辟空间,使用完毕,被回收掉!

class Student{
    public void study(){
        System.out.println("学习JavaEE...") ;
    }
}
class StudentDemo{
    public void method(Student s){//形式参数是具体类
        s.study() ; //形式参数名.方法名()---->需要通过对象名来访问
    }
}

//测试类
class StudentTest{
    public static void main(String[] args){
        //需要调用StudentDemo类中的method方法
        //创建StudentDemo类对象
        /*
        StudentDemo sd = new StudentDemo() ;
        //创建一个具体的学生对象
        Student student = new Student() ;
        sd.method(student) ;
        */
        
        new StudentDemo().method(new Student()) ;
    }
}

12、this关键字

使用this调用属性、方法

1、当形参内部与成员变量重名时,如果在方法内部需要使用成员变量,必须添加this来表明该变量时类成员。

2、在任意方法内,如果使用当前类的成员变量或成员方法可以在其前面添加this,增强程序的阅读性。

3、this可以作为一个类中的构造器,构造器相互调用的特殊格式。

注意:

1、使用this()必须放在构造器首行(因为初始化的动作先执行)

2、使用this调用时本类中其他的构造器,保证至少有一个构造器不用this的。

3、this():是调用自己的无参构造。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值