欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺析java 的 static 關(guān)鍵字用法

 更新時(shí)間:2016年06月20日 10:21:13   作者:jeyson  
這篇文章主要介紹了淺析java 的 static 關(guān)鍵字用法的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下

本篇淺析java中static的用法,主要五個(gè)方面:靜態(tài)成員變量,靜態(tài)方法,靜態(tài)塊,靜態(tài)內(nèi)部類,靜態(tài)導(dǎo)包。

首先還是一張表格說一下靜態(tài)對象和非靜態(tài)對象的區(qū)別:

靜態(tài)對象 非靜態(tài)對象
歸屬 類共同具有 類的各個(gè)實(shí)例獨(dú)立擁有
內(nèi)存分配 內(nèi)存空間上固定的 附屬類分配
分配空間順序 優(yōu)先分配靜態(tài)對象空間 優(yōu)先分配靜態(tài)對象空間,初始化也一樣

1 靜態(tài)變量,靜態(tài)方法,靜態(tài)塊

靜態(tài)對象,靜態(tài)方法都是在原對象和方法上加上static關(guān)鍵字修飾,表示類可以直接調(diào)用這些,而不需要實(shí)例化后再調(diào)用。具有的好處是:

1--靜態(tài)對象的數(shù)據(jù)是全局唯一的,一改都改,可以保證數(shù)據(jù)的唯一性

2--引用方便,直接用類名.方法(屬性)就可以了,不用再get和set

當(dāng)然靜態(tài)方法(變量,塊)也有相應(yīng)的限制:

1--不能調(diào)用其他非靜態(tài)方法(只能調(diào)用static方法)

2--只能訪問static數(shù)據(jù)

3--不能以任何方式引用this或super

示例代碼:

public class StaticExercise {
public static String sky="jeyson";
public static String getMySky(String sky){
return sky;
}
static {
System.out.println("這是靜態(tài)塊中的內(nèi)容--");
System.out.println("靜態(tài)塊:"+getMySky(sky));
}
/**
* ***靜態(tài)對象好處:
* 1--靜態(tài)對象的數(shù)據(jù)是全局唯一的,一改都改,可以保證數(shù)據(jù)唯一。
* 2--引用方便,直接類名.方法就行了,不用set和get
* ***分配空間順序:
* 先分配靜態(tài)對象空間再分配非靜態(tài)。初始化順序也是這樣
* ***static final 修飾的成員變量和成員方法可以理解為全局變量(java中沒有全局變量概念)
* ***靜態(tài)對象,方法,塊的限制:
* 1--只能調(diào)用其他的static方法
* 2--只能訪問static數(shù)據(jù)
* 3--不能以任何方式引用this或super
* 靜態(tài)對象測試
*/
@Test
public void testStatic1(){
System.out.println(sky);
System.out.println("-----------------");
System.out.println(getMySky(sky));
System.out.println("-----------------");
System.out.println(StaticTest.getSms());
}
} 

2 靜態(tài)內(nèi)部類

當(dāng)一個(gè)類跟另一個(gè)類(外部類)有緊密的聯(lián)系,一般只有用到外部類的時(shí)候才會用該類的話,可以將該類作為靜態(tài)的內(nèi)部類。這樣就可以隨著類的加載而直接產(chǎn)生。不用再可以實(shí)例化。

使用方法:隨類一同被加載,調(diào)用直接外部類.內(nèi)部類.靜態(tài)對象(方法)

示例代碼:

class StaticTest{
public static String sms="to my sky";
public static String getSms(){
return sms;
}
/**
* 靜態(tài)內(nèi)部類
* ***使用場景:
* 內(nèi)部類跟外部類聯(lián)系緊密,一般只有用到外部類的時(shí)候才會用到這個(gè)類
* ***使用
* 隨類一同被加載,直接外部類.內(nèi)部類.靜態(tài)對象(方法)
*/
static class InnerStatic{
public static final String MYSKY="MY FINAL SKY";
}
} 
@Test
public void testStatic2(){
System.out.println(StaticTest.InnerStatic.MYSKY);
} 

2 靜態(tài)導(dǎo)包

