JAVA String & Static

第一章 字符串 String

1、字符串的特点
1. 字符串的内容永不可变
2. 字符串的底层是 字符数组 char[] 再底层是 字节数组 byte[]
2、字符串的构造方法
三种构造方法和一种直接赋值

三种构造方法:
	A. 无参构造  String s1 = new String();
	B. 字符数组构造   String s2 = new String(字符数组名称); //可以把字符数组-->字符串
	C. 字节数组构造   String s3 = new String(字节数组名称); //可以把字节数组-->字符串

一种直接赋值的方式
	String str = "字符串的内容值"; //推荐的写法,写法简单!

双等的作用:

  1. 对于基本数据类型而言,双等比较的是【数据值】
  2. 对于引用数据类型而言,双等比较的是【地址值】
3、字符串的常用方法
 1. 比较
    a.比较数值是否相等      
        public boolean equals(Object obj)   //【重点】账号密码.参数是Object表示任何数据都可以作为参数.
    b.比较数值是否相等      
        public boolean equalsIgnoreCase(String s)   //验证码.忽略大小写的比较.
        
 2. 获取
    a.获取字符串长度       
        public int length()  //【重点】获取字符串当中的字符的个数
     b.拼接字符串方法       
         public String concat(String s) //把s拼接在以前字符串的后面.作为新字符串返回
     c.获取单个字符        
         public char charAt(int index) //【重点】获取对应索引index位置的字符数据.索引从0开始
     d.获取首次位置        
         public int indexOf(String s)  //获取s在原始字符串当中,第一次出现的索引位置,没有就返回-1
     e.截取子字符串        
         public String substring(int begin)  //从begin对应索引,一直到最后
         public String substring(int begin,int end) //从begin开始,到end结束. (包括begin不包括end)
         
 3. 转换
     a.转字符数组     
         public char[] toCharArray()  //【重点】将字符串转换成为字符数组
     b.转字节数组     
         public byte[] getBytes()       //将字符串转换成为字节数组
     c.替换字符串     
         public String replace(String oldStr,String newStr)  //把所有的oldStr替换成为newStr
 
 4. 分割
     a.分割成字符串数组  
         public String[] split(String regex)//将原始字符串按照 regex 字符串进行分割,成为多个字符串数组
         //注意: regex表示的是"正则表达式"不能随便写字符串.否则切割失败,正则表达式见CHM格式笔记.  
         //不写直接采用英文状态下面的句号分割. 如果一定要采用点分割。需要写上"\\."

注意事项:

三个长度的问题(数组长度、集合长度、字符串长度)别混淆了

  1. 数组的长度。 数组名称.length
  2. 集合长度。 集合名称.size( )
  3. 字符串长度。 字符串对象.length( )
4、字符串的遍历方式

方式1:

//定义一个字符串
String str = "为莘莘学子改变命运而讲课";
//拆开. 遍历字符串
// length() 获取字符串的长度
// charAt(索引)获取单独的某个字符
for (int i = 0; i < str.length(); i++) {
    //获取单独的字符
    char c = str.charAt(i);
    System.out.println(c);
}

方式2:

//定义一个字符串
String str = "为千万学生少走弯路而著书";
//拆开. 遍历字符串
// 将字符串转换成为字符数组 toCharArray()
char[] arr = str.toCharArray();
//循环遍历数组
for (int i = 0; i < arr.length; i++) {
    //获取单独的字符
    char c = arr[i];
    System.out.println(c);
}

第二章 static 静态

1、静态关键字的含义
1. 多个对象"共享"同一份数据的时候,需要使用 static 静态。
2.static修饰的数据,会优先于对象。不在属于某个单独的对象,而是属于类
2、静态修饰成员
1. 静态修饰成员变量
   	A. 格式:
		static 数据类型 变量名称;  //例如: static String classRoom; 所在教室
	B.效果:
		加上 static 之后,变量classRoom 不在属于某个对象,而是属于整个类。被所有对象共享使用。
	C. 使用:
		可以采用类名称直接打点调用。
		例如:  Student.classRoom = "102教室";

2. 静态修饰成员方法
	A. 格式:
		public static 返回值类型 方法名称(参数列表){ ...方法体... }
	B. 效果:
		加上静态 static 之后,我们不需要创建对象,可以直接使用类名称.方法名称.进行调用方法。
	
3. 注意事项:
	A.静态不能调用非静态内容。"先人不知后人事" //秦始皇不知道康熙是谁?
    B.静态方法当中,没有 this 关键字。(this就是当前类的'对象'---> "静态优先于对象"

为什么要使用静态?

  1. 对于成员变量而言,可以共享相同的数据。
  2. 对于成员方法而言,可以省略一个步骤,无需创建对象,直接类名称打点调用方法!
3、静态代码块
1. 格式:
    static{
        ...需要写代码....
    }

2. 特点:
	当类加载的时候,就会执行1次。注意是唯一的一次。
	
3. 执行顺序:
	静态代码块,构造方法,普通方法。请问谁先执行?
	A. 静态代码块在加载的时候,执行1次,唯一的1次
	B. 构造方法在创建对象的时候,执行。每次创建对象,都会执行1次
	C. 普通方法在我们对象调用方法的时候,才会加载执行。
	
4. 使用场景
	目前使用不到。在就业班 Day18天讲 JDBC 工具类的时候,会使用到静态代码块。
4、静态的使用场景
作为工具类当中的工具方法使用

1. Arrays 工具类
	static String toString(任意类型的数组名称)  //把数组转换成为字符串格式.[11,22,33]
    static void sort(任意类型的数组名称)  //对数组的元素进行排序操作。升序(从小到大)
    
2. Math 工具类
	static double abs(double a)  //获取绝对值
	static double ceil(double a)  //向上取整。例如: 3.1向上取整变成4.0
	static double floor(double a)  //向下取整。例如: 5.9向下取整变成5.0
	static long round(double a)   //四舍五入
 	static double PI   //圆周率. Math.PI 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值