02java基础常见api

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_39823114/article/details/78560474
java.lang包是java内置的一个基础包,其中包含了一系列程序中经常要用到的类;在默认情况下,每个java程序都会自动导入该包,因此无需在程序中显式地声明。(包装类,Math,String,StringBuffer,StringBuilder,System, Class ,Object)

一,包装类:

Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,这在实际使用时存在很多的不便,为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八个和基本数据类型对应的类统称为包装类(Wrapper Class)。

①、每个包装类都有一个静态的valueOf方法,用于将字符串转换成相应包装类的对象。

 String str ="120";
    //如果转换失败,将会引发NumberFormatException异常
    Byte objByte =Byte.valueOf(str);
    Short objShort =Short.valueOf(str);
    Integer objInt =Integer.valueOf(str);
    Long objLong =Long.valueOf(str);
 
   System.out.println(objByte);
②、除了Character类以外,其它的包装类都有静态的parseXxx方法(Xxx指代具体的数据类型),用于将字符串转换成相对应的原始数据类型值。

 String str ="116";
    //分别调用各个包装类的paseXxx方法对字符串进行转换,如果转换失败,将报异常
    int i =Integer.parseInt(str);
    short s =Short.parseShort(str);
    byte b =Byte.parseByte(str);
    long l =Long.parseLong(str);
    float f =Float.parseFloat(str);
    double d =Double.parseDouble(str);
    boolean b = Boolean.parssBoolean(“true”);
    System.out.println(i);
    System.out.println(s);
二、String 类

多个字符组成的一个序列,叫字符串, 生活中很多数据的描述都采用的是字符串的。而且我们还会对其进行操作, 所以,java就提供了这样的一个类供我们使用。

1、直接把字符串常量赋值给字符串引用对象(最常用)
 String s = "hello";

char[] chs = {'a','b','c','d','e'};

 String s = new String(chs,1,2);

2、面试题
A:请问String s = new String("hello");创建了几个对象。
 两个。一个"hello"字符串对象,在方法区的常量池;一个s对象,在栈内存。
B:请写出下面的结果
String s1 = new String("abc");
Strign s2 = new String("abc");
String s3 = "abc";
String s4 = "abc";
sop(s1==s2);  //false
sop(s1==s3);  //false
sop(s3==s4);  //true
C:字符串对象一旦被创建就不能被改变。
指的是
字符串常量值不改变。

三、StringBuffer类:

(1)字符串的缓冲区,是一个容器。
(2)它和String的区别
它是缓冲区可变长度的。
(3)构造方法
StringBuffer() 构造一个其中不带字符的字符串缓冲区,初始容量为 16 个字符。
StringBuffer(int num) 构造一个不带字符,但具有指定初始容量的字符串缓冲区。
StringBuffer(String str) 构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容。
(4)常用方法
A:增加数据
**append :添加各种类型的数据
**insert : 在容器指定位置插入各种类型的数据。
B:删除数据
**deleteCharAt : 删除指定位置的字符
**delete 还可以用于清空StringBuffer的缓冲区
C:替换
**replace
D:获取 
**charAt 
E:长度和容量
**length() 元素的个数
**capacity 元素的理论值
F:获取元素的位置
**indexOf
**lastIndexOf
G:截取
**substring(int start)
**substring(int start,int end)
H:反转
**reverse
(5)字符串和StringBuffer的转换
String-->StringBuffer通过构造:
如:StringBuffer sb = new StringBuffer(String str)
StringBuffer--String通过toString方法 
如:StringBuffer sb = new StringBuffer();
  sb.toString();

3:StringBuilder
和StringBuffer的功能是一样的,但是有区别:
StringBuffer(JDK1.0)是线程安全的。
StringBuilder(JDK1.5)不保证线程安全。

一般来说,我们写的程序都是单线程的,所以,用StringBuilder,效率高。

4、字符串中各种功能的方法:

==和equals的用法:
①:==怎么用?
可以用于比较基本数据类型,比较的就是基本数据类型的
是否相等。
可以用于比较引用数据类型,比较的是对象的
地址值是否相等。
②:equals怎么用?
equals只能用于比较引用数据类型的。
**Object提供的equals是用于比较对象
地址值是否相同。
**自定义类中,如果重写了equals方法,那么就是按照你自己的需求来比较的。 
A:判断
boolean equals(Object anObject):判断两个字符串的内容是否相同,复写了Object的方法
boolean equalsIgnoreCase(String anotherString):判断两个字符串的内容是否相同,不区分大小写
boolean contains(String s):判断一个字符串中是否包含另一个字符串 注意:判断字符串是否包含特殊字符.直接表示为str.contains(".")
boolean isEmpty():测试字符串是否为空
B:获取
int length():返回此字符串的长度
char charAt(int index):返回指定索引处的 char值
int indexOf(int ch):返回指定字符在此字符串中第一次出现处的索引。 
int indexOf(int ch, int fromIndex):返回在此字符串中第一次出现指定字符处的索引,
  从指定的索引开始搜索。 
