Java初始化与清理

1.构造器的定义

构造器用于初始化对象,同时jvm会为该对象分配内存空间,不接受任何参数的构造器叫作默认构造器或者无参构造器,构造器没有返回值,这里有一个面试题

String str=new String("content");

当String的构造器运行后,jvm会给str分配一部分的内存空间,并且str指向堆区的content,然后str得到的值并不是构造器所返回的,而是new动作的结果,构造器完成初始化后就结束了

一个简单的面试题:

创建一个类,它包含一个在定义时就被初始化了的String域,以及另一个通过构造器初始化的String域,这两种有何区别?


package section.five;
 
/**
 * Created by mac on 2017/7/16.
 */
public class ExerciseTwo {
    String str1 = "hello";
    String str2 = null;
    String str3 = str2;
 
    public ExerciseTwo(String str2){
            this.str2 = str2;
    }
}

 

package section.five;
 
/**
 * Created by mac on 2017/7/16.
 */
public class Main {
    public static void main(String[] args){
        ExerciseTwo exerciseTwo = new ExerciseTwo("world");
 
        System.out.println("str1: "+exerciseTwo.str1);
 
        System.out.println("str2: "+exerciseTwo.str2);
        System.out.println("str3: "+exerciseTwo.str3);
    }
}

 输出结果可得:

str1: hello
str2: world
str3: null 

在定义时就被初始化了的String域在实例化的时候引用str1被赋值了一次,而另一个str2第一次被赋值为null,第二次通过构造器赋值为world,所以被赋值了两次

2.重载

java中的重载具有以下几个特点:

1.方法名相同
2.参数列表不同(若参数列表的类型相同但是参数列表的顺序不同也属于重载)
3.返回值可以相同也可以不同

 举个例子:int show(); 和void show();两个方法不能构成重载,所谓的重载是指方法名和参数列表,两者合称为方法签名

                    int show(int a,String b);和int show(String a,int b)构成重载,因为两个方法的参数列表的顺序不同

 

 

 

 

 

 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值