java _static 关键字
• 在类中,用static声明的成员变量为静态成员变量 ,或者叫做: 类属性,类变量.
• 它为该类的公用变量,属于类,被该类的所有实例共享,在类被载入时被显式初始化,
• 对于该类的所有对象来说,static成员变量只有一份。被该类的所有对象共享!!
- 优先于对象存在,随着类的加载而加载
• 可以使用”对象.类属性”来调用。不过,一般都是用“类名.类属性”
• static变量置于方法区中!
如果一个类中所有的成员都是静态的。那么它的构造函数应该设置成 private 的,这样以避免 这个类 被创建成对象


• 用static声明的方法为静态方法
• 不需要对象,就可以调用(类名.方法名)
• 在调用该方法时,不会将对象的引用传递给它,所以在static方法中不可访问非static的成员。只能访问静态成员变量和静态成员方法;
而非静态方法,既可以访问静态成员也可以访问非静态成员
• 静态方法不能以任何方式引用this和super关键字;(随着类加载而加载,而this是随着对象的创建而存在)
public class TestStatic {
int a;
static int width;
static void gg(){
System.out.println("gg"); }
void tt(){
System.out.println("tt"); }
public static void main(String[] args){
TestStatic hi = new TestStatic();
TestStatic.width = 2;
TestStatic.gg(); //gg();
hi.gg(); //通过引用也可以访问static变量或static方法。不过,一般还 是使用类名.static成员名来访问。
gg();
}
}
静态初始化块
• 如果希望加载后,对整个类进行某些初始化操作,可以使用static初始化块。
• 类第一次被载入时先执行static代码块;类多次载入时,static代码块只执行一次;Static 经常用来进行static变量的初始化。
• 是在类初始化时执行,不是在创建对象时执行。
• 静态初始化块中不能访问非static成员。
public class TestStaticBlock {
static {
System.out.println("此处,可执行类的初始化工作!");
}
public static void main(String[] args) {
System.out.println("main方法中的第一句");
}
}
java _static 关键字的更多相关文章
- Java 并发 关键字volatile
Java 并发 关键字volatile @author ixenos volatile只是保证了共享变量的可见性,不保证同步操作的原子性 同步块 和 volatile 关键字机制 synchroniz ...
- 【转载】java final 关键字的几种用法
原文链接点这里,感谢博主分享 在java的关键字中,static和final是两个我们必须掌握的关键字.不同于其他关键字,他们都有多种用法,而且在一定环境下使用,可以提高程序的运行性能,优化程序的结构 ...
- 【转载】java static 关键字的四种用法
原文链接点这里,感谢博主分享 在java的关键字中,static和final是两个我们必须掌握的关键字.不同于其他关键字,他们都有多种用法,而且在一定环境下使用,可以提高程序的运行性能,优化程序的结构 ...
- [java]final关键字的几种用法
在java的关键字中,static和final是两个我们必须掌握的关键字.不同于其他关键字,他们都有多种用法,而且在一定环境下使用,可以提高程序的运行性能,优化程序的结构.下面我们来了解一下final ...
- [java]static关键字的四种用法
在java的关键字中,static和final是两个我们必须掌握的关键字.不同于其他关键字,他们都有多种用法,而且在一定环境下使用,可以提高程序的运行性能,优化程序的结构.下面我们先来了解一下stat ...
- [Java并发编程(三)] Java volatile 关键字介绍
[Java并发编程(三)] Java volatile 关键字介绍 摘要 Java volatile 关键字是用来标记 Java 变量,并表示变量 "存储于主内存中" .更准确的说 ...
- java的关键字与保留字
1,Java 关键字列表 (依字母排序 共50组): abstract, assert, boolean, break, byte, case, catch, char, class, const(保 ...
- 深入java final关键字
Java final关键字详解:https://blog.csdn.net/kuangay/article/details/81509164 深入java final关键字 用法注意点和JVM对其进行 ...
- Java Synchronized 关键字
本文内容 Synchronized 关键字 示例 Synchronized 方法 内部锁(Intrinsic Locks)和 Synchronization 参考资料 下载 Demo Synchron ...
随机推荐
- 前端使用crypto-js进行加解密
import CryptoJS from 'crypto-js' export const crypto = { options() { return { key: CryptoJS.enc.Utf8 ...
- Spring快速复习和总结
IOC:管理和启动的java类的权力反转到了Spring容器了: 具体说明:Spring容器将配置好的bean放到容器(通过beanfactory,这是一个接口)中,并开始启动(反射)和调用(反射)和 ...
- Java框架之MybatisSQL注入漏洞
一.SQL注入漏洞基本原理 在常见的web漏洞中,SQL注入漏洞较为常见,危害也较大.攻击者一旦利用系统中存在的SQL注入漏洞来发起攻击,在条件允许的情况下,不仅可以获取整站数据,还可通过进一步的渗透 ...
- HTML5解决大文件断点续传
一.概述 所谓断点续传,其实只是指下载,也就是要从文件已经下载的地方开始继续下载.在以前版本的HTTP协议是不支持断点的,HTTP/1.1开始就支持了.一般断点下载时才用到Range和Content- ...
- Java——开发环境配置
[1]JDK的安装与卸载 (1)卸载程序 控制面板--添加或删除程序--J2SE Development Kit和J2SE Runtime Envioroment--删除 (2)安装程 ...
- Ubuntu 16.04下使用docker部署ceph集群
ceph集群docker部署 通过docker可以快速部署小规模Ceph集群的流程,可用于开发测试. 以下的安装流程是通过linux shell来执行的:假设你只有一台机器,装了linux(如Ubun ...
- Ubuntu安装过程中的问题
1.win10系统安装32bit ubuntu,使用VM安装ubuntu 的iso文件,刚启动不停按F2,进入BIOS,boot设置为 CD-ROM drive 2.安装界面都没有出现,电脑老是重启, ...
- Apache编译教程
手工编译安装Apache, 版本httpd-2.4.29(免费提供安装包,懒人福利:提供安装脚本):https://blog.51cto.com/13728740/2158576 编译安装apache ...
- [ethereum源码分析](3) ethereum初始化指令
前言 在上一章介绍了关于区块链的一些基础知识,这一章会分析指令 geth --datadir dev/data/02 init private-geth/genesis.json 的源码,若你的eth ...
- TestingWhiz社区版2013版下载地址
TestingWhiz社区版 https://sourceforge.net/projects/testingwhiz-community-edition/ https://sourceforge.n ...