DAY7:静态资源访问,字符串比较,静态常量池

一.静态资源访问
    1.通过类型名访问

    注意点:
    静态场景下不能调用成员资源
    补充:
    构造快:在生成对象的时候调用,并且在构造器之前
    {}
    静态块:在类信息被加载的时候调用
    static{}
    类信息的加载时机:当首次使用某个类的类信息时加载

示例代码:

public class HighTrain{
	{
		System.out.println("进入了构造块");
		id = "G6003";
	}
	static{
		System.out.println("进入了静态块");
	}
	public HighTrain(String id){
		System.out.println("进入了构造器");
		this.id = id;
	}
	public HighTrain(){}
	String id;//每辆车的编号是不一样的
	static int coachCount = 8;//属于高铁类型都通用的特性
	public String hello(){
		return "欢迎乘坐"+id+"次列车";
	}
	//工具方法,计算出发点到目的地的距离,返回字符串
	public static String getAreaInfo(String begin,String end){
		//System.out.println(id);
		return begin+"到"+end+"一共有n公里,请各位乘客做好准备";
	}
}
class Test{
	public static void main(String[] args){
		//HighTrain ht = new HighTrain();
		//int count = HighTrain.coachCount;
		//HighTrain.getAreaInfo("上海","成都");
		HighTrain ht = new HighTrain("G1007");
		HighTrain ht1 = new HighTrain();
		System.out.println(ht1.id);
	}
}

二.字符串比较,及操作

1.字符串是字符不可变序列
     凡是需要改变字符串内容的方法都会返回一个新字符串

 2.equals:判断两个字符串对象的内容是否相同
         ==:判断两个变量内存储的值是否相同
         当==作用引用类型的时候,是判断是否指向同一个对象

示例代码:

public class StringApiStu{
	static String src = "a.b.c.EabDF123我真帅";
	public static void main(String[] args){
		demo13();
	}
	//charAt
	public static void demo1(){
		char ch = src.charAt(3);
		System.out.println(ch);
	}
	//concat(String str) 
	public static void demo2(){
		String s = src.concat(",你真坏");
		//src = "123";
		System.out.println(s);
	}
	//contains(CharSequence s) 
	public static void demo3(){
		boolean b = src.contains("bcE");
		System.out.println(b);
	}
	//endsWith(String suffix),startsWith
	public static void demo4(){
		boolean b = src.endsWith("我真帅");
		b = src.startsWith("a");
		System.out.println(b);
	}
	//equals(Object anObject) equalsIgnoreCase(String anotherString)忽略大小写比较 
	public static void demo5(){
		int a = 123;
		int b = 123;
		System.out.println(a==b);
		String s = "123";
		String s2 = new String("123");
		String s3 = "123";
		System.out.println("s="+s+",s2="+s2);
		System.out.println(s==s2);
		System.out.println(s.equals(s2));
		System.out.println(s==s3);
	}
	//indexOf(int ch)  indexOf(int ch,int fromIndex)  lastIndexOf(int ch) 
	public static void demo6(){
		int index = src.indexOf("ab",1);
		System.out.println(index);
	}
	//isEmpty() 
	public static void demo7(){
		String s = " ";//空字符串
		String s1 = null;//空指针
		boolean b = s1.isEmpty();
		System.out.println(b);
	}
	//length() 
	public static void demo8(){
		int len = src.length();
		System.out.println(len);
		//遍历字符串
		for(int i = 0;i < len;i++){
			char ch = src.charAt(i);
			System.out.println(ch);
		}
	}
	//replace(char oldChar, char newChar)  replaceFirst(String regex, String replacement) 
	public static void demo9(){
		String s = src.replaceFirst("\\.","O");
		System.out.println(s);
	}
	//substring(int beginIndex) substring(int beginIndex,int endIndex)
	public static void demo10(){
		String s = src.substring(2,5);//[2,5)
		System.out.println(s);
	}
	//toLowerCase() toUpperCase() 
	public static void demo11(){
		String s = src.toLowerCase();
		System.out.println(s);
		String s1 = src.toUpperCase();
		System.out.println(s1);
	}
	//trim() 去除字符串前后的空格
	public static void demo12(){
		String s = "  abc    def   ";
		System.out.println("--"+s+"---");
		s = s.trim();
		System.out.println("--"+s+"---");
	}
	//valueOf(char c)
	public static void demo13(){
		String s = String.valueOf(true);
		System.out.println(s);
	}
}













三.静态常量池

    字符串常量池:
    意义:节约时间和内存
    让需要使用同一个内容的字符串对象的引用指向同一个对象
    什么时候使用常量池:
    通过字面值赋值的时候使用常量池

示例代码:

public class StringPool{
	public static void main(String[] args){
		String s = "123";
		String s1 = "123";
		String s2 = new String("123");
		String s3 = new String(s);
		String s4 = "1"+"23";
		String s5 = new String("1")+"23";
		String s6 = s+"";
		String s7 = new String(s)+"";
		System.out.println(s==s1);//true
		System.out.println(s==s2);//false
		System.out.println(s==s3);//false
		System.out.println(s==s4);//true
		System.out.println(s==s5);//false
		System.out.println(s==s6);//false 
		System.out.println(s==s7);//false
		//------------
		String str1 = "abc";
		String str = new String("abc");
		
	}
}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值