知识点
1.static关键字
a.可以修饰变量,方法,代码块
b.修饰的变量和方法可以使用类名.变量名/类名.方法名调用
c.static修饰的资源为静态资源,在类加载的时候执行
d.在静态方法中只能调用静态资源
e.静态代码块的作用就是加载一些静态资源(IP,图片)

在这里就用几个有代表性的代码实例进行简单说明吧,这样或许能够更好地理解;

案例一:

 //用于修饰工具方法
public class StaticDemo {
//在创建对象时赋值属性时才会被创建
private static String info="今天天气真好";
//static修饰的静态变量在类加载时就会存在(.java文件->.class文件)
public static void function(){
int num=10;
System.out.println("静态方法被调用!"+info+num);
}
public static void main(String[]args){
StaticDemo.function();
}
}

♦在案例一中,我们发现当原本是StaticDemo中私人属性的info只有在加上static修饰符之后才能被之后function构造方法调用;

♦而function()中创建的num因为属于局部变量,是在所属构造方法在被创建时一同创建的而不用再次强调使用static修饰。

案例二:

 public class StaticDemo02 {
int i=0;
static int j=0;
public StaticDemo02(){
i++;
j++;
}
public static void main(String[]args){
StaticDemo02 s1=new StaticDemo02();
System.out.println(s1.i);
StaticDemo02 s2=new StaticDemo02();
System.out.println(s2.i);
StaticDemo02 s3=new StaticDemo02();
System.out.println(s3.i);
System.out.println(StaticDemo02.j);
}
}

♦在案例二中我们可以更加清楚地认识到只有在用static修饰变为静态资源后才能不被new关键字干扰;

♦其实在这里为了方便理解,我们可以把用static修饰过后的一般变量看作一种特殊的常量,就像1、2一样,但又不同于一般普通常量,

我们把这种常量称之为静态变量;

另外关于构造方法、代码块和静态代码块在类中谁先执行的问题,我们也同样可以用这样一个较简单的办法测试出来;

 public class StaticDemo03 {
public StaticDemo03(){
System.out.println("构造方法被执行");
}
{
System.out.println("代码块被执行");
}
static{
System.out.println("静态代码块被执行");
}
public static void main(String[]args){
StaticDemo03 sd=new StaticDemo03();
}
}

当然结果可想而知,静态代码块是最先被创建的,而构造方法和一般代码块的执行顺序相差无几。

——————————————————小 结——————————————————————

还是把最主要的static说明用一张表做出来最好了^.^

明天继续更新!

Java中static的用法解析的更多相关文章

  1. Java中static的用法,初始化块

    使用 Arrays 类操作 Java 中的数组语法: Arrays.sort(数组名); 可以使用 sort( ) 方法实现对数组的排序,只要将数组名放在 sort( ) 方法的括号中,就可以完成对该 ...

  2. Java中static的用法

    static静态,作为修饰符,最初是由c引入,一开始static表示退出一个块后依然存在的局部变量.随后,static表示不能被其他文件访问的全局变量和函数.到了C++和java,static表示属于 ...

  3. 【转】Java中static关键字用法总结

    1.     静态方法 通常,在一个类中定义一个方法为static,那就是说,无需本类的对象即可调用此方法 声明为static的方法有以下几条限制: · 它们仅能调用其他的static 方法. · 它 ...

  4. 【java_需阅读】Java中static关键字用法总结

    1.     静态方法 通常,在一个类中定义一个方法为static,那就是说,无需本类的对象即可调用此方法 声明为static的方法有以下几条限制: · 它们仅能调用其他的static 方法. · 它 ...

  5. Java中static关键字用法总结

      1.     静态方法 通常,在一个类中定义一个方法为static,那就是说,无需本类的对象即可调用此方法 声明为static的方法有以下几条限制: · 它们仅能调用其他的static 方法. · ...

  6. java中static关键字的解析

    静态的特点: A:随着类的加载而加载 B:优先于对象而存在 C:静态是被所有对象共享的数据 这也是我们来判断是否使用静态的标准 D:静态的出现,让我们的调用方式多了一种 类名.静态的内容 非静态的内容 ...

  7. Java类中static的用法

    关于Java中static的使用有以下四种情况: 1.静态成员变量         被static修饰的成员变量,叫静态成员变量或类变量:没有被static修饰的变量,叫实例变量. 两者的区别是:  ...

  8. java中this的用法?

    2008-07-28 08:10cztx5479 | 分类:JAVA相关 | 浏览4533次 java中this的用法? import java.awt.*; import java.awt.even ...

  9. 转:十八、java中this的用法

    http://blog.csdn.net/liujun13579/article/details/7732443 我知道很多朋友都和我一样:在JAVA程序中似乎经常见到“this”,自己也偶尔用到它, ...

随机推荐

  1. chrome 浏览器之下载管理器插件

    chrome默认下载器实在是不招人待见,下面插件是一个非常不错的选择: 名称:Chrono下载管理器 插件地址:https://chrome.google.com/webstore/detail/ch ...

  2. vue中key的作用 v-for里警告 v-if的复用

    vue总是会复用页面上已经存在的dom,区别的方法是加上key就可以,还设有v-for时候的警告也是如此key的作用是区别这条跟那条的.<body> <div id="ap ...

  3. 计算属性和监听,computed,watch

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. Java8 新特性之流式数据处理

    一. 流式处理简介 在我接触到java8流式处理的时候,我的第一感觉是流式处理让集合操作变得简洁了许多,通常我们需要多行代码才能完成的操作,借助于流式处理可以在一行中实现.比如我们希望对一个包含整数的 ...

  5. java_BufferedReader的一个应用

    应用来自于我做网页的时候,来读出一个txt文档,由于输出到页面的时候总是没有排版,但是原文件中有换行符,之前是使用的byte数组传输,但是这样无法换行 就使用了BufferedReader,因为它是一 ...

  6. Gym 101873C - Joyride - [最短路变形][优先队列优化Dijkstra]

    题目链接:http://codeforces.com/gym/101873/problem/C 题意: 这是七月的又一个阳光灿烂的日子,你决定和你的小女儿一起度过快乐的一天.因为她真的很喜欢隔壁镇上的 ...

  7. springboot+@async异步线程池的配置及应用

    示例: 1. 配置 @EnableAsync @Configuration public class TaskExecutorConfiguration { @Autowired private Ta ...

  8. iptables 分析(三)

    原文:http://blog.chinaunix.net/uid-24207747-id-2622902.html find_target查到目标并加载成功,返回一个xtables_target型对象 ...

  9. Spring Boot核心注解@SpringBootApplication

    一.作用   @SpringBootApplication是一个组合注解,用于快捷配置启动类. 二.用法   可配置多个启动类,但启动时需选择以哪个类作为启动类来启动项目. 三.拆解 1.拆解     ...

  10. AutoBat

    var currentDir = Directory.GetCurrentDirectory(); var filePath = string.Format("{0}\\Auto.bat&q ...