【Java基础】03_常用API

一、java.lang.Object类【★】

类层次结构的根类,所有类都直接或者间接的继承自该类。

构造方法:

public Object()

成员方法:

1) public int hashCode()

返回该对象的哈希码值

2) public final Class getClass()

返回此对象的运行时类,即字节码文件对象

3)public String toString()        //子类重写:显示属性值

返回对象的字符串表示形式

即内存地址值。组成:包名...类名(即类的全路径名)@内存地址值的十六进制

4)public boolean equals(Object obj)        //子类重写:比较属性值

比较两个对象是否相同

面试题:==和equals()的区别?

equals():

  比较引用类型,【默认比较的】是引用类型的内存地址值是否相同。

  如果子类重写了该方法,那就得按照重写后的规则进行比较。

  基本类型包装类和String重写了该方法,比较的是值

==:

  比较基本类型:比较的是基本类型的值是否相同。

  比较引用类型:比较的是引用类型的内存地址值是否相同。

二、java.util.Scanner类

JDK5以后用于获取用户的键盘输入。

构造方法:

  public Scanner(InputStream source)

成员方法:

1) boolean hasNextXxx()     // 注意:判断字符串省略Xxx

判断是否存在下一个某种类型元素

2) xxx nextXxx()

返回某种类型的元素

3) public int nextInt()

获取int类型

4) public String nextLine()

获取String类型

注意:先获取int值,后获取String值出现问题及解决方案

    同一个Scanner对象,先获取数值,再获取字符串会出现一个小问题。主要原因是回车符号\r\n字符的问题。在输入int类型之后,需要回车执行下一个代码,但是系统将回车当成了字符串输入,所以没法输入字符串了

推荐的解决方案:

    把所有的数据都先按照字符串获取,然后要什么类型,再将获取到的字符串转换为什么类型。

三、java.lang.String类【★★★】

字符串是由多个字符组成的一串数据(字符序列)。

a:字符串字面值常量"abc",也可以看成是一个字符串对象。

b:字符串是常量,一旦被赋值,就不能被改变。

常见构造方法:

1)public String()

2)public String(byte[] bytes)【将字节数组转成人能看懂的】

3)public String(byte[] bytes,int index,int length)

4)public String(char[] value)

5)public String(char[] value,int index,int count)

6)public String(String original)

5个面试题:结论

a:字符串如果是变量相加(有变量参与),先开辟空间,在拼接

b:字符串如果是常量相加(常量优化机制),是先加,然后在常量池中找,如果有就直接返回,否则,就创建。

判断功能:

1)boolean equals(Object obj)

  比较字符串是否相同,区分大小写

2)boolean equalsIgnoreCase(String str)

  比较字符串是否相同,不区分大小写

3)boolean contains(String str)

  字符串对象是否包含给定字符串

4)boolean startsWith(String str)

5)boolean endsWith(String str)

6)boolean isEmpty()

获取功能:

1)int length()

2)char charAt(int index)

3)int indexOf(int ch)

4)int indexOf(String str)

5)int indexOf(int ch,int fromIndex)

6)int indexOf(String str,int fromIndex)

7)int lastIndexOf(String str)

8)String substring(int start)

9)String substring(int start,int end)

转换功能:

1)byte[] getBytes()    【将字符串转成计算机能看懂的】

2)char[] toCharArray()

3)static String valueOf(char[] chs)

4)static String valueOf(int i)

5)String toLowerCase()

6)String toUpperCase()

7)String concat(String str) // 与+的区别

替换功能:

  String replace(char old,char new)

String replace(String old,String new)

String trim()

int compareTo(String str)    (字典顺序比较)

int compareToIgnoreCase(String str)    (了解)

String[] split(String regex) (补充,切割功能)

四、java.lang.StringBuffer类【★★】

线程安全的可变字符序列.

StringBuffer、StringBuilder和String的区别?

构造方法

public StringBuffer()

public StringBuffer(int capacity)

public StringBuffer(String str)

成员方法

public int capacity()

public int length()

添加功能

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()

截取功能:返回值类型不再是StringBuffer本身

public String substring(int start)

