详解java中静态方法有哪些_java类中的静态变量

详解java中静态方法有哪些_java类中的静态变量定义:在类中使用static修饰的静态方法会随着类的定义而被分配和装载入内存中;而非静态方法属于对象的具体实例,只有在类的对象创建时在对象的内存中才有这个方法的代码段。注意:非静态方法既可以访问静态数据成员又可以访问非静态数据成员,而静态方法只能访问静态数据成员;非静态方法既可以访问静态方法又可以访问非静态方法,而静态方法只能访问静态数据方法。原因:因为静态方法和静态数据成员会随着类…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

定义: 在类中使用static修饰的静态方法会随着类的定义而被分配和装载入内存中;而非静态方法属于对象的具体实例,只有在类的对象创建时在对象的内存中才有这个方法的代码段。

注意: 非静态方法既可以访问静态数据成员 又可以访问非静态数据成员,而静态方法只能访问静态数据成员;
非静态方法既可以访问静态方法又可以访问非静态方法,而静态方法只能访问静态数据方法。

原因: 因为静态方法和静态数据成员会随着类的定义而被分配和装载入内存中,而非静态方法和非静态数据成员只有在类的对象创建时在对象的内存中才有这个方法的代码段。

引用静态方法时,可以用类名.方法名或者对象名.方法名的形式。
对以上描述进行验证的代码示例:

import java.util.*;

public class TestStatic {
    public static void main(String[]args){
        System.out.println(S.getStatic());//使用类名加前缀访问静态方法
        S s=new S();
        System.out.println(s.getStatic());//使用实例化对象名访问静态方法
        System.out.println(s.get());
    }
    public static class S
    {
        private static int a;
        private int t=0;

        //静态初始器:由static和{}组成,只在类装载的时候(第一次使用类的时候)执行一次,往往用来初始化静态变量。
        static{
            a=10;
        }

        //静态方法只能访问静态数据成员
        public static int getStatic()
        {
            return a;
        }

        public int getT()
        {
            return t;
        }

        //非静态方法可以访问静态方法和非静态方法
        public int get()
        {
            getT();
            getStatic();
            t=a;//非静态方法可以访问非静态数据成员和静态数据成员
            return t;
        }
    }
}

Jetbrains全家桶1年46,售后保障稳定

总结:
(1)static修饰的静态方法会随着类的定义而被分配和装载入内存中,编译器只为整个类创建了一个静态变量的副本,也就是只分配一个内存空间,虽然可能有多个实例,但这些实例共享该内存,特别值得注意的是,任何一个对象对静态数据成员的修改,都会影响其它对象。
(2)静态不能引用非静态这一特性,是由于静态的会随着类的定义而被分配和装载入内存中这一关键点决定的;如果静态引用了非静态的,根本无法从内存中找到非静态的代码段,势必会出错,这种做法是Java虚拟机决不允许的。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/206713.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 32.HttpRequest对象的学习

    32.HttpRequest对象的学习引言——在前面你也跟着本博主编写了那么多的视图函数,但是每个视图函数它都会接收一个名为request的参数。是不是很好奇:视图函数接收到的request到底是个什么对象!!!HttpRequest对象1.我们可以打印这个request对象,看一下:<WSGIRequest:GET’/music/test3/’>我们知道WSGIRequest是一个HTTP请求对象,里面包括了提交的方式和URL路径。综上可知:服务器接收到http协议的请求后,会根据报文创建HttpReq.

    2022年6月30日
  • 关于pycharm安装第三方库的一些方法_pycharm安装本地第三方库

    关于pycharm安装第三方库的一些方法_pycharm安装本地第三方库问题集合记得关梯子记得关梯子记得关梯子要是遇到pip命令报错,或者在pycharm中无法下载第三方库,首先检查一下梯子是否开了的。我的环境:pycharm+anaconda虚拟环境问题1:问题:WARNING:Youareusingpipversion21.2.4;however,version21.3.1isavailable.Youshouldconsiderupgradingviathe’D:\anaconda\envs\py36\python.e

    2022年8月28日
  • 高中信息技术知识点_高一信息技术基础知识点整理

    高中信息技术知识点_高一信息技术基础知识点整理第一章绪言一、信息1.信息的含义:理解信息的含义:(三种典型的观点)香农的观点:用来消除不确定的东西维纳的观点:区别于物质与能量的第三类资源钟义信的观点:事物运动的状态与方式2.信息的基本特征:依附性、共享性、时效性、价值性、普遍性等例如:信息必须依附于载体,同一信息可以依附于不同的载体。人…

    2022年10月23日
  • 黄金k线图基础知识图解

    黄金k线图基础知识图解  黄金可以说是2019下半年最热门的投资品种,如果懂得选择像现货黄金这样但杠杆型产品,收益更是如虎添翼。但如果你只是刚开始进入这个市场的投资者,最好从黄金k线图基础知识图解开始,认证学习关于K线和交易的知识,才能掌握在黄金市场致富的密码。  一、黄金K线分类图解  1、如果按开、收盘价的关系,可分为阳线、阴线和同价线(十字线、T字线、一字线)。  2、如果按实体的大小,可分为大阳(阴)线、中阳(阴)线和小阳(阴)线。  3、如按影线的有无,可以分为光头K线、光脚K线、光头光脚K线和带有上下影的K线

    2022年5月28日
  • ORACLE11g安装包及安装过程(附安装包)

    ORACLE11g安装包及安装过程(附安装包)ORACLE11g安装包及安装过程这是一个职场小白的第一篇博文,就是随手分享一些经验,希望我可以写的尽量清楚,如果有问题,也希望和大家一起探讨。1.oracle11g安装包链接:https://pan.baidu.com/s/18lYrkqqHG8u4aDdQekHc3g提取码:fg2v一:开始安装解压文件后找到setup.exe,双击开始安装oracle(注意:设置文件路径时尽量不…

    2022年7月25日
  • mysql fulltext搜索_mysql 全文搜索 FULLTEXT

    mysql fulltext搜索_mysql 全文搜索 FULLTEXT到3.23.23时,MySQL开始支持全文索引和搜索。全文索引在MySQL中是一个FULLTEXT类型索引。FULLTEXT索引用于MyISAM表,可以在CREATETABLE时或之后使用ALTERTABLE或CREATEINDEX在CHAR、VARCHAR或TEXT列上创建。对于大的数据库,将数据装载到一个没有FULLTEXT索引的表中,然后再使…

    2022年10月28日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号