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( ) 方法的括号中,就可以完成对该 ...
随机推荐
- CentOS下安装JDK,Tomcat,Redis,Mysql,及项目发布
上传文件到服务器,安装lrzsz , 可以将本地的文件上传到linux系统上. 如果是CentOS则可以用yum install lrzsz 命令安装,更方便. 或:yum -y install lr ...
- Java笔记 #01# 最近遇到的几个Throwable
续<Java入门第三季>第一章 异常与异常处理. 1.StackOverflowError 第一次碰到这个 Error 居然有点小激动,原因当然是因为它叫 StackOverflow Q: ...
- c++第十九天
p109~p110: C风格字符串 特点: 1.不方便,不安全,尽量不使用. 2.必须以 '\0'结束.(只有这样才能使用C风格字符串函数) 3.一般利用指针操作这些字符. 4.可以用字符串字面值来初 ...
- 20145318《网络对抗》逆向及Bof基础
实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串. 该程序同时包含另一个代码片段,getShe ...
- Javaworkers团队第一周项目总结
项目名称:游戏贪吃蛇 项目介绍: 贪吃蛇是一款相当经典的小游戏,我们团队决定用我们现有的java知识来实现它. 具体设计: 对象:蛇.果实 方向键:控制蛇的运动. 空格键:暂停游戏 ESC:推出游戏( ...
- php+mysql 注入基本过程
当mysql版本>5.0时我们只需要访问information_schema库即可查询数据库的相关概要信息,而对于<5.0的版本则需要爆破,今天我们测试的环境是mysql 5.5.40,对 ...
- [QA翻译]如何在Storm里拆分stream流?
原文:http://stackoverflow.com/questions/19807395/how-would-i-split-a-stream-in-apache-storm 问题:我现在不清楚如 ...
- Codeforces Round #321 (Div. 2) D. Kefa and Dishes(状压dp)
http://codeforces.com/contest/580/problem/D 题意: 有个人去餐厅吃饭,现在有n个菜,但是他只需要m个菜,每个菜只吃一份,每份菜都有一个欢乐值.除此之外,还有 ...
- SRM 585 DIV2
250pt: 一水... 500pt:题意: 给你一颗满二叉树的高度,然后找出出最少的不想交的路径并且该路径每个节点只经过一次. 思路:观察题目中给的图就会发现,其实每形成一个 就会存在一条路径. 我 ...
- redis持久化策略
redis是内存数据库,它把数据存储在内存中,这样在加快读取速度的同时也对数据安全性产生了新的问题,即当redis所在服务器发生宕机后,redis数据库里的所有数据将会全部丢失. 为了解决这个问题,r ...