static:

1. 修饰变量,方法

表示静态方法,静态变量。

2. static修饰代码块

static{
}

此种形式为静态代码块,用于初始化同时被final static修饰的变量。(当然,更常用的方式其实是在变量处直接赋值)

静态代码块的内容会被直接在类加载时运行

package com.main;

/**
* Created by 63289 on 2017/3/19.
*/
public class HelloJava {
static{
System.out.println("This line will be default initialized");
}
public static void main(String[] args){
System.out.println("Hello World");
}
}

运行结果如下:

This line will be default initialized
Hello World

3. static放在内部类前,形成静态内部类

本文最重要的一部分。

1. static不能修饰顶级类,仅能修饰内部类。

2. static内部类和普通内部类主要不同如下:

(1) 静态内部类不需要指向外部类的引用,非静态内部类需要持有指向外部类的引用。

(这个很好理解,就是非静态的普通类需要在外部类建一个它的对象才能调用,而静态内部类则需要通过类名.方法名这种方法调用。)

(2) 非静态内部类能够访问外部类的静态和非静态成员,静态内部类只能访问外部类的静态成员。

(3) 静态内部类能够声明普通成员变量和静态成员变量和方法,非静态内部类不能声明静态成员变量和方法。

其他如static变量用类名直接调用等不再详述。

final:

1. 未初始化的final成员变量可以且只可以在构造器里初始化一次。

2. 未初始化的final局部变量可以且只可以在所属代码块里初始化一次。

否则就会报错。

Java中static关键字和final关键字的更多相关文章

  1. java中static特殊性和final(static成员直接被访问,this不能用在static方法中,static不可访问非static)

    java的static关键字 java中,static修饰的成员变量和成员方法叫静态变量和静态方法,不依赖类特定的实例,被类的所有实例共享. 静态变量或类变量 和 实例变量,区别是: 静态变量在内存中 ...

  2. 详解详解Java中static关键字和final关键字的功能

    摘要:static关键字和final关键字是Java语言的核心,深入理解他们的功能非常重要. 本文分享自华为云社区<Java: static关键字与final关键字>,原文作者:唐里 . ...

  3. java中static关键字的作用

    java中static关键字主要有两种作用: 第一:为某特定数据类型或对象分配单一的存储空间,而与创建对象的个数无关. 第二,实现某个方法或属性与类而不是对象关联在一起 简单来说,在Java语言中,s ...

  4. Java中static和final的解析

    static关键字和final关键字是Java中一个难点&重点.本文通过static的用途.常见问题.final的用途.final常见问题,以及static和final的对比来解释这两个关键字 ...

  5. Java中的break和continue关键字使用总结

    java中的break和continue关键字使用总结   一.作用和区别   break的作用是跳出当前循环块(for.while.do while)或程序块(switch).在循环块中的作用是跳出 ...

  6. static关键字和final关键字

    static关键字和final关键字 static(静态) 作用 用来修饰属性.方法.代码块.内部类 static修饰属性 表示静态变量(类变量) 按是否使用static修饰,属性的分类 静态属性 当 ...

  7. Java中static final 与 final 的区别(转载)

    转自:http://advance0683.iteye.com/blog/1107732 Java中static final 与 final 的区别: 例子: Java代码 import java.u ...

  8. abstract关键字、final关键字、static关键字、访问修饰符详解

     abstract关键字.final关键字.static关键字.访问修饰符详解 abstract关键字: final关键字: static关键字: 访问修饰符:

  9. Java中static块执行时机

    Java中static块执行时机 演示例子 在使用static进行初始化的操作,怎么也执行不了!代码如下: public class StaticDemo { public static final ...

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

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

随机推荐

  1. GDAL中MEM格式的简单使用示例

    GDAL库中提供了一种内存文件格式--MEM.如何使用MEM文件格式,主要有两种,一种是通过别的文件使用CreateCopy方法来创建一个MEM:另外一种是图像数据都已经存储在内存中了,然后使用内存数 ...

  2. 分布式进阶(十六)Zookeeper入门基础

    Zookeeper入门基础 前言 在Zookeeper中,znode是一个跟Unix文件系统路径相似的节点,可以往这个节点存储或获取数据.如果在创建znode时Flag设置为EPHEMERAL,那么当 ...

  3. 增量会话对象——DeltaSession

    在集群环境中为了使集群中各个节点的会话状态都同步,同步操作是集群重点解决的问题,一般来说有两种同步策略,其一是每次同步都把整个会话对象传给集群中其他节点,其他节点更新整个会话对象:其二是对会话中增量修 ...

  4. TCP的核心系列 — SACK和DSACK的实现(七)

    我们发送重传包时,重传包也可能丢失,如果没有检查重传包是否丢失的机制,那么只能依靠超时来恢复了. 37版本把检查重传包是否丢失的部分独立出来,这就是tcp_mark_lost_retrans(). 在 ...

  5. JDBC详解(汇总)

    from:http://www.cnblogs.com/lee/archive/2007/08/25/869656.html:http://blog.csdn.net/lovesomnus/artic ...

  6. Leetocde_290_Word Pattern

    本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/49717803 Given a pattern and a ...

  7. Java内部类与外部类

    错误提示: 没有任何类型 TestThread 的外层实例可访问.必须用类型 TestThread 的外层实例(例如,x.new A(),其中 x 是 TestThread 的实例)来限定分配. pu ...

  8. rails中link_to与button_to的一个功能差异

    页面中本来设计一个按钮,功能是当按下时跳转到index方法,然后实现一段功能.关键是其中需要传递一个参数show_all,其值为true. index方法中通过判断是否含有该参数来实现不同的逻辑,类似 ...

  9. Math类的方法应用

    class Mortgage { public static void main(String[]args) { double P=Double.parseDouble(args[0]); doubl ...

  10. IT实用技术资源整理

    花了一下午整理出了常用的且比较实用的网站,以及一些收藏的资源,希望对大家有帮助! 常用技术资料 Python中文开发者社区 Python中文官方文档 开源中国社区 Python机器学习 jmeter插 ...