一.Java中的API
指的就是 JDK 中提供的各种功能的 Java类,这些类将底层的实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可,我们可以通过帮助文档来学习这些API如何使用。
比如:生成随机数、控制台输出、字符串 等 JDK官方提供了一些类库
例如:
1.System.out.println(“mayikt”);
2.Scanner scanner = new Scanner(System.in);
3.new Random(); nextInt
4.String
… 等
二.Object类
Object是类层次结构的根,每个类都可以将Object作为超类,所有类都直接或者间接的继承Object类。
构造方法:public Object()
回想面向对象中,为什么说子类的构造方法默认访问的是父类的无参构造方法?
因为它们的顶级父类(Object类中)只有无参构造方法
1.toString()
toString()目的就是给我们对象重写的,输出对象中所有程序员属性值
2.equals()
- Object中的equals方法是直接判断this和obj本身的值是否相等
- 可以重写父类中的equals方法 比较两个对象成员属性值是否相同
三.String
1).String对象用于保存字符串,也就是一组字符序列;
2).字符串常量对象是用双引号括起来的字符序列 例如:“mayikt”、“yushengjun”、“666”;
3.字符串的字符使用Unicode字符编码,一个字符(不区分字母还是汉字)占两个字节
String类比较常用的构造器;
4.String类比较常用的构造器
String s1 = new String()
String s2 = new String(String original)
String s3 = new String(char[] c)
String s4 = new String(char[] c, int startIndex, int count)
String 实现了Serializable,说明String可以串行化
String 实现了Comparable接口,说明String对象可以比较
String 是final不可以被继承 不可以被修改(内存地址不可以修改,内容是可以修改的) 底层实际上通过char 数组实现
1.String 遍历字符串
1.键盘录入一个字符串,用Scanner实现
2.遍历字符串,首先要能够获取到字符串中的每一个字符
2.1public char charAt(int index): 返回指定索引处的char值,字符串的索引也是从0开始的
3.遍历字符串, 其次要能够获取到字符串的长度
public int length() : 返回字符串的长度
4.数组的长度: 数组名.length
5.字符串的长度: 字符串对象.length()
2.String 替换方法
1.replace() 方法用于将目标字符串中的指定字符(串)替换成新的字符(串)
2.replaceFirst() 方法用于将目标字符串中匹配某正则表达式的第一个子字符串替换成新的字符串
3.replaceAll() 方法用于将目标字符串中匹配某正则表达式的所有子字符串替换成新的字符串
3.String 分割split()用法
特殊情况有 * ^ : | .
split()用法 返回数组类型
String str = “武汉市|孝感市|长沙市|北京市|上海市”;
String[] array = str.split(“|”);
注意事项:
split表达式,其实就是一个正则表达式。* ^ | 等符号在正则表达式中属于一种有特殊含义的字符,如果使用此种字符作为分隔符,必须使用转义符即\加以转义。
4.String indexOf
.public int indexOf(int ch): 返回指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。
2.public int indexOf(int ch, int fromIndex): 返回从 fromIndex 位置开始查找指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。
3.int indexOf(String str): 返回指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。
4.int indexOf(String str, int fromIndex): 返回从 fromIndex 位置开始查找指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。
5.String substring截取
1、 public String substring(int beginIndex)
返回一个新字符串,它是此字符串的一个子字符串。该子字符串始于指定索引处的字符,一直到此字符串末尾。
参数:beginIndex - 开始处的索引(包括),
返回:指定的子字符串,
异常:如果 beginIndex 为负或大于此 String 对象的长度,则抛出IndexOutOfBoundsException
2、public String substring(int beginIndex, int endIndex)
返回一个新字符串,它是此字符串的一个子字符串。该子字符串从指定的 beginIndex 处开始, endIndex:到指定的 endIndex-1处结束。
参数:beginIndex - 开始处的索引(包括)
endindex 结尾处索引(不包括)。
返回:指定的子字符串。
抛出:如果 beginIndex 为负,或length大于字符串长度,则抛出IndexOutOfBoundsException
6.反转字符串
需求:定义一个方法,实现字符串反转。键盘录入一个字符串,调用该方法后,再控制台输出结果 例如:键盘录入mayikt,输出结果tkiyam
reversal()-反转方法
7.字符串的 特性
1.String是一个final类,代表不可变的字符序列
2.字符串是不可变的,一个字符串对象一旦被分配,其内容是不可变的
以下语句创建了几个对象画出内存布局图
String str=“mayikt”;
str=“meite”;
创建了2个字符串对象
8.==与equals方法之间的关系
1.==比较两个对象的内存地址
2.String 重写了 Object 类中 equals方法 先判断对象的内存地址是否相同,如果相同则返回true,如果为false则判断对象的内容是否相同,如果相同就返回true。
四. Math
1.java.lang.Math(类): Math包含执行基本数字运算的方法。
2.它不能创建对象,它的构造方法被“私有”了。因为他内部都是“静态方法”,通过“类名”直接调用即可。
五.System
六.Arrays类常用方法
七.工具类设计思想
工具类设计思想:
1.构造方法用private修饰 外部无法new
2.成员方法使用public static修饰 通过类名称访问.方法名称
1.基本数据类型包装类
java 中基本数据类型: 四种整数类型(byte、short、int、long)、 两种浮点数类型(float、double)一种字符类型(char)、布尔类型(boolean)
2.基本数据类型对应包装类
int和Stirng的相互转换
基本类型包装类最常见的操作就是:用于基本类型和字符串之间的转换。
int转换为String
public static valueOf(int i):返回int参数的字符串串表示形式。该方法是String类中的方法。
Sting转换为int
pbulic static parseInt(String s):将字符串解析为int类型,该方法是Integer类中的方法。
3.Integer包装类
int和Stirng的相互转换
基本类型包装类最常见的操作就是:用于基本类型和字符串之间的转换。
int转换为String
public static valueOf(int i):返回int参数的字符串串表示形式。该方法是String类中的方法。
Sting转换为int
pbulic static parseInt(String s):将字符串解析为int类型,该方法是Integer类中的方法。
Java中基本数据类型和包装类型的区别
1、包装类是对象,拥有方法和字段,对象的调用都是通过引用对象的地址;基本类型不是
2、声明方式不同:
基本数据类型不需要new关键字;
包装类型需要new在堆内存中进行new来分配内存空间
3、存储位置不同:
基本数据类型直接将值保存在值栈中;
包装类型是把对象放在堆中,然后通过对象的引用来调用他们
4、初始值不同:
int的初始值为 0 、 boolean的初始值为false
包装类型的初始值为null
5、包装类型是引用的传递;基本类型是值的传递
java装箱和拆箱
装箱:就是自动将基本数据类型转换为包装器类型;
拆箱:就是自动将包装器类型转换为基本数据类型 ;
Integer i =5;//装箱
int j=i;//拆箱
在装箱的时候自动调用的是Integer的valueOf(int)方法。
而在拆箱的时候自动调用的是Integer的intValue方法。
Integer z=5;
z+=1;
请问该它装箱和拆箱流程是?
z+1==自动拆箱 z=z+1;自动装箱
八.Date类概述和构造方法
Date代表了一个特定的时间,精确到毫秒
构造方法:
常用方法:
1.SimpleDateFormat
SimpleDateFormat是用于以区域设置敏感的方式格式化和解析日期。 它允许格式化(日期文本),解析(文本日期)。
1.对时间日期进行格式化处理
2.把Date对象转化为年月日时分秒格式字符串
3.把字符串转化为Date对象
常用的模式字母及对应关系如下:yyyy年MM月dd日HH小时mm分ss秒
y 年
M 月
d 日
h 时 在上午或下午 (1~12)
H 时 在一天中 (0~23)
m 分
s 秒
2021年10月22日04:38:29
2.SimpleDateFormat格式化和解析日期
1.格式化日期(Date转化String)
String format(Date date) 将 Date 格式化日期/时间字符串
2.解析(从String到Date)
Date parse(String source) 将给定的字符串解析成日期/时间
九.日期工具类
1.需求:定义一个日期工具类(DateUtils)包含两个方法:
把日期转换为指定格式的字符串;
把字符串解析为指定格式的日期。
2.工具类设计 构造方法私有化、方法提供public static 修饰 静态方法访问
十Calendar日历类
Calendar为某一时刻和一组日历字段之间的转换提供了一些方法,并为操作日历字段提供了一些方法。
Calendar提供了一个类方法getInstance用于获取Calendar对象。
其日历字段已使用当前日期和时间初始化:
1.获取年月日
c.get(Calendar.YEAR); // 获取年
c.get(Calendar.MONTH)+1;// 获取月
c.get(Calendar.DATE);// 获取日
2.修改年月日
c.add(Calendar.Year,-3);//年份减三年
3.设置年月日
2021-7-10
c.set(2021,6,10);