zoukankan      html  css  js  c++  java
  • 202011.19

    今日内容:

    • String 类
    • static 关键字
    • Arrays 类
    • Math 类
    • 三大特性---继承
    • 方法重写
    • super关键字
    • this关键字
    • 抽象类

    String类

    创建String常见3+1方式

    1.public String() 空白字符串,不包含任何内容

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

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

    三种构造方法:即使内容一样,但是因为new了所以都会产生新的内存地址,在堆内存之中,

    char[] array={'A','B','C'};
    String str=new String(array);
    

    解释:此三种内存都需要,提前创造一个例如char[] array={'A','B','C'};传入第二种方式char[] 会产生一个堆中的内存,第二种方式的String也会产生一个堆中的内存放char[],所以我们查找是通过String内存找到char[]内存,从而输出。其他的同理:

    一种直接创建:

    String str="值"; 直接创建,直接用双引号,系统也会认定为字符串对象

    String str1="aaa";
    String str2="aaa";
    //str1和str2的内存地址一样,都在堆内存中的字符串常量池
    

    解释:这种创建方式,创建的字符串数据是直接存放在堆内存中的字符串常量池内,不同的是这个如果字符串一样,那么他们的内存地址是完全一样的,不会创建新的内存。

    备注:关于==号

    1.字符串之间用==判断,判断的是字符串的内存地址

    2.基本数据类型用双==直接判断数值

    String常用方法

    判断功能:2个

    public boolean equals(Object o) 将次字符串与指定对象进行比较,参数不能为null,进行内存地址和内容双重判断,符合其中一个就返回true.如果比较双方是一个常量和一个变量,建议把常量放在字符串的前面 常量.equals(变量);不建议----》变量.equals(常量)。因为此时如果变量为null就会产生空指针异常,null在前面才会空指针

    ​public boolean equalsIgnoreCase(String anotherString) 将此字符串与指定对象比较,忽略英文字母大小写,进行内存地址和内容双重判断,符合其中一个就返回true

    nstanceof:类型判断,判断是否属于同一数据类型

    获取功能

    1.public int length; 返回字符串长度

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

    3.public char charAt(int index) 返回索引位置的char值

    4.public int indexOf(String str): 返回·指定的字符串第一次出现在该字符串的索引值

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

    6.public String substring(int beginindex,int endindex); 截取从beginindex到endindex中间的索引,[beginindex,endindex). endindex<=String.length;注意截取出来的字符串对象是一个新的字符串对象,重新开辟内存在堆里面,和字符串常量池里面的字符串内存地址不相等

    转换功能:

    1.public char[] toCharArray(): 将此字符串转换为新的字符数组。

    2.public byte[] getBytes(); 使用平台默认字符集,将该字符串编码转换为新的字节数组

    3.public String replace(CharSequence oldStringt,CharSequence newString): 将所有出现的老的字符串替换为新的字符串,返回的是新的字符串。

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

    练习1:定义一个方法,把数组{1,2,3,4}按照指定格式拼接称为一个字符串

    格式:[1#2#3#4] Test1

    练习2:统计字符个数,键盘录入一个字符串,统计字符串中大小写字母以及数字的个数Test2

    Static关键字

    =概述:

    static关键字的使用可以修饰成员变量和成员方法,被修饰之后就属于静态的,属于类的,不单单是属于某个对象的,就是说不再通过创建对象来调用类中的静态成员信息

    定义和使用格式:

    类变量

    当成员变量被static修饰,该变量称为【类变量】,类变量,该类的每一个对象都可以【共享】同一个类变量的值,热河对象都可以更改类变量,类变量灵活度更高,

    ststic 数据类型 变量名;
        static int roomId;
    

    静态方法

    当成员方法被static修饰,称为类方法,类方法通过类名直接调用,不用创建对象称之为【静态方法】 类名.方法名()

    修饰符 static 返回值类型 方法名(参数列表){
        //方法体内容
    }
    public static String arrayToString(int[] arr){
        //方法体
        //必须有return
    }
    

    静态方法调用注意事项

    1.静态方法可以直接访问静态变量和静态方法,

    2.静态方法【不能直接访问】成员变量和成员方法,反之成员方法可以直接访问静态变量和静态方法

    3.静态方法不能使用this关键字

    调用格式:

    //静态方法一般建议使用类调用,可以使用对象调用,但是程序会出现警告信息,不建议使用
    类名.静态方法名(参数列表);
    类名.静态类变量名;
    

    备注:不能直接访问的,都通过实例化对象调用

    静态原理解释:静态方法在栈空间,静态变量在除了栈之外的jvm空间,

    Static操作注意事项:

    ​1.static修饰的内容,随着类的加载而加载,只会加载一次。

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

    3.他优先于对象,对象未存在,static修饰的信息早就存在了,使用可以被类的所有对象共享。

    静态代码块

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

    1.位置:类中方法外,方法里面没有

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

    静态代码块格式

    public class className{
        //静态代码块不能写在方法里面
        static{
            //多条执行语句  
        }
        public static void main(String[] args){    
        }
    
    }
    

    例如:

     //斗地主,三个成员
    public class Game{
        private static int number;		//玩家数量
        private static ArrayList<Menber> list;		//玩家们 Member类,成员类
        
       stctic{	//提前初始化信息,下面的就不需要了,但是上面的变量必须是静态的成员变量
           number=3;
           numbers=new ArrayList<>();
           //添加玩家
            list.add("小刘");
            list.add("小张");
            list.add("小花");
       }
        
    }
    
    public class TestGame{
        public static void main(String[] args){
            /*
         	ArrayList<String> list=new ArrayList<>();
            list.add("小刘");
            list.add("小张");
            list.add("小花");
            */
            
        }
    }
    
    
    
    

    备注:static可以修饰成员变量成员方法代码块,如果不想在不创建对象的的情况下去调用成员变量和成员方法,可以定义成静态变量和静态方法,静态代码块通常作用静态变量和静态方法

    Arrays类:

  • 相关阅读:
    微信网页授权功能来获取用户信息(昵称或头像)之php实现
    你人生的那口井挖好了吗?
    java项目打jar包
    Oracle 客户端配置笔记
    资源管理右键卡住的问题
    Java Web 项目学习(二) 开发注册功能
    Java Web 项目学习(三) 过滤敏感词 前缀树 反射 类加载
    Java Web 项目学习(二) 检查登录状态
    Java Web 项目学习(二)账号设置
    Java Web 项目学习(二) 显示登录信息
  • 原文地址:https://www.cnblogs.com/tushao/p/14008893.html
Copyright © 2011-2022 走看看