美文网首页
JAVA基础学习笔记(三)

JAVA基础学习笔记(三)

作者: xhades | 来源:发表于2019-02-16 23:02 被阅读0次

    1. 面向对象和面向过程

    面向过程

    以事务为核心的编程思想,分析出解决问题的步骤,然后用程序按照顺序去实现它,面向过程适合简单的、不需要协作的事务。

    面向对象

    两者关系

    都是解决问题的思维方式,都是代码组织的方式。两者相辅相成,宏观面向对象,微观处理还是面向过程。

    什么是对象

    内存中是一堆代码块,表示一些相关联的数据

    对象和类

    类可以看做是对象的模板/抽象。

    public class SxStudent {
        //属性定义
        int id;
        String name;
        int age;
    
        //定义方法
        void study(){
            System.out.println("Study..");
        }
    
        public static void main(String[] args){
            SxStudent stu = new SxStudent();
            stu.study();
        }
    }
    

    面向对象的内存分析

    Java虚拟机内存可以分为三个区域:

    • 栈stack
    • 堆heap
    • 方法区method area

    1.描述的是方法执行的内存模型,每个方法被调用都会创建一个栈帧(存储局部变量、操作数、方法出口等)
    2.JVM会为每个线程创建一个栈,用于存放该线程执行方法的信息(实际参数、局部变量等)
    3.栈属于线程私有,不能实现线程间的共享
    4.栈的存储特性是“先进后出,后进先出”(子弹夹)
    5.栈是由系统自动分配,速度快。栈是一个连续的内存空间。

    1.用于存储创建好的对象和数组
    2.JVM只有一个堆,被所有线程共享
    3.是一个不连续的内存空间,分配灵活,速度慢

    方法区

    1.JVM只有一个方法区,被所有线程共享
    2.方法区实际也是堆,只是用于存储类、常量相关的信息
    3.用来存放程序中永远是不变或唯一的内容

    面向对象的内存分析

    相关文章

      网友评论

          本文标题:JAVA基础学习笔记(三)

          本文链接:https://www.haomeiwen.com/subject/feeieqtx.html