java构造方法在哪个内存_Java内存机制及构造方法

# Java内存机制 #

java把内存分为两种,一种是堆内存一种是栈内存。

栈内存存放的是基本数据类型变量和引用数据类型变量。

堆内存存放的是new创建的对象和数组。在堆分配的的内存,由java中的垃圾回收器来自动回收。

java中只存在值传递,基本数据类型的传递是基本数据类型的值,引用数据类型传递的是地址。一个栈只能指向一个堆,但是一个堆可以被多个栈引用。

**注意**

栈:   自动分配连续的空间,后进先出。放置的是局部变量,线程不共享。

堆:   放置的是new出来的对象。

方法区:又叫静态存储区,存放的是类的代码信息,静态static变量       以及常量值。线程共享

public class Student {

String name;  //名字

int age;  //年龄

Computer com; //电脑对象,也是作为属性存在

public void study(){

System.out.println(this.name+"在学习!");

}

public void sayHello(String name){

System.out.println(this.name+"对"+name+"说:hello");

}

}

public class Computer {

String brand;//品牌

int cpuSpeed; //运行速度

}

package com.yunsi.storeause6.d0314;

public class TestStudent {

public static void main(String[] args) {

Student stu = new Student();

stu.name="张三";

stu.age=10;

//调用方法

stu.study();

stu.sayHello("李四");

Computer computer = new Computer();

computer.brand="联想";

computer.cpuSpeed=100;

//将computer赋值给stu的属性 com

stu.com=computer;

System.out.println("****"+stu.com+"-----"+stu.com.brand);

}

}

## 构造方法##

**构造方法的作用**:为了方便参数的传递,允许在新建对象的时候,同时对这个对象的一些属性进行初始化。

**构造方法分为两种:**

(1)    无参构造方法

public  类名(){

(2)    有参构造方法

public  类名(参数类型1 参数名称1,参数类型2 参数名称2){}

**构造方法如何修饰?**

(1)允许没有修饰

(2)访问的修饰: public, protected, private

(3)不能有以下非访问性质的修饰: abstract, final, native, static

**注意:**

(1)每个类都必须有构造方法,如果你不写任何构造方法,则系统会默认提供一个无参构造方法。你也可以自己写构造方法。

(2)构造方法调用必须通过new语法,构造函数在创建对象的时候自动调用。

(3)如果类中已经定义了有参构造方法,则系统不会默认分配无参方法,如果需要调用无参构造,则必须显式定义。

(4)一个类可以有多个构造函数,构造方法不能被继承

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值