一、概述

       static 关键字是声明静态变量,静态方法用的。static的含义是属于类且不属于类对象的变量和函数。

二、static的产生。

        在创建对象的时候除非用new创建那个类的对象,否则实际上并没有获得任何对象只有当执行new来创建对象时数据存储空间才被分配,其方法才供外界调用。但是有两种情况上述方法时无法解决的

第一种只想为某特定域分配单一存储空间而不去考虑究竟要创建多少对象,甚至不需要创建任何对象。

第二种希望某个方法(变量)不予包含它的类的人很对象关联在一起。也就是没有创建对象,也能调用这个方法。

        为了解决上面的两个问题static关键字就诞生了。

        当一个事物是static的时候就意味着这个域或方法不会与包含它的那个类的任何对象实例关联在一起。即使从未创建某个类的任何对象,也可以调用其Static方法或其static域。

三、例子。

TestStatic.java

	public class TestStatic {
public static int i=33;
}

StaticMain.java

	public class StaticMain {

		/**
* @param args
*/
public static void main(String[] args) {
System.out.println("TestStatic.i="+TestStatic.i); TestStatic s1=new TestStatic();
TestStatic s2=new TestStatic(); System.out.println("s1.i="+s1.i);
System.out.println("s2.i="+s2.i); s2.i=133;
System.out.println("s1.i="+s1.i);
System.out.println("s2.i="+s2.i); } }

效果图:

四、总结。

在例子我们发现第一个打印出来i的值就是实现了希望某个变量不予包含它的类的人很对象关联在一起。也就是没有创建对象,也能调用这个方法。下面的则是实现了只想为某特定域分配单一存储空间而不去考虑究竟要创建多少对象,甚至不需要创建任何对象。static关键字就是为我们解决了这两个问题。

static关键字还是需要慎重使用以免给程序带来不必要的麻烦。

Java入门到精通——基础篇之static关键字的更多相关文章

  1. Java入门到精通——基础篇之多线程实现简单的PV操作的进程同步

    Java入门到精通——基础篇之多线程实现简单的PV操作的进程同步 一.概述     PV操作是对信号量进行的操作.     进程同步是指在并发进程之间存在一种制约关系,一个进程的执行依赖另一个进程的消 ...

  2. Java入门到精通——基础篇之面向对象

    一.概述. Java属于面向对象的一种语言,因为Java是面向对象的语言所以这个语言的诞生需要有五个基本特性: 1)万物皆为对象. 2)程序是对象的集合. 3)每个对象都有自己的由其他对象所构成的存储 ...

  3. Java从入门到精通——基础篇之JSTL标签

    一.语言基础 EL(Expression Language)表达式,目的:为了使JSP写起来更加简单.提供了在 JSP 中简化表达式的方法. 二.分类 核心标签库:提供条件判断.属性访问.URL处理及 ...

  4. Java从入门到精通——基础篇之Servlet与JSP的区别

    一.基本概念 1.1 Servlet Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面.它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器 ...

  5. Java入门到精通——框架篇之Spring源码分析Spring两大核心类

    一.Spring核心类概述. Spring里面有两个最核心的类这是Spring实现最重要的部分. 1.DefaultListableBeanFactory 这个类位于Beans项目下的org.spri ...

  6. Java入门到精通——工具篇之Maven概述

    为接手gxpt准备已经快一个月了从SSH2-->EJB-->环境搭建-->Maven的构建.下面就带领大家初始Maven 一.什么是Maven. Maven是一个垮平台的项目管理工具 ...

  7. Java入门到精通——框架篇之Hadoop概述

    一.Hadoop来历 Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明了倒排索引算法,通过加入了Map ...

  8. 学java入门到精通,不得不看的15本书

    学java入门到精通,不得不看的15本书 一.Java编程入门类1.<Java编程思想>2.<Agile Java>中文版 二.Java编程进阶类1.<重构 改善既有代码 ...

  9. Java面试题之基础篇概览

    Java面试题之基础篇概览 1.一个“.java”源文件中是否可以包含多个类(不是内部类)?有什么限制? 可以有多个类,但只能有一个public的类,且public的类名必须与文件名相一致. 2.Ja ...

随机推荐

  1. socket 和 SocketServer 模块

    一 .Socket 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket socket(TCP,IP)通常也称作"套接字",用于描述IP地址和端 ...

  2. [linux] 替换字符串

    Linux下批量替换多个文件中的字符串的简单方法.用sed命令可以批量替换多个文件中的字符串. 命令如下:sed -i “s/原字符串/新字符串/g” `grep 原字符串 -rl 所在目录` 例如: ...

  3. USACO Section 3.2 01串 Stringsobits

    题目背景 考虑排好序的N(N<=31)位二进制数. 题目描述 他们是排列好的,而且包含所有长度为N且这个二进制数中1的位数的个数小于等于L(L<=N)的数. 你的任务是输出第i(1< ...

  4. 学习总结 java 异常

    package com.hanqi.ec; public class Test1 { public static void main(String[] args) { int a = 10 , b = ...

  5. Android控件大全(二)——Toolbar

    1.隐藏Actionbar 代码中设置:requestWindowFeature(Window.FEATURE_NO_TITLE)     //如果Activity是继承自AppCompatActiv ...

  6. CreateThread和_BeginThread的区别

    1.程序: 程序构成: (1)源代码 (2)可执行的二进制代码 程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念.由操作系统加载其可执行的二进制代码,分配相应的数据结构:进程控制 ...

  7. Visual C++ 开发心得与调试技巧

    自己平时收集的一些技巧与心得,这里分享出来,普及一下知识. 1.如何在Release状态下进行调试 Project->Setting=>ProjectSetting对话框,选择Releas ...

  8. WWF3事件类型活动<第三篇>

    WWF将工作流分为两大类: 面向Human:在工作流运行时通过用户对外部应用程序的操作来影响工作流的业务流转. 面向System:应用程序控制流程. 工作流与应用程序都是可以单独存在的,因此它们之间的 ...

  9. 拿搬东西来解释udp tcpip bio nio aio aio异步

     [群主]雷欧纳德简单理解 tcpip是有通信确认的面对面通信   有打招呼的过程  有建立通道的过程 有保持通道的确认    有具体传输udp是看到对面的人好像在对面等你 就往对面扔东西[群主]雷欧 ...

  10. 5 Ways to Learn and Remember Absolutely Anything

    http://www.inc.com/quora/5-ways-to-learn-and-remember-absolutely-anything.html Start too early on th ...