当前位置: 首页 > news >正文

Java对象创建与生命周期:贫道吕洞宾的造物主指南

Java对象创建与生命周期:贫道吕洞宾的"造物主"指南

作者:会编程的吕洞宾(一个擅长"点石成金"的程序员)

各位道友,今日贫道要传授Java中的对象创建与生命周期。这就像我们修仙界的"炼器术"——如何创造法宝,如何保养法宝,何时让法宝"功德圆满"!

一、对象创建:从无到有的"炼器术"

1.1 new关键字:点石成金

public class ObjectCreation {public static void main(String[] args) {// new就像我的炼丹炉,把原材料炼成法宝MagicalTool tool = new MagicalTool("七星剑", 100);System.out.println("法宝炼制成功:" + tool.getName());}
}class MagicalTool {private String name;private int power;// 构造器:法宝的"锻造图纸"public MagicalTool(String name, int power) {this.name = name;this.power = power;System.out.println("正在炼制法宝:" + name);}public String getName() {return name;}
}

1.2 内存分配:法宝的"安身之处"

Java对象主要住在两个地方:

public class MemoryAllocation {// 静态存储区:像修仙界的"洞天福地",长期存在private static MagicalTool immortalTool = new MagicalTool("永恒之杖", 999);public void demonstrate() {// 栈内存:像"临时道场",用完就撤int temporaryPower = 50;// 堆内存:像"公共修炼场",动态分配MagicalTool temporaryTool = new MagicalTool("临时飞剑", temporaryPower);}
}

二、构造器:对象的"筑基仪式"

2.1 默认构造器:天道赐福

class DefaultCultivator {private String name;private int level = 1; // 默认修为// 即使不写构造器,Java也会送你一个"天道筑基"// 相当于:public DefaultCultivator() {}
}public class ConstructorDemo {public static void main(String[] args) {DefaultCultivator cultivator = new DefaultCultivator();System.out.println("天道筑基成功!");}
}

2.2 自定义构造器:人工筑基

class CustomCultivator {private String name;private String sect;private int cultivationLevel;// 无参构造器:散修入门public CustomCultivator() {this.name = "无名散修";this.sect = "无门无派";this.cultivationLevel = 1;}// 有参构造器:名门正派public CustomCultivator(String name, String sect, int level) {this.name = name;this.sect = sect;this.cultivationLevel = level;System.out.println(name + "加入" + sect + ",修为:" + level);}// 拷贝构造器:师徒传承public CustomCultivator(CustomCultivator master) {this.name = master.name + "的徒弟";this.sect = master.sect;this.cultivationLevel = 1; // 徒弟从头修炼}
}

三、初始化顺序:筑基的"仪式流程"

对象创建就像举行筑基仪式,步骤不能乱:

class CultivationProcess {private String step1 = firstStep();  // 第一步:属性初始化private static String staticStep = staticStep(); // 静态初始化{System.out.println("第二步:实例初始化块");}public CultivationProcess() {System.out.println("第三步:构造器执行");}private String firstStep() {System.out.println("第一步:属性初始化");return "完成";}private static String staticStep() {System.out.println("静态初始化(只执行一次)");return "完成";}
}public class InitializationOrder {public static void main(String[] args) {System.out.println("开始筑基仪式:");new CultivationProcess();}
}

四、对象生命周期:法宝的"一生一世"

4.1 生命周期阶段

public class ObjectLifecycle {public static void demonstrate() {// 阶段1:诞生(创建)MagicalTool tool = new MagicalTool("新法宝", 100);System.out.println("法宝诞生!");// 阶段2:成长(使用)tool.enhancePower(50);System.out.println("法宝威力增强!");// 阶段3:消亡(垃圾回收)tool = null; // 解除引用System.gc(); // 建议垃圾回收(但不保证立即执行)System.out.println("法宝即将功德圆满...");}
}class MagicalTool {private int power;public MagicalTool(String name, int power) {this.power = power;}public void enhancePower(int increment) {this.power += increment;}// finalize方法:临终关怀(不推荐依赖)@Overrideprotected void finalize() throws Throwable {System.out.println("法宝即将被回收...");super.finalize();}
}

4.2 垃圾回收:天道轮回

public class GarbageCollectionDemo {public static void main(String[] args) {// 创建大量临时对象for (int i = 0; i < 1000; i++) {MagicalTool tempTool = new MagicalTool("临时法宝_" + i, i);// tempTool很快变成垃圾,因为每次循环都创建新引用}// 垃圾回收器像"天道",自动清理无用的对象System.out.println("建议进行垃圾回收...");System.gc();// 但垃圾回收的时间不确定,由"天道"决定try {Thread.sleep(100); // 给GC一点时间} catch (InterruptedException e) {e.printStackTrace();}}
}

五、作用域:法宝的"活动范围"

5.1 局部作用域:临时道场

public class ScopeDemo {private String globalField = "全局法宝"; // 类作用域public void methodScope() {String localVar = "局部法宝"; // 方法作用域{String blockVar = "块级法宝"; // 块作用域System.out.println("块内可用:" + blockVar);}// System.out.println(blockVar); // ❌ 超出作用域,无法使用System.out.println("方法内可用:" + localVar);}public void anotherMethod() {// System.out.println(localVar); // ❌ 不同方法,无法访问System.out.println("全局可用:" + globalField);}
}

5.2 对象作用域:法宝的"使用寿命"

public class ObjectScope {public static void main(String[] args) {{// 法宝只在当前块内有效MagicalTool localTool = new MagicalTool("临时飞剑", 50);System.out.println("法宝在作用域内:" + localTool.getName());}// localTool.getName(); // ❌ 超出作用域,法宝"消失"// 但对象本身可能还在堆内存中,等待垃圾回收System.out.println("作用域结束,但对象可能还在内存中");}
}

六、实战案例:完整的修仙系统

// 修仙者类
class Immortal {private String name;private int age;private List<MagicalTool> tools = new ArrayList<>();public Immortal(String name, int age) {this.name = name;this.age = age;System.out.println(name + "道友诞生,寿元:" + age);}// 获得法宝public void acquireTool(MagicalTool tool) {tools.add(tool);System.out.println(name + "获得法宝:" + tool.getName());}// 丢弃法宝public void discardTool(String toolName) {tools.removeIf(tool -> tool.getName().equals(toolName));System.out.println(name + "丢弃法宝:" + toolName);}// 修炼(创建新对象)public void cultivate() {MagicalTool newTool = new MagicalTool("修炼成果", age * 10);acquireTool(newTool);}// 羽化(对象终结)public void ascend() {tools.clear(); // 释放所有法宝System.out.println(name + "羽化登仙!");}
}public class CompleteDemo {public static void main(String[] args) {// 创建修仙者Immortal luDongbin = new Immortal("吕洞宾", 1000);// 获得法宝(对象创建)luDongbin.acquireTool(new MagicalTool("青龙宝剑", 500));luDongbin.acquireTool(new MagicalTool("酒葫芦", 300));// 修炼成长luDongbin.cultivate();// 羽化登仙(对象消亡)luDongbin.ascend();// 垃圾回收最终清理System.gc();}
}

七、道友心得:对象管理的"天道法则"

  1. 创建要谨慎:像炼丹一样,不要随意创建对象
  2. 使用要合理:充分发挥每个对象的价值
  3. 清理要及时:及时释放不再需要的对象

记住贫道的三句真言:

new字诀创造万物 引用链维持生命
垃圾回收天道循环

掌握了对象生命周期,你就能像真正的造物主一样,在Java世界中创造、使用和管理万物!


无量天尊!愿各位道友在对象管理的"天道"中游刃有余,早日修成Java大道!

http://www.dtcms.com/a/614990.html

相关文章:

  • 网站有源码 怎么建设一个人做网站需要多久
  • JavaEE初阶——多线程3(案例)
  • 怎样做28网站代理池州网站建设兼职
  • 在线精品课程网站开发泰国金木棉做网站网站
  • 河北建站公司哪类网站赚钱 优帮云
  • 用c做网站哪个网站的ps元素好
  • 网站运营的主要内容能够给上市公司做网站意味着什么
  • 做网站开发有前途吗北京高级网站建设
  • 基于lammps模拟的合金两种不同弯曲方法及动态变形的研究
  • 权重查询站长工具电影网站开发视频
  • 韩国知名录屏软件班迪,绿色版免费分享,功能完整无限制
  • Linux进程复制与替换(1)
  • QPushButton菜单样式表深度解析
  • Pybullet环境中搭建一个UR10机械臂带Robotiq夹爪并实现一个简单的抓取任务
  • 免费建立个人网站的哪些平台好网站建设课程的感受
  • Qt QML 模块及其函数详解
  • 2019年JCP SCI1区TOP,改进蚁群算法+多车场多目标绿色车辆路径规划,深度解析+性能实测
  • 宜兴建设局 审图中心 网站怎么建立自己的网站视频网站
  • 网站开发与设计中学生有哪些企业公司
  • 专门做尾单的那个网站叫啥一键wordpress 伪静态
  • 成都网站维护公司网站开发大数据库
  • 招聘网站排行榜烟台市建设工程检测站网站
  • 通用会话控制方案
  • 深度学习:Adam 优化器实战(Adam Optimizer)
  • 建个网站需要多少钱网站备份查询
  • NetApp FAS8200 控制器启动报错-PCIe device missing
  • 找个人做网站的做的好的音乐网站的特点
  • 网站设计的简称河南中国建设厅官方网站
  • 唐山自助建站福州如何做百度的网站推广
  • 政务网站建设建议湖南广告优化