Java_Object_Date_System等常用类
01.第一章:Object类_概述
1).什么是"Java类库":指Java语言的官方为我们程序员提供的一些已经写好的,面向某些应用的“类”,这些类会随着JDK一起
发布,我们就业班初始阶段主要学习的就是类库中的这些常用的类。
2).java.lang.Object(类):它是Java中所有类的“父类”。java中任何的类(包括:类库中的类,我们定义的类,数组)
都是它的子类。
3).继承的方法:
1).public String toString():将本对象转换为一个字符串表示。
2).public boolean equals(Object obj):将本对象与参数对象进行“比较”--比较两个对象内部的所有属性值是
否完全相同。
02.第一章:Object类_toString方法
1).public String toString():将本对象转换为一个字符串表示。
默认实现:
class Object{
public String toString(){
return 运行时类的“全名限定的类名”+ @ + 地址;
}
}
2).当我们调用System.out.println(对象)时,println()方法内部会隐式的调用“对象”的toString()方法,
来打印我们对象中的属性值,这就需要我们重新toString()方法。
3).怎样重新:alt + insert --> toString -> (默认选择了所有属性) --> 回车
public class Student {
String name;
int age; public Student(String name, int age) {
this.name = name;
this.age = age;
} @Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
03.第一章:Object类_equals方法
1).public boolean equals(Object obj):将本对象与参数对象进行“比较”--比较两个对象内部的所有属性值是
否完全相同。
2).回顾==运算符,此运算符可以判断两个“值”是否相等,也可以用来判断两个“对象”
Stueent stu1 = new Student();
Student stu2 = new Student();
System.out.println(stu1 == stu2);//OK的--》比较的是“地址”是否相同
3).我们通常需要来判断两个“对象”中的所有的属性值是否完全相同,可以使用equals(另一个对象):
4).怎样重写?alt + insert --> e(equals + hashCode) -> 一路next -->OK
public class Student {
String name;
int age;
public Student(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
//重写equals
@Override
public boolean equals(Object o) { if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Student student = (Student) o;
return age == student.age &&Objects.equals(name, student.name);
} }
04.第一章:Object类_Objects类
1).java.util.Objects(类):它里面包含了一些对“对象”操作的一些“静态方法”,可以通过类名直接调用。
2).public static boolean equals(Object a,Object b):此方法的功能等同于Object的equals(),可以比较两个对象的
属性是否完全相同。但此方法可以避免空指针异常。
3).示例代码:
public class Demo {
public static void main(String[] args) {
Student stu1 = new Student("章子怡",17);
Student stu2 = new Student("章子怡",17); //....
stu1 = null;
System.out.println(stu1.equals(stu2));//运行时抛出:NullPointerException(空指针异常) System.out.println(Objects.equals(stu1, stu2));//可以避免空指针异常
}
}
--------------------------------------------------------------------------------
05.第二章:日期和时间类_Date类
1).java.util.Date(类):它可以表示一个“系统时间”精确到:毫秒。从JDK1.0开始。
2).构造方法:
1).Date():使用当前系统时间构造一个Date对象。
2).Date(long m):使用一个“毫秒值”构造一个Date,这个毫秒值是从1970年1月1日零时开始的一个毫秒值。
3).成员方法:
1).public long getTime():获取当前Date对象的从1970年1月1日零时到此Date对象表示的时间之间的毫秒值。
2).public void setTime(long m):设置当前Data对象的毫秒值。将改变此Date所表示的日期。
4).示例代码:
public static void main(String[] args) {
Date date = new Date();
System.out.println(date.toString());
System.out.println("到现在的毫秒值:" + date.getTime()); Date date2 = new Date(1000);
System.out.println(date2);
date2.setTime(date.getTime());//将date2的毫秒值设置为当前时间的毫秒值
System.out.println(date2); }
06.第二章:日期和时间类_DateFormat类_将Date转换为String
1).java.text.DateFormat(抽象类):它可以对“日期”进行格式化。它是一个抽象类,不能创建对象。我们要使用它的子类:
SimpleDateFormat。
2).SimpleDateFormat类的使用:
1).构造方法:
SimpleDateFormat(String pattern):使用一个“日期的模式字符串”来构造一个对象。
"日期的模式字符串"见帮助文档。
3).将Date转换为String:
1).SimpleDateFormat-->public String format(Date date)
4).示例代码:
public class Demo {
public static void main(String[] args) {
SimpleDateFormat sdf = new SimpleDateFormat("yy年MM月dd日 HH时mm分ss秒");
//1.创建一个Date对象
Date date = new Date();
// System.out.println(date);//我们需要显示:2019-04-09 09:58:55
String str = sdf.format(date);
System.out.println(str);
}
}
07.第二章:日期和时间类_DateFormat类_将String转换为Date
1).成员方法:
public Date parse(String str):可以将一个字符串转换为一个Date对象。
2).示例代码:
public static void main(String[] args) throws ParseException {
String strDate = "1998-04-09";
//转换为Date
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = sdf.parse(strDate);
System.out.println(date);
}
08.第二章:日期和时间类_练习1_转换字符串的日期格式
1).将一个字符串“2019-04-09”转换为“2019年04月09日”形式。
2).思路:“2018-04-09”--》转换为Date--》转换为“yyyy年MM月dd日”
3).代码实现:
public class Demo {
public static void main(String[] args) throws ParseException {
String str1 = "2019-04-09"; //将str1转换为Date
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = sdf.parse(str1); //将Date转换为"yyyy年MM月dd日"的字符串
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日");
String str2 = sdf2.format(date);
System.out.println(str2);//2019年04月09日
}
}
09.第二章:日期和时间类_练习2_计算来到世界多少天
1).示例代码:
public class Demo {
public static void main(String[] args) throws ParseException {
Scanner sc = new Scanner(System.in);
System.out.println("请输入你的生日(yyyy-MM-dd的格式):");
String birthDay = sc.next();//"1998-04-09"
//1.将字符串转换为Date
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//转换
Date date = sdf.parse(birthDay);
//提取毫秒
long m1 = date.getTime(); //2.获取当前系统时间的毫秒值
long m2 = new Date().getTime();
System.out.println("你从出生到现在一共经历了:" + ((m2 - m1) / 1000 / 3600 / 24) + " 天");
}
}
==========================================================
10.第二章:日期和时间类_Calendar(日历)类
1).java.util.Calendar(抽象类):它可以用来做“日期运算”。它是一个抽象类,我们可以使用它的子类:GregorianCalendar。
2).GregorianCalendar的使用:
1).构造方法:
1).GregorianCalendar():使用当前系统时间构造。
2).GregorianCalendar(int year,int month,int dayOfMonth) :使用年、月、日构造。
3).GregorianCalendar(int year,int month,int dayOfMonth,int hourOfDay, int minute) 使用年、月、日、小时、分钟构造。
4).GregorianCalendar(int year,int month,int dayOfMonth,int hourOfDay, int minute, int second) 使用年、月、日、小时、分钟、秒构造。
3).成员方法:
1).public int get(int field):获取某个字段的值。
示例代码:
public class Demo {
public static void main(String[] args) {
GregorianCalendar c1 = new GregorianCalendar(); System.out.println(c1.toString()); int year = c1.get(Calendar.YEAR);
int month = c1.get(Calendar.MONTH);
int day = c1.get(Calendar.DAY_OF_MONTH); int hour = c1.get(Calendar.HOUR);
int minute = c1.get(Calendar.MINUTE);
int second = c1.get(Calendar.SECOND); int week = c1.get(Calendar.DAY_OF_WEEK);//返回值:1--7(对应的:星期日,星期一,星期二,...,星期六 System.out.println(year + " 年 " + (month + 1) + " 月 " + day + " 日 "
+ hour + ":" + minute + ":" + second );
System.out.println(getWeek(week));
} //查表
public static String getWeek(int w) {//1--7
//定义一个"表(数组)"
String[] weekArray = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
//查表
return weekArray[w - 1]; } }
2).public void set(int field,int value):将某个字段设置为:value值。
1).示例代码:
public class Demo {
public static void main(String[] args) {
GregorianCalendar c1 = new GregorianCalendar();
//1.班长出生那天是星期几 c1.set(Calendar.YEAR, 1998);
c1.set(Calendar.MONTH, 5 - 1);
c1.set(Calendar.DAY_OF_MONTH, 28); //获取那天的星期几
week = c1.get(Calendar.DAY_OF_WEEK);
String wStr = getWeek(week);
System.out.println("班长出生那天是:" + wStr);
} //查表
public static String getWeek(int w) {//1--7
//定义一个"表(数组)"
String[] weekArray = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
//查表
return weekArray[w - 1]; } }
3).public void add(int field,int value):将某个字段值增加:value。
1).示例代码:
public class Demo {
public static void main(String[] args) {
//2.300天后是哪年,哪月,哪日,星期几
GregorianCalendar gc = new GregorianCalendar();
//将天,增加300
gc.add(Calendar.DAY_OF_MONTH, 300); System.out.println(gc); } //查表
public static String getWeek(int w) {//1--7
//定义一个"表(数组)"
String[] weekArray = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
//查表
return weekArray[w - 1]; } }
--------------------------------------------------------------------------------
11.第三章:System类_作用及常用方法
1).java.lang.System(类):它内部包含一些可以获取系统信息的静态方法。
2).常用方法:
1).public static void arraycopy(Object src, //要复制的“原数组”
int srcPos, //原数组中的位置
Object dest, //要复制的“新数组”
int destPos, //新数组的起始位置
int length) //复制多少个元素
2).示例代码:
public class Demo {
public static void main(String[] args) {
int[] arr = {1,2,3,4};
int[] arr1 = new int[arr.length]; //开始复制
System.arraycopy(arr, 0, arr1, 0, arr.length);
//验证
System.out.println(Arrays.toString(arr1)); //练习:只操作一个数组
int[] intArray = {10, 0, 20, 30, 40, 50, 60};
//需求:将2,3,4,5,6挪到1的后面,将0挪到最后
System.arraycopy(intArray, 2, intArray, 1, 5);
//处理最后一个60
intArray[intArray.length - 1] = 0;
//验证
System.out.println(Arrays.toString(intArray));
}
}
2).public static long currentTimeMillis():获取当前系统时间的毫秒值。
1).示例代码:
public class Demo {
public static void main(String[] args) {
ArrayList<Integer> strList = new ArrayList<>(); long start = System.currentTimeMillis();//获取系统时间的毫秒
for (int i = 0; i < 5000000; i++) {
strList.add(i);
}
long end = System.currentTimeMillis();//再次获取系统时间的毫秒
System.out.println("共执行:" + (end - start) + " 毫秒");
}
}
3).public static void exit(int status):结束JVM(也同时结束我们的程序)
--------------------------------------------------------------------------------
12.第四章:StringBuilder类_回顾String类的不可变性
1).字符串的拼接:
String s1 = "Hello";
s1 = s1 + "World";//一共产生:3个对象空间-->效率比较低,不建议
System.out.println(s1);//HelloWorld
2).以后,要做字符串连接,就用:StringBuilder类。
13.第四章:StringBuilder类_概述及常用方法
1).java.lang.StringBuilder(类):
2).示例代码:
public static void main(String[] args) {
StringBuilder bld = new StringBuilder();
bld.append("Hello").append("World")
.append(3.1415).append(2); }
3).图示:
14.第四章:String类和StringBuilder类的区别小结
1).String类:表示的是一个“字符串”。它内部是不可变的;
String str = "呵呵";
2)StringBuilder类:是一个“字符串”的“工具类”,它是不能代替String的。它内部是“可变”的。
StringBuilder bld = new StringBuilder();
bld.append("Hello").append("World");//始终操作的是同一个StringBuilder对象
--------------------------------------------------------------------------------
15.第五章:包装类_概念
1).Java的基本数据类型:四类八种,都对应有“类”类型--包装类:
基本类型 包装类
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean
2).包装类的作用:
1).每个包装类对象,都可以封装一个本类型的一个数据;
2).每个包装类对象,都包含了一些对此种类型数据进行操作的一些方法:
例如:将一个String转换为某种基本类型。
16.第五章:包装类_常见应用
包装类的作用:将某种基本类型和String类型相互转换,就需要用到:包装类。
1).将String转换为某种基本类型:
public static void main(String[] args) {
String age = "24";//注意:必须保证每个字符都是一个"数字字符",否则抛异常。
String height = "1.75"; //要转换为int,就找int的包装类:Integer
int intAge = Integer.parseInt(age);
System.out.println(intAge + 5); //要转换为double,就找double的包装类:Double
double doubleHeight = Double.parseDouble(height);
System.out.println("身高:" + (doubleHeight + 0.1)); //任何包装类(除Character)都有parseXxxx(String s) :可以将字符串转换为本类型的基本类型的数据
}
2).将某种基本类型转换为String:
int a = 10;
//第一种方式:
String s = a + "";
//第二种方式:比较高雅一点的
String s1 = Integer.toString(a);
//除Character类外,其它的包装类都有:String toString(此类型数据):可以将本类型的值转换为String。
1).JDK5以前,包装类对象需要new对象:
Integer intObj = Integer.valueOf(10);
//取出基本类型的10
int n = intObj.intValue();
2).JDK5以后:
Integer intObj = 10;//自动装箱-->编译后:Integer intObj = Integer.valueOf(10);
//取出:
intObj++;
int n = intObj;//自动拆箱-->编译后:int n = intObj.intValue();
System.out.println(n);
3).自动装箱:将基本类型直接赋值给包装类型。
自动拆箱:将包装类型直接赋值给基本类型。
好处:可以将“包装类”和“基本类型”同样看待,使用同样方式操作,编码方便。
ArrayList<Integer> list = new ArrayList<>();
list.add(10);//编译后:list.add(Integer.valueOf(10));
-------------------------------------------------------------------------------------
================================================================================
Java_Object_Date_System等常用类的更多相关文章
- Foundation框架下的常用类:NSNumber、NSDate、NSCalendar、NSDateFormatter、NSNull、NSKeyedArchiver
========================== Foundation框架下的常用类 ========================== 一.[NSNumber] [注]像int.float.c ...
- JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式
相关链接: JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式 JS面向对象(2) -- this的使用,对 ...
- Java集合常用类特点整理
集合的结构如下图所示: 集合的两个顶级接口分别为:Collection和Map Collection下有两个比较常用的接口分别是List(列表)和Set(集),其中List可以存储重复元素,元素是有序 ...
- Java集合框架(常用类) JCF
Java集合框架(常用类) JCF 为了实现某一目的或功能而预先设计好一系列封装好的具有继承关系或实现关系类的接口: 集合的由来: 特点:元素类型可以不同,集合长度可变,空间不固定: 管理集合类和接口 ...
- java-API中的常用类,新特性之-泛型,高级For循环,可变参数
API中的常用类 System类System类包含一些有用的类字段和方法.它不能被实例化.属性和方法都是静态的. out,标准输出,默认打印在控制台上.通过和PrintStream打印流中的方法组合构 ...
- Java基础复习笔记系列 五 常用类
Java基础复习笔记系列之 常用类 1.String类介绍. 首先看类所属的包:java.lang.String类. 再看它的构造方法: 2. String s1 = “hello”: String ...
- iOS 杂笔-24(常用类到NSObject的继承列表)
iOS 杂笔-24(常用类到NSObject的继承列表) NSString NSObject->NSString NSArray NSObject->NSArray ↑OC基本类都直接继承 ...
- java的eclipse操作和常用类Object的使用
1.eclipse的快捷键: (1)alt + / 内容辅助. 如:main+alt + / 会出现完整的main方法. syso+alt+ / 会输出. 如编写某个方法时,只需写入方法名 + a ...
- java总结第四次//常用类
六.常用类 主要内容:Object类.String类.Date类.封装类 (一)Object类 1.Object类是所有Java类的根父类 2.如果在类的声明中未使用extends关键字指明其父类,则 ...
随机推荐
- python爬虫第三天
DebugLog实战 有时候我们需要在程序运行时,一边运行一边打印调试日志.此时需要开启DebugLog. 如何开启: 首先将debugleve ...
- react-native 打包成apk 文件
用android studio 打包成apk 文件 js build 执行: react-native bundle --platform android --dev false --entry-fi ...
- 初次接触之R语言
一.什么是R? 最受欢迎的数据分析和可视化平台之一. 其他分析平台:Excel.SPSS.SAS 二.为什么选择R? 免费.支持WINDOWS/MAC OS/Linux. 开源
- 2018申请淘宝客AppKey
1.www.alimama.com 申请账号进入后2.进入我的联盟,按下面的步骤 完成以后等待网站审核. 3.审核完成后 按以下的图,申请进入开放平台或得appkey 4.最后就可以进入开放平台申请看 ...
- 《JavaScript DOM编程艺术》学习笔记(一)
这本书是我听说学习前端基础入门书籍,于是就开始看了,大概是从5月10号开始看的吧,一直看到现在,差不多要看完了,书是挺厚的...286页,不过比起JAVASCRIPT权威指南来说还是差多了,权威指南才 ...
- gradle环境变量设置_配置注意事项
看<Spring源码深度解析>的时候,在windows7系统中按照书里配置gradle环境变量,配置完后输入gradle -v,一直显示:'gradle'不是内部或外部命令,也不是可执行的 ...
- FCC(ES6写法) No repeats please
把一个字符串中的字符重新排列生成新的字符串,返回新生成的字符串里没有连续重复字符的字符串个数.连续重复只以单个字符为准. 例如, aab 应该返回 2 因为它总共有6中排列 (aab, aab, ab ...
- [Swift]LeetCode63. 不同路径 II | Unique Paths II
A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below). The ...
- 注解式controller开发,action找不到controller???
Spring这一列列的 , 配置是真的多,学完我都忘啦 那个配置是干什么的了. 这里我遇到的问题是 我前台 使用action请求controller中的方法时,却找不到 报错404. 首先你路径 ...
- Redis Windows下安装方法
一.安装 首先在网上下载Redis,下载地址:https://github.com/MicrosoftArchive/redis/releases 根据电脑系统的实际情况选择32位还是64位,在这里我 ...