JavaAPI基础

--------------API第一天--------------

 

Object: 它是所有类的超类,祖宗类

java中所有的类都直接或间接的继承这个类

方法(都要了解)

public int hashCode() 返回当前对象的哈希码值,理解为对象的地址值

public String toString() 返回当前对象中的内容, 对于Object类默认操作来说,返回的

包名.类名@哈希码值

public boolean equals(Object obj) 比较两个对象内容是否相同,

对于Object类默认操作来说,比较的是地址值

 

public Class getClass() 该对象运行时的类 字节码文件对象

 

String: 字符串类(重点)

字符串是常量;它们的值在创建之后不能更改

构造方法:(掌握,重点是能知道什么意思)

public String() 空参数构造方法

public String(String original) 就是字符串字面值,封装成对象

//下面方法做为一个了解...因为会在以后IO的代码中会看到使用

public String(byte[] bytes) 把字节数组转换字符串

public String(byte[] bytes, int startIndex, int length) 把字节数组一部分元素 转换成字符串

public String(char[] value) 把字符数组 转换成字符串

public String(char[] value, int startIndex, int count) 把字符数组一部分元素 转换成字符串

方法:

判断功能()

boolean equals(Object obj) 判断两个字符串中的内容是否相同

boolean equalsIgnoreCase(String str) 判断两个字符串中的内容是否相同, 忽略大小写

boolean contains(String str) 判断该字符串中 是否包含给定的字符串

boolean startsWith(String str) 判断该字符串 是否以给定的字符串开头

boolean endsWith(String str) 判断该字符串 是否以给定的字符串结尾

boolean isEmpty() 判断该字符串的内容是否为空的字符串 ""

 

获取功能:

int length() 获取该字符串的长度

char charAt(int index) 获取该字符串中指定位置上的字符

String substring(int start) 从指定位置开始,到末尾结束,截取该字符串,返回新字符串

String substring(int start,int end) 从指定位置开始,到指定位置结束,截取该字符串,返回新字符串

//下面是关于索引的一些查询 这个不作为掌握 但是要了解字符串中有这样的功能

int indexOf(int ch ) 获取给定的字符,在该字符串中第一次出现的位置

int indexOf(String str) 获取给定的字符串,在该字符串中第一次出现的位置

int indexOf(int ch,int fromIndex) 从指定位置开始,获取给定的字符,在该字符串中第一次出现的位置

int indexOf(String str,int fromIndex) 从指定位置开始,获取给定的字符串,在该字符串中第一次出现的位置

转换功能:

byte[] getBytes() 把该字符串 转换成 字节数组

char[] toCharArray() 把该字符串 转换成 字符数组

 

//下面的方法 知道有就可以了

String toLowerCase() 把该字符串转换成 小写字符串

String toUpperCase() 把该字符串转换成 大写字符串

String concat(String str) 把该字符串与给定的字符串相连接,返回一个新的字符串

替换功能

String replace(char old,char new) 在该字符串中,将给定的旧字符,用新字符替换

String replace(String old,String new) 在该字符串中, 将给定的旧字符串,用新字符串替换

去除字符串两空格

String trim() 去除字符串两端空格,中间的不会去除,返回一个新字符串

StringBuffer/StringBuilder:(理解)

构造方法:

public StringBuffer() 创建一个字符串缓冲区,默认容量大小16

public StringBuffer(String str) 创建一个字符串缓冲区,指定默认内容为 str 的内容,长度为 字符串str的长度 + 16

方法:

public StringBuffer append(String str) 在原有字符串缓冲区内容基础上,在末尾追加新数据

public StringBuffer insert(int offset,String str) 在原有字符串缓冲区内容基础上,在指定位置插入新数据

public StringBuffer deleteCharAt(int index) 在原有字符串缓冲区内容基础上,删除指定位置上的字符

public StringBuffer delete(int start,int end) 在原有字符串缓冲区内容基础上,删除指定范围内的多个字符

public StringBuffer replace(int start,int end,String str)在原有字符串缓冲区内容基础上,将指定范围内的多个字符 用给定的字符串替换

-----------------------------

