</pre><p></p><p><span style="font-family:Microsoft YaHei">/**</span></p><span style="font-family:Microsoft YaHei">Person p1 = new Person("lili",20);该语句执行了那些事情?1、因为new用到了Person.class,所以会先找到Person.class文件并加载到内存2、执行该类中的static代码块(存于方法区),如果有的化,给Person.class类进行初始化3、在堆内存中开辟空间,分配内存地址4、在堆内存中建立对象的特有属性,并进行默认初始化5、对属性进行显示初始化6、对对象进行构造代码块初始化7、对对象进行对应的构造函数初始化("lili",20)8、将内存地址赋给栈内存中的P变量</span><p><span style="font-family:Microsoft YaHei">*/</span></p><p><span style="font-family:Microsoft YaHei"></span></p><pre name="code" class="java">class Person
{private String name;  //默认初始化private int age = 1;  //显示初始化private static String country = "CN";/**构造函数初始化*/Person(String name,int age){this.name = name;this.age = age;}/**代码块初始化*/{name = "haha";age = 18 ;}public void setName(String name){this.name = name;}public void speak(){System.out.println("name:"+name+"...."+"age:"+age);}public static void showCountry(){System.out.println("country = "+country);}
}class PersonDemo
{public static void main(String[] args) {Person p1 = new Person("lili",20);}
}

java 使用new新建一个对象时的操作过程相关推荐

  1. new(创建)一个对象时都发生了什么?

    以 Student s=new Student() 为例: Java语言中创建一个对象时的整个过程主要有两个步骤: 1.类加载过程 加载:将类名下的字节码文件加载进虚拟机(VM),并存储在方法区,并转 ...

  2. java中new一个对象时具体都发生了什么?

    java是一门面向对象的程序设计语言,在java中一切皆为对象.在java中创建一个新对象的方式有很多种如new+构造方法,克隆,反射,反序列化等.那么当我们new一个对象时,java底层都经过了怎样 ...

  3. java.lang.IllegalStateException: 启动子级时出错

    java.lang.IllegalStateException: 启动子级时出错 at org.apache.catalina.core.ContainerBase.addChildInternal( ...

  4. Java中重写equals()方法时注意点

    Java中重写equals()方法时注意点 一直说,重写一个对象的equals()方法时我们必须重写HashCode()方法,但是如果我们不重写呢?会有什么影响呢? 首先看一下,什么情况下我们需要重写 ...

  5. java创建和销毁一个对象_有效的Java –创建和销毁对象

    java创建和销毁一个对象 创建和销毁对象(第2章) 这是Joshua Blochs的< 有效的Java>第2章的简短摘要.我仅包括与自己相关的项目. 静态工厂(项目1) 静态工厂与构造函 ...

  6. java延迟覆盖_高效Java第九条覆盖equals时总要覆盖hashCode

    原标题:高效Java第九条覆盖equals时总要覆盖hashCode 高效Java第九条覆盖equals时总要覆盖hashCode 在每个覆盖了equals方法的类中,也必须覆盖hashCode方法. ...

  7. java要频繁调用容器时_Java知识点梳理

    1.Struts2和SpringMVC的区别 (1)设计理念:前者为有状态的Action(均为多例),Action对象属性字段承载请求.响应,后者一般为无状态的Controller,请求直接封装到方法 ...

  8. Vscode运行java代码和c++代码时Terminal输出乱码?

    在网上查了好多方法后有一个折中的方法: 0.在语言模式中修改为bta模式 1.在运行java代码时需要提前保存,于是采用修改encoding为gkb,使得每次新建代码时均为gbk格式,这个可以正常输出 ...

  9. Java集合泛型作为参数时,使用中的一些问题。包括但不限于PECS原则

    目录 泛型中的PECS原则以及使用注意 一.泛型中的型变(协变.逆变.不可变) 1. 什么是型变 2. 什么是协变(Covariance) 3. 什么是逆变(Contravariance) 4. 不可 ...

最新文章

  1. Go 学习笔记(68)— goroutine 并发控制神器 Context
  2. 当强人工智能时代来临,哪些人不会失业?
  3. MySQL忘记密码解决方案
  4. Java判断某年是不是闰年
  5. ambari 搭建hadoop大数据平台系列4-配置ambari-server
  6. 【转载】白话经典算法系列之三 希尔排序的实现
  7. 联想M490 BIOS H1ET69WW(1.12)刷网卡白名单
  8. 飞凌单片机解密_干货:芯片解密方法大全
  9. 如何理解掩码、反掩码、通配符
  10. 各国程序员薪资水平,最高都知道、垫底想不到...
  11. UVA#11584Partitioning by Palindromes
  12. 阿里云返回的视频截图问题
  13. 美食杰(个人主页) 下
  14. android 代码添加账户,Android应用程式在addAccountExplicitly(帐户,密码,null)上崩溃;
  15. 限免|iOS长截图工具 滚动截屏
  16. 建筑材料行业采购合同电子化,数商云采购商城系统助力企业采购业务更规范高效
  17. hdu4355(三分)
  18. xunsearch与mysql区别_利用 Xunsearch 搭建搜索引擎、内容搜索实战
  19. python获取系统时间为字符串_Python日期时间对象转换为字符串的实例
  20. C语言--独立的大括号{}

热门文章

  1. IT创业迷魂圈:不要画饼充饥
  2. GNU parted的指令說明[转]
  3. 开源的悲哀——袁萌100天变身实录[2]
  4. BCH的去中心化理念自治
  5. 6月27日比特币现金消息总结
  6. 经典爬虫:用Scrapy爬取百度股票
  7. eclipse 全局替换
  8. MySQL5.6.35数据库多实例二进制安装
  9. mongodb自动关闭:页面太小,无法完成操作
  10. 谈谈中小创业型网站防DDOS及CC,我的草根站长经历。