电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

一文帶你快速了解java中的static關鍵詞

瀏覽:40日期:2022-08-19 15:30:19
Static基本規則:

(1)一個類的靜態方法只能訪問靜態屬性。

(2)一個類的靜態方法不能直接調用非靜態方法。

(3)如果訪問權限允許,static屬性和方法可以使用對象加’.’方式調用,當然也可以使用實例加’.’方式調用。

(4)靜態方法中不存在當前對象,所以不能使用this,當然也不能使用super。

(5)靜態方法不能被非靜態方法覆蓋。

(6)構造方法不允許被聲明為static的。

static關鍵詞,可以加在方法上,成員變量上,代碼塊。 類就不要想了。

1. static方法

static方法可以在類沒有實例化的情況話直接訪問。 在靜態方法中不能訪問類的非靜態成員變量和非靜態成員方法,因為非靜態成員方法/變量都是必須依賴具體的對象才能夠被調用。

2. static變量

static變量也稱作靜態變量,靜態變量和非靜態變量的區別是:靜態變量被所有的對象所共享,在內存中只有一個副本,它當且僅當在類初次加載時會被初始化。而非靜態變量是對象所擁有的,在創建對象的時候被初始化,存在多個副本,各個對象擁有的副本互不影響。

static成員變量的初始化順序按照定義的順序進行初始化。

static變量只會有一個內存空間,雖然后多個實例,但這些實例中的static變量會共享同一個內存空間。所以靜態變量的值發生變更要格外注意,以免造成不必要的“bug”。

static變量是在類裝載的時候就被初始化的。

3. static代碼塊

可以用來初始化一些成員信息。

public class testClassA { public static int val = 1; static { System.err.println('11:' + val); val = 2; System.err.println('22:' + val); } public static int getVal() { return val; }}System.err.println(testClassA.getVal());

結果:

11:122:22

4. static內部類

為何要用內部類?

1). 內部類一般只為其外部類使用;

2). 內部類提供了某種進入外部類的窗戶;

3). 也是最吸引人的原因,每個內部類都能獨立地繼承一個接口,而無論外部類是否已經繼承了某個接口。因此,內部類使多重繼承的解決方案變得更加完整。

