云计算百科
云计算领域专业知识百科平台

Java自学-01语法区别(2)

一.数组

java数组属于引用类型,数组元素存储在堆空间,Java的堆内存申请会自动进行初始化

在Java中,字符数组!=字符串(字符数组:char[]       字符串:String)

数组的arr是哈希值(16进制),不是地址

//两种形式
int[] arr1;
int arr2[] = {};
int [] arr3 = {};//推荐这一种

//定义的时候指定数组元素
int[] arr4 = new int[] {1,2,3,4};
int[] arr5 = {1,2,3,4};

//定义的时候指定数组长度
int[] arr6 = new int[2];
arr6[0]=1;
arr6[1]=2;
arr6[2]=3;

//多维数组
int[][][] arr7;
int[] arr8[][];

public static void main(String[] args){
int[] array = new int[] {11,22,33};
System.out.println(array);
}

二.方法

方法的书写格式

修饰符 返回值类型 方法名(参数列表){

方法体

}

三.可变参数

可变参数必须是方法中的最后一个参数 举例:JDK白带的 Svstem.out.printf 方法使用了可变参数,格式字符串参考API文档的java.util.Formatter类

public class Main {
public static void main(String[] args){
System.out.println(sum(10,20,30));
}
public static int sum(int… numbers){
int result = 0;|
for (int num : numbers){
result += num;
}
return result;
}
}

其中的for (int num : numbers)是增强for循环

四.参数传递

基本类型(byte/char/short/int/long/float/double/boolean)作为参数的是值传递,作为返回值,返回的是值

引用类型(引用类型:数组、对象)作为参数是引用传递(地址传递)

五.方法签名与方法的重载

方法签名由2部分组成:方法名,参数类型

eg:下面方法的方法签名是:sum(int,long,double)

public static double sum(int i, long l, double d){
return i + l + d;
}

在同一个类中,不能定义2个方法签名一样的方法

Java的方法支持重载:方法名相同,方法签名不同(参数个数不同,参数类型不同) 重载与返回值类型、参数名称无关

六.栈帧

栈帧随着方法的调用而创建,随着方法结束而销毁,存储了方法的局部变量信息

局部变量表的存储机制

局部变量表以变量槽(Slot)为存储单元,不同类型数据占用不同数量的Slot:

  • boolean、byte、char、short、int、float、reference 占用1个Slot。
  • long 和 double 占用2个连续的Slot。
  • 实例方法的局部变量表中,第0位Slot默认存储this引用。
赞(0)
未经允许不得转载:网硕互联帮助中心 » Java自学-01语法区别(2)
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!