java的static研究
(1)static关键字:可以用于修饰属性、方法和类。
1,属性:无论一个类生成了多少个对象,所有这些对象共同使用唯一的一份静态的成员变量(不能修饰临时变量
2,方法:static修饰的方法叫做静态, 对于静态方法来说,可以使用类名.方法名的方式来访问。不能重写(Override)
3,static代码块:静态代码块。静态代码块的作用也是完成一些初始化工作。 首先执行静态代码块,然后执行构造方法。静态代码块在类被加载的时候执行,而构造方法在生成对象的时候执行;
顺序讲得很通透:https://www.cnblogs.com/study-everyday/p/6752715.html#autoid-0-0-0
static过程的小图解:https://www.cnblogs.com/xdp-gacl/p/3637407.html
最后加强理解,标准的图解和例题:https://blog.csdn.net/wang_1997/article/details/52267688
在static下加载的规则:
加载class过程:
父类static成员变量/static代码块/静态方法(书写顺序)-》子类static成员变量/static 代码块/静态方法-》static成员变量默认初始化(0啊这些)-》static成员变量显式初始化(就是new自身看清楚赋值没有)-》执行父类的static代码块-》执行子类的static代码块
实例化过程:
非静态成员默认初始化-》隐式调用父类的super()-》显示初始化非静态成员变量-》构造块的代码-》构造函数
总结:赋值,代码块
https://blog.csdn.net/wang_1997/article/details/52267688 例题理解:
1,就是按照我上面的顺序
2,在静态成员变量初始化-》静态成员变量显示初始化的过程中,new了自己,调用了一些静态成员变量,要注意他们现在只是初始化,并没有赋值,这道题的陷阱就是两个过程交错在一起
3,还有一点就是实例化的时候,不负责(不用理会静态成员变量的初始化)
java的static研究的更多相关文章
- Java关键字--static
在Java中,将关键字static分为三部分进行讨论,分别为Java静态变量.Java静态方法.Java静态类 Java Static Variables Java instance variable ...
- Java中static的用法
static静态,作为修饰符,最初是由c引入,一开始static表示退出一个块后依然存在的局部变量.随后,static表示不能被其他文件访问的全局变量和函数.到了C++和java,static表示属于 ...
- Java之Static静态修饰符详解
Java之Static静态修饰符详解 Java之Static静态修饰符详解 一.特点 1.随着类的加载而加载,随着类的消失而消失,生命周期最长 2.优先于对象存在 3.被所有类的对象共享 4.可以直接 ...
- java中static关键字的作用
java中static关键字主要有两种作用: 第一:为某特定数据类型或对象分配单一的存储空间,而与创建对象的个数无关. 第二,实现某个方法或属性与类而不是对象关联在一起 简单来说,在Java语言中,s ...
- Java的static关键字
本文参考:Java的static关键字 通过static关键字可以满足两方面的需要.一种情形是,只想为某特定域分配单一存储空间,而不去考虑究竟要创建多少对象,甚至根本就不创建任何对象.另一种情形是,希 ...
- java的static关键字 – Break易站
本文内容来自:java的static关键字 – Break易站 (原文网站阅读体验更好) 通过static关键字可以满足两方面的需要.一种情形是,只想为某特定域分配单一存储空间,而不去考虑究竟要创建多 ...
- java中static特殊性和final(static成员直接被访问,this不能用在static方法中,static不可访问非static)
java的static关键字 java中,static修饰的成员变量和成员方法叫静态变量和静态方法,不依赖类特定的实例,被类的所有实例共享. 静态变量或类变量 和 实例变量,区别是: 静态变量在内存中 ...
- Java的static类
首先Java的static类只能是静态内部类.如果在外部类声明为static,程序会编译通不过. 其次,主要了解下static内部类与普通内部类的区别是什么,以及static内部类的作用是什么,详见下 ...
- Java中static的用法,初始化块
使用 Arrays 类操作 Java 中的数组语法: Arrays.sort(数组名); 可以使用 sort( ) 方法实现对数组的排序,只要将数组名放在 sort( ) 方法的括号中,就可以完成对该 ...
随机推荐
- animation CSS3动画总结
最近一个小游戏项目用到了CSS3的动画属性,例如transition.transform.animation.经过三个星期,终于做完了,利用周末好好梳理总结一下. keyframes这个属性用来定义一 ...
- 裸眼3D全攻略3:拍摄3D—瞳距、镜距、视角偏转与空间感
http://sd89.blog.163.com/blog/static/356041322014112532958728/ 3D图片的拍摄,与平面有着全新的不同要求,那就是空间感的表现. 简单来说, ...
- CentOS下 Nginx1.13.5 + PHP7.1.10 + MySQL5.7.19 源码编译安装
一.安装Nginx ①安装依赖扩展 # yum -y install wget openssl* gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng l ...
- 20145104张家明 《Java程序设计》第3周学习总结
20145104张家明 <Java程序设计>第4周学习总结 教材学习内容总结 第四章 认识对象 4.1 类与对象 4.1.1 定义类 类定义时使用class关键词,建立实例要用new关键词 ...
- [微信开发] - 从最新的appid,appsecret读取配置信息
设置好form表单,填写参数传入Java后端做为实例bean,接着存储倒数据库. 当微信端接口配置提交时,Java接口从数据库获取最新的配置信息,可以根据increaseID,也可以设置时间段, 这里 ...
- [Pytorch]Pytorch加载预训练模型(转)
转自:https://blog.csdn.net/Vivianyzw/article/details/81061765 东风的地方 1. 直接加载预训练模型 在训练的时候可能需要中断一下,然后继续训练 ...
- Linux删除重复行 排序和不排序的做法--转载
本文部分翻译自这里,来自 Jadu Saikia 的博客,这个博客上有很多非常有用的小技巧,有空可以多看看. 通常如果我们想获取一个文件里不重复的行的时候,我们可以直接通过 sort -u 命令,先把 ...
- (CLR via C#学习笔记)任务和并行操作
一 任务 可以调用ThreadPool的QueueUserWorkItem方法发起一次异步的计算限制操作.但这个技术有很多限制.最大的问题是没有内建的机制让你知道操作在什么时候完成和操作完成时的返回值 ...
- Qt5编译error01
1.Qt551x86 vs2013 1.1.“error: C2001: 常量中有换行符” 问题还原:源码:“QString str = tr("已接收 %1MB (%2MB/s) \n共% ...
- 自己喜欢用的一个初始化的common.css
body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, fieldset, input, p, blockquote ...