内部类---静态内部类和非静态内部类

原创 2015年11月17日 21:31:02

package com.dong.test;


/**
 * 外部类
 *
 */
public class OutClass {
private static String name;


static {
System.out.println("static OutClass");
}


public OutClass() {
System.out.println("c OutClass");
}


/**
* 非静态内部类
*
*/
public class InClass1 {
private String age1;


{
age1 = "";
System.out.println("unstatic InClass1");
}


public InClass1() {
System.out.println("c InClass1");
}
}


/**
* 静态内部类
*
*/
public static class InClass {
private static String age;


static {
System.out.println("static InClass");
}


public InClass() {
System.out.println("c InClass");
}
}


public static void say() {
// System.out.println("name:" + name);
System.out.println("name:" + name + " age:" + InClass.age);//此行代码才会初始化InClass
}


public void say1() {
// System.out.println("name:" + name);
  System.out.println("name:" + name + " age1:" + new InClass1().age1);//此行代码才会初始化InClass1
}


}



package com.dong.test;


public class Test {

public static void main(String[] args)throws Exception{

// Class.forName("com.dong.test.OutClass");
OutClass out = new OutClass();
// out.say1();


OutClass.InClass1 in1 = out.new InClass1();

//  OutClass.InClass in = new OutClass.InClass();


}


}

Java 静态内部类 与 非静态内部类的区别?什么时候用静态内部类,又是什么时候用非静态内部类?

Java中内部类加载时间:一般是只有运到了才会初始化,而不是外部内加载的时候(不管是静态还是非静态内部类)。 注意到一个问题: 内部类只有是静态的,其内部类中才能有静态属性和静态方法; 如果内部类...
  • wolf_fang
  • wolf_fang
  • 2016年09月25日 16:11
  • 2206

Android 非静态内部类导致内存泄漏原因深入剖析

Android  非静态内部类导致内存泄漏原因深入剖析背景上周发现蘑菇街IM-Android代码里面,一些地方代码编写不当,存在内存泄漏的问题,在和疯紫交流的过程中,发现加深了一些理解,所以决定写一下...
  • linyukun6422
  • linyukun6422
  • 2016年09月12日 16:14
  • 4886

Android 非静态内部类导致的内存泄露(非static内部类)

从.class文件分析非静态内部类和静态内部类的区别 我们看一个例子就明白了. public class OuterClass { public class NormallInnerCl...
  • lsyz0021
  • lsyz0021
  • 2016年05月22日 09:56
  • 4456

关于java中的静态内部类和非静态内部类

最近在做mapreduce的时候突然对内部类有了疑问,于是翻书做测试算是搞明白一些了,记录下来备以后查阅。 ----------------------------------------------...
  • coder_farmer_2015
  • coder_farmer_2015
  • 2015年03月24日 10:12
  • 1924

成员内部类.局部内部类.静态内部类.匿名内部类的区别

一 对于非静态内部类,不能有静态成员,例如变量,方法等。静态内部类的非静态成员可以访问外部类的静态变量,而不可访问外部类的非静态变量。非静态内部类的非静态成员可以访问外部类的非静态变量。 成员内部类...
  • dipang00
  • dipang00
  • 2016年10月17日 11:51
  • 778

Android内存泄漏(非静态内部类创建静态实例造成的内存泄漏)

Android内存泄漏(非静态内部类创建静态实例造成的内存泄漏)
  • qq_32618417
  • qq_32618417
  • 2016年06月18日 01:15
  • 1580

Java内部类(3):非静态内部类为什么不能有静态成员变量和静态方法。

首先要明白一下三点: static类型的属性和方法,在类加载的时候就会存在于内存中。 要想是用某个类的static属性和方法,那么这个类必须要加载到虚拟机- 中。 非静态内部类并不随外部类一起加载...
  • liu_shi_jun
  • liu_shi_jun
  • 2017年07月10日 18:39
  • 244

Java非静态内部类为什么不能有静态成员

对于java类加载顺序我们知道,首先加载类,执行static变量初始化,接下来执行对象的创建,如果我们要执行代码中的变量i初始化,那么必须先执行加载OuterClass,再加载Innerclass,最...
  • caiwencongwyj
  • caiwencongwyj
  • 2015年05月14日 00:18
  • 1567

java非静态内部类为何不能有静态的成员?

1,博客---记录自己的点滴成长 2,最近接触到关键字这一块,遇到一比较棘手的问题---java非静态内部类为何不能有静态(static)的成员? 3,首先解释几个概念:       1)内部类...
  • zhangcbhui
  • zhangcbhui
  • 2014年12月15日 13:53
  • 1568

Android 非静态内部类/匿名类引起的内存泄漏

一、概述让我们先来回顾一下android内存泄漏的相关概念: - 内存溢出:android系统会给每个安卓程序分配一定的内存,当程序所使用的内存超过最大值就会造成内存溢出,就是常说的OOM - 内...
  • u010618194
  • u010618194
  • 2017年03月20日 21:10
  • 1863
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:内部类---静态内部类和非静态内部类
举报原因:
原因补充:

(最多只允许输入30个字)