public StringBuffer reverse() 将字符串缓冲区的内容 反转 "abc"----"cba"

public String substring(int start) 从指定位置开始,到末尾结束,截取该字符串缓冲区,返回新字符串

public String substring(int start,int end) 从指定位置开始,到指定位置结束,截取该字符串缓冲区,返回新字符串

 

 

+

 

--------------API第二天--------------

正则表达式:

(1)就是符合一定规则的字符串

(2)常见规则

A:字符

x 字符 x。举例:"a"表示字符a

\\ 反斜线字符。

\n 新行(换行)符

\r 回车符

B:字符类

[abc] a、b 或 c(简单类)

[^abc] 任何字符,除了 a、b 或 c(否定)

[a-zA-Z] a到 z 或 A到 Z,两头的字母包括在内(范围)

[0-9] 0到9的字符都包括

C:预定义字符类

. 任何字符。我的就是.字符本身,怎么表示呢? \.

\d 数字:[0-9]

\w 单词字符:[a-zA-Z_0-9]

在正则表达式里面组成单词的东西必须有这些东西组成

 

D:边界匹配器

^ 行的开头

$ 行的结尾

\b 单词边界

就是不是单词字符的地方。

举例:hello world?haha;xixi

E:Greedy 数量词

X? X,一次或一次也没有

X* X,零次或多次

X+ X,一次或多次

X{n} X,恰好 n 次

X{n,} X,至少 n 次

X{n,m} X,至少 n 次,但是不超过 m 次

(3)常见功能:

A:判断功能

String类的

public boolean matches(String regex) 进行字符串规则的匹配

B:分割功能

String类的

public String[] split(String regex) 字符串按照某种规则进行切割

C:替换功能

String类的

public String replaceAll(String regex,String replacement) 字符串按照某种规则替换小串

 

(4)案例

A:判断电话号码和邮箱

B:按照不同的规则分割数据

C:把论坛中的数字替换为*

Date/DateFormat

(1)Date是日期类,可以精确到毫秒。

A:构造方法

Date() 获取当前时间

Date(long time) 获取0点时间+毫秒值的新时间

B:成员方法

getTime() 获取日期对象对应的毫秒值

setTime(long time) 设置日期对象的时间毫秒值

C:日期和毫秒值的相互转换

案例:你来到这个世界多少天了?

(2)DateFormat针对日期进行格式化和针对字符串进行解析的类,但是是抽象类,所以使用其子类SimpleDateFormat

A:SimpleDateFormat(String pattern) 给定模式

yyyy-MM-dd HH:mm:ss

B:日期和字符串的转换

a:Date -- String 日期对象转换成 字符串

format()

b:String -- Date 字符串转换成日期对象

parse()

Calendar

(1)日历类,封装了所有的日历字段值,通过统一的方法根据传入不同的日历字段可以获取值。

(2)如何得到一个日历对象呢?

Calendar rightNow = Calendar.getInstance();

本质返回的是子类对象

(3)成员方法

A:根据日历字段得到对应的值

B:根据日历字段和一个正负数确定是添加还是减去对应日历字段的值

C:设置日历对象的年月日

 

 

 

--------------API第三天--------------

为了让基本类型的数据进行更多的操作,Java就为每种基本类型提供了对应的包装类类型

byte Byte

short Short

int Integer

long Long

float Float

double Double

char Character

boolean Boolean

Integer:

构造方法:

public Integer(int value) 把基本数据类型int值 , 封装成对象

public Integer(String s) 把字符串类型的数字字符,封装成对象

方法:

//要知道Integer中有进制转换的方法 将来使用 去找就可以了 完全不用记忆

public static String toBinaryString(int i) 10进制 --> 2进制

public static String toOctalString(int i) 10进制 --> 8进制

public static String toHexString(int i) 10进制 --> 16进制

public static String toString(int i,int radix) 10进制 --> x进制

public static int parseInt(String s,int radix) x进制 --> 10进制

//--------------------------------------------

public String toString() 把Integer中的数值 转换成 字符串 Integer --> String

public static String toString(int i) 把基本数据类型 int值 转成 字符串 int --> String

public int intValue() 把Integer中的数值 获取出来, 返回一个基本数据类型 int 值 Integer --> int