如果要用的靜態(tài)方法所在的類跟當(dāng)前類不在同一個(gè)包下,可以使用靜態(tài)導(dǎo)包。這樣你想要用的靜態(tài)方法或變量就相當(dāng)于在該類中直接可見,無需再類名.靜態(tài)變量的方式調(diào)用。

使用方法:

import static 包名.類名.靜態(tài)成員變量(方法)

好處:

被導(dǎo)入的靜態(tài)變量和方法在該類中直接可見,直接用

壞處:

一定程度上降低了代碼的可讀性

代碼示例:

public class MyStaticImportTest {
public static final int number=55;
public static void getMyWords(){
System.out.println("hello ,這是一個(gè)靜態(tài)導(dǎo)包的測試");
}
} 

import static com.generic.MyStaticImportTest.number;
import static com.generic.MyStaticImportTest.getMyWords;
/**
* @Description:
* 靜態(tài)
*/
public class StaticExercise {
/**
* 靜態(tài)導(dǎo)包
* ***使用方法:
* 直接靜態(tài)導(dǎo)入相應(yīng)的變量和方法:(import static 包名.類名.靜態(tài)成員變量(方法)
* import static com.generic.MyStaticImportTest.number;
* import static com.generic.MyStaticImportTest.getMyWords;
* *** 好處:
* 被導(dǎo)入的靜態(tài)方法和變量在這個(gè)類中直接可見,無需再給出類名
* *** 壞處
* 一定程度上降低了代碼的可讀性
*/
@Test
public void testStatic3(){
//靜態(tài)導(dǎo)入后可以直接用
int myNumber=number;
getMyWords();
}
} 

以上所述是小編給大家介紹的淺析java 的 static 關(guān)鍵字用法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Spring遠(yuǎn)程加載配置的實(shí)現(xiàn)方法詳解

    Spring遠(yuǎn)程加載配置的實(shí)現(xiàn)方法詳解

    這篇文章主要介紹了Spring遠(yuǎn)程加載配置的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2023-03-03
  • 基于Java中字符串內(nèi)存位置詳解

    基于Java中字符串內(nèi)存位置詳解

    下面小編就為大家?guī)硪黄贘ava中字符串內(nèi)存位置詳解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-08-08
  • SpringBoot實(shí)現(xiàn)掃碼登錄的示例代碼

    SpringBoot實(shí)現(xiàn)掃碼登錄的示例代碼

    本文主要介紹了SpringBoot實(shí)現(xiàn)掃碼登錄的示例代碼,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • 圖文并茂講解RocketMQ消息類別

    圖文并茂講解RocketMQ消息類別

    這篇文章主要介紹了圖文并茂講解RocketMQ消息類別,RocketMQ對于消息提供了很多用法,包括:同步消息、異步消息、單向發(fā)送、順序消息、延時(shí)消息、批量消息、過濾消息、事務(wù)消息等
    2022-12-12
  • springboot使用redisRepository和redistemplate操作redis的過程解析

    springboot使用redisRepository和redistemplate操作redis的過程解析

    本文給大家介紹springboot整合redis/分別用redisRepository和redistemplate操作redis,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2022-05-05
  • IDEA+Maven搭建Spring環(huán)境的詳細(xì)教程

    IDEA+Maven搭建Spring環(huán)境的詳細(xì)教程

    這篇文章主要介紹了IDEA+Maven搭建Spring環(huán)境的詳細(xì)教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • 基于zipoutputStream的簡單使用

    基于zipoutputStream的簡單使用

    這篇文章主要介紹了基于zipoutputStream的簡單使用方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Idea自動生成Entity實(shí)現(xiàn)過程詳解

    Idea自動生成Entity實(shí)現(xiàn)過程詳解

    這篇文章主要介紹了Idea自動生成Entity實(shí)現(xiàn)過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • 如何使用Collections.reverse對list集合進(jìn)行降序排序

    如何使用Collections.reverse對list集合進(jìn)行降序排序

    這篇文章主要介紹了Java使用Collections.reverse對list集合進(jìn)行降序排序,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • SpringBoot打jar包遇到的xml文件丟失的解決方案

    SpringBoot打jar包遇到的xml文件丟失的解決方案

    這篇文章主要介紹了SpringBoot打jar包遇到的xml文件丟失的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09

最新評論