zoukankan      html  css  js  c++  java
  • Java中对象

    Java中的对象创建有多少种方式?

    Java中共有5种方式可以创建一个对象。

    最简单的方式就是使用new关键字。

    User user = new User();

    除此以外,还可以使用反射机制创建对象:

    User user = User.class.newInstance();

    或者使用Constructor类的newInstance:

    Constructor<User> constructor =User.class.getConstructor();Useruser= constructor.newInstance();

    除此之外还可以使用clone方法和反序列化的方式,这两种方式不常用并且代码比较复杂,就不在这里展示了,感兴趣的可以自行了解下。

    Java中对象创建的过程是怎么样的?

    对于一个普通的Java对象的创建,大致过程如下:

    1、虚拟机遇到new指令,到常量池定位到这个类的符号引用。 

    2、检查符号引用代表的类是否被加载、解析、初始化过。 

    3、虚拟机为对象分配内存。 

    4、虚拟机将分配到的内存空间都初始化为零值。 

    5、虚拟机对对象进行必要的设置。 

    6、执行方法,成员变量进行初始化。

    Java中的对象一定在堆上分配内存吗?

    前面我们说过,Java堆中主要保存了对象实例,但是,随着JIT编译期的发展与逃逸分析技术逐渐成熟,栈上分配、标量替换优化技术将会导致一些微妙的变化,所有的对象都分配到堆上也渐渐变得不那么“绝对”了。

    其实,在编译期间,JIT会对代码做很多优化。其中有一部分优化的目的就是减少内存堆分配压力,其中一种重要的技术叫做逃逸分析。

    如果JIT经过逃逸分析,发现有些对象没有逃逸出方法,那么有可能堆内存分配会被优化成栈内存分配。(关于逃逸分析和栈上分配可以参考:深入理解Java中的逃逸分析对象并不一定都是在堆上分配内存的

  • 相关阅读:
    迭代器
    关于文章cisco漏洞4786
    Python学习目录
    Python的xml模块
    【JS30】Event Capture, Propagation, Bubbling and Once
    mysql安装
    CS193P 第四课笔记 · Hexo
    CSS变量
    在CentOS7上开启和挂载NFS共享
    《Android 编程实战》Chap5_重识IPC
  • 原文地址:https://www.cnblogs.com/dingpeng9055/p/11764571.html
Copyright © 2011-2022 走看看