public String substring(int start,int end)

StringBuffer和String的相互转换【】

* String --> StringBuffer

a:通过构造方法StringBuffer(String s)

b:通过append()方法

* StringBuffer --> String

a:通过构造方法 String(StringBuffer sb)

b:通过toString()方法

c:通过subString(0,sb.length());

注:String作为参数传递,效果和基本类型作为参数传递是一样的。

五、数组算法(面试)

冒泡排序的原理和代码(双重for循环)

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

选择排序的原理和代码(双重for循环)

  从0索引元素开始,依次和后面元素比较,小的往前放,第一次完毕,最小值出现在了最小索引处。

折半查找法的原理和代码

  这里的有序指的是提供的数组初始状态本身元素就是有序的。

六、java.util.Arrays类

全部为静态方法:类名.调用

public static String toString(int[] a)

public static void sort(int[] a)

public static int binarySearch(int[] a,int key)

前提:数组本身是有序的

七、基本类型包装类(Integer为例)【★】

常用的操作之一:用于基本数据类型与字符串之间的转换。

基本类型和包装类的对应:

byte         Byte

short        Short

int        Integer

long        Long

float        Float

double    Double

char        Character

boolean    Boolean

字段常量:类名.调用

static int MAX_VALUE

static int MIN_VALUE

构造方法

1)public Integer(int value)

2)public Integer(String s) "1212"

参数String必须是int型字符串,否则报数字格式异常

成员方法

1)public int intValue()        // 非静态方法

2)public static int parseInt(String s)    //参数:数值型字符串

3)public static String toString(int i)

4)public static Integer valueOf(int i)

5)public static Integer valueOf(String s)

十进制到其他进制:

6)public static String toBinaryString(int i)

7)public static String toOctalString(int i)

8)public static String toHexString(int i)

其他进制到十进制(了解)

9)public static String toString(int i,int radix)

10)public static int parseInt(String s,int radix)

String和int类型的相互转换【】

* int --> String

方式1:和""进行拼接【推荐】

方式2:String类方法【推荐】

public static String valueOf(int i)

方式3:int -> Integer(int) - >String(Integer类的toString方法())

方式4:public static String toString(int i)(Integer类的静态方法)

* String --> int

  方式1:String --> Integer(String) --> int

 方式2:public static int parseInt(String s)【Integer静态方法推荐】

byte常量池:

  Integer的数据直接赋值,如果在-128到127之间,会直接从缓冲池里获取数据(字节常量池)

  举例:Integer i = 127;

八、正则表达式

是指一个用来描述或者匹配一系列符合某个语法规则的字符串的单个字符串。

其实就是一种规则。作用:专门用于操作字符串。

常见组成规则:

  字符

  字符类

  预定义字符类

  数量词

  边界匹配器

常见字符类: 中括号[...]代表单个字符

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

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

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

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

预定义字符类:

1)点 .     任何一个字符

2)\d     数字:[0-9]

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

  注意:需要转义字符进行转义\,代码书写方式就是\\d。

Greedy 数量词:

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

2)X*        X,零次或多次

3)X+        X,一次或多次

4)X{n}     X,恰好 n 次

5)X{n,}     X,至少 n 次

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

分割功能:

  String类的功能:

  public String[] split(String regex)

  注意:按点split(".")切割,需要书写成\\.,即书写成split("\\.")

替换功能:

  String类的功能:

  public String replaceAll(String regex,String replacement)

分组功能:

捕获组可以通过从左到右计算其开括号来编号。

例如,在表达式 ((A)(B(C))) 中,存在四个这样的组:

1 ((A)(B(C)))

2 (A)

3 (B(C))

4 (C)

组零始终代表整个表达式。

这里的编号从左括号依次编号分组。(主要看左小括号)

(.)\\1+ $1

java.util.regex.Pattern和Matcher:

Pattern p = Pattern.compile("a*b"); // 获取到正则表达式

Matcher m = p.matcher("aaaaab");    // 获取匹配器

boolean b = m.matches();    //看是否能匹配,匹配就返回true

"aaaaab".matches("a*b");

Matcher的获取功能:

public boolean find()

