范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

当了5年Java程序员,难道还说不清个static的用途吗?

  当了5年的Java程序员,难道还说不清个static的用途吗?
  你能全说出来吗?static用在哪里?
  下面我为大家提供一个速记的方式,包你记得牢牢的。
  首先我们先把一个Java类中所能存在的所有组件都罗列一遍(相信这对大家来说应该是轻而易举的事情),从上到下依次是:包定义 导入模块 类定义 代码块 变量 常量 构造器 方法 内部类
  其中可以被static修饰的组件为导入模块 、代码块 、变量 、常量 、方法 、内部类 ,这几个部分。
  怎么样,我们只要在脑海中把一个Java类的所有组件过一遍,把其中可被static修饰的组件挑出来就好啦。
  至于static修饰各个组件的用途就取决于static单词的本意:静态。
  静态在Java中就是不变的意思,主要指的是存储位置不变。
  变化主要指创建类的一个新对象时,其内部包含的部分组件会重新在内存中分配创建,相对于已有的对象而言,这些部件的地址就是变化的。
  下面我们来看看这几个static修饰组件的用途
  静态导入  import static java.math.BigDecimal.*; import static java.math.BigDecimal.ONE; import static java.math.BigDecimal.valueOf;
  如上所示,静态导入只能导入目标类中的静态部件 ,如静态变量、静态常量、静态方法等。
  如果按照第一行(1)所示的方式导入,则表示导入BigDecimal类中所有的静态部件,这些部件不必再用类名点用,直接使用就行,像第2-3行所示分别时单独导入一个静态常量和静态方法。package com.dh.base;  import java.math.BigDecimal;  import static java.math.BigDecimal.*; import static java.math.BigDecimal.ONE; import static java.math.BigDecimal.valueOf;  public class StaticTest {     public static void main(String[] args) {         BigDecimal bd = valueOf(1);         BigDecimal bd1 = ONE;      	  BigDecimal bd2 = TEN;     } }
  普通的导入只能导入具体的类
  静态代码块
  代码块就包括普通代码块和静态代码块两种。
  静态代码块是在类加载的时候被执行的,而且只会执行一次。
  也就是说静态代码块是跟着类走的,区别于普通代码块是跟着对象走的,每次创建一个新对象的时候都会执行一次。
  普通代码块主要作用就是为了初始化一些普通成员变量,或者做一些创建对象的前提工作。静态代码块则主要用于初始化一些静态成员变量,或者做一些类加载时的补充工作。
  静态变量
  修饰变量应该是static最常见的用途之一。
  被static修饰后的变量称为静态变量,一旦一个普通变量被static修饰,那么这个变量就会超脱于具体对象,称为类级别的存在。
  什么意思呢?简单说就是静态变量会在类加载的时候分配内存进行保存,而普通变量需要在创建对象的时候才会分配内存空间。
  静态变量属于类,可以使用类名点用的方法调用,即使不存在对应的对象,也可以直接使用,普通变量不可以,必须先有对象之后,通过对象来调用。
  静态常量
  常量和变量的区别仅仅是前者被final修饰。
  final表示最终,也有不变的意思,但这个不变指的是值得内容不变。
  常量一旦赋值,则值不再改变。
  普通常量与静态常量的区别与变量类似。
  普通常量在创建对象的时候分配空间保存,静态常量则是在类加载时进行空间分配。
  静态方法
  修饰方法同样是static最常见的用途之一。
  被static修饰的方法称为静态方法。
  静态方法同样属于类,普通方法属于对象。
  静态方法内部不能直接调用普通方法和普通变量,原因很简单,因为静态方法可以在不存在对象的情况下直接调用,此时没有对象,也就无法调用其名下的普通方法。而在普通方法中则可随意调用普通方法和静态方法。
  这就是一个简单的先后问题。
  静态内部类
  内部类包括成员内部类、静态内部类、匿名内部类、局部内部类四种。
  被static修饰的内部类称为静态内部类,主要与成员内部类进行区分。
  成员内部类是依赖于外部类存在的,其内部存在一个指向外部类的引用,内部只可以有非静态方法与变量,却可以调用外部类的普通变量与方法、静态变量与方法。
  静态内部类脱离了外部类,不存在指向外部类的引用,内部可以有静态方法与变量和非静态方法与变量,且只能调用外部类的静态方法与变量。
  二者的创建对象的方式也不一样。具体见下面代码:package com.dh.base;  public class StaticTest {     String s1 = "普通变量";     static String s = "static变量";          static void staticMethod() {         BigDecimal bd = valueOf(1);         BigDecimal bd1 = ONE;         System.out.println("static方法");     }      void method() {         System.out.println("普通方法");     }      static class staticInnerClass {// 静态内部类         static void innerStaticMethod1() {// 静态方法 //            s1 = "111";// 调用外部成员变量-错误 //            method();// 调用外部普通方法-错误             s = "222";// 调用外部静态变量-正确             staticMethod();// 调用外部静态方法-正确         }         void innerStaticMethod2() {// 非静态方法 //            s1 = "111";// 调用外部成员变量-错误 //            method();// 调用外部普通方法-错误             s = "222";// 调用外部静态变量-正确             staticMethod();// 调用外部静态方法-正确         }     }      class innerClass {// 非静态内部类 //        static void innerStaticMethod1() { }// 不能存在静态方法         void innerStaticMethod2() {// 非静态方法             s1 = "111";// 调用外部成员变量-正确             method();// 调用外部普通方法-正确             s = "222";// 调用外部静态变量-正确             staticMethod();// 调用外部静态方法-正确         }     }      public static void main(String[] args) {         StaticTest.staticInnerClass staticInnerClass = new StaticTest.staticInnerClass();// 静态内部类-点用         StaticTest.innerClass innerClass = new StaticTest().new innerClass();// 非静态内部类-new新建     } }
  好了,就是这些东西,后面东西多了点,其实都挺好了理解,着重理解这个静态的概念就好了。
  有了后面的讲述,再结合一开始的速记法,就能够全面记住static的用法用途。

零基础学java,这几点你要先了解!网络时代,伴随着科技技术应用的普及,软件开发等技术又掀起一股热潮,很多同学想要朝之方面发展,但自己又无从下手,彷徨不定。北大青鸟珠海软件学院以就业为导向,培养学员掌握实用技能跟企业银弹谷精彩亮相工程建设行业信息化发展大会11月2526日由中国施工企业管理协会在浙江省嘉兴市主办的融新汇智互学互鉴第十六届工程建设行业信息化发展大会顺利召开。会议聚焦企业管理信息化智能建造供应链管理三条主线,从企业管理未想转行学编程要不要选择报培训班?下面我们先在这里,就两种学习方式做个简单介绍先说自学简而言之,就是通过一些网上课程或者教程,自学编程。相比于培训,自学方式时间更灵活,即使学习失败也不会造成经济损失,相对而言沉没成阿里蒋凡做了什么?蒋凡事件始末很多网友只知道阿里太子蒋凡出轨了,但是到底是怎么回事,切并不太了解。事件的起因是花花董花花4月17号在微博上发布的一条动态再来招惹我老公我就不客气。引发关注。简单地说阿里的高级总裁孩子成绩差,到底是读中专呢还是高中?临近2020年中高考,许多初高中生正处于憧憬与迷失的阶段。此时如何去选择自己未来的道路,显得尤为重要,特别是对学习成绩不够好的同学,选择大于努力!选择正确的奋斗方向,努力才有结果。找到原因,手机网络卡顿或是因为这几个原因首先,手机中的网络配置错误。是否移动无线互联网连接,或在互联网上,使用数据流很容易出现这种情况,显然速度很好的网络,但实际的互联网速度非常缓慢,有时甚至打不开网页,然后很多问题可能红米K30总是缺货状态?是真的抢手还是别的原因?红米K30U一定是搞饥饿营销的,这一点毋庸置疑。以小米公司目前的规模(市值5000亿元手头现金660亿元的世界500强企业)来看,产能根本不是问题。而且,在目前的手机市场上,有很多华为nova7系列无畏挑战与你一起放飞热血青春每个上班族最期盼的就是假期,这次的五一假期就超级给力的为上班族们带来了5天的快乐生活。很多人在还没放假之前就列出了todolist。不管是窝在家里或者是出门和朋友家人们旅游,大家都618手机大促正式开始!红米K30Pro这次降得有点狠真香由于4G到5G的重要意义,今年手机市场竞争非常激烈,尤其是搭载骁龙865的旗舰手机由于不断推出新手机,因此许多旗舰手机淹没在茫茫大海中价格已经开始下降。现在,每年的618促销即将到22亿游戏玩家,区块链挖矿游戏用户只占32万,为何链游没成规模?有数据信息表明,现阶段全世界游戏玩家已超过22亿,付钱用户超过10亿。这么多玩家,而用户超过千万,做到上亿经营规模的区块链挖矿游戏则屈指可数。为何那么少呢,下边将好多个层面给大伙儿净水器怎么选?关键参数解析,佳尼特大流量RO净水器体验哈喽,我是M慢性子。净水器市场竞争之激烈,产品之多已经到了白热化的阶段。几乎所有的家电品牌都有净水器产品。而如何在众多花里胡哨的宣传中,找到关键的参数呢,今天我就来分享给大家。同时
阿里回应旗下App接入微信支付与其他平台一起面向未来针对阿里旗下多个App已接入微信支付的报道,阿里方面回应称,消息属实,会继续与其他平台一起面向未来,相向而行。据悉,近日,微信支付已与阿里旗下应用互联互通。阿里旗下饿了么优酷大麦考阿里大动作!旗下部分App接入微信支付,股价大涨超6!公司回应会继续与其他平台一起面向未来,相向而行点蓝字关注,不迷路互联网公司的拆墙式整改,正步入纵深。社交购物吃喝娱乐这些App几乎存在于每一个人的手机上,但由于相互之间的兼容性不够甚至链接屏蔽的现象,给大家带来了种种不方便,不今年屏幕四款最强机型,三星苹果各一,国产vivo崭露锋芒三星GalaxyS21UItra作为目前行业内最顶级的OLED屏幕供应商,S21ultra理所当然出现在了这里,尽管已经是今年一月份发布的机型,但仍是目前行业屏幕最顶级的机型!正面想请教一下,华为的天际通功能在海外使用是否方便?划算吗?在国内,我们自然不用担心流量和话费的问题。可是如果到了国外,或者是因为工作的需要,去到国外以后,打电话又是非常的贵,那我们怎么来保证自己随时能和国内的家人朋友沟通呢?社交软件的出现买新还是买旧?索尼X90J真的比X9000H香?马上迎来10。1与双11的促销节点,很多情侣正准备结婚,也有很多喜爱游戏的朋友正打算更换一台120hz电视用于搭配自己的PS5或天蝎座。那么很多人难免第一印象想到的是索尼电视,并对索尼定制耳机Justear推出蓝井艾露联名款,让聆听更贴合你的偏好几乎每一个人对音乐都有不同的感知与偏好,这是音乐流动的魅力所在。正是音频科技的力量使音乐的感染力得以跨越时空地传递。深耕音频行业数十年的索尼,对声学对年轻人的聆听偏好有着独到的见解中兴Axon30至臻版即将开售,奢华帅气的外型你动心了吗?中兴Axon30至臻版将于9月29日900正式开启线上预售,配备了屏下前置摄像头,全新的颜色加持,大气稳重,存储容量更是大到惊人,足足有512GB。中兴Axon30至臻版配置了一块天猫魔屏u2和当贝f3哪个好?投影仪哪个牌子好?在哪里购买?现在纵观许多购物网站,你会发现相较于从前,数码产品的推荐位置越来越靠前,并且投影仪作为一款新兴的家用娱乐产品,也逐渐的占领数码产品靠前位置。抱着浏览长知识的态度进入了推荐页面,天猫华为nova9Pro体验暗光与Vlog能手,时尚群体鸿蒙新选择轻薄设计与影像是华为nova系列一贯的基因,最近发布的华为nova9Pro在此基础上,加入了更多短视频与Vlog元素,更加契合当前的网络视频潮流。与此同时华为nova9Pro的配色iPhone明明很昂贵,为什么有人觉得今年的iPhone13很便宜?这样想的人,大概是没有上班的学生吧?那是你的错觉!虽然我的月收入购买一台iPhone13Promax顶配版,是件很轻松随意的事情,但,我对于动辄五六千块的iPhone13mini或oppo极致性价比,新发布手机,oppok9prooppok系列又更新了,这次oppo带来的是oppok9pro,在我的映象里,K系列性价比还停在oppok5,两年未关注的oppoK系列出了新品让我引起了关注价格oppok9pro