引用类型的一般使用步骤:
1、导包(若idea设置为自动导包,这一步可以省略//只有lang包不用导,其他的类都需要导包
import 包路径 + . +类名称
只有java.lang包下的内容不需要导包,其他的包都需要import语句
2、创建(构造方法)
类名称 对象名 = new 类名称()
3、使用(方法)
对象名 + . +成员方法名()
1、Scanner类:功能: 键盘输入数据到程序中
构造:
Scanner(System.in);//System.in 键盘输入
方法:
nextInt();//方法将下一个标记为int型
2、匿名对象:只能使用一次,下次使用会再创建一个新对象
new 类名称();//如果确定一个对象只需要使用唯一一次,就可以使用匿名对象。
3、Random类://随机数
4、ArrayList集合://数组对象
与数组区别:数组长度不可改变,ArrayList是可以改变的。
依据java包使用步骤:可以看到使用手册第一步是看包名,第二步看构造方法,通俗理解就是创建类,也就是new 后面能跟的形式。第三步是看方法,对应的调用类里面的具体有用的功能。
可以明显看到ArrayList类后面<E>不同于以住的类,E:代表泛型,也就是装在集合中的所有元素都是统一的一一的什么类型。注意:
1、泛型只能是引用类型,不能是基本类型,要使用基本类型只能使用其包装类。如下图:
创建时,从JDK1.7开始,new后ArrayList<>里面的内容可省,但<>不可省。
2、常用的方法:
public boolean add(E e);//向集合中添加元素,参数的类型和泛型一致。
public E remove(int index);//从集合中删除元素,参数是索引编号,返回值就是被删除的元素。
public E get(int index);//从集合中获取元素,参数是索引编号,返回值就是对应位置的元素
public int size();//获取集合长度,返回值就是集合长度 。
5、字符串String类
特点:
1、字符串的内容永不可变。值是常量。
2、字符串是可以共享使用的。
3、字符串效果上相当于char[]型字符数组。但底层原理相当于byte[]数组
三种构造方法:3+1
public String();//创建一个空白字符串,不含任何内容。
public String(char[] array);/根据字符数组的内容,创建字符串。
public String(byte[] array);//根据字符数组的内容,创建。
直接创建:
String str=''hello";//右边直接用双引号,直接写上双引号就是字符串对象,与new(构造方法无关)无关。
字符串常量池:jdk1.7后是放在堆中。
直接写上双引号字符串,就在字符串常量池中。有了字符串常量池就可以直接把地址给常量就可以了,可以复用。
常用方法:
比较:
1、==是进行对象的地址值比较
2、public boolean equals(Object obj);//任何对象都可以用Object接收 //equals是比较字符串内容。比较对象与参数是否一样。
注意:如果比较双方一个常量一个变量,推荐把常量写在前面,如“abc”.equals(str1);
3、public boolean equalsIgnoreCase(String str);//忽略大小写进行内容比较。
与获取相关的方法:
public int length();//获取字符串长度
public String concat(String str);//将当前字符串与参数字符串拼接
public char charAt(int index);//获取指定索引位置的单个字符串。
public int indexof(String);//查找参数字符串在本字符串首次出现的索此位置
截取方法:
public String substring(int index);//从参数位置一直到字符串末尾,返回一个新的字符串。
public String substring(int begin,int end);//截取一个范围 【begin end)左闭右开
转换相关:
public char[] toCharArray();//将当前字符串拆分成字符数组
public byte[] getBytes();//获得当前字符串底层的字节数组
public String replace(CharSequence oldString,CharSequence newString);//将所有出现的老字符串替换成新的字符串,返回新字符串
分割方法:
public char[] split(String regex);//按照参数的规则,将字符串切分成若干个部分,参数是正则表达式,.(英文点)需要转义\\.
6、static 静态关键字
成员变量使用了static,那么这个变量不再属于对象自己,而是属于所在的类,多个对象共享同一份数据。类名称.静态变量
方法使用了static,就成为了静态方法,不再属于对象。不用创建对象也可以使用。直接类名称.方法();
静态代码块:当第一次用到本类时,静态代码块执行唯一一次。用于一次性的对静态成员变量进行赋值。
格式:
public class 类名称{
static {
//静态代码块内容。
}
}
注意:静态方法不能访问非静态成员变量。因为静态要先于非静态创建。
静态方法中不能使用this关键字
7、Arrays:用来实现数组常见的操作。里面提供了大量的静态方法。
方法:
public static String toString(数组);//将参数数组变成字符串,按照默认格式【元素1..2..3..】
public static void sort(数组);//按默认升序排序
8、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);//四舍五入
math.PI;近似圆周率常量。
9、Object类,根类
toString:返回对象的字符串表示。直接打印对象的名字,其实就是调用调用对象的toString方法。看一个类是否重写toString方法,直接打印这个类的属性值。打印出来是地址值,类就是没有重写的。
equals方法:指示其他对象是否与此对象“相等”。基本数据类型:比较的是值。引用数据类型:比较的是两个对象的地址值。重写equals方法,可用alt+insert重写。
Objects,jdk7+后添加一个对象,由静态的实用方法组成,这些方法容忍空指针。
10、Data类对象:日期
毫秒值 计算从时间原点:1970-1-1 00:00:00开始。
Date():获取当前系统的日期和时间。
Date(long date):传递毫秒值,把毫秒值转换为Data日期
getTime():把日期转换成毫秒。就是从时间原点到当前日期经历的毫秒值
DateFormat类:对日期格式化,返回是一个字符串。时间日期格式化子类的抽象类。
String format(Date date):按照指定的模式,把date日期格式化为字符串
Date parse(String source)把符合模式的字符串,解析为Date日期
因为是抽象类需要调用其子类SimpleDateFormat这个子类。
SimpleDateFormat(String pattern):用给定的模式和默认语言环境的日期格式符号构造SimpleDateFormat.
参数:pattern就是传递指定的模式 :y 年 M 月 d 日
H 时 m 分 s 秒 如:“yyyy-MM-dd HH:mm:ss”
注意:模式中的字母不能改,连接模式的符号可以改。 如:“yyyy年MM月dd日 HH时mm分ss秒”
使用format类:把日期格式化为文本,步骤:(同parse方法)
1、创建一个SimpleDateFormat对象,构造方法中传递指定的模式
2、调用SimpleDateFormat对象中的方法format,来进行格式化 。
Calendar类日历,也是一个抽象类
通过一个静态方法:getInstance()方法来使用,返回了Calendar类的子对象,进而使用此类
static Calendar getInstance()使用默认时区和语言环境获得一个日历
常用的成员方法:
public int get (int field);//返回给定日历字段值
public void set(int field,int value);//将给定的日历字段设置为给定值
public abstract void add(int field,int amout);//根据日历的规则,为给定的日历字段增加或减去指定的时间量
public Date getTime();//返回一个表示此Calendar时间值(从历元到现在毫秒偏移量)的Date对象。
成员方法参数:
int field:传递指定日历类的字段,可以使用Calendar类静态成员变量获取 ,如Canlendar.YEAR
11、System类
可以获取与系统相关的信息或系统级操作。
常用静态方法:详见API文档
public static long currentTimeMillis();//返回毫秒为单位的当前时间。用来测试程序的效率。
public static void arraycopy(object src,int srcPos,Object dest,int destPos,int length);//将数组中指家的数据拷贝到另一个数组中。
12、StringBuild类:字符串缓冲区,可以提高字符串的操作效率,可以看成长度可以变化的字符串,底层也是一个数组,但没有被final修饰
初始容量是16,若超出容量,自动进行扩容。
常用方法:
public StringBuilder append(...);//添加任意类型数据的字符串形式,并返回当前对象自身
public String toString();//将当前StringBuilder对象转换为String对象。StringBuild转成String类型。
13、包装类:类中的方法可以操作基本数据类型。
装箱:基本数据类型的数据装到类(别名:箱子)里面。基本数据类型转换成包装类。
拆箱:就是把基本数据类型给取出来,包装类转成基本类型数据。
自动装箱与拆箱:基本类型数据和包装类之间可以自动的相互转换。//jdk1.5+后新特性。
基本类型与字符串类型间是相互转换
基本类型 -----> 字符串(String)
1、基本类型的值 +“”,最简单的方法
2、包装类的静态方法toString(参数),不是Object类的toString()重载 static String toString(int i);//返回一个表示整数的String对象。
3、String类有个valueof()方法 static String valueOf(int i);//返回int 参数的字符串表示形式。
字符串(String) ------> 基本类型
包装类型的静态方法parsexxx("数值类型的字符串“);//如Interger类 static int parseInt(String s);