int indexOf(String str):返回指定子字符串在此字符串中第一次出现处的索引。 
int indexOf(String str, int fromIndex):返回指定子字符串在此字符串中第一次
出现处的索引,从指定的索引开始。 
int lastIndexOf(int ch):返回指定字符在此字符串中最后一次出现处的索引。 
int lastIndexOf(int ch, int fromIndex) 
返回指定字符在此字符串中最后一次出现处的索引,从指定的索引处开始进行反向搜索。 
int lastIndexOf(String str) 
返回指定子字符串在此字符串中最右边出现处的索引。 
int lastIndexOf(String str, int fromIndex) 
返回指定子字符串在此字符串中最后一次出现处的索引,从指定的索引开始反向搜索。 
String substring(int beginIndex) (注意:该方法substring的String是小写!!!)
返回一个新的字符串,它是此字符串的一个子字符串。 
String substring(int beginIndex, int endIndex) (注意该方法的String是小写!!!)
返回一个新字符串,它是此字符串的一个子字符串,包含头不包含尾。 
C:转换
byte[] getBytes():(很常用!)从字符串到字节数组的方法
void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) 
将字符从此字符串复制到目标字符数组。 
char[] toCharArray():(很常用!)从字符串到字符数组的方法
static String copyValueOf(char[] data) 
返回指定数组中表示该字符序列的 String。 
static String copyValueOf(char[] data, int offset, int count) 
返回指定数组中表示该字符序列的 String。 
static String valueOf(数据类型):把该数据类型的数据转换成字符串。
String toLowerCase():把字符串转换成小写
String toUpperCase():把字符串转换成大写
字符串的连接
String concat(String str):将指定字符串连接到此字符串的结尾。
D:替换
String replace(char oldChar, char newChar):用新字符替换旧字符(替换所有)
String replace(String target, String replacement):用新的子串换旧串
E:分割
String[] split(String regex):根据指定的字符串把一个字符串分割成一个字符串数组
F:
String trim():去除字符串的前后空格
G:
int compareTo(String anotherString) 
按字典顺序比较两个字符串。 
int compareToIgnoreCase(String str) 
按字典顺序比较两个字符串,不考虑大小写。 

四、Math类的使用

(1)数学操作类:该类没有构造函数,方法均为静态的

 PI:圆周率π

    E:自然常量


五、System:

(1)描述系统信息的类
(2)该类没有构造方法,该类的方法和属性都是静态的
(3)字段摘要:
static InputStream in  “标准”输入流。   
static PrintStream out  “标准”输出流。         
(4)方法摘要:
static void exit(int status) 终止当前正在运行的 Java 虚拟机。 
static void gc() 运行垃圾回收器。
static Properties getProperties()  确定当前的系统属性          
static String getProperty(String key) 获取指定键指示的系统属性。     
static String getProperty(String key, String def) 获取用指定键描述的系统属性。 
static void setIn(InputStream in) 重新分配“标准”输入流。           
static void setOut(PrintStream out) 重新分配“标准”输出流。 
static void setProperties(Properties props) 将系统属性设置为 Properties 参数。           
static String setProperty(String key, String value) 设置指定键指示的系统属性。


六、Object类:
(1)是所有类的根类,超类。
  java中提供的类以及我们自定义的类都直接或者间接的继承自Object类。
(2)Object类中的方法
A:void finalize() 
 当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。
B:Class getClass()
 获取对象的字节码文件的描述类,后面再讲反射的时候还会在说这个类。
 String name = s.getClass().getName();
C:int hashCode()
 获取对象的哈希值。其实就是对象的内存地址值十进制表示
D:String toString()
 返回对象的字符串表示。
 表示格式:
 getClass().getName()+"@"+Integer.toHexString(hashCode());
 一般我们输出对象名的时候,其实底层调用的就是该对象的toString()方法。
 这种返回没有意义,所以,我们会重写这个方法,显示类的成员变量信息。
E:boolean equals(Object obj)
 用于比较两个对象的地址值是否相同。
 我们获取对象后,比较它的地址值意义不大。所以也会对这个方法进行重写。
 重写要完成什么功能,是根据需求定的。


七、Class类:(目前理解不了,以后继续补充)

既然万事万物皆对象,那么我们的类是不是对象呢?是的,我们写的每一个类都是对象,是 java.lang.Class 类的对象。也就是说,每一个类既有自己的对象,同时也是 Class 类的对象。

http://blog.csdn.net/bingduanlbd/article/details/8424243/




猜你喜欢

转载自blog.csdn.net/qq_39823114/article/details/78560474