Java学习随笔---常用API
Posted alitac
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java学习随笔---常用API相关的知识,希望对你有一定的参考价值。
Object类的toString方法
将一个对象返回为字符串形式,但一般使用的时候会覆盖重写toString方法
Object类是所有类的父亲
//
public class Person
private String name;
private int age;
//=============================================================================
public String toString()//toString方法被覆盖重写,返回了一个固定格式的内容。
return "我的名字是"+this.name+"今年我"+this.age+"岁了";
//=============================================================================
public Person()
public Person(String name, int age)
this.name = name;
this.age = age;
public String getName()
return name;
public void setName(String name)
this.name = name;
public int getAge()
return age;
public void setAge(int age)
this.age = age;
public class personMain
public static void main(String[] args)
Person person = new Person();
person.setAge(18);
person.setName("迪丽热巴");
System.out.println(person.toString());
Object类中的equals方法
equals方法默认比较的是对象的地址值,经常需要重写equals方法
重写equals方法
//person类
public class Person
private String name;
private int age;
public boolean equals(Object obj)
//传递参数如果是this本身,为了提高效率,直接返回true
if (obj == this)
return true;
//传递参数如果是null,为了提高效率,直接返回false;
if (obj == null)
return false;
//==========================================================//主要部分
//向下转型,因为这是一个隐含的多态,多态无法访问子类特有内容
//Object obj = p2 = new Person("迪丽热巴", 19);
Person p = (Person) obj;
//this表示传过去的第一个,p表示传过去的第二个
boolean b = this.name.equals(p.name)&&this.age==p.age;
return b;
//============================================================
//也可以通过自动实现
/* @Override
public boolean equals(Object o)
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Person person = (Person) o;
return age == person.age &&
Objects.equals(name, person.name);
@Override
public int hashCode()
return Objects.hash(name, age);
*/
public Person()
public Person(String name, int age)
this.name = name;
this.age = age;
public String getName()
return name;
public void setName(String name)
this.name = name;
public int getAge()
return age;
public void setAge(int age)
this.age = age;
//主类
public class equalsMain
public static void main(String[] args)
Person person1 = new Person();
Person person2 = new Person();
person1.setName("江疏影");
person1.setAge(18);
person2.setName("江疏影");
person2.setAge(18);
System.out.println(person1.equals(person2));
object类中的equals和objects类中的equals的区别,objects类中的equals可以防止空指针异常。
Date类
打印当前系统时间:
public class Data
public static void main(String[] args)
Date date = new Date();
System.out.println(date);
格式化系统的时间格式
y--->年
M--->月
d--->日
H--->时
m--->分
s--->秒
public class dateformate
public static void main(String[] args)
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");//写出固定格式的构造方法
Date date = new Date();//创建一个时间
System.out.println(date);
String str = sdf.format(date);//调用format
System.out.println(str);
按照固定格式将文本解析为日期
public class dateformat2
public static void main(String[] args) throws ParseException //throws是异常抛出,
SimpleDateFormat stf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");//创建固定格式的构造方法
Date date = stf.parse("2019年07月29日 17时29分03秒");//定义Date类来接收
System.out.println(date);
得到毫秒值
public class gettime
public static void main(String[] args)
Date date = new Date();
long time = date.getTime();
System.out.println(time);
案例--计算出生天数
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class birthday
public static void main(String[] args) throws ParseException //异常抛出
System.out.println("请输入您的生日:格式:yyyy-MM-dd");
Scanner sc = new Scanner(System.in);
String birthday = sc.next();//输入日期
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");//写固定格式的构造方法
Date date = sdf.parse(birthday);//将日期转换成Date类型的日期
long beforeTime = date.getTime();//将出生时间转换为毫秒值
long nowTime = new Date().getTime();//将当前系统时间转换为毫秒值
long time = nowTime - beforeTime;
System.out.println(time/1000/60/60/24);//将毫秒值转换为天
Calendar类
public class calendarl
public static void main(String[] args)
Calendar c = Calendar.getInstance();//获取日历信息
System.out.println(c);//将会输出一堆与当前日历有关的信息
Calendar中的get方法
可以返回给定日历字段的值
public class calendarget
public static void main(String[] args)
Calendar c = Calendar.getInstance();//获取calendar类的对象
int year = c.get(Calendar.YEAR);//得到年
System.out.println(year);
int month = c.get(Calendar.MONTH);//得到月
System.out.println(month);
int date = c.get(Calendar.DATE);//得到日
System.out.println(date);
Calendar中的set方法
设置年月日
public class calendset
public static void main(String[] args)
Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR,2000);//将年设置为2000年
c.set(Calendar.MONTH,11);//将月设置为11月
c.set(2000,03,03);//同时设置年月日
System.out.println(c.get(Calendar.YEAR)+" "+c.get(Calendar.MONTH)+" "+c.get(Calendar.DATE));
calendar中的add方法
把指定字段增加或减少指定的值,正数为增加,负数为减少
public class calendset
public static void main(String[] args)
Calendar c = Calendar.getInstance();
c.set(2000,03,03);//同时设置年月日
c.add(Calendar.YEAR,2);//把年增加两年
c.add(Calendar.MONTH,-2);//把月减少两个月
System.out.println(c.get(Calendar.YEAR)+" "+c.get(Calendar.MONTH)+" "+c.get(Calendar.DATE));
calendar中的getTime方法
将日历转换为日期,即准换为Date格式
public class calendset
public static void main(String[] args)
Calendar c = Calendar.getInstance();
c.set(2000,03,03);//同时设置年月日
Date time = c.getTime();//将日历格式转换为日期
System.out.println(time);
System类的常用方法
System类中的currentTimeMillis方法
返回以毫秒为单位的当前时间,可以计算程序的运行时间
public class currenttime
public static void main(String[] args)
long start = System.currentTimeMillis();
for (int i = 0; i < 9999; i++)
System.out.println(i);
long end = System.currentTimeMillis();
System.out.println(end-start);
System类中的arraycopy方法
从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。
static void arraycopy(源数组, 源数组起始位置, 目标数组, 目标数组, 要复制的数组元素的数量。
)
public class arraycopyl
public static void main(String[] args)
int[] array1 = 1,2,3,4,5;
int[] array2 = 6,7,8,9,10;
System.arraycopy(array1,0,array2,0,3);
System.out.println(Arrays.toString(array1));
System.out.println(Arrays.toString(array2));
StringBuilder中常用的方法
StringBuilder中的append方法
像此序列中追加一个数据,数据可以是任何类型
StringBuilder是一个字符缓冲区,可以提高效率
public class StringBuilderappend
public static void main(String[] args)
StringBuilder s = new StringBuilder();
s.append(1);
s.append('a');
s.append("fadsf");
s.append(1).append(2).append('i');//也可以这样连续添加数据
System.out.println(s);
StringBuilder和String的互换
当我们需要对一个字符串进行频繁的删除添加操作的时候,使用stringBuiler的效率比较高。因为String是一个常量,使用一次就多一个字符串类型。
public class StringandStringBuilder
public static void main(String[] args)
String str = "hello";
StringBuilder s = new StringBuilder(str);//将String类型转换为StringBuilder类型。
String str2 = s.toString();//通过toString把StringBuilder类型转换为String类型。
System.out.println(str2);
装箱-->把基本数据类型包装到包装类中
可以使用构造方法和静态方法
public class box
public static void main(String[] args)
Integer a = new Integer(3);//使用构造方法将3装进包装类中,但方法已过时
Integer b = Integer.valueOf(4);//使用方法将4放入包装类中
拆箱-->在包装类中取出基本类型
public class box
public static void main(String[] args)
Integer b = Integer.valueOf(4);//使用方法将4放入包装类中
int a = b.valueOf(b);//将包装类转换成整形
自动装箱与自动拆箱
自动装箱
Integer a = 1;
自动拆箱
a = a+2;//直接运算
基本类型与字符串之间的转换
基本类型-->字符串类型
- +“ ”
- 包装类的静态方法toString;
- String类的静态方法valueof();
字符串类型-->基本类型
- 使用包装类的静态方法parseXXX;
public class box
public static void main(String[] args)
int a = 1;
String str = a+" ";//使用加空字符的方法将基本类型转为字符串类型。
String str2 = Integer.toString(a);//包装类的静态方法toString;
String str3 = String.valueOf(a);//String类的静态方法valueof();
int i = Integer.parseInt(str);//使用包装类的静态方法parseXXX
以上是关于Java学习随笔---常用API的主要内容,如果未能解决你的问题,请参考以下文章