---------------------- <a href="
http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、<a href="
http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! ----------------------
Java常用的类
知识点
一、API文档
二、Object类
三、Math类
四、Random类
五、Scanner类
六、 String类
七、StringBuffer和StringBuilder类
八、System的方法
九、Arrays类
十、基本类型包装类
十一、 Date和DateFormat类
十二、Calendar类
---------------------------------------------------------------------------------------------------
一、API文档
1、API概念:(Application Programming Interface,应用程序编程接口)是一些
预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的
以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
2、API的使用:
(1)找到类,2种方式
A直接点开:若知道在哪个包下,就先选包再选包下的类名;
B查找:点击左上角的显示变成隐藏,然后点击索引,再输入类名;
(2)看这个类的结构:
如果是java.lang包下的类,可直接使用。否则,就需要导包才能使用。
(3)看看对这个类的说明。
(4)看构造方法
A字段:成员变量,类的属性。
B:有构造方法,那么,就通过构造方法创建对象使用。
C:没有构造方法,那么,这个类的成员一般都是静态的;
有静态方法返回该类的对象,可通过类名调用。
(5)方法的使用:
A:看左边
是否静态:如果静态修饰,那么可以通过类名调用。否则,就必须创建对象调用。
是否有明确返回值:如果是void类型,直接调用即可。否则,就可以输出或者赋值。
B:看右边
看方法名:注意大小写
看参数:看参数类型及个数。
3、类转换的通用规则:
假设有A类和B类。他们相互之间是可以转换的;如果你有A类的对象,
却想使用B类的方法;或者你有B类的对象,却想使用A类的方法。
这个时候,你就可以考虑转换。否则,不用转换。
二、Object类
1、Object类:是类层次结构的顶层类,是所有类的根类,超类。
所有的类都直接或者间接的继承自Object类,一切数据类型都可用Object接收
2、常用方法:
(1)public String toString():返回对象的字符串表示形式。
组成:包名...类名@哈希值的十六进制
用输出语句直接输出对象的名称,其实底层调用了该对象的toString()方法。
建议所有类都覆写此方法
(2)public boolean equals(Object obj): 默认比较的是对象的地址值是否相同。
一般,会重写该方法,按照自己的需求进行比较。
3、思考:==和equals()的区别?
(1)==:
比较基本类型:比较的是基本类型的值是否相同。
比较引用类型:比较的是引用类型的地址值是否相同。
(2)equals():
比较引用类型,默认比较的是引用类型的地址值是否相同。
如果类重写了该方法,就按照重写后的规则进行比较。
三、Math类
1、Math类,所有的方法全部静态, 包含了很多的数学方面的计算
2、静态常量:double Math.PI 圆周率
3、常用方法:
floor(double d):小于等于参数的最大整数。
ceil(double d):大于等于参数的最小整数。
round(double d):四舍五入。+0.5 (结果为整数)
pow(int,int):x的y次方
sqrt(double a):平方根
random():伪随机数。[0.0,1.0)
产生1-100之间的随机数: int number = (int)(Math.random()*100)+1;
四、Random类
1、Random类:负责生成伪随机数;
2、构造方法:Random() 创建一个新的随机数生成器。
3、常用方法:
int nextInt() 返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。
int nextInt(int n) 返回一个伪随机数,它是取自此随机数生成器序列的、
在 0(包括)和指定值n(不包括)之间均匀分布的 int 值。
五、Scanner类
1、Scanner类:是JDK5以后设计的用来接收键盘录入数据使用的。
2、常用方法:
nextInt():获取int类型
nextLine():获取String类型
3、使用步骤:要通过键盘录入int类型数据,步骤如下:
(1)导包
import java.util.Scanner;
(2)创建对象,封装键盘录入
Scanner sc = new Scanner(System.in);
(3)调用方法,获取数据
int number = sc.nextInt();
六、 String类
1、String 类:代表字符串,字符串由多个字符组成的一串数据,是常量;
只要是双引号引起的数据都是字符串对象。
2、字符串的特点:字符串一旦被赋值,就不能改变。
注意:字符串的值不能改变,引用变量可以改变。
3、构造方法:
(1)String s = new String(); 初始化一个新的 String 对象,
使其表示一个空字符序列,并不是返回空(不等于 null)。
(2)String s = new String(byte[]byte); 将byte 数组构造成一个新的 String
(3)String s = new String(char[] chs); 将字符数组构造成一个新的 String
(4)String s = new String(String str); 初始化一个新创建的 String 对象,
使其表示一个与参数相同的字符序列
(5)String s = "hello"; 直接为字符串对象赋值
String s = null; //没有任何对象指向,是一个null常量值。
String s = "hello";//指向一个具体的字符串对象,但是这个字符串中没有内容。
4、成员方法
(1)判断功能
boolean equals(Object obj):判断字符串的内容是否相同,区分大小写。
boolean equalsIgnoreCase(String str):判断字符串的内容是否相同,不区分大小写。
boolean contains(String str):判断字符串对象是否包含给定的字符串。
boolean startsWith(String str):判断字符串对象是否以给定的字符串开始。
boolean endsWith(String str):判断字符串对象是否以给定的字符串结束。
boolean isEmpty():判断字符串对象是否为空。数据是否为空。
(2)获取功能
int length():获取字符串的长度
char charAt(int index):返回字符串中给定索引处的字符
int indexOf(int ch):返回指定字符在此字符串中第一次出现的索引
int indexOf(String str):返回指定字符串在此字符串中第一次出现的索引
int indexOf(int ch,int fromIndex):返回在此字符串中第一次出现指定字符的索引,
从指定的索引开始搜索。
int indexOf(String str,int fromIndex):返回在此字符串中第一次出现指定字符串的索引,
从指定的索引开始搜索。
String substring(int start):截取字符串。返回从指定位置开始截取后的字符串。
String substring(int start,int end)截取字符串。
返回从指定位置开始到指定位置结束截取后的字符串。
(3)转换功能
byte[] getBytes():把字符串转换成字节数组。
char[] toCharArray():把字符串转换成字符数组。
static String valueOf(char[] chs):把字符数组转换成字符串。
static String valueOf(int i)基本类型:把int(基本类型)转换成字符串。
String toLowerCase():把字符串变成小写
String toUpperCase():把字符串变成大写
String concat(String str):拼接字符串。
(4)其他功能
a:替换功能
String replace(char oldChar,char newChar) 用新的字符去替换指定的旧字符
String replace(String oldString,String newString) 用新的字符串去替换指定的旧字符串
b:切割功能
String[] split(String regex) 根据给定正则表达式的匹配拆分此字符串,返回字符串数组
c:去除两端空格功能
String trim() 返回字符串的副本,忽略前导空白和尾部空白。
d:字典顺序比较功能
int compareTo(String str) 按字典顺序比较两个字符串,区分大小写。
int compareToIgnoreCase(String str) 按字典顺序比较两个字符串,不区分大小写。
5、思考:String s = new String("hello")和String s = "hello"的区别。
第一种方式,其实在内存中有两个对象存在。
第二种方式,在内存中只有一个对象存在。
String s1 = new String("hello");
String s2 = new String("hello");
System.out.println(s1==s2); //false,s2是重新new出来的,
System.out.println(s1.equals(s2)); //ture,s1和s2的值都是 hello
String s3 = new String("hello");
String s4 = "hello";
System.out.println(s3==s4); //false,s3指向了两个对象,s4只有一个
System.out.println(s3.equals(s4)); //ture
String s5 = "hello";
String s6 = "hello";
System.out.println(s5==s6); //ture,s5和s6都指向了一个对象 hello
System.out.println(s5.equals(s6)); //true
七、StringBuffer和StringBuilder类
1、字符串缓冲区类:字符个数可以发生改变的字符串类。
StringBuilder和StringBuffer都是字符串缓冲区,
两个类,方法相同;区别:StringBuilder线程不安全,StringBuffer 线程安全
2、构造方法:
(1)StringBuffer()构造一个其中不带字符的字符串缓冲区,初始容量为 16 个字符
(2)StringBuffer(int capacity)构造一个不带字符,但具有指定初始容量的字符串缓冲区
(3)StringBuffer(String str)构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容
3、成员方法:
(1)添加功能
public StringBuffer append(int i):在末尾追加元素
public StringBuffer insert(int index,int i):在指定位置添加元素
(2)删除功能
StringBuffer deleteCharAt(int index):删除指定位置字符
StringBuffer delete(int start, int end):删除指定开始位置和结束位置间的字符
(3)替换功能
void setCharAt(int ,char)指定位置上,替换字符
StringBuffer replace(start,end,string);将start至end-1替换成string
(4)截取功能
String substring(int start):从指定位置到末尾截取
String substring(int start, int end): 从指定位置到结束位置截取
(5)反转功能
StringBuffer reverse():字符串反转
4、案例:字符串反转。
需求:键盘录入一个字符串,把字符串的数据反转后输出。
import java.util.Scanner;
class StringBufferTest {
public static void main(String[] args) {
// 创建对象
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串");
// 获取String类型的数据
String line = sc.nextLine();
StringBuffer sb = new StringBuffer(line);
// 反转
sb.reverse();
String s = new String(sb);
System.out.println(s);
}
八、System的方法
1、系统类,提供了静态的变量和方法供我们使用。
2、成员方法:
public static void exit(int value):退出jvm,非0表示异常退出。
public static long currentTimeMillis():返回当前系统时间的毫秒值。
和1970 年 1 月 1 日午夜之间的时间差
九、Arrays类
1、Arrays工具类的使用
(1)Arrays是针对数组操作的工具类。
(2)成员方法:
public static String toString(数组):把数组变成字符串。
public static void sort(数组):对数组进行排序。
public static int binarySearch(int[] arr,int value):二分查找
2、二分查找(折半查找):
代码:
public static int getIndex(int[] arr,int value)
{ int maxIndex = arr.length-1;
int minIndex = 0;
int midIndex = (maxIndex+minIndex)/2;
while(arr[midIndex]!=value)
{ if(arr[midIndex]>value)
{ maxIndex = midIndex - 1; }
else if(arr[midIndex]<value)
{ minIndex = midIndex + 1; }
if(minIndex > maxIndex)
{ return -1; }
midIndex = (maxIndex+minIndex)/2;
}
return midIndex;
}
十、基本类型包装类
1、包装类:基本类型的数据我们只能使用值,不能做更多的操作;为了方便我们操作,
java就把每种基本类型进行了包装,提供方法供我们使用。
2、基本类型和包装类的对应关系
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean
3、Integer构造方法
A:Integer i = new Integer(int num);
B:Integer i = new Integer(String s);
注意:s必须是一个由数字字符组成的字符串。
4、String和int类型的转换
(1)String -- int
Integer: public static int parseInt(String s)
(2)int -- String
Integer: public static String toString(int i)
String: public static String valueOf(int i)
5、JDK5以后的新特性
(1)自动装箱:基本类型--引用类型
(2)自动拆箱:引用类型--基本类型
举例:
Integer i = 100; //自动装箱
i += 200; //自动折箱,再自动装箱
十一、 Date和DateFormat类
1、Date类:日期和毫秒值的转换
Date -- long :public long getTime()返回毫秒值
long – Date :public void setTime(long time) 返回对应毫秒值的日期
2、DateFormat类:日期和字符串的转换
String – Date:parse()将字符串转成日期对象
Date – String:format()把日期格式化成字符串
十二、Calendar类
1、Calendar日历类:它可以获取任意指定日历值,然后*组合。
2、成员方法:
get(日历字段):根据给定的日历字段获取值
set(年,月,日):给日历设定指定的年,月,日
add(日历字段,值):给指定的日历字段添加或者减去给定的值。取决于值的正负。
---------------------- <a href="
http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、<a href="
http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流!
---------------------- <a href="
http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、<a href="
http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! ----------------------
Java常用的类
知识点
一、API文档
二、Object类
三、Math类
四、Random类
五、Scanner类
六、 String类
七、StringBuffer和StringBuilder类
八、System的方法
九、Arrays类
十、基本类型包装类
十一、 Date和DateFormat类
十二、Calendar类
---------------------------------------------------------------------------------------------------
一、API文档
1、API概念:(Application Programming Interface,应用程序编程接口)是一些
预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的
以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
2、API的使用:
(1)找到类,2种方式
A直接点开:若知道在哪个包下,就先选包再选包下的类名;
B查找:点击左上角的显示变成隐藏,然后点击索引,再输入类名;
(2)看这个类的结构:
如果是java.lang包下的类,可直接使用。否则,就需要导包才能使用。
(3)看看对这个类的说明。
(4)看构造方法
A字段:成员变量,类的属性。
B:有构造方法,那么,就通过构造方法创建对象使用。
C:没有构造方法,那么,这个类的成员一般都是静态的;
有静态方法返回该类的对象,可通过类名调用。
(5)方法的使用:
A:看左边
是否静态:如果静态修饰,那么可以通过类名调用。否则,就必须创建对象调用。
是否有明确返回值:如果是void类型,直接调用即可。否则,就可以输出或者赋值。
B:看右边
看方法名:注意大小写
看参数:看参数类型及个数。
3、类转换的通用规则:
假设有A类和B类。他们相互之间是可以转换的;如果你有A类的对象,
却想使用B类的方法;或者你有B类的对象,却想使用A类的方法。
这个时候,你就可以考虑转换。否则,不用转换。
二、Object类
1、Object类:是类层次结构的顶层类,是所有类的根类,超类。
所有的类都直接或者间接的继承自Object类,一切数据类型都可用Object接收
2、常用方法:
(1)public String toString():返回对象的字符串表示形式。
组成:包名...类名@哈希值的十六进制
用输出语句直接输出对象的名称,其实底层调用了该对象的toString()方法。
建议所有类都覆写此方法
(2)public boolean equals(Object obj): 默认比较的是对象的地址值是否相同。
一般,会重写该方法,按照自己的需求进行比较。
3、思考:==和equals()的区别?
(1)==:
比较基本类型:比较的是基本类型的值是否相同。
比较引用类型:比较的是引用类型的地址值是否相同。
(2)equals():
比较引用类型,默认比较的是引用类型的地址值是否相同。
如果类重写了该方法,就按照重写后的规则进行比较。
三、Math类
1、Math类,所有的方法全部静态, 包含了很多的数学方面的计算
2、静态常量:double Math.PI 圆周率
3、常用方法:
floor(double d):小于等于参数的最大整数。
ceil(double d):大于等于参数的最小整数。
round(double d):四舍五入。+0.5 (结果为整数)
pow(int,int):x的y次方
sqrt(double a):平方根
random():伪随机数。[0.0,1.0)
产生1-100之间的随机数: int number = (int)(Math.random()*100)+1;
四、Random类
1、Random类:负责生成伪随机数;
2、构造方法:Random() 创建一个新的随机数生成器。
3、常用方法:
int nextInt() 返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。
int nextInt(int n) 返回一个伪随机数,它是取自此随机数生成器序列的、
在 0(包括)和指定值n(不包括)之间均匀分布的 int 值。
五、Scanner类
1、Scanner类:是JDK5以后设计的用来接收键盘录入数据使用的。
2、常用方法:
nextInt():获取int类型
nextLine():获取String类型
3、使用步骤:要通过键盘录入int类型数据,步骤如下:
(1)导包
import java.util.Scanner;
(2)创建对象,封装键盘录入
Scanner sc = new Scanner(System.in);
(3)调用方法,获取数据
int number = sc.nextInt();
六、 String类
1、String 类:代表字符串,字符串由多个字符组成的一串数据,是常量;
只要是双引号引起的数据都是字符串对象。
2、字符串的特点:字符串一旦被赋值,就不能改变。
注意:字符串的值不能改变,引用变量可以改变。
3、构造方法:
(1)String s = new String(); 初始化一个新的 String 对象,
使其表示一个空字符序列,并不是返回空(不等于 null)。
(2)String s = new String(byte[]byte); 将byte 数组构造成一个新的 String
(3)String s = new String(char[] chs); 将字符数组构造成一个新的 String
(4)String s = new String(String str); 初始化一个新创建的 String 对象,
使其表示一个与参数相同的字符序列
(5)String s = "hello"; 直接为字符串对象赋值
String s = null; //没有任何对象指向,是一个null常量值。
String s = "hello";//指向一个具体的字符串对象,但是这个字符串中没有内容。
4、成员方法
(1)判断功能
boolean equals(Object obj):判断字符串的内容是否相同,区分大小写。
boolean equalsIgnoreCase(String str):判断字符串的内容是否相同,不区分大小写。
boolean contains(String str):判断字符串对象是否包含给定的字符串。
boolean startsWith(String str):判断字符串对象是否以给定的字符串开始。
boolean endsWith(String str):判断字符串对象是否以给定的字符串结束。
boolean isEmpty():判断字符串对象是否为空。数据是否为空。
(2)获取功能
int length():获取字符串的长度
char charAt(int index):返回字符串中给定索引处的字符
int indexOf(int ch):返回指定字符在此字符串中第一次出现的索引
int indexOf(String str):返回指定字符串在此字符串中第一次出现的索引
int indexOf(int ch,int fromIndex):返回在此字符串中第一次出现指定字符的索引,
从指定的索引开始搜索。
int indexOf(String str,int fromIndex):返回在此字符串中第一次出现指定字符串的索引,
从指定的索引开始搜索。
String substring(int start):截取字符串。返回从指定位置开始截取后的字符串。
String substring(int start,int end)截取字符串。
返回从指定位置开始到指定位置结束截取后的字符串。
(3)转换功能
byte[] getBytes():把字符串转换成字节数组。
char[] toCharArray():把字符串转换成字符数组。
static String valueOf(char[] chs):把字符数组转换成字符串。
static String valueOf(int i)基本类型:把int(基本类型)转换成字符串。
String toLowerCase():把字符串变成小写
String toUpperCase():把字符串变成大写
String concat(String str):拼接字符串。
(4)其他功能
a:替换功能
String replace(char oldChar,char newChar) 用新的字符去替换指定的旧字符
String replace(String oldString,String newString) 用新的字符串去替换指定的旧字符串
b:切割功能
String[] split(String regex) 根据给定正则表达式的匹配拆分此字符串,返回字符串数组
c:去除两端空格功能
String trim() 返回字符串的副本,忽略前导空白和尾部空白。
d:字典顺序比较功能
int compareTo(String str) 按字典顺序比较两个字符串,区分大小写。
int compareToIgnoreCase(String str) 按字典顺序比较两个字符串,不区分大小写。
5、思考:String s = new String("hello")和String s = "hello"的区别。
第一种方式,其实在内存中有两个对象存在。
第二种方式,在内存中只有一个对象存在。
String s1 = new String("hello");
String s2 = new String("hello");
System.out.println(s1==s2); //false,s2是重新new出来的,
System.out.println(s1.equals(s2)); //ture,s1和s2的值都是 hello
String s3 = new String("hello");
String s4 = "hello";
System.out.println(s3==s4); //false,s3指向了两个对象,s4只有一个
System.out.println(s3.equals(s4)); //ture
String s5 = "hello";
String s6 = "hello";
System.out.println(s5==s6); //ture,s5和s6都指向了一个对象 hello
System.out.println(s5.equals(s6)); //true
七、StringBuffer和StringBuilder类
1、字符串缓冲区类:字符个数可以发生改变的字符串类。
StringBuilder和StringBuffer都是字符串缓冲区,
两个类,方法相同;区别:StringBuilder线程不安全,StringBuffer 线程安全
2、构造方法:
(1)StringBuffer()构造一个其中不带字符的字符串缓冲区,初始容量为 16 个字符
(2)StringBuffer(int capacity)构造一个不带字符,但具有指定初始容量的字符串缓冲区
(3)StringBuffer(String str)构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容
3、成员方法:
(1)添加功能
public StringBuffer append(int i):在末尾追加元素
public StringBuffer insert(int index,int i):在指定位置添加元素
(2)删除功能
StringBuffer deleteCharAt(int index):删除指定位置字符
StringBuffer delete(int start, int end):删除指定开始位置和结束位置间的字符
(3)替换功能
void setCharAt(int ,char)指定位置上,替换字符
StringBuffer replace(start,end,string);将start至end-1替换成string
(4)截取功能
String substring(int start):从指定位置到末尾截取
String substring(int start, int end): 从指定位置到结束位置截取
(5)反转功能
StringBuffer reverse():字符串反转
4、案例:字符串反转。
需求:键盘录入一个字符串,把字符串的数据反转后输出。
import java.util.Scanner;
class StringBufferTest {
public static void main(String[] args) {
// 创建对象
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串");
// 获取String类型的数据
String line = sc.nextLine();
StringBuffer sb = new StringBuffer(line);
// 反转
sb.reverse();
String s = new String(sb);
System.out.println(s);
}
八、System的方法
1、系统类,提供了静态的变量和方法供我们使用。
2、成员方法:
public static void exit(int value):退出jvm,非0表示异常退出。
public static long currentTimeMillis():返回当前系统时间的毫秒值。
和1970 年 1 月 1 日午夜之间的时间差
九、Arrays类
1、Arrays工具类的使用
(1)Arrays是针对数组操作的工具类。
(2)成员方法:
public static String toString(数组):把数组变成字符串。
public static void sort(数组):对数组进行排序。
public static int binarySearch(int[] arr,int value):二分查找
2、二分查找(折半查找):
代码:
public static int getIndex(int[] arr,int value)
{ int maxIndex = arr.length-1;
int minIndex = 0;
int midIndex = (maxIndex+minIndex)/2;
while(arr[midIndex]!=value)
{ if(arr[midIndex]>value)
{ maxIndex = midIndex - 1; }
else if(arr[midIndex]<value)
{ minIndex = midIndex + 1; }
if(minIndex > maxIndex)
{ return -1; }
midIndex = (maxIndex+minIndex)/2;
}
return midIndex;
}
十、基本类型包装类
1、包装类:基本类型的数据我们只能使用值,不能做更多的操作;为了方便我们操作,
java就把每种基本类型进行了包装,提供方法供我们使用。
2、基本类型和包装类的对应关系
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean
3、Integer构造方法
A:Integer i = new Integer(int num);
B:Integer i = new Integer(String s);
注意:s必须是一个由数字字符组成的字符串。
4、String和int类型的转换
(1)String -- int
Integer: public static int parseInt(String s)
(2)int -- String
Integer: public static String toString(int i)
String: public static String valueOf(int i)
5、JDK5以后的新特性
(1)自动装箱:基本类型--引用类型
(2)自动拆箱:引用类型--基本类型
举例:
Integer i = 100; //自动装箱
i += 200; //自动折箱,再自动装箱
十一、 Date和DateFormat类
1、Date类:日期和毫秒值的转换
Date -- long :public long getTime()返回毫秒值
long – Date :public void setTime(long time) 返回对应毫秒值的日期
2、DateFormat类:日期和字符串的转换
String – Date:parse()将字符串转成日期对象
Date – String:format()把日期格式化成字符串
十二、Calendar类
1、Calendar日历类:它可以获取任意指定日历值,然后*组合。
2、成员方法:
get(日历字段):根据给定的日历字段获取值
set(年,月,日):给日历设定指定的年,月,日
add(日历字段,值):给指定的日历字段添加或者减去给定的值。取决于值的正负。
---------------------- <a href="
http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、<a href="
http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流!