静态:

关键字:static

            概述: 使用static关键字修饰的成员方法、成员变量称为静态成员方法、静态成员变量。

      优缺点

          优点:使用时不用创建对象,节约了空间。使得代码的简洁。

         缺点:局限性(静态方法只能调用静态方法和静态成员变量)

使用场景:  一般情况做工具类使用

      ①.如果成员方法没有使用成员变量或不调用成员方法时

      ②.如果多个对象调用同一个变量时,我们应该共享此变量(使用static修饰达到共享数据的效果)

    规则:

      建议:静态调用静态,非静态调用非静态。

        (非静态可以调用任何状态)

      内存图

查看时请放大

  

代码块  

     静态代码块:

            格式:类中方法外  static{   }

          生命周期:类加载的时候执行  类加载到方法区中的时候会执行

            作用:加载驱动

       构造代码块:

            格式:类中方法外   {   }

          生命周期:new 动作之后 构造方法执行之前

            作用: 抽取构造方法(有参构造和无参构造)中相同的代码

                    局部代码块:

            格式:方法中    {  }

          生命周期:大括号执行完就结束

            作用:节约内存

执行次序:静态代码块 > 构造代码块 > 局部代码块

类变量与实例变量辨析

A:类变量:其实就是静态变量

定义位置:定义在类中方法外

所在内存区域:方法区

生命周期:随着类的加载而加载

特点:无论创建多少对象,类变量仅在方法区中,并且只有一份

B:实例变量:其实就是非静态变量

定义位置:定义在类中方法外

所在内存区域:堆

生命周期:随着对象的创建而加载

特点:每创建一个对象,堆中的对象中就有一份实例变量

day01(静态、代码块、类变量和实类变量辨析 )的更多相关文章

  1. Java:构造代码块,静态代码块

    本文内容: 局部代码块 构造代码块 静态代码块 补充 首发日期:2018-03-28 局部代码块: 局部代码块用于限制变量的生命周期,如果希望某些变量在某一过程之后直接失效而不希望被后面继续操作时,可 ...

  2. java的静态代码块和类变量的隐式覆盖

    静态代码块特点:随着类的加载执行一次,且仅会执行一次 作用:初始化类中的static修饰的变量(static修饰的变量称为类变量.类变量和静态代码块差不多,类变量仅会被初始化一次) 一.静态代码块写法 ...

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

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

  4. 黑马程序员——JAVA基础之主函数main和静态static,静态代码块

    ------- android培训.java培训.期待与您交流! ---------- 主函数:是一个特殊的函数.作为程序的入口,可以被jvm调用. 主函数的定义: public:代表着该函数访问权限 ...

  5. Java类的装载过程和静态代码块

    在Java中,类装载器把一个类装入Java虚拟机中,要经过三个步骤来完成:装载.连接和初始化,其中连接又可以分成校验.准备和解析三步,除了解析外,其它步骤是严格按照顺序完成的,各个步骤的主要工作如下: ...

  6. Java的静态代码块是否会在类被加载时自动执行?

    JAVA静态代码块会在类被加载时自动执行? 一.先看Java静态方法,静态变量 http://www.cnblogs.com/winterfells/p/7906078.html 静态代码块 在类中, ...

  7. JAVA之旅(五)——this,static,关键字,main函数,封装工具类,生成javadoc说明书,静态代码块

    JAVA之旅(五)--this,static,关键字,main函数,封装工具类,生成javadoc说明书,静态代码块 周末收获颇多,继续学习 一.this关键字 用于区分局部变量和成员变量同名的情况 ...

  8. java中的静态变量、静态方法与静态代码块详解与初始化顺序

      我们知道类的生命周期分为装载.连接.初始化.使用和卸载的五个过程.其中静态代码在类的初始化阶段被初始化. 而非静态代码则在类的使用阶段(也就是实例化一个类的时候)才会被初始化. 静态变量 可以将静 ...

  9. 静态代码块 2.构造代码块3.构造方法的执行顺序是1>2>3;明白他们是干嘛的就理解了。

    1.静态代码块 2.构造代码块3.构造方法的执行顺序是1>2>3;明白他们是干嘛的就理解了.1.静态代码块:是在类的加载过程的第三步初始化的时候进行的,主要目的是给类变量赋予初始值.2.构 ...

随机推荐

  1. flask_sqlalchemy

    简介: flask_sqlalchemy 是 Flask Web 框架的一个扩展. 使 Web 服务器以 (ORM: Object Relational Mapping) 对象关系映射的方式与数据库交 ...

  2. Tomcat SSL配置及Tomcat CA证书安装

    Tomcat既可以作为独立的Servlet容器,也可以作为其他HTTP服务器附加的Servlet容器.如果Tomcat在非独立模式下工作, 通常不必配置SSL,由它从属的HTTP服务器来实现和客户的S ...

  3. map模块使用方法

    map指令使用ngx_http_map_module模块提供的.默认情况下,nginx有加载这个模块,除非人为的 --without-http_map_module.ngx_http_map_modu ...

  4. linux 初始设置

    vim .bashrc 添加下行 自用: export PS1="Host:\[\033[1;35m\]\H \[\033[0m\]User:\[\033[1;33m\]\u \[\033[ ...

  5. Mac和iOS开发资源汇总—更新于2013-10-14

    小引本文主要汇集一些苹果开发的资源,会经常更新,建议大家把这篇文章单独收藏(在浏览器中按command+D).今天(2013年10月14日)收录了answer哥(黄爱武)的博客,欢迎大家围观! 今天( ...

  6. spring ioc xml配置

    一个完整的spring xml配置:是把action,service,dao以及其它的资源性配置(如basedao)和公共性配置(如连接数据库)配置在resource.xml中,这样就有四个xml配置 ...

  7. tflearn 实现DNN 全连接

    https://github.com/tflearn/tflearn/blob/master/examples/others/recommender_wide_and_deep.py import n ...

  8. jq闭包

     var jy = jQuery.noConflict(); (function($){ //里面跟jq的所有代码 })(jy) 

  9. 'org.springframework.beans.factory.xml.XmlBeanFactory' is deprecated

    'org.springframework.beans.factory.xml.XmlBeanFactory' is deprecated XmlBeanFactory这个类已经被摒弃了.可以用以下代替 ...

  10. 树莓派项目——基于树莓派的WIFI网络互传系统设计

    一 实验原理 所需硬件:树莓派3B,TP-LINK WiFi模块,笔记本电脑,网线 所需软件:Putty.远程桌面链接.python.cmd界面 树莓派3B是只有信用卡大小的微型电脑,其系统基于Lin ...