zoukankan      html  css  js  c++  java
  • java中static特殊性和final(static成员直接被访问,this不能用在static方法中,static不可访问非static)

    java的static关键字

        java中,static修饰的成员变量和成员方法叫静态变量和静态方法,不依赖类特定的实例,被类的所有实例共享。
    

    静态变量或类变量 和 实例变量,区别是:

        静态变量在内存中只有一个拷贝(节省内存),JVM只分配一次内存,在加载类的过程中完成静态变量的内存分配,用类名直接访问,也可以通过对象来访问(不推荐,尽量不用)。
        实例变量在初始化后一个实例时为该实例分配一次内存,多个实例之间的实例变量是独立的
    

    static的方法和变量可直接用类名访问;

        java中,Static类方法和类变量,先于实例(对象)存在,不用初始化类就可以直接用类名访问。在类加载时Java虚拟机根据类名在运行时数据区的方法区内找到Static方法。
    

    Static方法不能调用非静态成员

        但静态方法不能调用非静态方法,以及引用非静态成员变量。因为类未初始化,没有实例,没有分配内存,不能调用。
    

    非Static方法可以调用Static方法

        实例化后的方法,通过对象自身可以引用static方法
    

    在static方法中不能使用this

        在static方法中不能用this来访问对象。this指针是类对象自身引用,需要类初始化类对象后才能使用,也就是new classA()后才能分配内存,才有this。
        如果设计类时,static函数必须用到某些类成员,则必须将该成员也定义为static。(内存有要求,要考虑内存是否够用)
    

    所以,java类main方法必须是 public static的

        类的main方法这样就可以被外部直接访问,(未住初始化就可以访问)。并且,不初始化类对象不能访问类的非static成员。
    

    类未实例化(初始化new())时,需要访问类内部函数,用java反射机制

    java中final关键字

    1.final的类不允许被继承。
    2.final方法不允许被覆盖。
    3.final变量只能被赋一次值。
    

    判断数: if(! parentRegionID.matches(“d+”))
    判断字符串:if(! parentRegionID.matches(“w+”))
    转义
    ^开头

  • 相关阅读:
    树莓派研究笔记(2)-- 安装Nginx 服务器,PHP 和 SQLite
    树莓派研究笔记(1)-- 安装Mono
    Qemu虚拟机 玩树莓派最新版系统 (截止2017-04-10)
    CLRInjection
    CLRMonitor
    Xamarin Mono for VS开发窗体标题(Title)乱码解决方案
    精美3D中国象棋
    怀旧系列(5)----大学时代的疯狂
    怀旧系列(4)----文曲星编程GV-Basic
    怀旧系列(3)----Pascal
  • 原文地址:https://www.cnblogs.com/cl1024cl/p/6205334.html
Copyright © 2011-2022 走看看