this、static

this 关键字

类不可以定义 this 属性 ,  但是每个类都有一个 隐藏起来的 this 属性  .
每个对象被创建了 , 都会给其属性分配空间  , 也会给 this 属性 分配  , 并且给其存储了一个值
该值是当前对象本身的地址。
this 始终指向当前对象本身  .
this 有三个作用  和 一个注意点
作用 : 
    this([实参]); 这种格式可以在构造器中 调用本类的其他构造器.
                this([实参]);必须位于第一行
    this.属性 ;
            这种用法可以 区别成员变量  和 局部变量
 
    this.方法
            这种用法可以  调用当前对象的方法
            但是实际上 不用 this  和 使用 this  没有任何区别
        
一个注意点 :
    this 不能出现在  static 修饰的方法  和  代码块中
    因为是 static 加载机制的问题
 
 

static 关键字

 
    static 是静态修饰符 , 可以修饰  属性 方法 代码块 类(内部类)
    static 修饰的元素 都会具有  static 的特性
    
    特性 1
        静态的元素 优先被加载到内存    
        当某个类被使用时  , 会先把这个类加载到 jvm 内存里 , 
        先加载该类的静态成员,然后再加载非静态的元素 .
        静态的元素 优先被加载 , 在静态元素加载的时候  , 此时内存里还不会有 非静态元素  .

    特性 2
        静态的元素 只被加载一次   
    
    特性 3
        静态的元素 不依附对象  , 静态的元素 依附于 类  .
    特性 4 
        静态的成员 在内存里永久存在  不会消失
 

使用 :
        static 修饰属性
            1. 不依附对象  可以直接使用   
                普通属性在对象创建受分配空间
                静态属性 在类加载就分配空间了
                
            2. 只加载一次  
                普通的成员  加载多次  每创建一次就加载 
                而静态的成员  只会加载一次   
 
     static 不可以修饰局部变量  因为冲突
                局部变量 在方法调用时 分配空间      方法结束时回收空间
  static 修饰方法
            只加载一次  不依附对象  依附于类
            使用方式
                1. 类名.方法名 (推荐使用)
                2. 对象.方法名 
                
            static 修饰的方法 又叫静态方法  类方法
            
            静态方法只能访问静态的成员  
            非静态方法 可以访问静态的成员  也可以访问非静态成员
 代码块: 一对大括号就是代码块
   在方法之外的代码块  何时可以执行呢  ?
            在构建对象时 可以执行
            构建一次对象 执行一次
            它在构造器之前执行      
        代码块没有数量限制  ,     执行时按照顺序执行
        属性的声明且赋值 是会被拆分成  声明  + 代码块赋值

  static 修饰代码块
            又称静态代码块
            优先加载  只加载一次 

只能访问静态元素  不能访问非静态元素

 
 

