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. 微信小程序——代码构成

    通过上一章讲解,我们了解到如何初始化一个小程序项目,这里是官方给到demo地址,通过demo来看教程更方便于我们理解项目架构. 由四种文件构成: .json 后缀的 JSON 配置文件 .wxml 后 ...

  2. bootstrap colorscheme以及theme自动生成

    http://paintstrap.com/ 是一个根据adobe kuler color scheme自动生成theme 的工具,比较直观好用,对于调整前端theme有一定参考意义

  3. C++程序运行时间-ZZ

    [15.5.25]贴一段实用的代码,linux下跑过. #include <stdio.h> /* printf */ #include <time.h> /* clock_t ...

  4. Thread调用SaveFileDialog

    public void ThreadSaveFileDialog(string sourceFileName) { Thread importThread = new Thread(new Param ...

  5. easyUI datagrid 重复发送URL请求

    如果在table属性中配置了URL参数,在初始化datagrid时,会发送一次url请求.或者在js中datagrid{url:''}时,也会自动发送一次url请求. 在初始化datagrid时,我并 ...

  6. 沉淀,再出发——在Hadoop集群的基础上搭建Spark

    在Hadoop集群的基础上搭建Spark 一.环境准备 在搭建Spark环境之前必须搭建Hadoop平台,尽管以前的一些博客上说在单机的环境下使用本地FS不用搭建Hadoop集群,可是在新版spark ...

  7. Win10安装msi程序报错2503和2502错误解决方案

    刚升级了系统到win10,重新搭建开发环境,在安装scala的时候一直报2503.2502错误,如图 试了好几种办法都不好使,现在罗列依次用到的三种方法: 一.命令提示符(管理员)启动 "w ...

  8. 第六周 day6 python学习笔记

    1.Python面向对象编程OOP(Object Oriented Programming) 封装:可以隐藏实现细节,使代码模块化 继承:可以扩展已存在的代码模块,可以使代码实现重用 多态:一种接口, ...

  9. Cache及(HttpRuntime.Cache与HttpContext.Current.Cache)

    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/avon520/archive/2009/11/25/4872704.aspx .NET中Cache有两种调用方式:Ht ...

  10. 理解Underscore的设计架构

    在一个多月的毕业设计之后,我再次开始了Underscore的源码阅读学习,断断续续也写了好些篇文章了,基本把一些比较重要的或者个人认为有营养的函数都解读了一遍,所以现在学习一下Underscore的整 ...