一、包装类
将基本数据类型通过添加属性,方法和构造器等进行封装,产生包装类。
基本类型 | 包装类(引用类型) | 继承关系 |
---|---|---|
int | Integer | —>Number—>Object |
byte | Byte | —>Number—>Object |
short | Short | —>Number—>Object |
long | Long | —>Number—>Object |
char | Character | —>Number—>Object |
float | Float | —>Number—>Object |
double | Double | Object |
boolean | Boolean | Object |
【问题1】已经有基本数据类型,为什么使用包装类?
- java语言是一种面向对象的语言,最擅长操作各种类
- 以前装数据通过数组,int[],String[],double[],Student[]等;以后装数据是通过集合,但是只能封装引用类型的数据
1.1 Integer
Integer的实现接口:Serializable(父类实现)和Comparable(子类独有)。Integer是被final修饰,所以这个类是不能被继承的不能有子类。
【构造器】:没有空参构造器
(1)Int类型作为构造器的参数
(2)String类型作为构造器的参数
当传入的字符串无法转换为Int类型时会报NumberFormatException的异常。
1.2 包装类的特有机制:自动装箱与自动拆箱
【自动装箱】:int—>Integer
Integer i = 12;
【自动拆箱】:Integer—int
Integer i = new Integer(12);
int num = i;
类似基本数据类型之间的强制类型转换
1.3 常用类
- compareTo,返回值的三种情况:1(大于),0(相等),-1(小于)
- equals
- intValue:以int类型返回该Integer的值,即Integer—>int
- parseInt(string s):将字符串参数(数字)作为符号的十进制数进行解析,即String->int
二、Scanner
2.1目的
实现键盘输入,使程序具有一定的交互性
2.2使用步骤
- 导包
import 包路径.类名称
如果需要使用的目标类和当前类属于同一个包下,则可以使用省略导包语句不写;只有java.lang包下的内容不需要导包,其它的都需要使用导包语句进行导包 - 创建
Scanner sc = new Scanner(System.in);
- 使用
使用前应注意使用hasnext()和hasnextLine()来判断是否还有输入;使用next()和nextLine()来获取输入的内容,但是next()获取输入内容时遇到空格会停止获取后面的内容,nextLine()是获取整行内容包括空字符。
三、Random
利用Random类的对象调用其中的nextint等方法来生成随机数字,范围是int范围,所有正负。
四、Arrays(数组工具类)
五、日期类
- 获取当前日期(毫秒值)
System.currentTimeMillis()相当于gettime()
System.out.println(date.getTime());
System.out.println(date.getYear());
System.out.println(date.getMonth());
System.out.println(date.getMinutes());
System.out.println(date.getSeconds());
- 毫秒值转换为日期
java.sql.Date是继承自java.util.Date包,并且二者类型可以相互转换。 - String与Date类型转换
方法一:
【分解】
(1)String -->java.sql.Date
(2)java.sql.Date–>java.util.Date
但是该方法有局限性,字符串的格式只能是严格按照年-月-日的格式输入,换成其它类型会报错。
方法二:
引入新的类:DateFormat,该类是日期时间格式化的抽象类。所以使用SimpleDateFormat()子类来实现,SimpleDateFormat()可以自定义输入日期的格式。
(1)String --> Date
parse()方法
(2)Date -->String
format()方法 - Calender类
Calender是一个抽象类,无法直接创建对象使用,通过静态方法getinstance()返回该方法的子类对象,来操作日历的不同字段。
【常用方法】
- Public int get(int filed):返回给定日历字段的值
- Public void set(int filed,int value):将给定的日历字段设置为给定值
- Public abstract void add(int filed,intamount):根据日历规则,为给定的日历字段添加或者减去指定值
其中,方法中的参数是日历类的字段,可以使用Calender类的静态成员变量获取
【String -->Calender方法】
(1)string–>Date
java.sql.Date date = java.sql.Date.valueof(“2021-7-01”);
(2)Date–>Calender
java.sql.Date -->Calender
六、Math类
【方法如下】
Public static double abs(double num):获取绝对值
Public static double ceil(double num):向上取整
Public static double floor(double num):向下取整
Public static long round(double num):四舍五入
七、String类
String不能被继承,不能有子类。字符串的内容在定义后不可改变。所以字符串是可以共享的,字符串效果上相当于是char[]字符数组,但是底层原理是byte[]字节数组。字节作为数据的最小单位8位一个字节。游戏、电影、文字等等都是通过字节存储对应的字节数据。
7.1 不可变字符串–String
7.1.1字符串内容比较
==是对地址值的比较,当需要对字符串的内容进行比较,可以使用如下俩个方法:
- Public boolean equals(object obj):参数可以是任何对象,只有参数是一个字符串并且内容相同时,才会给true,否则返回false.
注意事项:
(1) 任何对象都能用object进行接收。
(2) Equals()方法具有对称性,也就是a.equals(b)和b.equals(a)效果一样。
(3) 当一个为变量一个为常量,要将常量写在前面,即:常量.equals(变量),否则一旦变量为空时,变量写在前面会报空指针异常的错误。
(4) 当比较对象是基本数据类型,比较的是值;如果比较的是引用数据类型,那么比较的是地址值。 - EqualsIgnoreCase():忽略英文大小写进行比较。因为equals是严格区分大小写的。
字符串对应的方法:
(1) Public int length():获取当前字符串当中含有的字符个数,拿到字符串长度。
(2) Public String concat(String str):将当前字符串和参数字符串拼接返回新的字符串
(3) Public char charAt(int index):获取指定索引位置的单个字符(索引从0开始)。
(4) Public int indexof(String str):查找参数字符串当中首次出现索引位置,如果没有返回值-1值。
7.1.2 字符串的截取方法
- Public String substring(int index),截取从参数位置一直到字符串末尾,返回新的字符串。
- Public String substring(int begin,int end):左闭右开
7.1.3字符串转换方法
- Public char[] toCharArray():将当前字符串数组拆分为字符数组作为返回值
- Public byte[] getBytes():获取当前字符串底层的字节数组。
- Public String replace(CharSequence oldString,CharSequence new String):
7.1.4 字符串分割方法
- Public String[] split(String regex):按照参数规则,将字符串切分为若干部分,返回值是字符串数组。Split的参数其实是一个正则表达式。如果要按照英文.切割必须使用”\.”
7.2 可变字符串–StringBuilder,StringBuffer
StringBuilder:字符串缓冲区,可以提高字符串的效率。
【构造方法】
空参构造方法,会构造一个不带任何字符的字符串生成器,其初始容量为16个字符。有参构造方法会构造一个字符串生成器,并初始化为指定的字符串内容。
【常用方法】
- append():添加任意类型数据的字符串形式,并返回当前对象自身。
- tostring():将当前的stringbuilder对象。
系列
Java(一):Java(初级)初识
Java(二):Java(初级)基础语法
Java(三):Java(初级)流程控制
Java(四):Java(初级)方法
Java(五):Java(初级)数组
Java(六):Java(初级)面向对象
Java(七):Java(中级)异常
Java关键字