文章目录
hello!好像有两个周没学习java了叭,最近被搭建环境搞得头大,再一次证明了我不适合搞研究,连基础环境都搭不起来,哎,难受。今天有空,把视频里的常用API1剩下的看完了,在这里做个笔记,话不多说,来了!
Scanner类
java.util.Random
,用于键盘输入,固定用法:
Scanner scan = new Scanner(System.in);
常用函数:
- 获取下一个数据值
基本数据类型 next基本数据类型();
返回键盘输入的下一个基本类型数据的数据值(基本数据类型:byte/short/int/long/float/double
)
String next();
返回键盘输入的下一个字符串 - 判断是否有下一个数据值
boolean hasNext基本数据类型();
判断是否有下一个(基本数据类型:byte/short/int/long/float/double
)
boolean next();
判断是否有下一个字符串
Random类
- 构造函数
Random r = new Random();
创建随机数生成器
Random r = new Random(long seed);
使用单个种子创建随机数生成器 - 常用函数
int nextInt();
获取一个随机数,范围是int
的所有范围,包括正负两种
int nextInt(int bound);
获取一个随机数,范围是[0,bound)
double/float nextDouble/nextFloat();
获取0.0-1.0之间服从均匀分布的一个随机数
ArrayList类
ArrayList<E>
中的只能是引用类型,不能是基本类型
基本类型的引用类型对应关系表如下:
基本类型 | 包装类(引用类型java.lang ) |
---|---|
int | Integer |
double | Double |
float | Float |
byte | Byte |
short | Short |
long | Long |
char | Character |
boolean | Boolean |
java1.5+
开始,自动进行装箱/拆箱
- 自动装箱:基本类型->包装类
- 自动拆箱:包装类->基本类型
String类
程序中所有的字符串字面值都是String类的实例【只要有双引号就是String类对象】
String内容永不可变,变的是对象存储的地址;可共享使用,底层是byte[]
下面是我的理解,可能有点不太准确
-
构造方法
public String();
空白字符串,不包含任何内容,长度为0
public String(char[] cbuf);
根据字符数组创建字符串
public String(char[] cbuf, int offset, int len)
根据字符数组和开始位置和长度创建字符串
public String(byte[] bbuf);
根据字节数组创建字符串
public String(byte[] bbuf, int offset, int len);
根据字节数组和开始位置和长度创建字符串 -
常用方法
==
判断两字符串是否地址相同
注意:对于基本数据类型,==
比较的是数据;对于引用类型,==
比较的是地址
public boolean equals(Object obj);
比较- 只有参数是字符串且内容相同,才返回
true
(区分大小写); equals()
函数具有对称性,即a.equals(b)==b.equals(a)
- 常量与变量的比较,推荐用法:
常量.equals(变量)
,防止出现null.equals("a")
抛异常
public boolean equalsIgnoreCase(String str);
忽略大小写比较
public int length();
返回字符串中字符的个数
public String concat(String str);
将当前字符串与参数字符串拼接返回新字符串,当前字符串不变
public char CharAt(int index);
返回字符串中指定索引的字符,索引从0开始
public int indexOf(String str);
返回字符串str
在当前字符串中第一次出现的位置,没有则返回-1
public int lastIndexOf(String str);
返回指定字符串str
在当前字符串中最后一次出现的位置,没有返回-1
public subString(int index);
截取当前字符串,从index
开始到最后;
public subString(int begin, int end);
截取当前字符串,[begin, end)
public char[] toCharArray();
返回字符串的字符数组
public byte[] getBytes();
返回字符串的字节数组
public String replace(CharSequence oldString,CharSequence newString);
将所有出现的老字符串替换成新字符串没返回替换后的字符串,CharSequence
是可接收的字符串类型
public String[] split(String regex);
根据参数分隔符分割字符串,注意以.
字符切分字符串,应将regex
表示为\\.
public boolean contains(String s);
判断当前字符串是否包含str``
public boolean startWith(String str);判断当前字符串是否以
str开头
public boolean endsWith(String str);判断当前字符串是否以
str```结尾 - 只有参数是字符串且内容相同,才返回
char
类型进行数学运算时会提升为int
static修饰符
静态成员属于类,非对象所有
static
可修饰成员变量和成员方法;静态成员方法只能访问静态成员变量;静态方法中不能用this
;静态优于非静态,所以静态代码块先于构造方法执行;
静态代码块:static{//代码块}
,第一次用到此类时,静态代码块执行唯一的一次,常用于一次性地对静态成员变量赋值
Arrays
用于处理数组,提供大量静态函数
public static String toString(数组);
将参数数组变为字符串,格式:{元素1,元素2,...}
public static void sort(数组);
按升序对参数数组进行排序,注意返回值是void
- 参数数组是数值,按升序
- 参数数组是字符串,按字母顺序升序排序
- 参数数组是自定义类型,必须实现
Comparable
和Comparator
接口
Math类
public static 基本数据类型 abs(基本数据类型 num);
返回num
绝对值,基本数据类型为int/long/float/double
public static double ceil(double num);
向上取整(大数)
public static double floor(double num);
向下取整(小数)
public static long round(double d);
四舍五入,取整数
double
类型可以自增
Object类
equals()
默认情况下比较地址
可以根据自定义类的需求进行重写,也可以利用IDEA
的快捷键ctrl+insert
自动生成equals()
函数
重写的函数一般考虑以下几点:
- 判断传递参数是否为本身
- 判断传递参数是否为
null
- 判断传递参数是否非同类型
Objects
java.util.Objects
public static boolean equals(Object a, Object b)
比较两对象是否相同,能够防止空指针异常
Date类
java.util.Date
特定瞬间,精确到毫秒
时间原点(0毫秒):
1970-01-01 00:00:00.000(英国格林威治时间)
1970-01-01 08:00:00.000(中国时间-东八区)
System.currentTimeMillis()
系统当前时间对应的毫秒数
- 构造方法:
public Date();
当前系统时间
public Date(long m);
将毫秒值转换为日期时间 - 函数
long getTime()
返回当前系统时间对应的毫秒数
DateFormat类
java.util.DateFormat extends Format
日期时间格式化子类的抽象类
- 格式化(日期时间->文本)
public String format(Date date);
将日期时间转换为给定模式的字符串 - 解析(文本->日期时间)
public Date parse(String source);
将字符串按指定模式转换为日期时间;parse
函数声明解析异常parseException
模式(区分大小写):
符号 | 含义 |
---|---|
y | 年 |
M | 月 |
d | 日 |
H | 时 |
m | 分 |
s | 秒 |
SimpleDateFormat类
因为DateFormat
类是抽象类,所以实际调用时使用其子类java.util.SimpleDateFormat