static关键字:可以用于修饰属性,也可以用于修饰方法,还可以用于修饰类.
static 修饰属性: 无论一个类生成了多少个对象,所有这些对象共同使用唯一一份静态的成员变量;一个对象对该静态成员变量进行了修改,其他对象的该静态成员变量的值也会随之发生变化。 如果一个成员变量是 static 的,那么我们可以通过类名.成员变量名的方式来使用它(推荐使用这种方式)。
静态变量是类的,不是某一个对象独占!对象共享!非静态变量每个对象都有一份

静态方法只能继承,不能重写(Override)。

子类隐藏了父类的类方法(静态static方法,Class Method)

-------------------------------------------------------------

final 关键字: final 可以修饰属性、方法、类。
final 修饰类:当一个类被 final 所修饰时,表示该类是一个终态类,即不能被
继承。
final 修饰方法:当一个方法被 final 所修饰时,表示该方法是一个终态方法,即不能被重写( Override)。
final 修饰属性: 当一个属性被 final 所修饰时,表示该属性不能被改写。
final 修饰一个原生数据类型时,表示该原生数据类型的值不能发生变化
(比如说不能从 10 变为 20);如果 final 修饰一个引用类型时,表示该引用
类型不能再指向其他对象了,但该引用所指向的对象的内容是可以发生变化的。

对于final类型的成员变量,必须显示的赋初值

final int a;//有误

对于 final 类型成员变量,一般来说有两种赋初值方式:
a)在声明 final 类型的成员变量时就赋上初值
b)在声明 final 类型的成员变量时不赋初值,但在类的所有构造方法中都为其赋
上初值。

 
static 代码块:静态代码块。静态代码块的作用也是完成一些初始化工作。首先执行静态代码块,然后执行构造方法。静态代码块在类被加载的时候执行, 而构造方法是在生成对象的时候执行;要想调用某个类来生成对象,首先需要将类加载到Java 虚拟机(JVM),然后由 JVM 加载这个类来生成对象。

类的静态代码块只会执行一次,是在类被加载的时候执行的,因为每个类只 会被加载一次,所以静态代码块也只会被执行一次;而构造方法则不然,每 次生成一个对象的时候都会调用类的构造方法,所以 new 一次就会调用构造 方法一次。

如果继承体系中既有构造方法,又有静态代码块,那么首先执行最顶层的类 的静态代码块,一直执行到最底层类的静态代码块,然后再去执行最顶层类 的构造方法,一直执行到最底层类的构造方法。 注意:静态代码块只会执行一次。

不能在静态方法中访问非静态成员变量;可以在静态方法中访问静态的成员 变量。可以在非静态方法中访问静态的成员变量。

总结:静态的只能访问静态的;非静态的可以访问一切。

不能在静态方法中使用 this 关键字。

*两个关键字static和final的更多相关文章

  1. java笔记——Java关键字static、final使用小结

    static  1. static变量     按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量:另一种是没有被static修饰的变量,叫实例变量.两者的 ...

  2. Java关键字static、final使用小结

    static  1. static变量     按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量:另一种是没有被static修饰的变量,叫实例变量.两者的 ...

  3. Java之关键字static和final的使用

    static 在Java中声明属性.方法时,可使用关键字static来修饰. 1.static变量       按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或 ...

  4. JAVA学习笔记--简介几个常见关键字static、final、this、super

    一.static static(静态的),可以放在类.方法.字段之前. 通常,当创建类时,就是在描述那个类的外观与行为.除非用 new 创建那个类的对象,否则,实际上并未获得任何对象.执行 new 来 ...

  5. Java学习日记-5 关键字static和final 以及接口

    乱入:表达式中的自动类型转换 char,short,byte都升级为int类型进行运算,结果为int,但其原变量类型并不改变. 所以,byte b = 10;  b = b*b; 编译时会报错.但是写 ...

  6. Java关键字static、final

    static  1. static变量     按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量:另一种是没有被static修饰的变量,叫实例变量.两者的 ...

  7. java中关键字static和final

    面向对象的不足 凡是有利必有弊,强对象编程,使得语法简单统一,但也有其缺点,而且有很多.我们在接下来的课程里会一点点接触到.我们今天先看第一个. 有些变量和函数确实没必要定义在一个类里.强行规定这些函 ...

  8. 关键字static、final

    final final能修饰类.修饰方法.能修饰属性. 修饰类:该类不能被继承. 修饰方法:该方法不能被重写.所以abstract和final不能同时用 修饰属性/变量:该属性/变量为常量,该值不能再 ...

  9. java关键字static和final

    static可以修饰变量,方法或者类(普通类是不能用static修饰的,只能用来修饰内部类) static静态变量又称之为类变量(和c++中的全局变量概念是一样的),在类加载后,jvm只为类变量分配一 ...

随机推荐

  1. How to add EDT relation table[AX2012]

    setp 1. First create New Edit. setp 2.Create New Table First Table Name is NParentRel then drag and ...

  2. Lucene 3.0

    http://www.cnblogs.com/forfuture1978/archive/2010/02/22/1671487.html http://www.cnblogs.com/jiekzou/ ...

  3. 系统中使用frameset和Iframe刷新页面session失效

    问题:Asp.net中每次刷新页面,session中保存的只就丢失 原因: 1.有些杀毒软件会去扫描web.config文件 2.程序内部有让session丢失的代码,或服务器内存不足 3.程序有框架 ...

  4. python_day2_homework_1(简单购物商城)

    '''简单购物商城(要求):1,商品展示,价格2,买,加入购物车3,付款,钱不够''' 1 #_*_ coding: utf-8 _*_ __author__ = 'A-rno' meu_list_1 ...

  5. Python开发【第一篇】Python基础之装饰器

    写代码要遵循开发封闭原则,虽然在这个原则是用的面向对象开发,但是也适用于函数式编程,简单来说,它规定已经实现的功能代码不允许被修改,但可以被扩展,即: 封闭:已实现的功能代码块开放:对扩展开发 #s2 ...

  6. zendframework 事件管理(二)

    首先需要明确的几个问题: Q1.什么是事件? A:事件就是一个有名字的行为.当这个行为发生的时候,称这个事件被触发. Q2.监听器又是什么? A:监听器决定了事件的逻辑表达,由事件触发.监听器和事件往 ...

  7. cadence PCB绘制步骤

    1 创建一个PCB文件  file -> new 2 创建一个板框  add -> line ,在 options 选型中选择好,板框为 长 4400mil 宽 3200 3 给PCB板框 ...

  8. JDBC 基本操作: CRUD

    Jdbc中的statement对象用于向数据库发送SQL语句,想完成对数据库的增删改查,只需要通过这个对象向数据库发送增删改查语句即可. Statement对象的executeUpdate方法,用于向 ...

  9. Python学习指南

    学习python书籍&资料: 1. Python v2.7.5 documentation 2. [Python参考手册(第4版)].(美)比兹利.扫描版.pdf 3. [Python技术手册 ...

  10. class_create(),device_create()使用

    开始写Linux设备驱动程序的时候,很多时候都是利用mknod命令手动创建设备节点(包括ldd3中不少例子也是这样),实际上现在Linux内核为我们提供了一组函数,可以用来在模块加载的时候自动在/de ...