Java常见基础类的使用
String类的使用
-
String不管有没有new,创造出来的都是对象
-
创造出的String对象内容是常量,不可改变,可用于共享,都是基于byte[]字节数组。
-
string类的创建
package com.ruleyi.DemoClass; public class DemoStringClass { public static void main(String[] args) { //无参构造 String str = new String(); System.out.println(str);//空 //char字符串构造 char[] charArray = {'z','x', 'c'}; String str2 =new String(charArray); System.out.println(str2);//zxc //byte字符串构造 byte[] byteArray = { 49,72,81 }; String str3 = new String(byteArray); System.out.println(str3);//1HQ //直接构造 String str4 = "你好,世界"; System.out.println(str4);//你好,世界 } }
String的共享
-
字符串常量池:字符串中使用双引号的的字符串在常量池中,new的不在
-
==在基本类型中比较的是数值,在引用类型中比较的是地址。
-
在字符串常量池中创建的相同字符串,指向同一个byte地址,地址相同
-
字符串常量池中的字符和new的字符,就算内容相同,地址也不同,因为new创建的字符不是由字符串常量池指向。
字符串的比较
-
因为String是一个类,故可以调用方法.equals()来比较内容。
-
.equals()只可以比较字符串,括号内可以是任意的类,因为只需返回值是字符串就好。
-
.equals()具有对称性,但是一般推荐常量在前,变量在后,因为变量在前,若变量为空,则会空指针异常报错。
-
str1.equalsIgnoreCase(str1)可以忽略英文字母大小写。
-
-
字符串常用方法
* public int length () :返回此字符串的长度。
* public String concat (String str) :将指定的字符串连接到该字符串的末尾。生成新的字符串。
* public char charAt (int index) :返回指定索引处的 char值。
* public int indexOf (String str) :返回指定子字符串**第一次**出现在该字符串内的索引。
* public String substring (int beginIndex) :返回一个子字符串,***从beginIndex开始截取字符串到字符 串结尾***。
* public String substring (int beginIndex, int endIndex) :***返回一个子字符串,从beginIndex到 endIndex截取字符串。含beginIndex,不含endIndex.***
字符串的转换
- public char[] toCharArray () :将此字符串转换为新的字符数组。
- public byte[] getBytes () :使用平台的默认字符集将该 String编码转换为新的字节数组。
- public String replace (CharSequence old, CharSequence new) :将与old匹配的字符串使 用new字符串替换,生成一个新的字符串。
字符串的切割
- public String[] split(String regex) :将此字符串按照给定的regex(规则)拆分为字符串数组。注意括号内的规则为正则表达式,所以切割英文逗号".“时,不可以用”.",要用"\\.",因为"."在正则表达式中具有特殊含义
Static关键字
- 在类中 使用Static后,所创建属性属于类,由创建的对象所共享。
- 一个对象创建,多个对象共享。
static修饰方法
- 类的方法为成员方法,使用static修饰后变为静态方法,成员变量与静态变量也遵守这个规则。
- 静态方法(变量)归属于类,无需创建可直接使用类名和对象名均可调用,推荐使用类名调用,方便阅读,非静态对象只能先创建再调用。
- 静态只能调用静态,成员可以都进行调用,因为静态先创建,成员后创建,
- 静态方法中不可以使用this关键字,因为this关键字表示本对象中,静态方法在类中。
Static的内存位置
- Static成员方法在方法区中静态区中,和对象没关系,只和类有关系,调用静态成员方法直接去向类的方法区寻找,然后指向静态区。
静态代码块
静态代码块:定义在成员位置,使用static修饰的代码块{ }。 位置:类中方法外。 执行:随着类的加载而执行且执行一次,优先于main方法和构造方法的执行。
public class ClassName{ static { // 执行语句 } }
作用:给类变量进行初始化赋值。用法演示,代码如下:
public class Game { public static int number; public static ArrayList<String> list; static { // 给类变量赋值 number = 2; list = new ArrayList<String>(); // 添加元素到集合中 list.add("张三"); list.add("李四"); } }
static 关键字,可以修饰变量、方法和代码块。在使用的过程中,其主要目的还是想在不创建对象的情况 下,去调用方法。
Arrays的使用
- public static String toString(int[] a) :返回指定数组内容的字符串表示形式[元素一,元素二,…]。
- public static void sort(int[] a) :对指定的 int 型数组按数字升序进行排序。字母按照字母升序排序。
- .fori正序遍历,.forr倒序遍历(reverse)
Math类
- public static double abs(double a) :返回 double 值的绝对值。
- public static double ceil(double a) :返回向上取整。
- public static double floor(double a) :返回向下取整。
- public static long round(double a) :返回四舍五入方
- Math.PI 相当于double类型圆周率