Java学习(自用,不定期更新)(四)

  • Post author:
  • Post category:java




API

API:application programming interface。应用程序接口。我们这里通常把api简称为帮助文档。



概述

在java设计时,已经提供了很多解决问题的封装类。这些解决问题的封装类,我们统称为:API,在开发中,只要去相应的包(文件夹)中去找对应的封装类就可以解决问题。



Object

O别处他是所有类型的父类,共有11个方法,子类继承了Object都可以使用这些方法。



Object中的toString

打印对象时,默认调用的方法就是toString方法,在Object中,默认打印的就是类型+@ +地址。

默认打印的内容是无法满足日常使用中的需求的,所以需要对toString进行重写。

如果一个对象打印不是地址内容,100%是重写了toString方法。

重写toString的意义就是让打印的对象直接把属性值显示值



Object中的equalse

在Object中equals默认比较的是两个对象的地址是否相同。而当父类的equals方法无法满足自雷的需要时【如果两个相同类型的对象,如果属性值相同,内容就相同】,就需要子类重写方法。

equals方法的作用,比较两个对象是否相等。Object中默认的逻辑是比较地址是否相同,我们希望相同类型的对象,如果属性值相同,我们认为相等,此时就需要重写equals方法



Scanner

Scanner类可以获取用户键盘录入的数据,提高程序的灵活性。



使用步骤



导包

使用import关键字导包,在类的所有代码之前导包,位置放到class定义的上面和package的下面。引入要使用的类型,java.lang包下的所有类无需导入。

import.包名.类名;
import.util.Scanner;



创建对象

使用该类的构造方法,创建一个该类的对象。

数据类型  变量名  =  new  数据类型(参数列表);
Scanner sc = new Scanner(System.in);



调用方法

调用该类的成员方法,完成指定功能

变量名.方法名();
int i = sc.nextInt();//接受录入的整数

例:

import java.util.Scanner;
public class Demo_Scanner{
	public static void main(String [] args)
	{
		//创建对象
		Scanner sc = new Scanner(System.in);
		//控制台输出
		System.out.printn("录入一个整数");
		//调用方法
		int i = sc.nextInt();
		输出数据
		System.out.println("i:"+i);
	}
}



Random类

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



使用步骤



导包

使用import关键字导包,在类的所有代码之前导包,位置放到class定义的上面和package的下面。引入要使用的类型,java.lang包下的所有类无需导入。

import.包名.类名;
import.util.Random;



创建对象

使用该类的构造方法,创建一个该类的对象。

数据类型  变量名  =  new  数据类型(参数列表);
Scanner rand = new Random();



调用方法

调用该类的成员方法,完成指定功能

变量名.方法名();
int i = rand.nextInt();//接受录入的整数

例:

import java.util.Random;
public class Demo_Random{
	public static void main(String [] args)
	{
		//创建对象
		Random rand = new Random();
		//控制台输出
		System.out.printn("随机生成三个10以内随机数");
		//循环三次
		for(int i = 0; i < 3;i++){
			//调用方法
			//循环每次调用nextInt(n),都会生成一个随机数
			int i = rand.nextInt(10);
			//输出数据
			System.out.println("i:"+i);
	}
		
	}
}



案例

产生一个1-100之间的随机数,请猜出这个数据是多少。

//生成Random和Scanner对象
Random rand = new Random();
Scanner sc = new Scanner(System.in);
//生成随机数,nextInt(100)生成0-99,所以需要+1
int n = rand.nextInt(100)+1;
//循环判断
while(true){
	//键盘录入需要猜的数据
	int s = sc.nextInt();
	//比较数据
	if(s > n) {
	System.out.println("猜大了");
	}else if (s < n) {
	System.out.println("猜小了");
	}else {
	System.out.println("猜对了");
	//正确则退出循环
	break;
	}
}



String类

代表字符串。Java程序中所有的字符串文字(例如”abc” )都可以被看作是实现此类的实例。

String描述的字符串,所有在Java程序中使用双引号引用起来的数据都是一个对象。



特点

  • 字符串常量属于对象,但不存储在堆空间,存储于方法区中的字符串常量池 (保存的就是所有的字符串数据。只要我们书写了双引号,不管双引号中间是什么数据,这些数据都会立刻在字符串常量池中保存。并且一直存在,不会被改变。)
  • 字符串不变,字符串的值在创建之后就不能被更改。
  • 可共享:因为对象不可变,所以可以被共享



Spring常用方法

