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

String类(3+1种创建方式)

三种创建方式
1.public String() 空白字符串,不包含任何内容
​2.public String(char[] array) 根据字符数组内容,来创建对应字符串
3.public String(byte[] array) 根据字节数组内容,来创建对应字符串
三种构造方法:即使内容一样,但是因为new了所以都会产生新的内存地址,在堆内存之中
即使数值都是一样的,但是因为new了所以内存也会尝试新的内存所以不会一样
是一种创建方式
String str=“值”; 直接创建,直接用双引号,系统也会认定为字符串对象

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

解释:这种创建方式,创建的字符串数据是直接存放在堆内存中的字符串常量池内,不同的是这个字符串一样,那么他们的内存地址是完全一样的,不会创建新的内存。
备注:关于 == 号
1.字符串之间用== 判断,判断的是字符串的内存地址,内存地址一样那么就一样
2.基本数据类型用双==直接判断数值,数值相同就一样

String常用方法

两个判断功能
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可以修饰成员变量成员方法代码块,如果不想在不创建对象的的情况下去调用成员变量和成员方法,可以定义成静态变量和静态方法,静态代码块通常作用静态变量和静态方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值