精华内容
下载资源
问答
  • static关键字主要有两种作用: 第一,为特定数据类型或对象分配单一的存贮空间,而与创建对象的个数无关。第二,希望某个方法或属性与类而不是对象关联在一起,也就是说, 在不创建对象的情况下就可以通过类来直接...

    static关键字主要有两种作用:

    第一,为特定数据类型或对象分配单一的存贮空间,而与创建对象的个数无关。第二,希望某个方法或属性与类而不是对象关联在一起,也就是说,
    在不创建对象的情况下就可以通过类来直接调用方法或使用类的属性。具体而言,static在java中主要有四种使用情况:成员变量、成员方法、代码块及内部类。
    (1)static成员变量

    虽然java语言中没有全局的概念,但可以通过static关键字来达到全局的效果。java类提供了两种类型的变量:用static关键字修饰的静态变量和没有static关键字修饰的实例变量。静态变量属于类,在内存中只有一个副本(所有势力都指向同一个内存地址)。只要静态变量所在的类被加载,这个静态类就会被分配空间,因此就可以被使用。对静态变量的引用有两种方式,分别为“类.静态变量”和“对象.静态变量”。

    实例变量属于对象,只有对象被创建后,实例变量才会被分配空间,才能被使用,他在内存中存在多个副本,只能用“对象.静态变量”的方式来引用。

    静态变量只有一个,被类所拥有,所有的对象都共享这个静态变量,而实例对象与具体对象有关。

    (2) static成员方法
    与变量类似,java类同时也提供了static方法与非static方法。static方法是类的方法,不需要创建对象就可以被使用,而非static方法是对象的方法,只有对象被创建出来后才可以被使用。

    static 方法中不能使用this和super关键字,不能调用非static方法,只能访问所属类的静态成员变量和成员方法,因为当static方法被调用的时候,这个类的对象可能还没有被创建,即使已经被创建,
    也无法确定调用哪个对象的方法。同理static方法也不能访问非static类型的变量。

    static的一个很重要的的用途的是实现单例模式。单例模式的特点是该类只能有一个实例,为了实现这功能,必须隐藏类的构造方法,即把构造方法申明为private,并提供一个创建对象的方法。由于构造方法被申明为private,外界无法直接创建这个类型对象,只能通过该类提供的方法来获取类的对象,要达到这样的目的只能把创建
    对象的方法生明为static:

    class Singleton{
        private static Singleton instance=null;
        private Singleton(){}
        public static Singleton getInstance(){
            if (instance=null){
                instance=new Singleton();
            }
            return instance;
    
       }
    
    }

    (3) static 代码块

    static代码块在类中是独立与成员变量和成员函数的代码块,他不在任何一个方法体内,JVM在加载里的时候会执行static代码块,如果有多个static代码块,JVM将会按顺序来执行,static代码块经常会被用来初始化静态变量,需要注意的是static代码块只会被执行一次。

    (4)static内部类

    static内部类是指被申明为static的内部类,他可以不依赖于外部类实例对象而被实例化,而通常的内部类需要外部类实例化后才能实例化。静态内部类不能与外部类有相同的名字,不能访问外部类的普通成员变量,只能访问外部类中的静态成员和静态成员方法,只有内部类才能被申明为static。
    ---------------------  
     

    展开全文
  • super关键字主要有以下两种用途

    千次阅读 2014-03-24 13:04:43
    super关键字主要有以下两种用途。  1.调用父类的构造方法  子类可以调用由父类声明的构造方法。但是必须在子类的构造方法中使用super关键字来调用。其具体的语法格式如下:  super([参数列表]);  ...
    super关键字主要有以下两种用途。 

    1.调用父类的构造方法 
    子类可以调用由父类声明的构造方法。但是必须在子类的构造方法中使用super关键字来调用。其具体的语法格式如下: 

    super([参数列表]); 

    如果父类的构造方法中包括参数,则参数列表为必选项,用于指定父类构造方法的入口参数。 

    下面将以5.4.3节介绍的实例为例介绍如何在子类中调用父类的构造方法。 

    在Animal类中添加一个默认的构造方法和一个带参数的构造方法,具体代码如下: 

    public Animal(){ 



    public Animal(String strSkin){ 

    skin=strSkin; 



    这时,如果想在子类Bird中使用父类的带参数的构造方法,则需要在子类Bird的构造方法中通过以下代码进行调用。 

    public Bird(){ 

    super("羽毛"); 



    2.操作被隐藏的成员变量和被覆盖的成员方法 
    如果想在子类中操作父类中被隐藏的成员变量和被覆盖的成员方法,也可以使用super关键字,具体格式如下: 

    super.成员变量名 

    super.成员方法名([参数列表]) 

    例如,如果想在子类Bird的方法中改变父类Animal的成员变量skin的值可以使用以下代码: 

    super.skin="羽毛"; 

    如果想在子类Bird的方法中使用父类Animal的成员方法move()可以使用以下代码: 

    super.move(); 
    展开全文
  • Java static 关键字有那些作用

    千次阅读 2017-03-27 22:24:32
    static 属于 Java 中非常重要的一个关键字,也是使用非常多的一个关键字,另外在面试的过程中也经常被问到,今天我们单拿出来仔细分析,搞清楚 static 在编程中的的基本使用static 关键字主要有两种作用:第一,为某...

           static 属于 Java 中非常重要的一个关键字,也是使用非常多的一个关键字,另外在面试的过程中也经常被问到,今天我们单拿出来仔细分析,搞清楚 static 在编程中的的基本使用

    static 关键字主要有两种作用:

    第一,为某特定数据类型或对象分配单一的存储空间,而与创建对象的个数无关

    第二,实现某个方法或属性与类而不是对象关联在一起,也是就说,在不创建对象的情况下就可以通过类来直接调用方法或使用类的属性,具体而言,在 Java 语言中,static 主要有 4 种使用情况:成员变量成员方法代码块内部类

    接下来我们就把这 4 中情况来一一介绍


    一、static 成员变量


           虽然 Java 语言中没有全局的概念,但可以通过 static 关键字来达到全局的效果,Java 类提供了两种类型的变量:用 static 关键字修饰的静态变量和不用 static 关键字修饰的实例变量,静态变量属于类,在内存中只有一个赋值(所有实例都指向同一个内存地址),只要静态变量所在的类被加载,这个静态变量就会被分配空间,因此就可以被使用了,对静态变量的引用有两种方式,分别为“类.静态变量”和“对象.静态变量”


             实例变量属于对象,只有对象被创建后,实例变量才会被分配空间,才能被使用,它在内存中存在多个赋值,只能用“对象.实例变量”的方式来引用,一下是静态变量和实例变量的使用示例:

    /**
     * static 成员变量测试
     */
    
    public class Test {
    
        //这个是静态的成员变量
        public static int staticInt = 0;
    
        //这个是非静态成员变量
        public int noStaticInt = 0;
    
    
        public static void main(String[] args) {
            //实例化Test
            Test t = new Test();
    
            System.out.print("t.staticInt =" + t.staticInt);
            System.out.print("Test.staticInt =" + Test.staticInt);
            System.out.print("t.noStaticInt =" + t.noStaticInt);
    
            System.out.print("对静态变量和实例变量分别加1");
    
            t.staticInt++;
            t.noStaticInt++;
    
            Test t1 = new Test();
    
            System.out.print("t1.staticInt =" + t1.staticInt);
            System.out.print("Test.staticInt =" + Test.staticInt);
            System.out.print("t1.noStaticInt =" + t1.noStaticInt);
        }
    
    }

    运行结果为:

    t.staticInt = 0

    Test.staticInt = 0

    t.noStaticInt = 0

    对静态变量和实例变量分别加1

    t1.staticInt = 1

    Test.staticInt = 1

    t1.noStaticInt = 0

    从上例可以看出,静态变量只有一个,被类拥有,所有静态对象都共享这个静态变量,而实例对象是与具体对象相关的,这里需要注意的是,与 C++ 语言不同的是,在 Java 语言中,不能再方法体中定义 static 变量


    二、static 成员方法


           与变量类似,Java 类同时也提供了 static 方法与非 static 方法,static 方法是类的方法,不需要创建对象就可以调用,而非 static 方法是对象方法,只有对象被创建出来后才可以被调用


           static 方法中不能使用 this 和 super 关键字,不能调用非 static 方法,只能访问所属类的静态成员变量和成员方法,因为当 static 方法被调用时,这个类的对象可能还没有被创建,即使已经被创建了,也无法确定调用那个对象的方法,同理,static 方法也不能访问非 static 类型的变量


           static 很重要的一个用途就是实现单例模式,单例模式的特点是该类只能有一个实例,为了实现这一功能,必须隐藏类的构造函数,即把构造函数声明为private,并提供一个创建对象的方法,由于构造对象被声明为 private,外界无法创建这个类型的对象,只能通过该类提供的方法来获取类的对象,要达到这样目的的只能把创建对象的方法声明为 static ,程序示例如下:

    如果对构造方法和单例模式还不是太清楚,可以先阅读:

    Java 什么是构造函数

    深度剖析单例模式

    /**
     * 单例模式示例(懒汉式)
     */
    
    public class SingletonTest {
    
        //定义私有构造方法
        private SingletonTest() {
    
        }
    
        //定义一个SingletonTest类型的静态instance变量
        private static SingletonTest instance;
    
        // 静态方法返回该类的实例
        public static SingletonTest getInstance() {
    
            if (instance == null) {
                synchronized (SingletonTest.class) {
                    if (instance == null) {
                        instance = new SingletonTest();
                    }
                }
            }
            return instance;
        }
    }
    用 public 修饰的 static 变量和方法本质上都是全局的,若在 static 变量前用 private 修饰,则表示这个变量可以在类的静态代码块或者类的其他静态成员方法中使用,但是不能其他类中通过类名来直接引用


    三、static 代码块


             static 代码块(静态代码块)在类中是独立于成员变量和成员函数的代码块的,它不在任何一个方法体内,JVM 在加载类时会执行 static 代码块,如果有多个 static 代码块,JVM 将会按顺序来执行, static 代码块经常被用来初始化静态变量,需要注意的是,这些 static 代码块只会被执行一次,示例如下:

    /**
     * static 静态代码块
     */
    
    public class Test {
    
        private static int a;
    
        static {
            Test.a = 4;
            System.out.print(a);
            System.out.print("静态代码块被调用");
        }
    
        public static void main(String[] args) {
    
        }
    }

    打印结果为:

    4

    静态代码块被调用


    四、static 内部类

    static 内部类是指被声明为 static 的内部类,它可以不依赖于外部实例对象而被实例化,而通常的内部类需要在外部类实例化后才能实例化,静态内部类不能与外部类有相同的名字,不能访问外部类的普通成员变量,只能访问外部类中的静态成员和静态方法(包括私有类型),示例如下:

    /**
     * static 静态内部类
     */
    
    public class OutTest {
    
        static int n = 5;
    
        static class InTest {
            void accessAttrFromOutTest() {
                System.out.print("InTest:OutTest.n=" + n);
            }
        }
    
        public static void main(String[] args) {
            OutTest.InTest nest = new OutTest.InTest();
            nest.accessAttrFromOutTest();
        }
    }

    运行结果为:

    InTest:OutTest.n=5

    这里需要注意的是,只有内部类才能被定义为 static


    接下来我们引申一下,思考几个问题 如下:


    1)什么是实例变量?什么是局部变量?什么是类变量?什么是 final 变量?


    实例变量:变量归对象所有(只有在实例化对象后才可以),每当实例化一个对象时,会创建一个副本并初始化,如果没有显示初始化,                   那么会初始化一个默认值,各个对象中的实例变量互不影响


    局部变量:在方法中定义的变量,在使用前必须初始化


    类变量:用 static 可修饰的属性、变量归类所有,只要类被加载,这个变量就可以被使用(类名、变量名),所有实例化的对象共享                 类变量


    final 变量:表示这个变量为常量,不能被修改


    2)static 与 final 结合使用是什么意思?

           在 Java 语言中,static 关键字 常与 final 关键字结合使用,用来修饰成员变量与成员方法,对于变量,若使用 static final 修饰,则表示一旦赋值,就不可修改,并且通过类名可以访问,对于方法,若使用 static final 修饰,则表示该方法不可被覆盖,并且可以通过类名直接访问




    展开全文
  • gcc主要关键字介绍

    2009-01-06 10:07:14
    本文主要说名gcc的主要关键字,并简单说明,相信看后会对shell较快的进步
  • 数据库主要关键字

    千次阅读 2019-05-31 00:15:14
    一、约束关键字 1.primary key 主键 主键约束字段不能为空,不能重复,一张表只能一个主键 2.foreign key 外键 eg:foreign key(Sno) 一般会和references一起出现,如下: 3.references A表Sno需要B表Sno数据,...

    一、约束关键字
    1.primary key 主键

    主键约束字段不能为空,不能重复,一张表只能有一个主键
    

    2.foreign key 外键

    eg:foreign key(Sno)
    一般会和references一起出现,如下:
    

    3.references

    A表Sno需要B表Sno数据,结合外键
    eg:
    foreign key(Sno)  references B(Sno),
    

    4.unique 唯一键
    5.check 约束

    eg:
    check(Ssex=‘男’ or Ssex='女’)
    check(age>=1 and age<=100)
    此处也可以用 age between ** and**
    not between ** and **
    

    6.default 默认值

    未添加数据时的默认值
    

    7.not null

    不能为空
    

    8.indentity(种子值,增量值) 自增
    9.zerofill 若长度未达到规定,自动在字段前填充0
    二、增删查改关键字
    1.insert 插入

    insert into 表名(列名以逗号隔开) values(以逗号隔开,字符型带‘’);
    eg:
    insert into Student(Sno,Ssex) values(10,'男');
    

    2.update 修改

    1.update 表名  set  将要修改的列名=修改的数据;    将表中此列所有数据都修改
    2.update 表名  set  将要修改的列名=修改的数据   where 列名=?;   此列中列名=?的修改数据
    eg:
    update goods set price=price+10;
    update orders set quantity=5  where customerid=2;
    

    3.delete 删除

    delete from orders where customerid=2;  删除了orders表中customerid=2的记录
    

    4.select 查询
    (1)

    1.select  需要查找的列名;(>=2以逗号隔开)  from 表名;
    2.select*  from 表名;    查找此表所有数据
    3.select 2014-sage from student;    查询结果是2014-sage的值
    4.select ‘year of birth:’,2014-sage from student;   ''内的内容单独作为一列原样输出
    5.select sname NAME from student;   将原列名sname改为NAME
    

    (2)distinct消除重复

    eg:
    select distinct sno from sc;  消除sc表中sno重复行
    

    (3)where 查询条件

    在这里插入代码片
    

    (4)lower 小写

    eg:
    select lower sdept from student; 将student表sdept列以小写显示
    
    

    (5)like 和not like

    若like后不含通配符,则可以取代= 
    eg:
    select* from student where sno like '2015486';  
    若含有通配符(%:a%b y以a开头,b结尾任意长度的字符串,和_:a_b以a开头 b结尾的长度为3的字符串)
    select sname from student  wher sname like '_阳%'; 查找名字中第二个字为阳的学生姓名  
    

    (6)as

    在这里插入代码片
    

    (7)in 和 not in

    eg:
    select sname from student  where sdept in('SC'); 查找student表中sdept列中在SC系的学生名字
    与之对应 not in
    

    (8)escape’’

    跟在\后的_  只代表_  不作为通配符
    

    (9)order by 列名 asc升序 /desc降序
    (10)group by 列名 按值分组

    展开全文
  • final关键字

    2021-01-29 14:29:59
    final关键字主要有3种作用: 1、修饰变量的定义 2、修饰类的定义 3、修饰类中的普通方法 修饰变量的定义 当使用final修饰变量的时候(属性/静态属性/形参变量/局部变量),变量仅允许一次赋值机会,就不能被改变了。...
  • 关键字

    2016-07-25 09:39:32
    C语言关键字register作用、注意事项 C语言关键字static作用、注意事项 C语言关键字const作用、注意事项 C语言关键字extern作用、注意事项 C语言关键字typedef作用、注意事项 计算机组成原理 运算器、控制器、存储器...
  • 主要介绍了PHP中instanceof关键字详解及instanceof关键字有什么作用的相关资料,需要的朋友可以参考下
  • using关键字

    2013-04-17 10:31:55
    在.net中using关键字主要有以下三个作用: 1. 引入命名空间;这个是最常见的作用,相信大家都知道,不做过多说明。 2. 创建别名。 3. 定义一个范围,在范围结束时处理对象。(也可理解为强制资源清理)。 ...
  • 面试|static 关键字有什么作用

    万次阅读 多人点赞 2019-06-16 12:43:01
    今天主要学习下Java语言中的static关键字。 static关键字的含义及使用场景 static是Java50个关键字之一。static关键字可以用来修饰代码块表示静态代码块,修饰成员变量表示全局静态成员变量,修饰方法表示静态方法...
  • using 关键字有两个主要用途: (一).作为指令,用于为命名空间创建别名或导入其他命名空间中定义的类型。 (二).作为语句,用于定义一个范围,在此范围的末尾将释放对象。 ...
  • Selenium2Library 主要关键字 对Selenium2Library关键字的整理和翻译。英文不好,仅供参考。 1.Add Cookie [ name | value | path=None | domain=None | secure=None | expiry=None ] 给你当前的会话增加一个...
  • super 关键字详解

    2020-10-07 13:21:39
    super 关键字主要有三个作用: 从子类访问父类的成员变量 从子类访问父类的成员方法 从子类构造器访问父类的构造器 下面我将从这三个方面做一些细节说明和注意事项。 从子类访问父类的成员变量 使用 super 关键字...
  • 发布时间:2020-04-23 09:33:30来源:亿速云阅读:174作者:小新这篇文章主要介绍了c语言中的关键字有哪些?什么含义?,具有一定借鉴价值,需要的朋友可以参考下。下面就和我一起来了解一下c语言中的关键字吧。...
  • volatile关键字的用法

    2019-12-22 20:36:39
    根据官方的定义,volatile关键字主要有2个作用,保持变量在内存中的可见性和禁止指令重排序,下面就这2个用法进行详细的说明。 一、保持变量在内存中的可见性 要理解这句话首先要明白线程是怎么工作的,jvm运行时...
  • java super关键字

    2013-11-18 23:21:48
    uper关键字主要有以下两种用途。 1.调用父类的构造方法 子类可以调用由父类声明的构造方法。但是必须在子类的构造方法中使用super关键字来调用。其具体的语法格式如下: super([参数列表]); 如果父类的...
  • java 中static关键字作用

    千次阅读 多人点赞 2018-05-22 10:57:39
    static关键字主要有两种作用: 第一,为特定数据类型或对象分配单一的存贮空间,而与创建对象的个数无关。第二,希望某个方法或属性与类而不是对象关联在一起,也就是说, 在不创建对象的情况下就可以通过类来直接...
  • php5新增了一个 instanceof 关键字,该关键字主要有以下作用: 判断某个对象是否是某个类的一个实例,包括继承过来的父类。 判断某个对象是否实现了某个接口 ...
  • 相关文章链接 : 1.【嵌入式开发】C语言 指针数组 多维数组 2.【嵌入式开发】C语言 命令行参数 函数指针 ... 3.... 4.... 5.【C语言】 C 语言 关键字分析 ( 属性关键字 | 常量关键字 | 结构体关键字 | 联合体关键字 ...
  • JAVA中的this关键字

    2017-05-16 07:03:31
    java中的this关键字主要有三种用法: 1.表示引用类的成员变量 2.表示对当前对象的引用,例: 3.在一个构造方法中引用另一个构造方法,注意:只能引用一个构造方法并且位于开始 this关键字不能用在static方法中! ...
  • Java中this关键字详解

    2018-10-31 02:14:32
    在学习Java的过程中,相信有很多...this关键字主要有三个应用: this调用本类中的属性,也就是类中的成员变量; this调用本类中的其他方法; this调用本类中的其他构造方法,调用时要放在构造方法的首行 一、引用...
  • scala中sealed关键字

    2017-03-28 15:35:00
    sealed 关键字主要有2个作用: 1.其修饰的trait,class只能在当前文件里面被继承; 2.在检查模式匹配的时候,用sealed修饰目的是让scala知道这些case的所有情况,scala就能够在编译的时候进行检查,看你写的...
  • java关键字之static解析

    千次阅读 2018-01-10 19:21:09
    许多同学们在学习或者编写程序时,经常会看到java中的一个关键字:static,而且...static关键字主要有以下4种用法: 1.修饰成员变量 2.修饰成员方法 3.静态代码块 4.静态导包 PS:其实除了上面的4种用法,jav
  • static关键字

    2017-04-27 11:54:37
    下面将说说Static关键字主要在两个方面的影响: (1)static关键字用于修改标识符的链接属性(所谓链接属性可以分为三类:external(外部),internal(内部),none(无)这三种,external表示声明的变量在不同的...
  • this:当前对象 ...this关键字主要应用: 1、this调用本类中的成员变量; 2、this调用本类中的成员方法; 3、this调用本类中的其它构造方法。 2. super关键字 super可以理解为直接父类对象的引用,或...
  • Final关键字

    2019-09-28 14:06:50
    目录: final关键字介绍 final修饰类 ...Java提供了Final关键字主要用来修饰一些不可改变的内容。 2. final修饰类 注意: final修饰的类,不能被继承。 代码演示: final class 类名 { } // 代码...
  • volatile关键字

    2019-12-03 12:12:57
    多线程主要围绕可见性和原子性两个特性而展开,使用volatile关键字修饰的变量,保证了其在多线程之间的可见性,即每次读取到volatile变量,一定是最新的数据。 1.2 禁止指令重排序 代码底层执行不像我...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 637,116
精华内容 254,846
关键字:

关键字主要有