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;//直接运算

基本类型与字符串之间的转换

基本类型-->字符串类型

  1. +“ ”
  2. 包装类的静态方法toString;
  3. String类的静态方法valueof();

字符串类型-->基本类型

  1. 使用包装类的静态方法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(二)的更多相关文章

  1. Java学习笔记之---API的应用

    Java学习笔记之---API的应用 (一)Object类 java.lang.Object 类 Object 是类层次结构的根类.每个类都使用 Object 作为超类.所有对象(包括数组)都实现这个 ...

  2. java基础(15):常用API(Object、String、StringBuffer)

    1. Java的API及Object类 在以前的学习过程中,我们都在学习对象基本特征.对象的使用以及对象的关系.接下来我们开始使用对象做事情,那么在使用对象做事情之前,我们要学习一些API中提供的常用 ...

  3. java学习笔记-JavaWeb篇二

    JavaWEB篇二 45 HttpSession概述46 HttpSession的生命周期 47 HttpSession常用方法示例48 HttpSessionURL重写 49 HttpSession ...

  4. (。・・)ノ~个人java学习随笔记录

    基本认识 1.编程思维 根据这几天的java学习,编写程序最重要的就是要有一个清晰的思路.语法上的错误可以跟随着不断的联系与学习来弥补,清晰的思维却只有自己来前期模仿,后面慢慢摸索形成一套属于自己的思 ...

  5. Java时间操作常用api

    - 如何取得年月日.小时分钟秒?- 如何取得从1970年1月1日0时0分0秒到现在的毫秒数?- 如何取得某月的最后一天?- 如何格式化日期?答:问题1:创建java.util.Calendar 实例, ...

  6. JAVA学习第三十二课(经常使用对象API)- 基本数据类型对象包装类

    将基本数据类型(8种:int..)封装成对象的优点就是能够在对象中封装很多其它的功能和方法来操控该数据 常见的操作就是:用于基本数据类型与字符串之间的转换 基本数据类型对象包装类一般用于基本类型和字符 ...

  7. Java(23)常用API二

    作者:季沐测试笔记 原文地址:https://www.cnblogs.com/testero/p/15228415.html 博客主页:https://www.cnblogs.com/testero ...

  8. Selenium2(java)selenium常用API 四

    WebElement相关方法 1.点击操作 WebElement button = driver.findElement(By.id("login")); button.click ...

  9. 【Java学习笔记之十二】Java8增强的工具类:Arrays的用法整理总结

    本文将整理 java.util.Arrays 工具类比较常用的方法:  本文介绍的方法基于JDK 1.7 之上.  1.  asList方法 @SafeVarargs public static &l ...

随机推荐

  1. django用户认证的session的应用

    from django.shortcuts import render,redirect def login(request): if request.method=='GET': return re ...

  2. 注册并加入dn42网络的方法

    简介 https://dn42.net/howto/Getting-started 注册要求: 一个24小时运行的linux/BSD设备 该设备必须支持创建隧道,例如GRE,OpenVpn,IPSec ...

  3. 啥?你想diy一个智能音箱,来吧

    没错,这是智zhang语音助手 本系统基于自美系统二次开发,添加连接EMQ服务器,语音远程控制LED(Nodemcu),当然也可以扩展控制更多的设备,只需要将下位机设备连接到EMQ服务器即可. 由于使 ...

  4. Nacos数据模型

    Nacos 数据模型 Key 由三元组唯一确定, Namespace默认是空串,公共命名空间(public),分组默认是 DEFAULT_GROUP. 以上都是nacos官网上面的图片及描述,综合一下 ...

  5. 《数据结构与算法分析-Java语言描述》 分享下载

    书籍信息 书名:<数据结构与算法分析-Java语言描述> 原作名:Data Structures and Algorithm Analysis in Java 作者: 韦斯 (Mark A ...

  6. Golang import具体使用

    使用gopath的时候,一般引用是从src下一层开始,比如src/github.com/…,引用github.com…,我的工程src/xxx.com/go-qb/…,引用xxx.com/go-qb/ ...

  7. Go语言实现:【剑指offer】求1+2+3+...+n

    该题目来源于牛客网<剑指offer>专题. 求1+2+3+-+n,要求不能使用乘除法.for.while.if.else.switch.case等关键字及条件判断语句(A?B:C). Go ...

  8. ajax 解决中文乱码问题

    最近遇到了ajax 中文乱码的问题.下面总结一下 1. HTTP协议的编码规定 在HTTP协议中,浏览器不能向服务器直接传递某些特殊字符,必须是这些字符进行URL编码后再进行传送.url编码遵循的规则 ...

  9. 【WPF学习】第四十七章 WriteableBitmap类

    WPF允许使用Image元素显示位图.然而,按这种方法显示图片的方法完全是单向的.应用程序使用现成的位图,读取问题,并在窗口中显示位图.就其本身而言,Image元素没有提供创建和编辑位图信息的方法. ...

  10. VFP中OCX控件注册检测及自动注册

    这是原来从网上搜集.整理后编制用于自己的小程序使用的OCX是否注册及未注册控件的自动注册函数. CheckCtrlFileRegist("ctToolBar.ctToolBarCtrl.4& ...