Java中static修饰符的作用

简介: Java中static修饰符的作用

近日在做网络通信服务器和客户端的Java语言开发,碰到了获取客户端长连接Channel对象,利用唯一对象Client的获取方法getSingleClientInstance(),以为可以得到,但是显示始终为空指针。之后又换了好几种获取值的办法,一直是空指针。最后想着static修饰符的作用不是初始化就给了唯一一个内存空间吗?所以改用在Client属性中声明Channel对象为静态对象,又利用getChannel()获取这个静态对象,终于找到你,此时很激动Elate。所以全面的找了一下static修饰符的用法。


既然是修饰符,当然可以修饰一切可以修饰的对象 。 比如,变量、方法、代码块、内部类!也可以这样理解,static域和非static域的存储空间是不同的,被static修饰符修饰的对象,都被存储在静态存储区,当然,每个类的方法也是在静态存储区的。这也就是所说的static修饰的变量和方法被称为类属性和类方法,不隶属于哪一个对象。


1. 变量


一个变量有了static修饰符,内存会为它分配唯一的一块存储空间。程序跑起来的时候,变量就存在在内存里了。谁要用它,就去访问一下它所在的内存。


2. 方法


一个方法被static修饰,可直接访问;不被static修饰,就需要用对象来访问了。


3. 代码块


静态块–>非静态块–>构造函数的顺序执行。

加载静态块时为它分配固定的内存,程序结束时内存才被释放。而非静态块和构造函数则是new一次执行一次。


4. 内部类


只能修饰内部类。

静态内部类也可以拥有静态方法和非静态方法

静态内部类只可以访问外部类的静态成员和静态方法,不可以访问非静态成员和非静态方法

静态内部类访问自己内部的静态成员和静态方法时,也是通过点出来的,不过在前面需要加上外部类的名字。


5.静态导包


静态导包用法,将类的方法直接导入到当前类中,从而直接使用“方法名”即可调用类方法。在单元测试中用的多。比如Assert类的静态导入。


6. 注意事项


被static修饰的方法中不能出现非static对象。


相关文章
|
15天前
|
设计模式 Java 开发者
Java中的static关键字
Java中的static关键字
24 0
|
23天前
|
安全 Java 编译器
【Java开发指南 | 第四篇】Java常量、自动类型转换、修饰符
【Java开发指南 | 第四篇】Java常量、自动类型转换、修饰符
21 4
|
8天前
|
Java
Java的修饰符混用
Java的修饰符混用
|
9天前
|
存储 Java 编译器
【Java探索之旅】静态关键字static与代码块的奥秘
【Java探索之旅】静态关键字static与代码块的奥秘
15 0
|
14天前
|
Java
Java static关键字
`static`关键字用于修饰成员变量和方法,表示它们属于类而非对象。静态成员变量在内存中只有一份,可被所有对象共享,建议通过类名访问。实例变量每个对象独有,需通过对象访问。静态成员方法与类关联,可直接调用,不依赖对象,而实例方法需要对象来调用并能访问实例成员。在方法中,类方法不能直接访问实例成员,但实例方法可以访问类和实例成员。记得在适当时候使用`this`关键字。
21 1
|
16天前
|
Java
【JAVA学习之路 | 基础篇】static静态方法(类方法)
【JAVA学习之路 | 基础篇】static静态方法(类方法)
|
23天前
|
机器学习/深度学习 存储 前端开发
【Java开发指南 | 第十篇】Java修饰符
【Java开发指南 | 第十篇】Java修饰符
14 3
|
23天前
|
安全 Java
Java修饰符在编程中的应用研究
Java修饰符在编程中的应用研究
19 0
|
23天前
|
Java
【JAVA面试题】static的作用是什么?详细介绍
【JAVA面试题】static的作用是什么?详细介绍
|
23天前
|
Java
[Java 基础] Java修饰符
[Java 基础] Java修饰符