10_31-11_4java学习周总结(主要内容:数组,方法,面向对象)

10_31

1)if...else...和三元运算符的区别

共同点:都是针对两种情况进行判断,都有表达式;

不同点:if...else...流程控制语句,范围很大,不仅仅可以操作数据值,还可以操作输出语句去完成逻辑判断;而三元运算符仅仅是运算符,操作两个具体的数据值;

三元运算符能实现的一定能够使用if...else...流程语句

if...else...流程语句实现的,不一定能够使用三元.

2)选择结构语句switch

switch(变量名){ //变量名可以是基本数据类型:byte,short,char,int,enum,String

case 值1:

        语句1;

        break;

case 值2:

        语句2;

        break;

...

...

...

default:

        语句n;

        break;

}

3)循环结构语句for

格式:

        for(初始化语句;条件表达式;控制体语句){

        //加入一些逻辑判断

        循环体语句;

}

4)循环结构语句while

格式:

初始化语句;

while(条件表达式){

        循环体语句;

        控制体语句;

}

5)循环结构语句do while

格式:

初始化语句;

do{

        循环体语句;

        控制体语句;

}while(条件表达式);

6)两种死循环结构

while(true){

        循环体语句;

}

for(;;){

        循环体语句;

}

补充:

获取[0.0,1.0]之间的随机数

public static double random();

7)for循环嵌套

结构:

for(初始化语句1;条件表达式1;控制体语句1){

        for(初始化语句2;条件表达式2;控制体语句2){

                循环体语句...

        }

}

11-1

1)break/continue/return

break:结束,中断

一般在循环语句(loop),或者是switch语句中使用,不能超过这个范围去使用;

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

return:是在java中跟定义方法相关的,跟有返回值类型的方法有关

2)方法

固定格式:

方式1:有返回值类型的方法定义

权限修饰符 static 返回值类型 方法名(参数类型1 参数名称1,参数类型2 参数名称2...){

        //完成的方法逻辑操作

        return 结果;

}

方式2:没有具体返回值类型的方法定义

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

        没有return关键字

        System.out.println("xxxx");

}

11_2

数组

1)定义数组格式

数据类型[] 数组名称;

数据类型 数组名称[];

2)数组初始化

动态初始化:

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

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

静态初始化:

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

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

简写格式

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

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

注意:不能动静结合!

3)bubbleSort(冒泡排序)

public static void bubbleSort(int[] arr){
    for(int x = 0 ; x < arr.length-1;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;
            }
        }
    }
}

11_3

1)

形式参数如果是基本数据类型,形式参数的改变不影响实际参数.

后面特殊的引用类型:String,作为形式参数和基本类型数效果一致

2)

引用类型作为形式参数,形式参数的改变是直接影响实际参数的.

因为引用数据类型(数组,类,接口),是一种空间地址值进行传递,而基本数据类型只是数据值进行传递(随着方法调用而存在,调用结束而消失)

而引用类型---需要new--->需要在堆内存中开辟空间,对象使用完了,不会立即被收回,需要更待gc垃圾回收器空闲时刻自己回收!

对象一旦被创建,永远指向那个地址值,除非重新new对象

3)jvm内存分配有哪些?分别作用

栈内存 :
存储局部变量(在方法定义中或者方法声明上),局部变量跟方法有关的;方法进栈,方法调用完毕,里面局部变量随着调用结束而消失.
堆内存:
new出来的东西(引用数据类型)存储在堆中,而且它是随着对象的创建完毕,产生堆内存空间地址值!
方法区:
里面很多的区域:class字节码文件区域---存储字节码文件---jvm需要加载这个类,解析这个类所有的方法以及变量(---这个过程"反射技术")
static区域:----静态区域--存储跟static相关的一些方法以及变量等等
constant pooll:常量池 里面存储常量相关的
本地方法区 ( 了解 ): 和系统相关的 -----> 创建系统资源完成系统相关的操作
寄存器 ( 了解 ): 和系统 cpu 都有关系 : 电脑的核数 (16 /8 核的 )-- 核数越大 , 高并发场景下 , 运行效率越高 ;

4)面向对象

面向对象的思想特点:

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

2)让复杂的事情简单化

3)角色发生了改变:从执行者(面向过程)--->变成指挥者(面向对象)
面向对象的三大特征: 封装 , 继承 , 多态 ( 面向对象重点 )
什么是类?
: Java 语言中最基本的单元 ; 能够描述现实世界事物的一组事物的属性和行为的集合 !
类和现实世界事物是一一对应的关系 ;
什么是对象?
对象 : 描述现实世界的具体事物 !( 具体事物的具体的属性和行为 )
在代码中体现出来具体事物 -----> 需要记住 Java 中的创建类对象的格式
类名 对象名 = new 类名() ;
对象名.成员变量名 = 值 (根据成员变量的类型赋值); 访问成员变量 赋值
对象名.方法名(); 访问我们自己的定义的成员方法,去使用它,展示数据或者实现具体业务需求
4)面试题:局部变量和成员变量有什么区别 ?
局部变量和成员变量有什么区别 ?
1) 书写位置的区别
局部变量 : 在方法定义中或者方法声明上的变量
成员变量 : 类中方法外 !
实际开发中 : 根据具体的情况具体使用 , 范围越小越好 , 因为范围小 , 使用完 , 释放内存了 !
2) 内存位置不同
局部变量 : 在栈内存中 --- 跟方法有关 ( 方法进栈 )
成员变量 : 在堆内存中 --- 跟对象有关 ( 类名 对象名 = new 类名 ();)
3) 生命周期不同 :
局部变量 : 随着方法调用而存在 , 随着方法调用结束而消失
成员变量 : 随着对象的创建而存在 , 随着对象的创建完毕后 , 使用完毕 ( 访问成员变量 / 访问成员方法 ) 之后等待
垃圾回收器空闲时候回收而消失 !( 不会立即释放 )
4) 初始化值不同
局部变量 : 在使用之前必须初始化 , 否则报错
成员变量 : 跟对象有关系 , 存在系统默认初始化 , 然后可以显示初始化 对象名 . 成员变量名 = 赋值 ;
11_4
1)形式参数是基本类型和引用类型,实际参数传递问题(重点是引用类型)
形式参数是基本类型,调用该方法,实际参数传递对用类型的数据值即可(简单,数据值传递)
形式参数是引用类型(如果是类),调用这个方法,实际参数传递需要传递当前类的具体对象(创建类对象)

2)匿名对象:没有名字的对象

有名字的对象--描述具体事物--创建对象格式

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

匿名对象格式:

        new 类名();

特点:可以作为"参数传递"

        实际用的过程,匿名对象不要多次,一般使用一次即可,使用完毕立即被收回!

3)private关键字的特点

        可以修饰成员变量/成员方法,只能在当前类型中访问,外界类不能直接访问;

        可以间接的通过公共的方法访问

4)在标准类(属性私有化,对外提供公共访问setXXX(xx)/getXXX()),给成员变量赋值形式必须见名知意,局部变量和成员变量名称一致,局部变量会隐藏成员变量,导致成员变量无法赋值!Java提供了关键字"this"

this:代表当前类对象的地址值引用

this.变量名: 访问的是本来的成员变量名

设置setXXX和getXXX的快捷方式(alt+insert)选择Getter和Setter,然后全选,确定.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值