方法的重载是:多个参数名称一样但是参数列表不一样
好处:只需记住唯一一个方法名称,就可以实现类似的多个功能。
与方法重载有关的因素:
1.参数个数
2.参数类型
3.参数多类型顺序不同
方法重载与下列因素无关:
1,与参数名称无关
2.与方法返回值类型无关
package cn.itcast.day04.demo02.demo04;
/*
比较两个参数是否相同。
参数类型分别为两个byte类型,两个shore类型,两个int类型,两个long类型。
*/
public class Demo02MethodOverloadSame {
public static void main(String[] args) {
byte a =10;
byte b =20;
System.out.println(isSame(a,b));
System.out.println(isSame((short)10,(short)20));
System.out.println(isSame(100,159));
System.out.println(isSame(15L,20L));
}
public static boolean isSame(byte a,byte b) {
System.out.println("两个byte类型的方法执行了");
boolean same;
if (a==b){
same =true;
}else{
same=false;
}
return same;
}
public static boolean isSame(short a,short b){
System.out.println("两个short类型的方法执行了");
boolean same = a == b ? true:false;
return same ;
}
public static boolean isSame(int a, int b){
System.out.println("两个int类型的方法执行了");
return a==b;
}
public static boolean isSame(long a,long b){
System.out.println("两个long类型的方法执行了");
if (a==b){
return true;
}else{
return false;
}
}
}
数组:数组是一种可以储存放多个数字的容器
数组的特点:
1.数组是一种引用数据类型
2.数组中的多个数据,类型必须一致。
3.数组的长度在运行期间不可变。,
package cn.itcast.day05.demo01.demo01.demo01;
/*
数组的初始化;在内存中创建一个数组,并向其中放入默认值;
数组的初始化
1.静态初始化(指定长度)
2.动态初始化(指定内容)
动态初始化数组的格式:
数据类型[] 数组名称 = new 数据类型[数组长度]
数据类型是指该数组存储的数据是什么类型
数组名称就是数组的名字
new是指创建一个新的对象
数组长度是指数组里可以存储多少个数据
*/
public class Demo01Array {
public static void main(String[] args) {
//创建一个可以存储150个int类型数据的数组
int[] array1 = new int [150];
//创建一个数组可以存储十个double类型的数据
double[] array2 = new double[10];
//创建一个可以存储50个字符串的数据类型
}
}
静态数组初始化举例:
package cn.itcast.day05;
/*
静态初始化:指定数据内容
动态初始化:指定数据个数
静态初始化基本格式
数据类型[] 数组名称 = new 数据类型[]{元素1,元素2 ,元素3,.....}
*/
//虽然静态初始化无明确指定数组长度,但是元素个数就是长度,
//数组长度是确定的。
public class Demo02Array {
public static void main(String[] args) {
//创建一个int类型数组,里面存储5 .15.20
int[] arrayA = new int[]{5,15,20};
//创建一个数组,用来存储String字符串,存储内容为Hello,World!我爱这个世界。
// 世界以痛吻我,要我回报以歌。
String[] arrayB = new String[]{"Hello,World!" ,"我爱这个世界"};
}
}
静态初始化简写举例:
package cn.itcast.day05;
/*
静态初始化基本格式:
数据类型[] 数组名称 = new 数据类型[]{元素1,元素2 ,元素3,.....}
静态初始化简易格式
数据类型[] 数组名称 ={元素1,元素2 ,元素3,.....}
注意事项:
1,虽然静态初始化未明确指定长度,但仍会自动推送的到长度。
2.静态初始化格式可与拆分为两个步骤
3.动态初始化也可以拆分为两个步骤。
4,静态初始化的缩略格式不可以进行拆分。
使用建议:
如果已经明确知道数组中具体内容则选择静态初始化,否则,选用动态初始化。
*/
public class Demo03Array {
public static void main(String[] args) {
int[ ] arrayA={10,20,30};
//2.静态初始化格式可与拆分为两个步骤
int[] arrayB;
arrayB = new int[]{11,22,33};
//动态初始化也可以拆分为两个步骤
int[] arrayC;
arrayC= new int[5];
}
}
静态初始化访问数组元素。
package cn.itcast.day05;
/*
[I@6956de9:内存地址哈希值
[:数组 I:int类型
访问数组元素的格式
数组名称[索引值];
索引值从0开始
*/
public class Demo04ArrayUse {
public static void main(String[] args) {
int[] arrayA = new int[]{10,20,30};
System.out.println(arrayA);
//直接打印输出
System.out.println(arrayA[0]);
System.out.println(arrayA[1]);
System.out.println(arrayA[2]);
//将数组中单个元素赋值给变量,对变量进行打印输出。
int num = arrayA[1];
System.out.println(num);
}
}
动态初始化访问元素
package cn.itcast.day05;
/*
使用初始化动态数组时候,其中元素会自动拥有一个默认值,规则如下:
如果是整数类型默认为0;
如果是小数类型默认为0.0;
如果是字符类型默认为'/u0000';
如果是布尔类型,默认为false值;
如果是引用类型,默认为是null值。
注意事项;
静态初始化也有默认值,只不过系统立即将默认值替换为大括号中的具体数值
*/
public class Demo05ArrayUse {
public static void main(String[] args) {
int[] arrayA =new int[3];
System.out.println(arrayA);
System.out.println(arrayA[0]);
System.out.println(arrayA[1]);
System.out.println(arrayA[2]);
arrayA[0]=123;
arrayA[1]=123;
arrayA[2]=123;
}
}
|Java的内存需要划分成为5个部分:
1.栈(Stack) :存放的都是方法中的局部变量。方法的运行一 定要在栈当中运行。
局部变量:方法的参数,或者是方法(}内部的变量作用域:一旦超出作用域,立刻从栈内存当中消失。:2.堆(Heap) :凡是new出来的东西,都在堆当中。
堆内存里面的东西都有一个地址值: 16进制堆内存里面的数据,都有默认值。规则:
如果是整数 默认为0如果是浮点数 默认为0.0
如果是字符 默认为"\u0000如果是布尔 默认为false如果是引用类型 默认为null
3.方法区(Method Area) :存储class相关信息,包含方法的信息。
4,本地方法栈(Native Method Stack) :与操作系统相关。5.寄存器(pc Register) :与CPU相关。