Java基础教程:内部类 内部类 内部类,是指在一个类的内部定义的类。就像下面这样: 内部类拥有访问外部类所有元素(包括private、static)的访问权。当某个外部类的对象创建了一个内部类对象时,此内部类对象必定会秘密地捕获一个指向那个外围类对象的引用。然后,在你访问此外围类的成员时,就是用那 ...
分类:
编程语言 时间:
2019-07-01 12:13:52
阅读次数:
118
先看一下匿名内部类长什么样子: 再看一下lambda表达式长什么样子 是不是长的很像,一眼能看出区别就在于参数的传递上,匿名内部类是传递的对象,而lambda表达式是传递的函数,那么我们是不是可以认为 lambda实际上就是一个语法糖,简化了部分代码?这就需要我们去看一下底层实现了。 先把两个类都编 ...
分类:
其他好文 时间:
2019-07-01 10:29:43
阅读次数:
94
当我们给一个Integer对象赋一个int值的时候,会调用Integer类的静态方法valueOf,如果看看valueOf的源代码就知道发生了什么。 IntegerCache是Integer的内部类,其代码如下所示: 简单的说,如果字面量的值在-128到127之间,那么不会new新的Integer对 ...
分类:
其他好文 时间:
2019-06-30 12:40:59
阅读次数:
73
Java内部类 一、 含义 在Java编程语言里,程序是由类(class)构建而成的。在一个类的内部也可以声明类,我们把这样的类叫做内部类。 二、 作用 实现了更好的封装,我们知道,普通类(非内部类)的访问修饰符不能为private或protected,而内部类可以。当我们将内部类声明为privat ...
分类:
编程语言 时间:
2019-06-30 10:03:59
阅读次数:
108
本文基于java8从定义一个LinkList入手,逐步展开,从源码角度分析LinkedList双向链表的结构是如何构建的,同时针对其常用方法进行分析,包括get,add,remove以及常用的遍历方法,并简单的说明了它的插入、删除操作为何相对高效,而取值操作性能相对较低 ...
分类:
编程语言 时间:
2019-06-29 17:45:40
阅读次数:
117
1、内部类的使用:(1)定义一个外部类Father,有成员变量name并赋一个初值。(2)定义一个内部类Child,并定义一个getValue()方法,在方法中调用外部类Father的name变量。(3)定义一个测试类,在测试类的main方法中创建Child对象,并调用getValue()方法 ...
分类:
其他好文 时间:
2019-06-29 01:11:22
阅读次数:
127
一.static 有什么用? 1.可以修饰成员变量,成员方法,内部类 2,不可修饰局部变量(局部变量属于类的,不属于方法,而静态是定义在类上的)。 二.static成员 的特点 1,被类中对象共享。 2,通过类名进行调用。 3,随着类的加载而加载。 4,优先于对象存在。 三.static方法的访问特 ...
分类:
其他好文 时间:
2019-06-28 21:14:20
阅读次数:
121
懒汉式 饿汉式(推荐) final修饰,仅有一个实例,所以线程安全的,可直接用于多线程。 静态内部类 枚举 容器 ...
分类:
其他好文 时间:
2019-06-24 16:45:42
阅读次数:
85
因为最近小米电话面试被问到如何判断一个链表是否有环,那今天正好实现以下这个算法 1.链表 内部类的使用,是为了方便调试 测试类: 结果: 测试一: 测试二: 从这里我们可以判断到第二个方法并不能定位到产生环的节点是哪个节点,并且循环次数比第一个多 总结: 方式一:对空间占用比较大,但是时间复杂度底, ...
分类:
其他好文 时间:
2019-06-24 10:37:08
阅读次数:
84
内部类 将一个类A定义在另一个类B里面,里面的那个类A就称为内部类,B则称为外部类。内部类有分为局部内部类,和成员内部类。局部内部类又包含了匿名内部类。 内部类仍然是一个独立的类,在编译之后会内部类会被编译成独立的.class文件,但是前面冠以外部类的类名 和$符号 。 比如,Person$Hear ...
分类:
其他好文 时间:
2019-06-16 21:55:37
阅读次数:
127