方法 作用
public boolean equals (Object anObject) 将此字符串与指定对象进行比较
public boolean equalsIgnoreCase (String anotherString) 将此字符串与指定对象进行比较,忽略大小写
public int length () 返回此字符串的长度
public String concat (String str) 将指定的字符串连接到该字符串的末尾
public char charAt (int index) 返回指定索引处的 char值
public int indexOf (String str) 返回指定子字符串第一次出现在该字符串内的索引
public String substring (int beginIndex) 返回一个子字符串,从beginIndex开始截取字符串到字符串结尾
public String substring (int beginIndex, int endIndex) 返回一个子字符串,从beginIndex到endIndex截取字符串。含beginIndex,不含endIndex
public char[] toCharArray () 将此字符串转换为新的字符数组
public byte[] getBytes () 使用平台的默认字符集将该 String编码转换为新的字节数组
public String replace (CharSequence target, CharSequence replacement) 将与target匹配的字符串使用replacement字符串替换
public String[] split(String regex) 将此字符串按照给定的regex(规则)拆分为字符串数组



StringBuider

可变字符序列,通常用来解决String字符串拼接时,重复创建对象的浪费情况,它是一个类似于String的字符串缓冲区。

与String的区别在于StringBuilder的内容是可变的。



StringBuilder的构造方法于常用方法

查看StringBuilder的API文档,可以发现,有两个常用的构造方法:

方法 作用
public StringBuilder() 构造一个空的StringBuilder容器
public StringBuilder(String str) 构造一个StringBuilder容器,并将字符串添加进去

三个常用的方法:

方法 作用
public StringBuilder append(…) 添加任意类型数据的字符串形式,并返回当前对象自身
public StringBuilder reverse() 返回反转的字符序列
public String toString() 将当前StringBuilder对象转换为String对象

StringBuilder已经覆盖重写了Object当中的toString方法。



StringBuilder与String的相互转换

  • StringBuilder转换为String

    public String toString():通过 toString() 就可以实现把 StringBuilder 转换为 String
  • String转换为StringBuilder

    public StringBuilder(String s):通过构造方法就可以实现把 String 转换为 StringBuilder



Arraylist类

包含用来操作数组的各种方法,比如排序和搜索等,其所有方法均为静态方法。



操作数组常用方法

方法 作用
public static String toString(int[] a) 返回指定数组内容的字符串表示形式
public static void sort(int[] a) 对指定的 int 型数组按数字升序进行排序



Math类

包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。类似这样的工具类,其所有方法均为静态方法,并且不会创建对象。



基本方法

方法 作用
public static double abs(double a) 返回 double 值的绝对值
public static double ceil(double a) 返回大于等于参数的最小的整数
public static double floor(double a) 返回小于等于参数最大的整数
public static long round(double a) 返回最接近参数的 long(相当于四舍五入方法)
public static int max(int a,int b) 返回两个int值中的较大值
public static int min(int a,int b) 返回两个int值中的较小值
public static int pow(double a,double b) 返回a的b次幂值
public static double random() 返回值为double的正值,【0.0,1.0】



Date

表示日期的瞬间,可以精确到毫秒

构造方法 作用
Date() 无参构造方法创建对象,表示当前时间的精确毫秒
Date(long date) 有参构造方法创建对象,可以指定毫秒值进行创建



日期格式化类DateForamt【SimpleDateFormat】

DateFormat是抽象类,里面定义了方法能够将日期对象和字符串之间进行转换:

  1. 格式化:Date对象转换为字符串
String format(Date date) 将一个 Date 格式化为日期/时间字符串。 
  1. 解析:字符串的日期转换为Date对象
Date parse(String source) 从给定字符串的开始解析文本,以生成一个日期。

日期格式化类DateFormat是抽象类,要借助其子类 SimpleDateFormat类进行使用

日期格式化或者解析,需要借助SimpleDateFormat。构建对象时需要制定日期模板。



Calender

日历类,封装所有时间日期信息,是Date类的替代品。

Calendar本身是一个抽象类,如果要使用,需要使用其子类



方法调用


public int get(int field)

:返回给定日历字段的值

Calendar cal = Calendar.getInstance();
int year = cal.get(Calendar.YEAR);
System.out.println("year = " + year);


public void set(int field, int value)

:将给定的日历字段设置为给定值

Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, 2020); 


public abstract void add(int field, int amount)

:根据日历的规则,为给定的日历字段添加或减去指定的时间量

Calendar cal = Calendar.getInstance();
cal.add(Calendar.DAY_OF_MONTH, 30000);


public Date getTime()

:返回一个表示此Calendar时间值(从历元到现在的毫秒偏移量)的Date对象

Date d = cal.getTime();//日历类方法获取
long time = d.getTime();//日期类方法获取



System

系统类

public static long currentTimeMillis() :获取系统时间的毫秒值



版权声明:本文为mengxinQWQ原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。