Java学习日志Day6_方法重载、数组、java数据内存分配、冒泡排序算法

一、方法重载

  1. 方法重载(OverLoad):方法名相同,参数列表不同,与返回值无关!
    Java规定:如果很多个功能都是一样的,又做到方法名要见名知意;

    参数列表不同:
    1)参数个数不一样;
    2)参数类型不一样;

     举例1:								
     			public static int compare(int a,int b){}
     			public static float compare(float a,float b){}
     			public static int compare(float a,int b){}
     			public static int compare(float a,double b){}
    
  2. Java中的方法重载:为了提供这个功能扩展性:方法名相同,可以接收各种类型的参数!

     举例2:
     		Math类的abs(int/double/float...):	//求绝对值
     		Arrays类:	//数组工具类
     				binarySearch(int[]/byte[]/char[]/double[]..,int key):	//二分搜索法
     				sort(int[]/byte[]/char[]/double[]) :	//给数组排序的(默认升序排序)
     举例3:
     class FunctionDemo{
     		public static void main(String[] args){
     
     			//调用方法
     			int result = sum(10,20) ;
     			System.out.println("result:"+result) ;
     
     			System.out.println("----------------------") ;
     
     			//int result2 = sum2(10,20,30) ;
     		
     			int  result2 = sum(10,20,50) ;
     			System.out.println("result2:"+result2) ;
     
     			System.out.println("----------------------") ;
     
     			//int result3 = sum3(10,20,30,40) ;
     		
     			int  result3 = sum(10,20,50,60) ;
     			System.out.println("result3:"+result3) ;
     			}
    
    
     		//求两个数据之和!
     		public static int sum(int a,int b){
     			return a + b ;
     		}
    
     		//求三个数据之和
     		//public static int sum2(int a, int b,int c){//方法名相同
     		public static int sum(int a,int b,int c){
     			return a + b  + c ;
     		}
    
     		//求四个数据之和
     		//public static int sum3(int a,int b,int c,int d){
     		public static int sum(int a,int b,int c,int d){
     			return a + b + c + d ; 
     		}
     }
    

二、数组

  1. 数组的概念:就是用来存储同一种数据类型的容器!
    (类型必须一致,否则数组定义的时候 编译通过不了)

  2. 特点:
    1)数组的长度是固定的!
    2)存储的类型必须是同一种类型

     		String[] strArray = {"hello","world",100} ;
    

    3)数组中存储的元素可以是引用类型,也可以存储基本数据类型

     		int[] arr = new int[4] ;
     举例:
     		存储5个学生  (集合之前讲)
    

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

     		Student[] students = new Student[5] ;  对象数组(能够存储对象的数组)
    
  3. 数组的定义格式:(数组目前:都存储基本类型)
    方式1) . 数据类型[] 数组名称 ; (推荐)
    举例:
    int[] arr ; 定义了一个int类型的数组arr变量

    方式2) . 数据类型 数组名称[] ;
    举例
    int arr[] ; 定义了一个int类型的arr数组变量;

  4. 数组的初始化:
    动态初始化
    静态初始化

    1). 动态初始化:我们定义了数组的长度,数组的元素由系统默认初始化!

    格式:		
    		数据类型[] 数组名称 = new 数据类型[数组长度] ;
     		int[] arr = new int[3] ;
     		数据类型 数组名称[]  = new 数据类型[数组长度] ;
     		int arr[] = new int[3] 
    

    2). 静态初始化:给定了数组的元素的内容,由系统指定数组的长度!

     格式:
     		数据类型[] 数组名称 = new 数据类型[]{元素1,元素2,元素3...} ;(推荐)
     		数据类型 数组名称[] = new 数据类型[]{元素1,元素2,元素3...} ;
     		
     简写方式:
     		数据类型[] 数组名称 = {元素1,元素2,元素3...} ;
     		int[] arr = {1,2,3,4,5,6} ;
     		
     注意:
     		不能动静初始化(要么动态初始化,要么静态初始化!)
     		int[] arr = new int[3]{1,2,3} ; 错误的
    

静态初始化

	举例:
	class ArrayDemo3{
		public static void main(String[] args){
			//创建一个数组,静态初始化
			int[] arr = {11,22,33,44,55} ;
	
			System.out.println(arr) ; //地址值
			System.out.println(arr[2]) ;
			System.out.println(arr[3]) ;
		}
	}
  1. 在数组中如何获取数组的元素?
    数组名称[索引值]:索引值:0开始
    最大索引值:数组长度-1
举例:
class ArrayDemo{
   
	public static void main(String[] args){
   
		
		//数据类型[] 数组名称 = new 数据类型[数组长度] ;
		//创建一个int类型的数组,长度为4
		int[] arr = new int[4] ;//arr[0],arr[1],arr[2],arr[3]
		
		int[] arr2 = new int[3] ;
		System.out.println(arr2) ;
		
		System.out.println(arr) ; //[I@6d06d69c  地址值
		//[:数组
		//@:地址值标记
		//6d06d69c:一堆十六进制数据
		
		/*
			解释说明一下格式:
			=号左边
			int:里面存储的都是int类型
			[]:一维数组
			arr:数组名称(符号标识符的规则)
			=号右边
			new :创建对象
			int:int类型的元素
			[]:一维数组
			4:数组的长度
		
		*/
		System.out.println("----------------------------") ;
		//在数组中如何获取数组的元素?
		//数组名称[索引值]:索引值:0开始
		System.out.println(arr[0]) ;
		System.out.println(arr[1]) ;
		System.out.println(arr[2]) ;
		System.out.println(arr[3]) ;
	}
}
  1. 在数组注意问题:
    1). 数组角标越界异常:ArrayIndexOutOfBoundsException
    出现的原因:访问了数组中不存在的索引值,索引值是非法!(大于或者等于数组长度,索引值为负)
    解决方案:及时检查错误,然后更新代码!

    2). 数组是引用类型,引用类型的默认值是null(空对象),
    空指针异常:NullPointerException
    数组出现问题
    出现的原因:
    1)在数组中的,数组对象已经为null,还要访问里面的元素
    2)在后期可能会使用某些类的功能的时候,但是这个类的对象已经为null了

    解决方案:(在idea中,使用断点来调试程序!debug)
    在某段代码中,如果出现空指针,在使用该对象的时候,进行非空判断!

举例:
		arr = null ;
		//对arr进行非空判断
		if(arr!=null){
   
			System.out.println(arr[0]) ;
		}else{
   
			System.out.println("数组对象已经为null了...") ;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

igfff

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值