01 什么是方法重载
方法名相同,参数列表不同,与返回值无关!
参数列表不同:
1:参数个数不同
2:参数类型不同
public static void open(int i,double b){} public static void open(double d,int j){}
02 方法重载的目的
为了让某个功能的扩展性更高
数组
数组是可以存放多个元素的容器;前提条件:数据类型必须一致!
定义格式:
数据类型 [] 数组名;
数据类型 数组名 [];
初始化
初始化:
动态初始化:给定数组的长度,由系统默认分配元素的内容(int类型,默认值0;double:0.0,char:'\u000',boolean:false...)
数据类型[] 数组名称 = new 数据类型[数组长度] ;
数据类型 数组名称[] = new 数据类型[数组长度] ;静态初始化:给定数组的元素,系统默认分配长度!
原始格式:
数据类型[] 数组名称= new 数据类型[]{元素1,元素2,元素3....} ;
数组中的内存分配
1)main方法进栈,在栈内存开辟空间
2)栈内存中:开辟某个空间,为数组类型的变量(int[] arr)
3)在堆内存中:申请空间 new int[3] ;
4)需要通过系统默认对元素内容初始化:元素默认int类型,默认值都是0
5)默认初始化完毕,就会为当前new int[3] ;产生一个堆内存空间地址值 :十六进数据: 0x001..
6)需要讲堆内存的地址值赋值给栈内存变量arr, 栈内存arr指向堆内存地址值
7)可以显示初始化,给元素内容赋值,将系统默认初始化值给覆盖掉
数组遍历
获取元素:
数组名称[索引值]
获取长度:
数组名称.length属性遍历 [元素1, 元素2, 元素3, ....元素n]
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]+", ") ; } }
冒泡排序思想
冒泡排序的思想:
两两比较,大的往后放,第一次比较完毕,最大值出现在最大索引处,依次这样比较,就可以得到一个排好序的数组!
每一次比较:都是减少一次
第一次:有0个不比
第二次:有1个不比
第三次:有2个不比
...
比较的次数:就是数组长度-1次 (arr.length-1)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 ; } } }
Java中的内存分配
寄存器:程序无法控制(和计算机cpu有关系)
栈:存储都是局部变量(在方法定义中或者方法声明上)
堆:new出来的东西,创建对象 (里面存储:"成员变量")
方法区:有哪些方法--分别存储在哪个类中---xxx.class()
字节码文件区:class:存储字节码文件对象
静态区:static : 以后: 存储的静态成员 (在面向对象中讲)
常量池 :String "字符串就是一个常量" (在常用类中)