public class ClassA { public static String val = '1'; public ClassA() { } public static class ClassB {//靜態內部類 public static int bVal = 2; } public class ClassC { public ClassC() { } private void name() { System.err.println('abc'); } }}5. static靜態導入

靜態導包是為了簡化代碼,提高代碼的閱讀性,但是如果濫用閱讀性會很糟糕。

對于靜態導入,一定要遵循兩個規則(來自下面的資料):

不使用*(星號)通配符,除非是導入靜態常量類(只包含常量的類或接口)。方法名是具有明確、清晰表象意義的工具類。

import static java.lang.System.*;public class testClass { public static void main(String[] args) { err.println();//這里就不用system.err.println()了。 }}6. 實現單例

public class ClassA { private static ClassA instance = null; public static synchronized ClassA getInstance() {//靜態方法生成實例 懶漢模式 用到的時候再實例化 if (instance == null) { instance = new ClassA(); } return instance; } public void test() { System.err.println(1); }}

public class ClassA { private static ClassA instance = new ClassA();// 餓漢模式,直接生成實例 public static ClassA getInstance() { return instance; } public void test() { System.err.println(1); }}

//使用volatile關鍵詞,單例模式最優解決方案,不支持舊版jdk

public class ClassA { private volatile static ClassA instance = null; public static ClassA getInstance() { if (instance == null) { synchronized (ClassA.class) { if (instance == null) { instance = new ClassA(); } } } return instance; } public void test() { System.err.println(1); }}

//靜態內部類實現單例模式 兼容舊版jdkpublic class ClassA { private ClassA() { } private static class InstanceClass { private static ClassA instance = new ClassA(); } public static ClassA getInstance() { return InstanceClass.instance; }最新2020整理收集的很多干貨,包含mysql,netty,spring,線程,spring cloud、jvm、源碼、算法等詳細講解,需要獲取這些內容的朋友加Q君樣:756584822 public void test() { System.err.println(1); }}ClassA.getInstance().test(); //使用方法7. 一些注意事項:

1. 靜態的成員變量可以被實例化后的類對象訪問,靜態方法也可以被對象訪問,但是會有警告。

2. 局部變量不可以static。

3. static代碼塊優先于構造函數。

到此這篇關于java中static關鍵詞的文章就介紹到這了,更多相關java中static關鍵詞內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Java
相關文章:
主站蜘蛛池模板: 采暖炉_取暖炉_生物质颗粒锅炉_颗粒壁炉_厂家加盟批发_烟台蓝澳采暖设备有限公司 | 盘古网络技术有限公司| 集装箱箱号识别_自重载重图像识别_铁路车号自动识别_OCR图像识别 | 武汉森源蓝天环境科技工程有限公司-为环境污染治理提供协同解决方案 | 东莞螺丝|东莞螺丝厂|东莞不锈钢螺丝|东莞组合螺丝|东莞精密螺丝厂家-东莞利浩五金专业紧固件厂家 | 电动葫芦-河北悍象起重机械有限公司 | 电动葫芦|防爆钢丝绳电动葫芦|手拉葫芦-保定大力起重葫芦有限公司 | 宜兴紫砂壶知识分享 - 宜兴壶人 医用空气消毒机-医用管路消毒机-工作服消毒柜-成都三康王 | 实验室装修_实验室设计_实验室规划设计- 上海广建净化工程公司 | 蜘蛛车-登高车-高空作业平台-高空作业车-曲臂剪叉式升降机租赁-重庆海克斯公司 | SMC-ASCO-CKD气缸-FESTO-MAC电磁阀-上海天筹自动化设备官网 | 船用锚链|专业锚链生产厂家|安徽亚太锚链制造有限公司 | 超声波焊接机,振动摩擦焊接机,激光塑料焊接机,超声波焊接模具工装-德召尼克(常州)焊接科技有限公司 | 玻璃钢格栅盖板|玻璃钢盖板|玻璃钢格栅板|树篦子-长沙川皖玻璃钢制品有限公司 | 砂尘试验箱_淋雨试验房_冰水冲击试验箱_IPX9K淋雨试验箱_广州岳信试验设备有限公司 | 动物麻醉机-数显脑立体定位仪-北京易则佳科技有限公司 | 重庆磨床过滤机,重庆纸带过滤机,机床伸缩钣金,重庆机床钣金护罩-重庆达鸿兴精密机械制造有限公司 | 鼓风干燥箱_真空烘箱_高温干燥箱_恒温培养箱-上海笃特科学仪器 | 大型多片锯,圆木多片锯,方木多片锯,板材多片锯-祥富机械有限公司 | 三轴曲线机-端子插拔力试验机|华杰仪器 | 电动卫生级调节阀,电动防爆球阀,电动软密封蝶阀,气动高压球阀,气动对夹蝶阀,气动V型调节球阀-上海川沪阀门有限公司 | 精准猎取科技资讯,高效阅读科技新闻_科技猎| 西安展台设计搭建_西安活动策划公司_西安会议会场布置_西安展厅设计西安旭阳展览展示 | 球磨机,节能球磨机价格,水泥球磨机厂家,粉煤灰球磨机-吉宏机械制造有限公司 | 电动车头盔厂家_赠品头盔_安全帽批发_山东摩托车头盔—临沂承福头盔 | ph计,实验室ph计,台式ph计,实验室酸度计,台式酸度计 | 太空舱_民宿太空舱厂家_移动房屋太空舱价格-豪品建筑 | 合肥抖音SEO网站优化-网站建设-网络推广营销公司-百度爱采购-安徽企匠科技 | 中药超微粉碎机(中药细胞级微粉碎)-百科 | 澳门精准正版免费大全,2025新澳门全年免费,新澳天天开奖免费资料大全最新,新澳2025今晚开奖资料,新澳马今天最快最新图库-首页-东莞市傲马网络科技有限公司 | 泰兴市热钻机械有限公司-热熔钻孔机-数控热熔钻-热熔钻孔攻牙一体机 | 物流公司电话|附近物流公司电话上门取货 | 船用锚链|专业锚链生产厂家|安徽亚太锚链制造有限公司 | 电缆接头-防爆电缆接头-格兰头-金属电缆接头-防爆填料函 | 合金ICP光谱仪(磁性材料,工业废水)-百科| 杭州实验室尾气处理_实验台_实验室家具_杭州秋叶实验设备有限公司 | 【甲方装饰】合肥工装公司-合肥装修设计公司,专业从事安徽办公室、店面、售楼部、餐饮店、厂房装修设计服务 | 澳门精准正版免费大全,2025新澳门全年免费,新澳天天开奖免费资料大全最新,新澳2025今晚开奖资料,新澳马今天最快最新图库-首页-东莞市傲马网络科技有限公司 | 东莞螺杆空压机_永磁变频空压机_节能空压机_空压机工厂批发_深圳螺杆空压机_广州螺杆空压机_东莞空压机_空压机批发_东莞空压机工厂批发_东莞市文颖设备科技有限公司 | 油液红外光谱仪-油液监测系统-燃油嗅探仪-上海冉超光电科技有限公司 | 杭州代理记账费用-公司注销需要多久-公司变更监事_杭州福道财务管理咨询有限公司 |