1、static变量

 依照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量;还有一种是没有被static修饰的变量,叫实例变量。

两者的差别是:

 对于静态变量在内存中仅仅有一个拷贝(节省内存),

wd=jvm&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YdnWc1myRvPHRzuH64PW6d0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6K1TL0qnfK1TL0z5HD0IgF_5y9YIZ0lQzqlpA-bmyt8mh7GuZR8mvqVQL7dugPYpyq8Q1c4PjRkPWn3r0" target="_blank" rel="nofollow">jvm仅仅为静态分配一次内存,在载入类的过程中完毕静态变量的内存分配。可用类名直接訪问(方便)。当然也能够通过对象来訪问(可是这是不推荐的)。

 对于实例变量,没创建一个实例。就会为实例变量分配一次内存,实例变量能够在内存中有多个拷贝,互不影响(灵活)。



所以一般在须要实现下面两个功能时使用静态变量:

 在对象之间共享值时

 方便訪问变量时



2、静态方法

静态方法能够直接通过类名调用,不论什么的实例也都能够调用,

因此静态方法中不能用this和superkeyword,不能直接訪问所属类的实例变量和实例方法(就是不带static的成员变量和成员成员方法)。仅仅能訪问所属类的静态成员变量和成员方法。

由于实例成员与特定的对象关联。这个须要去理解,想明确当中的道理,不是记忆。!

由于static方法独立于不论什么实例。因此static方法必须被实现,而不能是抽象的abstract。



比如为了方便方法的调用,

wd=java&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YdnWc1myRvPHRzuH64PW6d0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6K1TL0qnfK1TL0z5HD0IgF_5y9YIZ0lQzqlpA-bmyt8mh7GuZR8mvqVQL7dugPYpyq8Q1c4PjRkPWn3r0" target="_blank" rel="nofollow">java
API中的Math类中全部的方法都是静态的,而一般类内部的static方法也是方便其他类对该方法的调用。



静态方法是类内部的一类特殊方法,仅仅有在须要时才将相应的方法声明成静态的,一个类内部的方法一般都是非静态的



3、static代码块

 static代码块也叫静态代码块。是在类中独立于类成员的static语句块,能够有多个。位置能够随便放,它不在不论什么的方法体内,

wd=jvm&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YdnWc1myRvPHRzuH64PW6d0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6K1TL0qnfK1TL0z5HD0IgF_5y9YIZ0lQzqlpA-bmyt8mh7GuZR8mvqVQL7dugPYpyq8Q1c4PjRkPWn3r0" target="_blank" rel="nofollow">jvm载入类时会运行这些静态的代码块。假设static代码块有多个,jvm将依照它们在类中出现的先后顺序依次运行它们,每一个代码块仅仅会被运行一次。

总结一下:

1、static修饰的变量和函数,在内存中都仅仅要一份拷贝,不同对象间共同拥有的

2、static方法仅仅能调用static方法和static变量

3、static块在jvm载入类是时候运行;

java中statickeyword的更多相关文章

  1. Java中的statickeyword具体解释

    1.statickeyword主要有2个作用: ①为某特定的数据类型或者对象分配单一的存储空间.而与创建对象的个数无关. ②在不创建对象的情况下能够直接通过类名来直接调用方法或者使用类的属性. 2.s ...

  2. Java中普通代码块,构造代码块,静态代码块的代码演示样例及区分

    //运行顺序:(优先级从高到低.)静态代码块>mian方法>构造代码块>构造方法. 当中静态代码块仅仅运行一次.构造代码块在每次创建对象是都会运行. 1 普通代码块 <span ...

  3. java中的锁

    java中有哪些锁 这个问题在我看了一遍<java并发编程>后尽然无法回答,说明自己对于锁的概念了解的不够.于是再次翻看了一下书里的内容,突然有点打开脑门的感觉.看来确实是要学习的最好方式 ...

  4. java中的字符串相关知识整理

    字符串为什么这么重要 写了多年java的开发应该对String不陌生,但是我却越发觉得它陌生.每学一门编程语言就会与字符串这个关键词打不少交道.看来它真的很重要. 字符串就是一系列的字符组合的串,如果 ...

  5. Java中的Socket的用法

                                   Java中的Socket的用法 Java中的Socket分为普通的Socket和NioSocket. 普通Socket的用法 Java中的 ...

  6. java中Action层、Service层和Dao层的功能区分

    Action/Service/DAO简介: Action是管理业务(Service)调度和管理跳转的. Service是管理具体的功能的. Action只负责管理,而Service负责实施. DAO只 ...

  7. Java中常用集合操作

    一.Map 名值对存储的. 常用派生类HashMap类 添加: put(key,value)往集合里添加数据 删除: clear()删除所有 remove(key)清除单个,根据k来找 获取: siz ...

  8. java中的移位运算符:<<,>>,>>>总结

    java中有三种移位运算符 <<      :     左移运算符,num << 1,相当于num乘以2 >>      :     右移运算符,num >& ...

  9. 关于Java中进程和线程的详解

    一.进程:是程序的一次动态执行,它对应着从代码加载,执行至执行完毕的一个完整的过程,是一个动态的实体,它有自己的生命 周期.它因创建而产生,因调度而运行,因等待资源或事件而被处于等待状态,因完成任务而 ...

随机推荐

  1. 自己整理的css3动画库,附下载链接

    动画调用语法 animation: bounceIn 0.3s ease 0.2s 1 both; 按顺序解释参数: 动画名称 如:bounceIn 一周期所用时间 如:0.3s 速度曲线 如:eas ...

  2. 02--Java Socket编程--IO方式

    一.基础知识 1. TCP状态转换知识,可参考: http://www.cnblogs.com/qlee/archive/2011/07/12/2104089.html 2. 数据传输 3. TCP/ ...

  3. CSS——dispaly、overflow、visibility、opacity

    隐藏盒子: 1.overflow:hidden;             隐藏盒子超出的部分. 2.display: none;                    隐藏盒子,而且不占位置.(用的最 ...

  4. TCP报文到达确认(ACK)机制

    TCP数据包中的序列号(Sequence Number)不是以报文段来进行编号的,而是将连接生存周期内传输的所有数据当作一个字节流,序列号就是整个字节流中每个字节的编号.一个TCP数据包中包含多个字节 ...

  5. IOS7升级攻略

    1) Select the main view, set the background color to black (or whatever color you want the status ba ...

  6. requirejs(模块化)

    <script src="../../dist/js/require.js" data-main="../../dist/js/main.js">& ...

  7. js的基础运用

    总结: 1.定义:分为隐式定义和显式定义可以先定义后赋值. 2.+:当两边都是数值则运行加法运算,若一遍是字符型则进行拼接. 3.数值变字符:数值变量.toString()方法. 字符变数值:通过加一 ...

  8. Git环境部署

     部署git 服务器环境   系统环境准备 192.168.30.25   master     git   gitlab 192.168.30.26   client      git 关闭防火墙 ...

  9. 移动端rem布局 js

    // rem布局适配 (function(doc, win) { var docEl = doc.documentElement, resizeEvt = 'orientationchange' in ...

  10. js 简单模板引擎

    代码 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" cont ...