(我们自动拆箱中 调用的方法)

public static int parseInt(String s) String --> int

public static Integer valueOf(String s) String -->Integer

JDK5的新特性

自动装箱 基本类型--引用类型 Integer ii = new Integer(100)

Integer ii = Integer.valueOf(100);

自动装箱 Integer ii = 100;

自动装箱中隐含 这这么一句话 Integer.valueOf(100);

自动拆箱 引用类型--基本类型 int i = ii.intValue();

自动拆箱 int i = ii; //隐含了上面那句话

再次提到 toString()和equals()都只能由对象调用

如果说某一个类 直接打印对象的时候

打印的是地址值 调用的是 Object的toString() 没有重写

打印的是对象内容 重写了toString()方法

如果说 对象 调用了equals方法

发现 比较的还是地址值,说明该类没有重写equals方法

发现 比较的对象中内容,说明该类重写了equals方法

 

把下面的这个代码理解即可:

Integer i = 100;

i += 200;

面试题

注意是在自动装箱中隐含 这这么一句话 Integer.valueOf(数值);

-128到127之间的数据缓冲池问题

Character 比较特殊 没有parseXXX功能

String 对象

"a".charAt(0) 将String变成char类型

----------------------------------------

Math: 数学工具类

public static double max(double a, double b)返回两个 double 值中较大的一个

public static double min(double a, double b)返回两个 double 值中较小的一个

public static double random() 返回 0.0<=x<1.0 之间的随机小数

public static long round(double a) 四舍五入

 

System:

方法:

*public static void exit(int status)

终止当前正在运行的 Java 虚拟机。参数用作状态码;根据惯例,非 0 的状态码表示异常终止

*public static long currentTimeMillis()

返回当前系统时间的毫秒值

 public static void gc()

用来运行JVM中的垃圾回收器,完成内存中垃圾的清除。

 public static String getProperty(String key)

用来获取指定键(字符串名称)中所记录的系统属性信息

arraycopy方法,用来实现将源数组部分元素复制到目标数组的指定位置(知道有,能简单使用就行)

 

数组高级以及Arrays

(1)排序

A:冒泡排序

相邻元素两两比较,大的往后放,第一次完毕,最大值出现在了最大索引处。

同理,其他的元素就可以排好。

public static void bubbleSort(int[] arr) {

for(int x=0; x<arr.length-1; x++) {

for(int y=0; y<arr.length-1-x; y++) {

if(arr[y] > arr[y+1]) {

int temp = arr[y];

arr[y] = arr[y+1];

arr[y+1] = temp;

}

}

}

}

B:选择排序

把0索引的元素,和索引1以后的元素都进行比较,第一次完毕,最小值出现在了0索引。

同理,其他的元素就可以排好。

public static void selectSort(int[] arr) {

for(int x=0; x<arr.length-1; x++) {

for(int y=x+1; y<arr.length; y++) {

if(arr[y] < arr[x]) {

int temp = arr[x];

arr[x] = arr[y];

arr[y] = temp;

}

}

}

}

(2)查找

A:基本查找

针对数组无序的情况

public static int getIndex(int[] arr,int value) {

int index = -1;

for(int x=0; x<arr.length; x++) {

if(arr[x] == value) {

index = x;

break;

}

}

return index;

}

B:二分查找(折半查找)

针对数组有序的情况

public static int binarySearch(int[] arr,int value) {

int min = 0;

int max = arr.length-1;

int mid = -1;

while(min<=max) {

 

mid = (min+max)/2;

 

if(arr[mid] > value) {

max = mid - 1;

}else if(arr[mid] < value) {

min = mid + 1;

}else{

return mid;

}

}

return mid;

}

(3)Arrays 工具类

A:是针对数组进行操作的工具类。包括排序和查找等功能。

B:要掌握的方法

public static void sort(数组)用来对指定数组中的元素进行排序(元素值从小到大进行排序

public static int binarySearch(int[] arr,int key)在指定数组中,查找给定元素值出现的位置。若没有查询到,返回位置为负数

public static String toString(数组)用来返回指定数组元素内容的字符串形式

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值