Java笔记-构造函数、static、代码块、this、JVM

Java笔记-构造函数、static、代码块、this、JVM

日常学习笔记

1.构造方法

  • 构造方法又称为构造函数、构造器、Constructor
  • 构造方法的语法结构:
    {修饰符列表} 构造方法名(形式参数){
    构造方法体;
    }
  • 与普通方法不同,其无需指定返回值类型,但返回的是本身类的类型。
  • 构造方法的方法名必须和类名保持一致。
  • 当一个类中没有定义任何构造方法,系统默认提供一个无参数的构造方法,这个构造方法称为缺省构造器
  • 当一个类显示的定义一个构造方法,系统不再提供这个类的缺省构造器。建议开发过程中手动写出无参构造方法。
  • 构造方法支持重载机制,一个类可以有多个构造方法。

作用:

  • 通过构造方法的调用,可以创建对象。
  • 创建对象的同时,初始化实例变量的内存空间、系统在默认赋值,是在构造方法的过程中完成的。

2.对象和引用

  • 对象:用new运算符在堆内存中开辟的内存空间称为对象
  • 引用:是一个变量,可以是局部变量、成员变量,引用保存了内存地址,指向堆内存当前的对象。
  • Java都是值传递,参数传递实际上是传递变量保存的值
  • 栈内存:存放main方法,main方法中的对象存着对象的内存,指向堆内存的对象(是否地址,关键看是否new了对象)

3.static关键字

  • 无static方法:非静态方法,调用:类名.方法名(实参);
  • 有static方法:静态方法,调用:引用.方法名(实参):
  • 无static变量: 实例变量或局部变量 有static变量:静态变量。
  • 静态变量在类加载时初始化,不需要new对象,静态变量的空间就开出来了。静态变量存储在方法区
  • 如果这个类型的所有对象的某个属性是一样的,定义为实例变量会浪费内存空间,定义为静态变量可以节省内存空间。
  • 使用static的变量时候,建议使用类名.变量名
  • 当一个方法体直接访问实例变量的时候,它一定是实例方法。
  • 如果是工具类,工具类当中的方法一般是静态方法。(静态方法的优点:不需要new对象,直接采用类名调用,十分方便,所以工具类一般都是static的)

4.代码块

  • 类加载时执行,从上到下的顺序执行,并且只执行一次,在main方法执行前执行。
  • 不太常用,sun公司给程序员的类加载时机
  • 记录日志的代码写到静态代码块中,记录类加载的日志信息。

5.this关键字

  • 一个对象一个this,各不相同。
  • this是一个变量,是一个引用,this保存当前对象的内存地址,指向自身。
  • this存储在堆内存当中对象的内部。
  • this只能使用在实例方法中,不能出现在静态方法中,谁调用这个实例方法,this就指向谁。
  • this不能省略的情况:在实例方法中,为了区分实例变量和局部变量
  • 在一个构造方法中,用this(参数列表)调用同一个类的其他的构造方法(代码复用)。只能出现在构造方法的第一行。

JVM

  • 方法区:静态变量、代码块:String.class,。。
  • 堆:存放实例变量,对象级别。垃圾回收器主要针对
  • 栈(stack):局部变量、只要是方法,不管是静态方法,实例方法,构造方法,在运行的时候都需要压栈
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值