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. Android学习——Service(二)

    今天来介绍Service的第二种使用方式,Bind方式 Bind方式启动服务 Bind方式和Start方式启动很类似,都是通过Intent来启动,不同的是,Bind方式需要传入三个参数,如下: Int ...

  2. java面试题之----IO与NIO的区别

    JAVA NIO vs IO 当我们学习了Java NIO和IO后,我们很快就会思考一个问题: 什么时候应该使用IO,什么时候我应该使用NIO 在下文中我会尝试用例子阐述java NIO 和IO的区别 ...

  3. 打包python到exe

    #!/usr/bin/python # -*- coding:utf-8 -*- import distutils import py2exe from distutils.core import s ...

  4. Intellij idea用快捷键自动生成序列化id

    ntellij idea用快捷键自动生成序列化id 类继承了Serializable接口之后,使用alt+enter快捷键自动创建序列化id 进入setting→inspections→seriali ...

  5. antd Grid

    import { Row, Col } from 'antd'; <Row type="flex" //内容布局(左靠齐,右靠齐,居中) justify="star ...

  6. C#中internal关键字

    对于一些大型的项目,通常由很多个DLL文件组成,引用了这些DLL,就能访问DLL里面的类和类里面的方法.比如,你写了一个记录日志的DLL,任何项目只要引用此DLL就能实现记录日志的功能,这个DLL文件 ...

  7. c++中左值的含义

    <<cpp primer plus 6th edition>>中的原文(Chapter 8 Adventures in Functions): What is an lvalu ...

  8. android之对于view的一点深入理解

    最近在写程序中,遇到了之前自己没遇到过的代码,一番理解后才知道原来是在动态设定xml布局中的属性.即利用LayoutParams可以动态的设定布局或者控件的宽和高,以及的它的左间距,右间距,内间距,和 ...

  9. thuwc2018 爆炸记

    从没考过这么差,必须好好总结一下.. $day1$: 上午到了雅礼洋湖,下午就开始考试.. 食堂饭菜还是很不错的,听说都是雅礼自己垫的? 下午的$day1$爆炸了.. 开考以后看了一下三个题,感觉一开 ...

  10. interaction-oriented architecture - MVC

    MVC(Model-View-Controller),它是专门针 对交互系统提出的,所以如果我们要构建一个交互系统,那么我们就可以直接应用MVC模式,然后 在该模式所搭建的场景的启发下去发现Model ...