zoukankan      html  css  js  c++  java
  • JAVA笔记2-面向对象与内存解析

    1、java中的变量先声明、再赋值、再使用。(局部变量必须初始化,成员变量默认初始化)

    2、基本类型之外的所有类型都是引用类型。基本类型占一块内存,引用类型占两块(所有new出来的东西装在堆内存,因为是堆是在运行时动态分配内存)。

    方法只有在调用的时候才占用内存。

    四块:(待完善)

    code seg代码区:存放类(类的方法)

    data seg数据区:存放静态变量和字符串常量

    stack栈内存:存放基本类型变量和局部变量(方法参数和方法内生成的变量)(局部变量都分配在这)

    heap堆内存:存放new出来的对象

     

    3、关于构造方法:如果自己没有定义,则编译器自动添加默认构造方法;如果自己已经定义了,则编译器不再生成默认构造方法,构造方法没有返回值(不能写void)

    4、

    5、重载(方法名相同):参数个数或参数类型不同才构成重载(编译器可以区分开),只有返回值类型不同不构成重载(编译器无法区分开)。

    6、例题注意基本类型和引用类型都是通过“值传递”的

    可见,运行完毕后,只有change3()方法可以改变d2的值,而change1()和change2()不能达到预期效果,不能改变值data和d1的值。

    红点处执行完毕后,change2()方法中的局部变量b马上消失(因为是栈中的局部变量,随着方法的结束而消失),但b所指向的堆内存不是马上消失,而是等待垃圾回收。

    7、内存分析大题(方法的返回值存储在一个临时区域内,打印完成后自动消失。)

  • 相关阅读:
    浅谈Eclipse中maven的搭建
    sdk的相关知识以及浅谈手机模拟自动化
    java开发环境搭建
    Python学习————反序列化器(复习)
    Python学习————序列化器(复习)
    Python学习————jwt
    Python学习————对称加密和非对称加密
    Python学习————drf(七)
    Python学习————集群和分布式
    Python学习————drf(六)
  • 原文地址:https://www.cnblogs.com/seven7seven/p/3632890.html
Copyright © 2011-2022 走看看