public String group()

九、java.lang.Math类

Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。

成员变量

PI:静态常量,即圆周率π

成员方法:

1)public static int abs(int a)

2)public static double ceil(double a)

3)public static double floor(double a)

4)public static int max(int a,int b)     min自学

5)public static double pow(double a,double b)    // a ^ b

6)public static double random()

7)public static int round(float a)     参数为double的自学

8)public static double sqrt(double a)

十、java.util.Random类

此类的实例用于生成伪随机数流。

构造方法:

public Random()        //以系统 纳秒值为种子

public Random(long seed)

成员方法:

1)public int nextInt()

2)public int nextInt(int n)    // 【重点掌握】

十一、java.lang.System类【★】

System 类包含一些有用的类字段和方法。它不能被实例化。

成员方法

1)public static void gc()

2)public static void exit(int status)

3)public static long currentTimeMillis() // 【常用】

4)pubiic static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)

十二、java.math.BigInteger类

可以让超过Integer范围内的数据进行运算。可以放很大的整数。

金融、银行、证券行业需要用到这个类。

构造方法:

public BigInteger(String val)

成员方法:

1)public BigInteger add(BigInteger val)

2)public BigInteger subtract(BigInteger val)

3)public BigInteger multiply(BigInteger val)

4)public BigInteger divide(BigInteger val)

5)public BigInteger[] divideAndRemainder(BigInteger val)

十三、java.math.BigDecimal类

由于在运算的时候,float类型和double很容易丢失精度,演示案例。所以,为了能精确的表示、计算浮点数,Java提供了BigDecimal

不可变的、任意精度的有符号十进制数。

构造方法:

public BigDecimal(String val) // 【推荐使用】

成员方法:

1)public BigDecimal add(BigDecimal augend)

2)public BigDecimal subtract(BigDecimal subtrahend)

3)public BigDecimal multiply(BigDecimal multiplicand)

4)public BigDecimal divide(BigDecimal divisor)

5)public static BigDecimal valueOf(double val) // 【推荐使用】

十四、java.util.Date类【★★】

类Date 表示特定的瞬间,精确到毫秒。

注意:Date是util包下的,不能导入sql包下的。

构造方法

  Date()    //【常用】

  Date(long date)

成员方法:

public long getTime()

public void setTime(long time)

十五、java.text.SimpleDateFormat类【★★】

DateFormat 是日期/时间格式化子类的抽象类,

它以与语言无关的方式格式化并解析日期或时间。

DateFormat 是抽象类,不允许实例化,所以开发使用其子类SimpleDateFormat。

年月日时分秒:yyyy年MM月dd日HH:mm:ss

构造方法:

public SimpleDateFormat()

public SimpleDateFormat(String pattern) 【使用最多】

成员方法:

public final String format(Date date)

public Date parse(String source)

十六、java.util.Calendar类【★】

Calendar 类是一个抽象类,它为特定瞬间与一组诸如

YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。

Calendar替代了很多Date中的方法,所以Date中的类很多方法被标注为过时。

成员字段:

  Calendar.YEAR         获取年份

  Calendar.MONTH        月份编号是从0开始编号的。【】

  Calendar.DAY_OF_MONTH    获取月份中的第几天  

  Calendar.DAY_OF_WEEK    周日是第一天,周六是最后一天。

成员方法:

public static Calendar getInstance()

public int get(int field)

public void add(int field,int amount)

public final void set(int year,int month,int date)

十七、练习题

A:模拟用户登录,并提示还有几次(总共3次)。如果登录成功,就可以玩猜数字小游戏了。

B:遍历获取字符串中的每一个字符

C:统计字符串中大写,小写、数字字符及其他字符的个数

D:把字符串的首字母转成大写,其他小写

E:把int数组拼接成一个指定格式的字符串 如:[1, 2, 3]

F:字符串反转

G:统计大串中小串出现的次数

H:判断一个字符串是否是对称字符串

I:把一个字符串中的手机号码获取出来

J:算一下你来到这个世界多少天?

K:键盘录入任意一个年份,判断该年是闰年还是平年

