学习java的第二周

1.for和while循环的区别

1)格式不同;2)for循环内存要比while更节省内存空间。

2.break和continue的区别

break:不能单独使用,只能在switch语句或者循环语句中使用;

continue:结束当前循环,立即进入下一次循环。

3.java方法(使用{}把代码包起来,并起一个名字)

1)有具体返回值的方法的定义(推荐赋值调用)

固定格式: public static 返回值类型 方法名(参数类型1 变量名1,参数类型2 变量名2....){
                    方法中的业务逻辑代码...
                    return 结果;
             }

接收的类型 变量名 = 方法名(实际参数列表) ;

俩个明确:明确返回值类型;明确参数类型以及参数个数。

2)没有具体返回值类型的方法的定义(只能单独调用)

固定格式:public static void 方法名(形式参数列表){
                    方法体中的内容:直接输出 或者进行其他操作;(不需要return语句) 
                  }

方法名(实际参数列表) ;

俩个明确:明确返回值类型:没有具体返回值类型:使用void代替
明确参数类型以及参数个数

3)方法重载:

方法名相同,参数列表不同,与返回值无关;
参数列表不同:参数个数不同,参数类型不同。

4)方法的形式参数问题

如果方法的形式参数是基本数据类型,那么形式参数的改变不会影响实际参数。

如果方法的形式参数是引用数据类型(数组),实际参数传递数组对象,形式参数的改变会直接影响实际参数;

String类型:特殊的引用类型:它的形式参数的改变不影响实际参数(String本质就是常量);

如果方法的形式参数是具体类,那么实际参数需要传递的是当前类的对象。

4.Java中的内存分配

栈:存储都是局部变量(在方法定义中或者方法声明上);

堆:new出来的东西,创建对象 (里面存储:"成员变量");

方法区;           字节码文件区:class:存储字节码文件对象;

静态区 ;            常量池 :String "字符串就是一个常量"。

5.数组(存储多个数据的容器,必须保证容器中的数据类型一致)(格式:int[] arr 或者int arr[])

1)定义格式:动态初始化

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

静态初始化

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

或者简化为:

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

2)常见运行时异常问题

ArrayIndexOutOfBoundsException:数组角标越界异常。

NullpointerException:空指针异常。

3)遍历数组

       System.out.print("[") ;

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

4)冒泡排序(两两比较,较大的值往后放,第一次比较完毕,最大值出现在最大索引处,依次这样比较,得到排好序的数组)

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

6.面向对象(三大特征:封装,继承,多态)

思想特点:1)更符合我们生活中的思想行为习惯2)把复杂的事情简单化3)从执行者到指挥者

7.类:能够描述现实世界真实事物的一组属性和行为的集合   (属性:成员变量;行为:成员方法。)

类名 对象名 = new  类名();

对象名.属性名称(成员变量)= 赋值;

对象名.行为(成员方法名())

8.成员变量和局部变量的区别:

1)书写位置不同

局部变量:在方法定义中或方法声明上;

成员变量:在类中,成员方法外定义的变量。

2)在内存中的位置不同:

局部变量:在栈内存中;成员变量:在堆内存中。

3)生命周期不同

局部变量:随着方法的调用而存在,随着方法的调用完毕而消失;

成员变量:随着对象的创建而存在,随着对象的创建完毕之后,不会立即消失,而是等待GC(垃圾回收器空闲时回收掉)。

4)初始化不同

局部变量:可以先定义,但是必须要在使用之前赋值;

成员变量:可以不用初始化,它存在系统默认初始化。

9.匿名对象(没有名字的对象)

格式:    new 类名();  特点:可以作为参数进行传递

10.封装(把某个类的成员属性(成员变量)“私有化”,提供公共(public)访问形式,(setxxx()/ getxxx())

目的:为了保证数据的安全性;私有化:关键字“private”,只能在本类中访问。

11.this关键字(解决局部变量隐藏了成员变量)

this.成员变量名 = 局部变量;  

this:就是代表当前类的对象的地址引用。

12.构造方法

1)构造方法名和类名一致;2)没有具体的返回值类型(包括void)

目的:为了给类的成员的一些数据进行初始化。

分为无参构造方法(无参+setxxx()+getxxx())和有参构造方法(有参+getxxx())


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值