静态变量和静态方法都属于静态对象,它与非静态对象的差别需要做个说明。 (1)Java静态对象和非静态对象有什么区别? 比对如下: 静态对象 非静态对象 拥有属性: 是类共同拥有的 是类各对象独立拥有的 内存分配: 内存空间上是固定的 空间在各个附属类里面分配 分配顺序: 先分配静态对象的空间 继而再 ...
分类:
编程语言 时间:
2016-12-29 07:24:31
阅读次数:
273
本文讨论Java中(静态)变量、(静态)代码块的执行顺序 首先创建3个类: 1、Foo类,用于打印变量 2、Parent类 3、Child类 接下来运行实例: 打印结果: 总结 Java中的静态变量和静态代码块是在类加载的时候就执行的,实例化对象时,先声明并实例化变量再执行构造函数。如果子类继承父类 ...
分类:
编程语言 时间:
2016-12-06 13:54:51
阅读次数:
194
方法区 在一个jvm实例的内部,类型信息被存储在一个称为方法区的内存逻辑区中。类型信息是由类加载器在类加载时从类文件中提取出来的。类(静态)变量也存储在方法区中。 jvm实现的设计者决定了类型信息的内部表现形式。如,多字节变量在类文件是以big-endian存储的,但在加载到方法区后,其存放形式由j ...
分类:
编程语言 时间:
2016-11-28 14:54:40
阅读次数:
223
直接上代码: 代码1: 结果: 120 代码2: 结果: 121 结果分析: 1. 按照静态变量的顺序,初始化各静态变量。(给变量赋予默认值) 2. 按照顺序,赋予静态变量的初始值。 3. 以上结果在于:类静态变量的位置,决定着通过构造方法给sta1 与 sta2 赋予的值是否有效。 4. 在代码一 ...
分类:
编程语言 时间:
2016-11-08 17:31:48
阅读次数:
328
在java中,当我们new一个对象时,对象中的成员,初始化块以及构造方法的加载是有一定的顺序的,看下面一副图: 一、单类(无基类)下的初始化顺序: public class Parent { static String staticStr = "父类静态变量"; private String str ...
分类:
编程语言 时间:
2016-11-03 13:31:13
阅读次数:
280
内部类,顾名思义,就是放在一个类内部的类,一般情况下我们比较少用,但是内部类在实现逻辑的隐藏,多重继承方面有着不小的用途。内部类,主要区分如下 1. 静态内部类 可以将该内部类看作静态方法,可以访问外部类静态变量和静态方法,但是不能访问外部类实例变量和实例方法 实例化方式:Out.In in = n ...
分类:
其他好文 时间:
2016-08-12 01:23:28
阅读次数:
134
看的李刚《疯狂java讲义》,里面讲内部类的地方感觉有点散而且不全,看完之后还是不十分清楚到底怎么用,于是自己写了个程序测试了一下。看如下代码,即可知道外部类和内部类+静态成员和非静态成员之间的相互调用规则。 运行结果如下: 总结如下: 注意: 当如下出现报错:“无法从静态上下文中引用非静态时”,问 ...
分类:
编程语言 时间:
2016-07-02 17:16:16
阅读次数:
165
static关键字作用:没有static在类中定义的【数据和功能】(成员变量和成员方法),都是属于对象的,如果【数据和功能】只是跟类有关系,那么我们可以通过staic关键字修饰,变为(静态变量和静态方法)-属于类。 静态变量 语法:static +成员变量 静态方法 语法:static +成员方法使 ...
分类:
编程语言 时间:
2016-04-24 18:41:36
阅读次数:
188
class Parent { // 静态变量 public static String p_StaticField = "父类--静态变量"; // 变量 public String p_Field = "父类--变量"; protected int i = 9; protected int j =
分类:
编程语言 时间:
2016-03-19 17:51:41
阅读次数:
304
以下操作中,可能的解决java内存泄露问题的手段有:【多选】( ) 答案应该为BD首先内存泄露是由于某些无用对象无法回收,对象回收的条件是根据搜素算法不可达,那么哪些可以作为根呢?1.方法区中类静态变量引用的对象2.虚拟机栈帧中引用的对象3.本地方法栈帧中引用的对象4.方法区中常量引用的对象从这些根
分类:
其他好文 时间:
2016-03-15 20:42:04
阅读次数:
425