闰年366天 平年365天 多的那一天就是2月的一天,平年二月28天,闰年29天.

时间: 2024-10-14 04:39:28

【Java基础】03_常用API的相关文章

java基础(15):常用API(Object、String、StringBuffer)

1. Java的API及Object类 在以前的学习过程中,我们都在学习对象基本特征.对象的使用以及对象的关系.接下来我们开始使用对象做事情,那么在使用对象做事情之前,我们要学习一些API中提供的常用对象.首先在学习API中的Object类之前,先来学习如何使用API. 1.1 Java 的API Java 的API(API: Application(应用) Programming(程序) Interface(接口)) Java API就是JDK中提供给我们使用的类,这些类将底层的代码实现封装了

hadoop java接口及常用api

# java接口及常用api package com.yting.hadoop.hdfs; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.net.URI; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FSDataInputS

java基础教程-常用类(四)

四.常用类 4.1字符串相关的类(String StringBuffer) 4.1.1String类   4.1.2StringBuffer类(代表可变的) 解释一下可变和不可变 String s1 = “hello”; String s2 = “world”; s1+=s2; 实际上又开辟了一块内存,将hello和world copy进去,s1指向新的内存 而StringBuffer只是在s1后面增加了一块内存,把world加上,不需要copy String与StringBuffer只有这一定

Java笔记八.常用APIの字符串

字符串处理类与接口 一.String类和StringBuffer类 1.字符串类 Java定义String和StringBuffer两个类来封装对字符串的各种操作,他们都被放到java.lang包中. (1)String类:String类对象的内容一旦被初始化就不能再改变,String类用于比较两个字符串.查找和抽取串中的字符或子串;字符串与其他类型之间的相互转换等.字符间的串联,则需使    用StringBuffer或者StringBuilder或"+"方法. (2)StringB

Java笔记九.常用APIの数据类型包装类

数据类型包装类 一.概述 Java对数据既提供基本数据的简单类型,也提供了相应的包装类.使用基本简单数据类型,可以改善系统的性能,也能够满足大多数应用需求.但是,简单类型不具有对象的特性,不能满足某些特殊的需求.比如Java中很多类的很多方法的参数类型都是对象,如Integer类来包装整数,我们可以使用Integer对象很容易地实现整数与字符串的转换. 二.Integer类(java.lang.Object ->java.lang.Number) 整数类包装的原始类型int对象的值,一个整数类型

Java基础总结--常用类以及包的访问权限

-----Object---所有类的根类1.怎么得到的:通过对所有对象不断的向上抽取共性,具备所有对象的共性的东西2.常用的方法* equals(Object obj):比较两个对象的引用是否指向同一个对象,本质就是引用地址是否相同,相同就返回true;作用和"=="一致,其子类继承后,只判断地址没有意义,一般会对该方法进行重写,重写后比较的是对象的特有内容是否相同.也用到了多态,为了代码的扩展性.eg字符串equals比较的就是内容.注意一个细节:重写后存在多态,若要访问子类特有数据

Selenium2(java)selenium常用API 四

WebElement相关方法 1.点击操作 WebElement button = driver.findElement(By.id("login")); button.click(); 由元素对象调用click()方法:   2.清除操作 WebElement username = driver.findElement(By.id("username_input")); username.clear(); 调用之后,会把输入框的内容全部清空:   3.获得元素属性

Java学习随笔---常用API(二)

Object类的toString方法 将一个对象返回为字符串形式,但一般使用的时候会覆盖重写toString方法 Object类是所有类的父亲 // public class Person { private String name; private int age; //============================================================================= public String toString(){//toString

【Java基础】常用知识积累

1.==和equals的区别 null和""的区别 2.15个顶级Java多线程面试题及回答 (1).线程中join的使用 在很多情况下,主线程生成并起动了子线程,如果子线程里要进行大量的耗时的运算,主线程往往将于子线程之前结束,但是如果主线程处理完其他的事务后,需要用到子线程的处理结果,也就是主线程需要等待子线程执行完成之后再结束,这个时候就要用到join()方法了. (2).线程中synchronized 与 Lock 的那点事 (3).线程中死锁问题 (4).在java中wait