大数据学习--day09(this、static)的更多相关文章

  1. 大数据学习笔记——Linux完整部署篇(实操部分)

    Linux环境搭建完整操作流程(包含mysql的安装步骤) 从现在开始,就正式进入到大数据学习的前置工作了,即Linux的学习以及安装,作为运行大数据框架的基础环境,Linux操作系统的重要性自然不言 ...

  2. 大数据学习笔记——Java篇之集合框架(ArrayList)

    Java集合框架学习笔记 1. Java集合框架中各接口或子类的继承以及实现关系图: 2. 数组和集合类的区别整理: 数组: 1. 长度是固定的 2. 既可以存放基本数据类型又可以存放引用数据类型 3 ...

  3. 大数据学习之 LINUX

    ##大数据学习 古斌6.6 01. linux系统的搭建: 选用 Contos 6.5 x64位系统 (CentOS-6.5-x86_64-minimal.iso) 我选择的为迷你版 模板机: bla ...

  4. 大数据学习day31------spark11-------1. Redis的安装和启动,2 redis客户端 3.Redis的数据类型 4. kafka(安装和常用命令)5.kafka java客户端

    1. Redis Redis是目前一个非常优秀的key-value存储系统(内存的NoSQL数据库).和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list ...

  5. 大数据学习系列之四 ----- Hadoop+Hive环境搭建图文详解(单机)

    引言 在大数据学习系列之一 ----- Hadoop环境搭建(单机) 成功的搭建了Hadoop的环境,在大数据学习系列之二 ----- HBase环境搭建(单机)成功搭建了HBase的环境以及相关使用 ...

  6. 大数据学习系列之五 ----- Hive整合HBase图文详解

    引言 在上一篇 大数据学习系列之四 ----- Hadoop+Hive环境搭建图文详解(单机) 和之前的大数据学习系列之二 ----- HBase环境搭建(单机) 中成功搭建了Hive和HBase的环 ...

  7. 大数据学习系列之六 ----- Hadoop+Spark环境搭建

    引言 在上一篇中 大数据学习系列之五 ----- Hive整合HBase图文详解 : http://www.panchengming.com/2017/12/18/pancm62/ 中使用Hive整合 ...

  8. 大数据学习系列之七 ----- Hadoop+Spark+Zookeeper+HBase+Hive集群搭建 图文详解

    引言 在之前的大数据学习系列中,搭建了Hadoop+Spark+HBase+Hive 环境以及一些测试.其实要说的话,我开始学习大数据的时候,搭建的就是集群,并不是单机模式和伪分布式.至于为什么先写单 ...

  9. 大数据学习系列之九---- Hive整合Spark和HBase以及相关测试

    前言 在之前的大数据学习系列之七 ----- Hadoop+Spark+Zookeeper+HBase+Hive集群搭建 中介绍了集群的环境搭建,但是在使用hive进行数据查询的时候会非常的慢,因为h ...

随机推荐

  1. 论组织资源 #F315

    论组织资源 #F315 2016-02-29 yevon_ou 水库论坛 论组织资源  #F315 首先,让我们看一段长微博. 转:五毛大战美分,基层民猪那破事... 就是小区业委会的事,根据业委会相 ...

  2. UnicodeDecodeError: 'utf8' codec can't decode byte in position invalid start byte

    在scrapy项目中,由于编码问题,下载的网页中中文都是utf-8编码,在Pipeline.py中方法process_item将结果保存到数据库中时,提示UnicodeDecodeError: 'ut ...

  3. Struts2学习-json

    Struts2 实现JSON输出有2种办法1.把Action变成Servlet,使用传统做法2.使用Struts 内置功能完成 二. 1.导入配置,pom.xml,要去struts2的官网下载mvnr ...

  4. myeclipse 复制项目不包含svn或CVS目录

    目前只记录到2个方法:(SVN和CVS都适用) 方法一:导出法 1.右击需要cp的目录,点击export,General/File System 2.next 3.确认你选择的目录,并勾选:Creat ...

  5. 保存头像- vue项目-base64字符串转图片

    <img :onerror="errpic" class="customerHead" :src="param.customerHead&quo ...

  6. std::string,std::vector,std::accumulate注意事项

    在用string做字符串拼接时,会发现随着string的增大越来越慢,原因主要是string(和vector)是基于现行内存的数据结构,在海量数据时,经常会申请新的一块内存,把原有的数据拷贝过去然后再 ...

  7. C#检验IIS版本、SQL Server版本、SilverLight版本

    之前做一个小项目,使用C#检验这些软件的版本,到处找了一些代码,也能作用,记录一下,以防以后用到. 一.检验IIS版本 public static bool checkIIS(string destV ...

  8. ListView实现分页加载(二)实现底布局

    上一篇中,我们搭建好了一个Demo.没有阅读的可以点击下面的链接: http://www.cnblogs.com/fuly550871915/p/4866929.html 在这一篇中,我们将实现Lis ...

  9. 二·安装Subversion(基于Centos7)

    1.在网站http://archive.apache.org/dist/subversion/中下载对应的版本,我的操作系统是centos, 所以我下载了Linux generic版本subversi ...

  10. JsonHelp

    using Newtonsoft.Json; using Newtonsoft.Json.Converters; using Newtonsoft.Json.Linq; using System; u ...