静态对象 vs非静态对象   
是类共同拥有的  是类独立拥有的
内存空间上是固定的空间在各个附属类里面分配
先分配静态对象的空间后对非静态对象分配空间,即初始化顺序是先静态再非静态

关于静态对象、静态方法、静态属性

区别:属性VS参数 参数一般是指在方法里临时新建的数值或对象;属性是类声明部分声明的信息。
1、静态对象的数据在程序全局是唯一的,一改都改;如果要处理的东西是整个程序中唯一的,就可以声明成静态对象,类似于C++中的全局变量;另,程序全局范围内,可以有多个某个类的全局变量。但,这并并不是真正的全局变量,static和final共同修饰的成员变量和成员方法,才可简单理解为“全局变量”。
a)对于变量,表示一旦给值就不可修改,且程序全局范围内类名可以访问;
b)对于方法,表示不可覆盖,且程序全局范围内可以通过类名直接访问。
2、非静态对象的数据各是各的,某个类的每个非静态对象之间互不影响,修改其中一个对象或其数据并不影响其余非静态对象。
 3、静态对象和非静态对象都是对象,是对象都是要实例化的。不同之处就是二者的数据表现和存储方式不一样。 
4、静态变量(包括静态对象和静态的Java中的8中基本变量)在内存中只有一个copy(节省内存),JVM只为静态变量分配一次内存,在加载类的过程中完成静态变量的内存分配,可以类名直接访问(方便),当然也可以通过对象来访问(但这是不推荐的);对于实例变量(即非静态变量),每创建一个实例,就会为实例变量分配一次内存,实例变量可以在内存中有多个copy,互不影响(灵活)。
5、静态方法和静态变量的好处:
a) 引用方便;对于公用类型的变量,直接用类名.静态方法名 或者 类名.静态变量名就可  引用并且直接可以修改其属性值,不用getter和setter方法。

b) 保持数据的唯一性;此数据全局都是唯一的,修改他的任何一处地方,在程序所有使用到的地方都将会体现到这些数据的修改。
c) 有效减少多余的浪费。


5、静态方法与静态属性的关系
a)静态方法只能调用静态属性,不能调用非静态属性
b)非静态方法可以随意调用静态属性和非静态属性

静态对象和非静态对象的区别相关推荐

  1. Java构造器、静态对象、非静态对象等的初始化顺序

    Java创建类对象时对于构造器,静态对象.非静态对象的初始化有一定的顺序,我简单归纳一下: class classes {public classes(String n) {System.out.pr ...

  2. 静态变量与非静态变量的区别

    静态变量的类型说明符是static,非静态变量反而类型说明符就不是static了.本文主要介绍静态和非静态变量的区别,希望对你有帮助,一起来看. AD: 静态变量:静态变量使用 static 修饰符进 ...

  3. java 静态变量和非静态_Java中静态和非静态变量之间的区别

    变量为我们提供了程序可以操纵的命名存储.Java中的每个变量都有一个特定的类型,该类型确定变量的内存大小和布局.可以存储在该内存中的值的范围:以及可以应用于该变量的一组操作. 静态变量 静态变量也称为 ...

  4. [转载] java synchronized静态同步方法与非静态同步方法,同步语句块

    参考链接: Java中的静态方法与实例方法 java synchronized静态同步方法与非静态同步方法,同步语句块 并发编程 线程同步 静态方法锁 非静态方法锁 同步块 进行多线程编程,同步控制是 ...

  5. java 非静态 初始化_Java非静态代码块和实例初始化过程

    1 非静态代码块 非静态代码块特点 ①可以为实例变量(非静态的属性)初始化 ②每次创建对象的时候,都会执行一次,且先于构造器执行 ③若有多个非静态的代码块,那么按照定义的顺序从上到下依次执行 ④代码块 ...

  6. fegin需要实现类_【第24条】静态成员类优于非静态成员类

    第24条 静态成员类优于非静态成员类 嵌套类(nested class)是指定义在另一个类的内部的类.嵌套类存在的目的应该只是为它的外围类(enclosing class)提供服务.如果嵌套类将来可能 ...

  7. java synchronized静态同步方法与非静态同步方法,同步语句块

    大纲:java线程知识体系 对代码进行同步控制我们可以选择同步方法,也可以选择同步块,这两种方式各有优缺点.同步块不仅可以更加精确的控制对象锁,还可以控制锁的作用域,何谓锁的作用域?锁的作用域就是从锁 ...

  8. Day17 什么是静态成员类?为什么静态成员类优于非静态成员类?

    Java的静态成员类: 1.静态成员类是最简单的嵌套类.最好把它看成一个普通的类,只是碰巧被声明在另一个类的内部而已,它可以访问外围类的所以成员,包括那些声明为私有的成员. 2.静态成员类是外围类的一 ...

  9. 静态变数和非静态变数_统计资料:了解变数

    静态变数和非静态变数 Statistics 101: Understanding the different type of variables. 统计101:了解变量的不同类型. As we ent ...

  10. java静态数据与非静态数据的初始化

    静态数据 打印结果 当StaticInitialization执行的时候,首先会加载 static Table table = new Table(); static Cupboard cupboar ...

最新文章

  1. 3个写进简历的京东AINLP项目实战
  2. matlab计算数字滤波器的幅频响应
  3. JSP第四课:用户注册登录设计(内置对象使用)
  4. 他凭什么年薪35W,如何抓住2018年大数据AI浪潮?
  5. zend frameword加载已有文件
  6. linux内核网络协议栈--数据包的skb桥转发蓝图(二十六)
  7. 操作Docker容器
  8. response的content-type以及详细列表
  9. android远程linux命令,测试可用的Android远程语音识别实例
  10. 字节跳动 MySQL 学习笔记火了,完整版开放下载!
  11. C语言中的多字节字符与宽字符
  12. [转载] python选择排序二元选择_选择排序:简单选择排序(Simple Selection Sort)
  13. el-table 样式设置
  14. 哈夫曼编码的理解(Huffman Coding)
  15. 【并联机构工作空间分析系列1】 多个圆/圆环求交 得到重叠部分边界 Matlab程序
  16. java线程栅栏_用栅栏(CyclicBarrier)实现高并发测试
  17. AM437x——LED裸机
  18. cpp设计并实现大整数
  19. 目标检测之YOLOv4算法分析
  20. 自学HTTP RCF体会

热门文章

  1. ds哈希查找—二次探测再散列_哈希算法高大上?也不过如此
  2. Java之dead code——无用代码
  3. VB.NET DataGridView与数据库的连接
  4. [20个项目学会BBC micro:bit编程] 12-蜂鸣器控制
  5. select机制的原理
  6. Linux镜像资源收集
  7. keepalived+nginx双机热备+负载均衡
  8. 枚举基类Enum详解
  9. ubuntu下Xmodmap映射Esc和Ctrl_L
  10. 白盒测试的学习之路----(五)TestNG的参数分离