一、static(在方法区有一块固定的存储区域,由于优先于对象存在,所以可以被所有对象共享)

在定义方法的时候你写main方法的类加static,
写普通类的写方法的时候就不要加static

1.static可以用来修饰成员变量和成员方法,
被修饰的成员属于类,而不是单单属于某个对象,
也就是说,既然属于类,就可以不靠创建对象来调用了

进一步介绍:
修饰成员变量
当static修饰成员变量时,该变量称为类变量,该类的每个对象都共享同一个类变量的值,任何对象都可以更改
该变量的值,但也可以在不创建该类的对象的情况下对类变量进行操作

类名.类变量
类名.静态方法名(参数);

修饰成员方法 (静态方法可以访问静态变量,不能访问普通的变量)

类名.方法() 推荐
对象名.方法名() 麻烦

特点
静态方法只能访问静态内容(成员变量,静态成员方法)

notes:
静态方法 可以直接访问 静态变量和 静态方法.
静态方法 不能直接访问 普通成员变量 或 成员方法,反之成员方法可以直接访问静态变量或静态方法
静态方法 不能使用this关键字

二、静态代码块(想在main方法之前执行,可以给静态成员变量赋值)
静态代码块:定义成员位置,使用static修饰代码块()
位置:类方法外
执行:随着类的加载而执行且执行一次,优先于main方法构造和构造方法执行

格式:
public class ClassName{
static{
//
}
}

Java学习之静态代码块的更多相关文章

  1. java学习(一)静态代码块 构造代码块 构造方法的执行顺序及注意问题

    今天我总结了一下java中静态代码块 构造代码块 构造方法的执行顺序及其注意问题 首先要知道静态代码块是随着类的加载而加载,而构造代码块和构造方法都是随着对象的创建而加载 当时做了这么一个小案例(想必 ...

  2. Java面试题 静态代码块 构造代码块 构造方法 的执行顺序

    JAVA中的静态代码块 构造代码块 构造方法执行顺序: 静态代码块(类加载时执行)>>构造代码块>>构造方法 下面展示一个简单的例子,推荐大家动手运行一遍: public cl ...

  3. Java之static静态代码块

    Java之static静态代码块 构造代码块 使用{}包裹的代码区域,这里的代码区域特指位于class{}下面的而不是存在于其他type method(){}这类函数下面的代码区域 public cl ...

  4. Java提高篇——静态代码块、构造代码块、构造函数以及Java类初始化顺序

    静态代码块:用staitc声明,jvm加载类时执行,仅执行一次构造代码块:类中直接用{}定义,每一次创建对象时执行.执行顺序优先级:静态块,main(),构造块,构造方法. 构造函数 public H ...

  5. java中的静态代码块、构造代码块、构造方法

    运行下面这段代码,观察其结果: package com.test; public class HelloB extends HelloA { public HelloB() { } { System. ...

  6. 关于java构造函数,静态代码块,构造代码块,和普通代码块相关总结(一)

    构造函数.构造代码块和静态代码块容易混淆,它们的执行条件和执行顺序也常常容易犯迷.这里就针对这些问题说一下我个人的一些理解,顺便对这部分内容做个小结. 一.构造函数 格式:类名(参数1,参数2,-){ ...

  7. 转转转!!java基础一些静态代码块等知识点

    一.代码块: 构造代码块------类中方法的外面:每次调用构造方法都执行: 静态代码块------类中方法的外面,括号前加上static:只执行一次,随着类的加载而执行: static代码块.构造代 ...

  8. Java 面向对象—非静态代码块

    一.非静态代码块 1.声明格式 [修饰符] class 类名 { { 非静态代码块 } } 2.非静态代码块中的代码执行时机 (1)在"每次"创建对象的时候执行 (2)比构造方法早 ...

  9. java基础之静态代码块,局部代码块,构造代码块区别。

    java中有几种常见的代码块,那怎样区别他们呢? 这里就这些问题,浅谈下我个人的理解. 1.局部代码块 局部代码块,又叫普通代码块.它是作用在方法中的代码块.例如: public void show( ...

随机推荐

  1. python3 raise HTTPError(req.full_url, code, msg, hdrs, fp) urllib.error.HTTPError: HTTP Error 403: Forbid

    1.分析: 如果用 urllib.request.urlopen 方式打开一个URL,服务器端只会收到一个单纯的对于该页面访问的请求,但是服务器并不知道发送这个请求使用的浏览器,操作系统,硬件平台等信 ...

  2. 【转】python直接运行tcl脚本

    python中调用tcl是通过加载TkInter来实现的. from Tkinter import Tcl tcl = Tcl() tcl.eval('source tu.tcl') tcl.eval ...

  3. SQL_sql语言的学习

    关系数据库SQL sql基本功能 SQLde 基本概念 主要知识点 1.外模式包含若干视图和部分基本表 2.模式包含若干基本表 3.内模式包含若干存储文件 4操作对象 基本表:本身独立存在的表,一个关 ...

  4. Android Environment.getExternalStorageDirectory() 获取的是内部存储还是外部存储? - z

    这几天在做Android应用的远程更新功能,将下载的更新包放在移动设备上指定的目录.用的是  Environment.getExternalStorageDirectory() 这个方法,然后在获取的 ...

  5. MySQL 数据库赋予用户权限操作表

    MySQL清空数据库的操作:truncate table tablename; MySQL 赋予用户权限命令的简单格式可概括为:grant 权限 on 数据库对象 to 用户  一.grant 普通数 ...

  6. BAT for 循环

    @echo off echo.Current User is '%USERNAME%'echo.This script must run with administrative privileges ...

  7. mfc 动态创建EDIT控件

    知识点: CWnd::Create CWnd::CreateEx Spy++工具 动态创建控件 一. CWnd::Create 参数 virtual BOOL Create( LPCTSTR lpsz ...

  8. mfc CImageList和CListCtrl

    知识点: CImageList类的运用 CListCtrl添加图标 一.CImageList CImageList*SetImageList(CImageList*pImageList,int nIm ...

  9. R语言学习 第三篇:数据框

    数据框(data.frame)是最常用的数据结构,用于存储二维表(即关系表)的数据,每一列存储的数据类型必须相同,不同数据列的数据类型可以相同,也可以不同,但是每列的行数(长度)必须相同.数据框的每列 ...

  10. ElasticSearch入门 第五篇:使用C#查询文档

    这是ElasticSearch 2.4 版本系列的第五篇: ElasticSearch入门 第一篇:Windows下安装ElasticSearch ElasticSearch入门 第二篇:集群配置 E ...