zoukankan      html  css  js  c++  java
  • day09_String类 和 static关键字

    今日内容

    •   String类
    •   Static关键字

    String类

      三种构造方法:

        public String() : 创建一个空白的字符串,不包含任何内容   

    格式:
    String str =  String()

        public String(char[] array):  根据字符数组的内容,来创建对应的字符串

        public String(byte[] array):  根据字节数组内容,来创建对应的字符串

      一种直接创建:

        String str = “abc”//右边直接用双引号

           如果用双引号包裹,一定是在堆中的字符串常量池中,也是一个对象,String str对应的地址值是堆中的字符串常量池中的对象,常量池中的对象的地址值指向byte[]字节组 

        备注:直接写上双引号,系统也会认定字符串对象。

      1.对于引用类型来说,==进行的是地址值比较

      2.对于基本数据类型来说,==比较的是数值

      3.双引号直接写的字符串在常量池当中,new的string形式不在常量池当中

    常用方法

      判断功能的方法

        public booean equals(Object anObject): 将此字符串与指定对象进行比较

        public boolean equalslngoreCase(String anotherString):将此范围的

      获取功能

        public int length(): 返回字符串的长度

        public String concat(String str): 将指定的字符串连接到该字符串的末尾

        public char charAt(int index): 返回指定索引处的char值

        public int indexOf(String str): 返回指定的子字符串第一次出现在该字符串内的索引值,如果找到返回子字符串第一个字符所在的索引值,如果没有找到则返回

        public String substring(int beginIndex): 返回一个子字符串,从beginlndex开始截取该字符串到该字符串的末尾

        public String substring(int beginIndex,int endIndex): 返回一个子字符串,从beginIndex 到endIndex区间截取该字符串,包含beginIndex索引处的值,不包含endIndex索引处的值。左闭右开。

      转换功能

        public char[] toCharArray(): 将此字符串转换成新的字符数组

        public byte[] getBytes(): 使用平台默认的字符集将该字符串编码转换成新的字节数组。

        public String replace(CharSequence oldString,CharSequence newString): 将所有出现的老的字符串换成新的字符串,返回替换掉之后的新的字符串

        备注:CharSequence是一个接口,也是一种引用数据类型,意思就是可以接收字符串参数数据类型

    Static关键字 

      static关键字的使用,它可以修饰成员变量和成员方法。被修饰的成员是【属于类】的,而不单单是属于某个对象的也就是,既然属于类的,那就不需要通过创建对象来调用类中的成员信息。

     定义和使用格式

      静态类变量

         当成员变量被static修饰,该变量就称为【类变量】。该类的每个对象都【共享】同一个类变量的值。任何对象都可以更改类变量的值。类变量也可以不通过创建类对象的方式进行操作,通过类也可以进行操作。

        定义格式:

    static 数据类型  变量名
    static int Xxxx;

      静态类方法:

        当成员方法一旦被static关键字修饰时,该方法称为【类方法】。类方法一般是通过类名直接调用,而不需要单独创建对象来调用。调用方式很简单。习惯称为【静态方法】。可以通过类直接调用,所以不用封装

        定义格式:

    修饰符        static  返回值类型   方法名(参数列表){
                  //方法体内容
                }

    例如:
    public static String Xxxx(int[] arr){
            //方法体内容就是如何
            //......
            //必须有返回语句  return  返回值;
    }

       静态方法调用的注意事项

        静态方法可以直接访问类变量和静态方法

        静态方法不能直接访问普通的成员变量和成员方法。反之,成员方法可以【直接访问】类变量和静态方法

        静态方法中不能使用this关键字。

      调用格式

        静态方法建议通过类来调用,但是也可以通过对象来调用,会出现警告信息(不建议使用对象来调用)

      格式

        //访问类变量
        类名.类变量名;
        //访问静态方法
        类名.静态方法名(参数);

      备注:这些不能直接访问的成员信息,可以间接的通过实例化对象来调用

      static修饰的内容

        是随着类的加载而加载而且只会加载一次

        存储于一块固定的内存区域(在静态域),所以,可以被类直接调用。

        他优先于对象存在,所以可以被类的所有对象所共享。

      静态代码块

        静态代码块:定义在成员变量位置,被static修饰的代码块{}

        位置:类中方法外

        执行:随着类的加载而加载而且只会加载而且只会执行一次,优先于main方法和构造方法执行

      格式:   

    public class ClassName{
        static{
            //执行语句  多条执行语句。
            //.....
        }
     public static void main(String[] args){
         //static {}在方法内是错误的   
     }  
    }

      备注:static 可以修饰成员方法,成员变量,代码块。在使用过程中,如果你不想在不创建对象的情况下,去调用成员变量,成员方法,可以定义乘静态的。对应于静态代码块来说,通常作用是对类中的成员变量进行初始化。

  • 相关阅读:
    POJ 1330 Nearest Common Ancestors(LCA Tarjan算法)
    LCA 最近公共祖先 (模板)
    线段树,最大值查询位置
    带权并查集
    转负二进制
    UVA 11437 Triangle Fun
    UVA 11488 Hyper Prefix Sets (字典树)
    UVALive 3295 Counting Triangles
    POJ 2752 Seek the Name, Seek the Fame (KMP)
    UVA 11584 Partitioning by Palindromes (字符串区间dp)
  • 原文地址:https://www.cnblogs.com/rxqq/p/14008320.html
Copyright © 2011-2022 走看看