java创建变量的过程_java 对象的创建过程
初始化的顺序首先是static(如果它们尚未由前一次对象创建初始化,也就是new对象的时候,只执行一次static变量初始化),变量初始化顺序有变量在类的定义顺序决定的;
对象的创建过程,以Dog类为例:
1.类型为Dog首stati次创建的时候,或者Dog类的stajitic方法/static字段首次访问时,java编译器必须找到Dog.class;
2.找到Dog.class后(它会创建一个Class对象),它的所有static初始化模块都会运行。因此,static初始化仅发生一次-----在Class对象首次载入的时候
3.创建一个new Dog()时,Dog对象的构建进程首先会在内存堆(heap)里为一个Dog对象分配足够多的内存空间;
4.这种空间为情况为0,将Dog中的所有基本类型设为它们的默认值;
5.进行字段定义时发生的所有初始化都会执行;
6.执行构造器
packagethinking;//: Beetle.java//The full process of initialization.
classInsect {int i = 9;intj;
Insect() {
prt("i = " + i + ", j = " +j);
j= 39;
}static int x1 = prt("static Insect.x1 initialized");static intprt(String s) {
System.out.println(s);return 47;
}
}
继承类
packagethinking;public class Beetle extendsInsect {int k = prt("Beetle.k initialized");
Beetle() {
prt("k = " +k);
prt("j = " +j);
}static int x2 = prt("static Beetle.x2 initialized");static intprt(String s) {
System.out.println(s);return 63;
}public static voidmain(String[] args) {
prt("Beetle constructor");
Beetle b= newBeetle();
}
}
执行结果:
static Insect.x1 initialized
static Beetle.x2 initialized
Beetle constructor
i = 9, j = 0
Beetle.k initialized
k = 63
j = 39
java创建变量的过程_java 对象的创建过程相关推荐
- java成员变量垃圾回收_JAVA 对象被垃圾回收后其成员变量可用吗? | 学步园
我们知道JVM中一个对象实例超出作用域或无引用的时候会被垃圾回收,那么他被垃圾回收后,依赖其成员变量的其他实例是否还能正常使用呢?经过测试后发现即使一个实例被垃圾回收,如果他内部的数据被其他对象使用, ...
- Java 虚拟机学习笔记 | 类加载过程和对象的创建流程
前言 创建对象是 Java 语言绕不开的话题,那么对象是如何创建出来的呢?我们今天就来聊一聊.对象创建第一步就是检查类是否加载,而类的加载又牵扯到类的加载过程.如果单说对象的创建而绕开类的加载过程,感 ...
- java初始化实例化_Java对象的创建过程:类的初始化与实例化
一.Java对象创建时机 我们知道,一个对象在可以被使用之前必须要被正确地实例化.在Java代码中,有很多行为可以引起对象的创建,最为直观的一种就是使用new关键字来调用一个类的构造函数显式地创建对象 ...
- java什么是对象如何创建对象_java对象的创建过程是什么
java对象的创建过程: 类加载检查-->分配内存-->初始化零值-->设置对象头-->执行init方法 具体如下: 1.类加载检查 虚拟机遇到一条new指令时,先检查这个指令 ...
- java 成员变量的初始化_Java类变量和成员变量初始化过程
一.类的初始化 对于类的初始化:类的初始化一般只初始化一次,类的初始化主要是初始化静态成员变量. 类的编译决定了类的初始化过程. 编译器生成的class文件主要对定义在源文件中的类进行了如下的更改: ...
- java 反射创建对象并赋值_java使用反射创建并操作对象的方法
Class 对象可以获得该类里的方法(由 Method 对象表示).构造器(由 Constructor 对象表示).成员变量(由 Field 对象表示),这三个类都位于 java.lang.refle ...
- java 对象引用 弱引用吗_Java对象的强引用、软引用、弱引用和虚引用 笔记
从JDK1.2版本开始,把对象的引用分为四种级别,从而使程序能更加灵活的控制对象的生命周期.这四种级别由高到低依次为:强引用.软引用.弱引用和虚引用. 1.强引用 使用最普遍的引用.如果一个对象具有强 ...
- java中类变量局部量_java入门---变量类型类变量局部变量实例变量静态变量
在Java语言中,所有的变量在使用前必须声明.声明变量的基本格式如下: typeidentifier[= value][, identifier[= value]...]; 格式说明:type为Jav ...
- java改变变量编码方式_Java 10将如何改变您的编码方式
java改变变量编码方式 突出显示Java 10中新的Java局部变量类型推断功能 早在2016年,Java社区就掀起了新的JDK增强提案(JEP): JEP 286 . 现在,两年后,局部变量类型推 ...
最新文章
- python笔记:断言assert
- Python中list和set的区别
- html自定义列表第三层嵌套,【微信小程序】关于微信小程序多层嵌套渲染列表以及嵌套列表中数据的获取...
- 高考计算机会考基础知识点,2017高考一定会考的46个知识点!
- 同事操作两个数据源保持事务一致_「微服务架构」微服务架构中的数据一致性...
- LeetCode动态规划 杨辉三角
- P1297 [国家集训队]单选错位 期望
- 分布式 | Dubbo 架构设计详解
- 国税计算机基础知识,国税系统计算机基础知识培训课件精要.ppt
- 新版电力系统决策支持系统开发告一段落
- 阿里巴巴校招offer面经
- DELL服务器硬件报错及对应的解决方法(R710)
- IMDB电影排行爬取分析
- 帮室友写的表白程序 Python打包成exe文件
- 解决服务器挖矿漏洞 crypto
- 高德地图 搜索定位 搜索关键词 定位
- php获取ascii的值,php chr() ord() 获取ASCII编码 中文截取
- 妹子好不好,只看一个地方!
- 机器视觉尺寸检测基础
- 关于向量的期望值、均值向量和协方差矩阵
热门文章
- spring——使用xml声明式事务整合jdbc——GRUD
- leetcode 363. Max Sum of Rectangle No Larger Than K | 363. 矩形区域不超过 K 的最大数值和(前缀和,图文详解)
- 牛客网_PAT乙级_1019旧键盘 (20)
- Java结束线程的三种方法
- Codeup-问题 A: 装箱问题
- hdu 1086 线段相交
- v-if 与v-show 的区别及使用场景
- 【简洁易懂】Filter的四种拦截方式
- 【最详细】数据结构(C语言版 第2版)第三章课后习题答案 严蔚敏 等 编著
- 堆排序算法c语言筛选法,【排序】排序算法之选择排序