JAVA中包括成员变量的定义和方法的定义,而成员变量的定义又包括类变量和实例变量的定义:其中用static 修饰的是类变量,而其他是实例变量。

实例变量和类变量的区别:一个类通过使用new 运算符可以创建多个不同的对象,这些对象被分配不同的内存空间,,即不同对象的实例变量被分配的内存空间不同;但是所有对象的类变量都被分配相同的一处内存,改变其中一个对象的这个类变量会影响其他对象的这个类变量。即对象共享变量。当java程序执行时,类的字节码文件被加载到内存,如果该类没有创建对象,类中的实例变量不会被分配内存。但是,类中的类变量在该类被加载到内存时,就分配了相应的内存空间。如果该类创建对象,那么不同对象的实例变量互不相同,即分配的内存空间不同。而类变量不再重新分配内存,所有对象共享类变量,即所有对象的类变量是相同的一处内存空间,类变量的内存空间直到程序退出才释放所占用的内存。类变量是与类相关联的数据变量,即类变量是和该类创建的所有对象相关联的变量,改变其中一个对象的这个类变量就同时改变了其他对象的这个类变量。因此,类变量不仅可以通过某个对象访问,也可以直接通过类名访问。实例变量仅仅是和相应的对象关联的变量,即不同对象的实例变量互不相同,分配不同的内存空间,改变其中一个对象的实例变量不会影响其他对象的这个实例变量。实例变量可以通过对象访问,不能通过类名访问。

实例方法和类方法的区别:java中除构造方法外,其他的方法可以分为实例方法或类方法:用static 修饰的方法是类方法或称为静态方法。剩下的称作实例方法。一个类中的方法可以互相调用:实例方法可以调用该类中的实例方法或类方法;类方法只能调用该类中的类方法,不能调用实例方法。当类中的字节码文件被加载到内存时,类的实例方法不会被分配入口地址,当该类创建对象后,类中的实例方法才分配入口地址,从而实例方法可以被类创建的任何对象调用执行。需要注意的是,当创建第一个对象时,类中的实例方法就分配了入口地址,当再创建对象时,不再分配入口地址,即方法的入口地址被所有的对象共享,当所有的对象都不存在时,方法的入口地址才被取消。

对于类中的类方法,在该类被加载到内存时,就分配了相应的入口地址,从而类方法不仅可以被类创建的任何对象调用执行,也可以直接通过类名调用。类方法的入口地址直到程序退出才被取消。类方法在类的字节码加载到内存时就分配了入口地址,因此,java语言允许通过类名直接调用类方法,而实例方法不能通过类名调用。在java语言中类方法不能操作实例变量,也不能调用实例方法,这是因为在类创建对象之前,实例成员变量还没有被分配内容空间,而实例方法还没有被分配入口地址。

java类名变量_java类名操作变量方法相关推荐

  1. java循环变量_Java初学——Java入门变量 常量选择循环结构

    一.初识java 1.jdk的介绍 下载安装jdk 安装后会存在默认的安装路径 bin 目录:存放编译,运行 Java 程序的可执行文件 lib 目录:存放 Java 的类库文件 jre 目录:存放 ...

  2. java引用变量_java代码声明引用变量经验

    1.static只能修饰类的成员变量,不能修饰方法里的局部变量. 因为static是在类加载时候将成员变量存储进方法区的. 加载类的时候,是不去执行方法里的函数的.所以不会馆方法里的代码,自然就不会读 ...

  3. java 虚函数_Java的虚方法

    虚方法出现在Java的多态特性中, 父类与子类之间的多态性,对父类的函数进行重新定义.如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding).在Java中,子类 ...

  4. java set 包含_Java Set.contains()方法:判断Set集合是否包含指定的对象

    Java 集合类中的 Set.contains() 方法判断 Set 集合是否包含指定的对象.该方法返回值为 boolean 类型,如果 Set 集合包含指定的对象,则返回 true,否则返回 fal ...

  5. java 发送邮件 菜鸟_Java发送邮件的方法

    1.需要的jar包 2.具体实现方法 1.设置邮箱主机.需要认证.邮箱协议 Properties pro=new Properties(); pro.setProperty("mail.ho ...

  6. java环境变量_java环境变量

    1. PATH环境变量.作用是指定命令搜索路径,在shell下面执行命令时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序.我们需要把 jdk安装目录下的bin目录增加到现有的PATH ...

  7. java secretkey用法_Java SecretKeyFactory.generateSecret方法代码示例

    本文整理汇总了Java中javax.crypto.SecretKeyFactory.generateSecret方法的典型用法代码示例.如果您正苦于以下问题:Java SecretKeyFactory ...

  8. java post 发送_Java发送post方法详解

    总结一下java使用http发送post的方法: 1.post请求用于发送json 格式的参数: /** * post请求(用于请求json格式的参数) * * @param url 地址 * @pa ...

  9. java abstract 变量_Java中abstract关键字详解

    abstract只能修饰类(class) 和 方法.而不能修饰成员变量.这是由于抽象的概念确定的.只有类和方法可以抽象出来,而成员变量不需要抽象. abstract修饰类 abstract之所以出现, ...

最新文章

  1. Oracle字符集问题总结
  2. 深度学习DL调参隐藏层节点数对网络性能的影响
  3. PMP知识点(七、资源管理)
  4. javascript event详解
  5. SharePoint 2013 RBS(Remote BLOB Storag) 安装、部署、垃圾回收
  6. 小红书消息中间件的运维实践与治理之路
  7. ★LeetCode(1078)——Bigram 分词(JavaScript)
  8. CCF202006-4 1246【矩阵快速幂】(100分题解链接)
  9. 使用Redis的有序集合实现排行榜功能
  10. python verilog顶层连线_FPGA中顶层模块与各子模块之间的连接线类型
  11. 30分钟学会正则表达式
  12. 【视觉SLAM14讲】【汇总】
  13. 【pyqt5学习】——pyqt5中.qrc资源文件的创建与编写
  14. serialVersionUID 问题处理
  15. (渣男渣女必备之)层次分析法AHP-Analytic Hierarchy Process操作流程及代码实现
  16. 因数据造假,奔驰、日产、保时捷被韩国环境部处以重罚
  17. Python入门学习(五)
  18. 小荷才露尖尖角之struts的秘密
  19. 什么是token,如何使用token
  20. windows下安装spark

热门文章

  1. JavaScript分支结构(判断结构)使用教程
  2. Python如何进行内存管理?
  3. VSC为_锐志 VSC 警告灯间歇点亮
  4. 抖音python广告_抖音上好看的小姐姐,Python给你都下载了
  5. python向mysql中添加数据_Django save()方法不向Mysql数据库插入数据
  6. 教你些技巧,用 Python 自动化办公做一些有趣的事情!太方便了
  7. Linux系统优化脚本
  8. python之sys模块【获取参数】
  9. Django虚拟环境的安装和创建
  10. 小余学调度:调度指令票系列讲解1(持续更新中ing)