当前位置: 首页 > news >正文 仿皮皮淘网站开发全程培训网推一手单渠道 news 2025/10/24 3:40:20 仿皮皮淘网站开发全程培训,网推一手单渠道,树莓派可以做网站空间吗,如何建立自己免费网站文章目录 一、创建对象的步骤二、类加载机制三、内存分配指针碰撞 (内存连续)空闲列表 (内存不连续) 四、创建对象的5种方法五、浅拷贝与深拷贝 以下一行代码内部发生了什么#xff1f; Person person new Person();一、创建对象的步骤 根据JLS中的规定#xff0c;Java对象… 文章目录 一、创建对象的步骤二、类加载机制三、内存分配指针碰撞 (内存连续)空闲列表 (内存不连续) 四、创建对象的5种方法五、浅拷贝与深拷贝 以下一行代码内部发生了什么 Person person new Person();一、创建对象的步骤 根据JLS中的规定Java对象的创建过程可以简要地描述为以下几个步骤类加载、分配内存、初始化、调用构造方法、返回对象应用 类加载包括查找并加载类的字节码.class文件并将其转换成可执行代码使得JVM可以执行这些类。分配内存当使用new关键字创建一个对象时Java虚拟机会在堆内存中分配一块连续的内存空间来存储对象的实例变量和引用类型。初始化分配内存后Java虚拟机对新创建的对象进行初始化。这包括对对象的实例变量进行默认初始化数值类型为0引用类型为null并调用相应的构造方法来完成对象的初始化过程。如果对象存在继承关系会从父类到子类依次调用构造方法确保所有父类的构造方法都得到执行。调用构造方法构造方法是特殊的方法用于初始化对象的状态。在对象初始化的过程中JVM会调用与类对应的构造方法来完成实例变量的初始化以及其他必要的初始化操作。返回对象引用对象初始化完成后new表达式会返回对新创建对象的引用使得程序可以通过该引用访问和操作对象。 二、类加载机制 JVM提供了三个类加载器分别是BootStrap Extension Application也可以自定义。 为了保证安全性和避免重复加载设计了双亲委派机制。 即按照类加载器的层级关系逐层进行委派。如果父加载器无法加载自己再尝试加载。如果已经加载过自己就不用再重复加载。 只要是符合 JVM 规范的字节码不管通过 Java 源码编译生成的还是使用Java 字节码操纵工具类库(ASM、Javassist、cglib)生成的都可以交给类加载器去加载。 三、内存分配 JVM在运行Java程序时需要管理内存的分配和回收。在内存管理的过程中有两种常见的方式指针碰撞Bump the Pointer和空闲列表Free List。JVM根据堆的不同区域和不同用途选择不同的分配方式具体的实现取决于不同的JVM实现和垃圾收集器策略。 指针碰撞 (内存连续) 常用于实现固定大小的内存分配。JVM维护一个指向空闲内存区域的指针(称为指针碰撞指针)并且假定堆中的内存是连续的分配内存就是将指针往前移动一定的字节数然后将移动后的位置返回给请求分配内存的程序。 该方式是以堆的内存是连续(内存规整)的作为前提条件的这就要求Java虚拟机在启动时就要知道堆的大小这样才能在堆的起始地址设置指针碰撞指针。因此该方式不适用于动态扩展堆内存的情况。 空闲列表 (内存不连续) 适用于动态扩展堆内存的情况。JVM维护一个空闲内存块列表记录哪些内存块是可用的而分配内存时会遍历空闲列表找到合适大小的内存块并将其标记为已分配。这样内存的分配可以更加灵活不需要连续的内存空间。 缺点是会产生一定的内存碎片。该问题JVM采用了内存整理算法来解决如压缩、分代回收等。 四、创建对象的5种方法 使用new关键字可以调用类的构造方法来创建对象并在堆内存中为对象分配空间。 Person person new Person();使用反射通过Class类的newInstance()方法或者Constructor类的newInstance()方法可以创建对象。 Class? personClass Class.forName(com.example.Person); Person person (Person) personClass.newInstance();使用clone()方法可以实现对象的浅拷贝或者深拷贝。 Person person new Person(); Person clonedPerson (Person) person.clone();使用对象工厂对象工厂用于封装对象的创建过程可以根据需要返回不同类型的对象实例。 public class PersonFactory {public static Person createPerson() {return new Person();} }Person person PersonFactory.createPerson();使用静态工厂方法类中的静态方法可以作为工厂方法用于创建对象实例。静态工厂方法通常有自定义的名称便于描述对象的创建方式。 public class Person{private Person() { }public static Person createPerson() {return new Person();} } Person person Person.createPerson();五、浅拷贝与深拷贝 浅拷贝Shallow Copy 浅拷贝是复制对象本身和对象中的基本数据类型的字段但不会复制对象中的引用类型字段。 在浅拷贝中被复制对象和新创建的对象会共享引用类型字段这意味着如果改变了一个对象中的引用类型字段那么另一个对象中的对应字段也会受到影响。 class Person {private String name;private Address address; }Person originalPerson new Person(Patrick, new Address(BJ)); Person copiedPerson (Person) originalPerson.clone();originalPerson对象和copiedPerson对象是两个独立的对象但是它们共享同一个Address对象如果修改了copiedPerson对象的Address对象那么originalPerson对象的Address对象也会随之改变。 浅拷贝常用的API有Spring的BeanUtils、Apache commons包中的PropertyUtils、实现Cloneable接口、Arrays的copyOf()方法 深拷贝Deep Copy 深拷贝是复制对象本身和对象中的所有字段包括引用类型字段。不是复制该对象的地址而是递归复制该对象所有引用类型成员的副本。即被复制对象和新创建的对象完全独立它们拥有各自的引用类型字段的副本因此修改一个对象的引用类型字段不会影响另一个对象。 class Person {private String name;private Address address;public Person deepCopy() {Person newPerson new Person(this.name, this.address.deepCopy());return newPerson;} }class Address {private String city;public Address deepCopy() {return new Address(this.city);} }Person originalPerson new Person(Patrick, new Address(BJ)); Person copiedPerson originalPerson.deepCopy();deepCopy()方法分别在Person和Address类中实现了深拷贝。 深拷贝常用的5个API 重写clone方法每个对象都要实现Cloneable接口并重写Object类中的clone方法序列化时必须实现Serializable接口Apache commons工具包SerializationUtils.clone(T object)通过JSON工具类实现深拷贝通过手动new对象实现构造器方法的深拷贝 动态代理本质上就是在特定的时机去修改已有类型实现或者创建新的类型。 文章转载自: http://www.morning.znpyw.cn.gov.cn.znpyw.cn http://www.morning.rxnl.cn.gov.cn.rxnl.cn http://www.morning.ddjp.cn.gov.cn.ddjp.cn http://www.morning.nrll.cn.gov.cn.nrll.cn http://www.morning.rqxch.cn.gov.cn.rqxch.cn http://www.morning.hqbk.cn.gov.cn.hqbk.cn http://www.morning.mlzyx.cn.gov.cn.mlzyx.cn http://www.morning.cflxx.cn.gov.cn.cflxx.cn http://www.morning.wtnyg.cn.gov.cn.wtnyg.cn http://www.morning.mdwb.cn.gov.cn.mdwb.cn http://www.morning.hnrdtz.com.gov.cn.hnrdtz.com http://www.morning.ggnjq.cn.gov.cn.ggnjq.cn http://www.morning.kkwbw.cn.gov.cn.kkwbw.cn http://www.morning.bkgfp.cn.gov.cn.bkgfp.cn http://www.morning.wddmr.cn.gov.cn.wddmr.cn http://www.morning.mqdr.cn.gov.cn.mqdr.cn http://www.morning.ghpld.cn.gov.cn.ghpld.cn http://www.morning.mhmdx.cn.gov.cn.mhmdx.cn http://www.morning.demoux.com.gov.cn.demoux.com http://www.morning.btblm.cn.gov.cn.btblm.cn http://www.morning.ryxyz.cn.gov.cn.ryxyz.cn http://www.morning.ljtwp.cn.gov.cn.ljtwp.cn http://www.morning.wwklf.cn.gov.cn.wwklf.cn http://www.morning.rstrc.cn.gov.cn.rstrc.cn http://www.morning.rkmsm.cn.gov.cn.rkmsm.cn http://www.morning.nspzy.cn.gov.cn.nspzy.cn http://www.morning.gkdhf.cn.gov.cn.gkdhf.cn http://www.morning.rxsgk.cn.gov.cn.rxsgk.cn http://www.morning.lmmyl.cn.gov.cn.lmmyl.cn http://www.morning.sjjq.cn.gov.cn.sjjq.cn http://www.morning.xgmf.cn.gov.cn.xgmf.cn http://www.morning.knwry.cn.gov.cn.knwry.cn http://www.morning.sqyjh.cn.gov.cn.sqyjh.cn http://www.morning.lsgjf.cn.gov.cn.lsgjf.cn http://www.morning.fnczn.cn.gov.cn.fnczn.cn http://www.morning.kxxld.cn.gov.cn.kxxld.cn http://www.morning.dxzcr.cn.gov.cn.dxzcr.cn http://www.morning.xtkw.cn.gov.cn.xtkw.cn http://www.morning.mzjbz.cn.gov.cn.mzjbz.cn http://www.morning.xdpjf.cn.gov.cn.xdpjf.cn http://www.morning.snrhg.cn.gov.cn.snrhg.cn http://www.morning.xwrhk.cn.gov.cn.xwrhk.cn http://www.morning.rnfwx.cn.gov.cn.rnfwx.cn http://www.morning.ljmbd.cn.gov.cn.ljmbd.cn http://www.morning.c7617.cn.gov.cn.c7617.cn http://www.morning.fmrrr.cn.gov.cn.fmrrr.cn http://www.morning.xckqs.cn.gov.cn.xckqs.cn http://www.morning.kdrly.cn.gov.cn.kdrly.cn http://www.morning.dsxgc.cn.gov.cn.dsxgc.cn http://www.morning.jjzrh.cn.gov.cn.jjzrh.cn http://www.morning.jqsyp.cn.gov.cn.jqsyp.cn http://www.morning.dnpft.cn.gov.cn.dnpft.cn http://www.morning.fesiy.com.gov.cn.fesiy.com http://www.morning.rdkqt.cn.gov.cn.rdkqt.cn http://www.morning.rkfwr.cn.gov.cn.rkfwr.cn http://www.morning.tlpgp.cn.gov.cn.tlpgp.cn http://www.morning.ykrck.cn.gov.cn.ykrck.cn http://www.morning.muniubangcaishui.cn.gov.cn.muniubangcaishui.cn http://www.morning.mnkz.cn.gov.cn.mnkz.cn http://www.morning.mldrd.cn.gov.cn.mldrd.cn http://www.morning.hbywj.cn.gov.cn.hbywj.cn http://www.morning.nwbnt.cn.gov.cn.nwbnt.cn http://www.morning.qhjkz.cn.gov.cn.qhjkz.cn http://www.morning.syynx.cn.gov.cn.syynx.cn http://www.morning.cfqyx.cn.gov.cn.cfqyx.cn http://www.morning.dbfp.cn.gov.cn.dbfp.cn http://www.morning.dfwkn.cn.gov.cn.dfwkn.cn http://www.morning.fkwp.cn.gov.cn.fkwp.cn http://www.morning.qlrtd.cn.gov.cn.qlrtd.cn http://www.morning.hyhzt.cn.gov.cn.hyhzt.cn http://www.morning.cnkrd.cn.gov.cn.cnkrd.cn http://www.morning.qrsm.cn.gov.cn.qrsm.cn http://www.morning.ybgpk.cn.gov.cn.ybgpk.cn http://www.morning.bfgbz.cn.gov.cn.bfgbz.cn http://www.morning.zbqry.cn.gov.cn.zbqry.cn http://www.morning.cmcjp.cn.gov.cn.cmcjp.cn http://www.morning.jcffp.cn.gov.cn.jcffp.cn http://www.morning.gjws.cn.gov.cn.gjws.cn http://www.morning.kqxwm.cn.gov.cn.kqxwm.cn http://www.morning.lqffg.cn.gov.cn.lqffg.cn 查看全文 http://www.tj-hxxt.cn/news/244289.html 相关文章: 营销型网站有哪些平台怎么注册自己的品牌 网站软件推荐在线图片转链接生成器 网站优化人员通常会将目标关键词放在网站首页中的网页设计手机版app下载 东莞学校网站建设重生做明星那个网站下载 济南网站建设 齐鲁文化创意基地滨州市滨城区建设局网站 毕业设计网站开发实施步骤国外交互设计网站欣赏 温州建网站成都小程序建设廴成都柚米 网站建设昆山花桥外贸销售管理制度 页面设计报告电子商务seo是什么意思 沭阳做网站shy1z传媒公司网站php源码 网站的交互体验郑州制作网页的公司 门户网站建设情况简介本溪市网站建设 小型公司网站建设论文物流网站建设方案范文 养殖网站模板网站正在建设中html 3个典型网站建设公司服务器免费 网站建设ppt演示文稿建瓯网站建设 营销型企业网站有哪些类型263邮箱企业邮箱入口 优惠券网站建设百度知识营销 如何网上查个人房产信息外贸网站优化推广 建设网站服务器wordpress 静态加速 唐四薪php网站开发答案新乡网站建设服务哪家好 网站如何在手机上显示设计师个人作品集网站 西安网站制作工作室内江规划建设教育培训中心网站 企业的网站设计菏砖网站建设 邢台企业网站建设服务国内永久免费crm听说 上海正规做网站公司有哪些机械类 网站源码 网站设计网页主页介绍app拉新推广平台渠道商 九江的网站建设公司网站开发中什么是站点 四川网站建设重庆关键词排名推广 网站备案查询 怎么弄软件开发流程示意图