Java覆盖和隐藏 (1) 变量只能被隐藏(包括静态和非静态),不能被覆盖; (2) 可以用子类的静态变量隐藏父类的静态变量,也可以用子类的非静态变量隐藏父类的静态变量,也可以用非最终变量(final)隐藏父类中的最终变量; (3) 静态方法(static)只能被隐藏,不能被覆盖; (4) 非静态方 ...
分类:
编程语言 时间:
2019-01-29 13:57:51
阅读次数:
284
java虚拟机规范虽然没有强制性约束在什么时候开始类加载过程,但是对于类的初始化,虚拟机规范则严格规定了有且只有四种情况必须立即对类进行初始化,遇到new、getStatic、putStatic或invokeStatic这4条字节码指令时,如果类没有进行过初始化,则需要先触发其初始化。生成这4条指令 ...
分类:
编程语言 时间:
2019-01-20 14:06:08
阅读次数:
185
栈、堆、常量池等虽同属Java内存分配时操作的区域,但其适用范围和功用却大不相同。本文将深入Java核心,简单讲解Java内存分配方面的知识。 首先我们先来讲解一下内存中的各个区域。 stack(栈) 存放基本类型的数据和对象的引用,即存放变量。 如果存放的是基本类型数据(非静态变量),则直接将变量 ...
分类:
编程语言 时间:
2018-12-11 11:33:26
阅读次数:
212
数组 一维数组 声明 分配空间 可以在声明的同时分配空间,分配空间之后数组中才能放数据,数组元素都是通过下标来访问,声明数组的同时赋值时不能指定数组长度; foreach: 二维数组 声明并分配空间: 在定义二维数组时可以只指定行的个数,然后再为每一行分别指定列的个数,若每行列数不同,则创建的是不规 ...
分类:
编程语言 时间:
2018-10-01 16:10:44
阅读次数:
207
Java中的static关键字解析 static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,也是各大公司的面试官喜欢在面试时问到的知识点之一。下面就先讲述一下static关键字的用法和平常容易误解的地方,最后列举了一些面试笔试中常见的关于static的考题。以下是本文的目录 ...
分类:
其他好文 时间:
2018-09-16 17:15:07
阅读次数:
179
现在越来越觉得java基础细节的重要性了,这样才有交流的价值。 1、静态变量与非静态变量的区别? ①分配的空间: 静态变量存在于虚拟机的方法区中,并且只有一份这样的内存空间。 非静态变量需要通过new出类实例才能够存在,且分配于堆内存空间中,每new出一份类实例便存在一份变量。 ②使用的方法上: 静 ...
分类:
编程语言 时间:
2018-08-16 22:34:24
阅读次数:
194
static关键字 java中针对多个对象有共同的成员变量值得时候,就提供了static关键字来修饰。 (1)静态的意思。可以修饰成员变量和成员方法。 (2)静态的特点: A:随着类的加载而加载 B:优先与对象存在 C:被类的所有对象共享 这其实也是我们判断该不该使用静态的依据。 D:可以通过类名调 ...
分类:
其他好文 时间:
2018-07-26 11:38:00
阅读次数:
119
4.1 基本概念 4.1.1 java 语言有点 4.1.2 Java 解释型语言 c/c++ 编译型语言 4.1.3 main方法 可以重名但类型等不能重复 4.1.5 static 初始化顺序 : 父类静态变量、父类静态代码块、子类静态变量、子类静态代码块、父类非静态变量、父类非静态代码块、父类 ...
分类:
编程语言 时间:
2018-07-15 12:06:34
阅读次数:
182
什么是Java内存模型 Java虚拟机规范中试图定义一种Java内存模型(Java Memory Model,JMM)来屏蔽掉各种硬件和操作系统的访问差异,以实现让Java程序在各种平台下都能达到一致的内存访问效果。在此之前,主流程序语言(如C/C++等)直接使用物理硬件和操作系统的内存模型,因此, ...
分类:
编程语言 时间:
2018-07-07 17:39:52
阅读次数:
149
隐藏指的是子类把父类的属性或者方法隐藏了,即将子类强制转换成父类后,调用的还是父类的属性和方法,而覆盖则指的是父类引用指向了子类对象,调用的时候会调用子类的具体方法。 (1) 变量只能被隐藏(包括静态和非静态),不能被覆盖 (2) 可以用子类的静态变量隐藏父类的静态变量,也可以用子类的非静态变量隐藏 ...
分类:
编程语言 时间:
2018-07-03 11:51:00
阅读次数:
164