最新要闻
- 每日热文:八方点赞!姆巴佩、莫德里奇等多人点赞C罗社媒动态
- 世界快报:零下50℃室外玩电脑 显卡都冻傻了:核心温度167万摄氏度
- 【速看料】能用沐浴露洗头吗?可以是可以 但最好别
- 天天动态:国内首个类ChatGPT模型:复旦大学团队称MOSS将于三月底开源
- 观速讯丨国产八核CPU!诺基亚发布G22:小白都能自己修
- 方敏仪
- 享年86岁 电影美术大师杨占家去世 手绘媲美CAD制图
- 世界快资讯:《流浪地球》地下城成真?我国地下基础设施监测技术实现新突破
- 【环球时快讯】易烊千玺 我们还会在一起吗?_对于易烊千玺 我们还会在一起吗?简单介绍
- 世界观察:卡罗拉车主试驾完比亚迪唐DM-i之后 丰田信仰瞬间崩塌
- 80后夫妻攒300万“提前退休” 不生孩子这些钱够了?网友吵翻
- 一加Buds Pro 2新配色“云峰白”亮相:打磨难度拉满
- 天天通讯!推特进一步削减开支:马斯克挥刀裁掉50名员工
- 快播:上映10天:《中国乒乓》票房终于破9000万大关
- 不是“空中楼阁”:努比亚Pad 3D搭载全球最大Leia 3D内容生态
- 【报资讯】男子车停路边去吃烧烤 回来瞬间崩溃:路边已装上护栏
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
今日热闻!Java面向对象进阶第四天(常用API)
常用API
API概述
API全称是应用程序编程接口,是Java写好的程序,程序员可以直接调用。
Object类:toString方法
Object是祖宗类,它里面的方法,一切子类对象都可以使用。
(相关资料图)
public String toString()
默认是返回当前对象的地址信息。
Student s = new Student("张三","女", 23);
System.out.println(s.toString());
返回对象地址
System.out.println(s);
直接输出对象名,默认是调用toString方法的
toString存在的意义:
默认返回对象的地址其实是没有意义的
真实存在的意义是被子类重写,以便返回子类对象的内容。
Object类:equals方法
public boolean equals(Object o )
默认是比较2个对象的地址是否一样,返回true 或者false
equals存在的意义
默认比较对象的地址其实是没有意义的,因为== 号可以更简单的完成
存在的的真实意义是被子类重写,以便比较对象的内容。
Object类:clone方法
protected Object clone()
当某个对象调用这个方法时,这个方法会复制一个一模一样的新对象返回。
分类:
浅克隆:拷贝出的新对象,与原对象中的数据一模一样(引用类型拷贝的只是地址)
深克隆:
对象中基本类型的数据直接拷贝。
对象中的字符串数据拷贝的还是地址。
对象中还包含的其他对象,不会拷贝地址,会创建新对象。
Objects
Objects是一个工具类,提供了更安全的方式比较2个对象。
Student s = null;
s.equals(s2); 空指针异常
Objects.equals(s, s2); 返回false
Objects常见方法:
方法名 | 说明 |
---|---|
public static boolean equals(Object a, Object b) | 比较两个对象的,底层会先进行非空判断,从而可以避免空指针异常。再进行equals比较 |
public static boolean isNull(Object obj) | 判断变量是否为null ,为null返回true ,反之返回false |
StringBuilder
StringBuilder称为可变字符串容器,操作字符串的性能优于String类。
StringBuilder拼接操作字符串的手段:性能好
String才是我们的目的:结果数据的类型
StringJoiner
JDK8开始才有的,跟StringBuilder一样,也是用来操作字符串的,也可以看成是一个容器,创建之后里面的内容是可变的。
好处:不仅能提高字符串的操作效率,并且在有些场景下使用它操作字符串,代码会更简洁
public static String getArrayData(int[] arr) { // 拼接最终的结果:[11, 22, 33, 44, 55] // 1.判断arr是否为null if (arr == null) { return null; } StringJoiner sj = new StringJoiner(", ", "[", "]"); for (int i = 0; i < arr.length; i++) { sj.add(arr[i] + ""); } return sj.toString();}
Math
Math相当于是一个工具类,提供的方法全部是完成数学操作的静态方法,直接用类名调用即可。
目标:熟悉Math类的方法就行了。
// 目标:看看Math类的方法就行了。// 1、取绝对值(拿到的结果一定是正数)System.out.println(Math.abs(-12));System.out.println(Math.abs(-12.2));System.out.println(Math.abs(1443));// 2、向上取整System.out.println(Math.ceil(3.000001)); // 4.0System.out.println(Math.ceil(4.0)); // 4.0// 3、向下取整System.out.println(Math.floor(3.9999999)); // 3.0System.out.println(Math.floor(3.0)); // 3.0// 4、四舍五入System.out.println(Math.round(3.45555)); // 3System.out.println(Math.round(3.500001)); // 4// 5、取较大值System.out.println(Math.max(10, 20));// 6、取次方System.out.println(Math.pow(2, 4)); // 16.0System.out.println(Math.pow(3, 2)); // 9.0// 7、取随机数(用的少)System.out.println(Math.random()); // [0.0 , 1.0) (包前不包后)
System
System代表系统,也是一个工具类的形式,里面的方法都是与系统操作相关的静态方法。
// 目标:了解下System类的几个方法。// 1、终止虚拟机(干掉全部Java程序的执行)System.out.println("程序开始。。。");// System.exit(0); // 0代表是人为认为的正常终止的 (慎用)// 2、获取当前系统的时间信息的。(时间毫秒值:从1970-1-1 0:0:0开始走到此刻的总的毫秒值。1s = 1000ms)long time = System.currentTimeMillis();System.out.println(time);// 通常用来统计程序执行的性能问题。for (int i = 0; i < 2000; i++) { System.out.println("输出:" + i);}long time2 = System.currentTimeMillis();System.out.println("耗时:" + (time2 - time) / 1000.0 + "s");
Runtime
public static void main(String[] args) throws IOException, InterruptedException { // 目标:了解下Runtime的几个常见方法。 // 1、public static Runtime getRuntime() 返回与当前Java应用程序关联的运行时对象。 Runtime r = Runtime.getRuntime(); // 2、public void exit(int status) 终止当前运行的虚拟机,该参数用作状态代码; 按照惯例,非零状态代码表示异常终止。 // r.exit(0); // 3、public int availableProcessors(): 获取虚拟机能够使用的处理器数。 System.out.println(r.availableProcessors()); // 4、public long totalMemory() 返回Java虚拟机中的内存总量。 System.out.println(r.totalMemory() / 1024.0 / 1024.0 + "MB"); // 1024 = 1K 1024 * 1024 = 1M // 5、public long freeMemory() 返回Java虚拟机中的可用内存量 System.out.println(r.freeMemory() / 1024.0 / 1024.0 + "MB"); // 6、public Process exec(String command) 启动某个程序,并返回代表该程序的对象。// r.exec("C:\\SoftWare\\XMind2020\\XMind.exe"); Process p = r.exec("QQ"); Thread.sleep(5000); // 让程序在这里暂停5s后继续往下走!! p.destroy(); // 销毁!关闭程序!}
BigDecimal
封装double类型的数据进行运算的,为了解决计算精度问题
目前:浮点型 double直接运算是不精准的。
double a1 = 0.1
double b1 = 0.2;
double c1 = a1 + b1;
c1: 0.3000000000000001
把浮点型数据进行封装后再运算
double a = 0.1;double b = 0.2;double c = a + b;System.out.println(c);System.out.println("--------------------------");// 使用BigDecimal规避浮点数运算过程中可能出现的精度失真问题BigDecimal a1 = BigDecimal.valueOf(a);BigDecimal b1 = BigDecimal.valueOf(b);// BigDecimal c1 = a1.add(b1);// BigDecimal c1 = a1.subtract(b1);// BigDecimal c1 = a1.multiply(b1);BigDecimal c1 = a1.divide(b1);System.out.println(c1); // 0.3BigDecimal c2 = a1.divide(b1, 2, RoundingMode.Half_Up);
日期与时间
Date
作用:代表当前此刻日期和时间的。
构建对象和常用方法:
Date d = new Date();long time = d.getTime();Date d2 = new Date(time) // 把时间毫秒值转换成日期对象。public void setTime(long time): // 设计日期对象为当前时间毫秒值对应的日期。d2.setTime(time);
SimpleDateFormat
作用:格式化、解析时间的。
构建对象:
public SimpleDateFormat(String pattern)
方法
public String format(Date d)
格式化日期对象
public String format(Object o)
格式化时间毫秒值
public Date parse(String date):
把字符串时间解析成日期对象
// 目标:掌握简单日期格式化类:SimpleDateFormat的使用。// 1、创建一个简单日期格式化对象:封装时间格式。SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss:SSS EEE a");// 2、创建日期对象Date d = new Date();System.out.println(d);// 3、开始使用简单日期格式化对象负责格式化日期成为我们喜欢的字符串时间形式String rs = sdf.format(d);System.out.println(rs);// 4、可以格式化时间毫秒值long time = d.getTime() + 121 * 1000;System.out.println(sdf.format(time));
字符串日期解析
public class SimpleDateFormatDemo2 { public static void main(String[] args) throws ParseException { // 目标2:掌握简单日期格式化的解析操作。 // 需要:把字符串时间解析成日期对象 String dateStr = "2022-11-11 11:11:12"; // 1、创建简单日期格式化对象。 // 注意、注意、注意: 解析时间的格式必须与被解析时间的格式一模一样,否则报错! SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // 2、开始解析了(会报错的,把异常抛出去,什么意思,今天会详细讲解) Date d = sdf.parse(dateStr); System.out.println(d); }}
Calendar
作用:代表的是系统此刻时间对应的日历,通过它可以单独获取、修改时间中的年、月、日、时、分、秒等
构建对象和常用方法:
// 目标:掌握日历类的使用。// 1、得到日历对象Calendar c = Calendar.getInstance();System.out.println(c);// 2、获取信息:public int get(int field):int year = c.get(Calendar.YEAR);System.out.println(year);int days = c.get(Calendar.DAY_OF_YEAR);System.out.println(days);// 3、获取日期对象(了解)Date d = c.getTime();System.out.println(d);long time0 = d.getTime();// 4、时间毫秒值(了解)long time = c.getTimeInMillis();System.out.println(time);// 5、修改日历的时间(需求:问89天后是什么日子)// 参数一:信息字段:一年中的第几天// 参数二:往后加多少天。c.add(Calendar.DAY_OF_YEAR, 89);Date d1 = c.getTime();System.out.println(d1);c.set(Calendar.DAY_OF_YEAR, 364); // 直接修改日历到某一天!Date d2 = c.getTime();System.out.println(d2);
JDK8新增日期类
LocalDate、LocalTime、LocalDateTime
LocalDate:代表本地日期(年、月、日、星期) LocalTime:代表本地时间(时、分、秒、纳秒) LocalDateTime:代表本地日期、时间(年、月、日、星期、时、分、秒、纳秒)
ZoneId、ZonedDateTime
提供了一些带时区的相关方法。
Instant
代表时间线上的某个时刻/时间戳
通过获取Instant的对象可以拿到此刻的时间,该时间由两部分组成:从1970-01-01 00:00:00 开始走到此刻的总秒数 + 不够1秒的纳秒数
DateTimeFormatter
可以用来格式化或者解析日期时间
public class Demo { // 目标:掌握JDK 8新增的DateTimeFormatter格式化器的用法。 public static void main(String[] args) { // 1、创建一个日期时间格式化器对象出来。 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss"); // 2、对时间进行格式化 LocalDateTime now = LocalDateTime.now(); System.out.println(now); String rs = formatter.format(now); // 正向格式化 System.out.println(rs); // 3、格式化时间,其实还有一种方案。 String rs2 = now.format(formatter); // 反向格式化 System.out.println(rs2); // 4、解析时间:解析时间一般使用LocalDateTime提供的解析方法来解析。 String dateStr = "2029年12月12日 12:12:11"; LocalDateTime ldt = LocalDateTime.parse(dateStr, formatter); System.out.println(ldt); }}
Period、Duration
Period(一段时期)
l可以用于计算两个 LocalDate对象 相差的年数、月数、天数。
public class PeriodDemo1 { public static void main(String[] args) { //张二狗的生日是1998年12月3日,请问到今天张二狗活了多长时间? => 基于Period进行差值计算 LocalDate ergouBirthday = LocalDate.of(1998, 12, 3); LocalDate now = LocalDate.now(); //public static Period between(LocalDate l1,LocalDate l2) Period period = Period.between(ergouBirthday, now); //基于get方法获取差额信息的数据信息 getMonths:获取的差额信息中的月份【必须和年搭配在一起看】 //如果想查看总月份可以基于toTotalMonth进行获取 int years = period.getYears(); int months = period.getMonths(); int days = period.getDays(); System.out.println(years + " " + months + " " + days); }}
Duration(持续时间)
可以用于计算两个时间对象相差的天数、小时数、分数、秒数、纳秒数;支持LocalTime、LocalDateTime、Instant等时间。
public class DurationDemo1 { public static void main(String[] args) { //晚上7:30开始考试,小明9:25:30秒交卷了 【计算小明总共答卷的耗时时间】 LocalTime startTime = LocalTime.of(19, 30, 0); LocalTime mingTime = LocalTime.of(21, 25, 30); //获取两个时间的差值 Duration duration = Duration.between(startTime, mingTime); //可以基于get方法来获取差值中的相关信息 long seconds = duration.getSeconds(); System.out.println("【seconds】:" + seconds); //可以基于to方法来获取差值中的不同单位的总信息【总共几小时】【总共多少分钟】【总共多少秒】 long hours = duration.toHours(); System.out.println("【hours】:" + hours); long minutes = duration.toMinutes(); System.out.println("【minutes】:" + minutes); long millis = duration.toMillis(); System.out.println("【millis】:" + millis); }}
今日热闻!Java面向对象进阶第四天(常用API)
Codeforces Global Round 15 CF1552 A~G 题解
每日热文:八方点赞!姆巴佩、莫德里奇等多人点赞C罗社媒动态
世界快报:零下50℃室外玩电脑 显卡都冻傻了:核心温度167万摄氏度
【速看料】能用沐浴露洗头吗?可以是可以 但最好别
天天动态:国内首个类ChatGPT模型:复旦大学团队称MOSS将于三月底开源
观速讯丨国产八核CPU!诺基亚发布G22:小白都能自己修
全球快看:解决IDEA无法识别SpringBoot项目
方敏仪
享年86岁 电影美术大师杨占家去世 手绘媲美CAD制图
世界快资讯:《流浪地球》地下城成真?我国地下基础设施监测技术实现新突破
【环球时快讯】易烊千玺 我们还会在一起吗?_对于易烊千玺 我们还会在一起吗?简单介绍
世界观察:卡罗拉车主试驾完比亚迪唐DM-i之后 丰田信仰瞬间崩塌
80后夫妻攒300万“提前退休” 不生孩子这些钱够了?网友吵翻
一加Buds Pro 2新配色“云峰白”亮相:打磨难度拉满
头条:Linux极简入门系列(二):Linux的目录结构和常用操作
【速看料】Linux vim
当前动态:Vue2 里如何优雅的清除一个定时器
天天通讯!推特进一步削减开支:马斯克挥刀裁掉50名员工
快播:上映10天:《中国乒乓》票房终于破9000万大关
关于数据分析中的绘图分析的学习报告
LWIP学习记录---ARP协议(2)ARP数据包发送过程
go A*寻路记录
59.类的自动转换和强制类型转换
不是“空中楼阁”:努比亚Pad 3D搭载全球最大Leia 3D内容生态
【报资讯】男子车停路边去吃烧烤 回来瞬间崩溃:路边已装上护栏
【独家焦点】作文游西湖300字(精选40篇)
千里托运奔驰GLC被淋满牛粪 女子崩溃:花1900元洗了5遍
【世界速看料】情侣打车3小时后跑单拉黑司机 司机:246元车费没了
世界资讯:微软承认向无法升级的设备推荐Win11:已进行修复
环球即时:压水堆
当前滚动:这些“领导”短信收到没?专门针对iPhone用户诈骗:全国多地预警
环球精选!王一博、梁朝伟《无名》北美院线扩映!豆瓣降至6.7分
当前简讯:大爷怒斥夜市挂日本元素油纸伞:主办方回应令人不解
环球头条:导演新海诚:中国动画电影迟早会超过日本
天天最资讯丨pat乙级链表问题
LWIP学习记录------ARP协议(1)
天天热文:开办以来首位!跨性别演员柏林电影节获奖
微速讯:长城放出王炸?长城水平对置八缸发动机摩托曝光 真猛兽
环球热头条丨可以两天一充的骁龙8 Gen2手机:出现了
每日热讯!马里肯涅巴地区发生武装抢劫 中使馆提醒关注当地安全情况
威马汽车再发内部信:部分员工复工 其余人员无薪休假
【全球热闻】视觉四边等宽!魅族20系列边框仅1.57mm:比iPhone 14 Pro都窄
全球热点!Go编程实战:博客备份
Markdown简明教程
《使命召唤》前景动荡
世界新资讯:上海一高校推出高启强同款猪脚面:师生直呼“舌尖上的《狂飙》”
乌苏啤酒大促:立减64元 折合3元/瓶到手
信息:女子考研期间生娃初试395分 回应外界好奇:多亏家人替自己分担很多
每日焦点!高德、百度地图红绿灯读秒很神奇 接入交管平台?真相并非如此
【天天新要闻】《我们的日子》里,不要忽视这些法律问题
天天资讯:俄州“毒火车”引发环境灾难后 美国又一货运列车脱轨
中兴通
全球热讯:读Java性能权威指南(第2版)笔记02_ Java SE API技巧上
世界动态:你昨晚关注的那个福利姬 可能是假的
世界即时看!国产新能源疯狂内卷!哈弗H6 PHEV官降1.5万 配置全系顶配
【世界报资讯】iPhone 15 Pro Max渲染图出炉:对比14 Pro Max边框更窄、机身更厚
对接水仙后台(支持AndLua+、FA、FA2、AIDE lua、Simple Lua等)
【全球报资讯】Golang基于Mysql分布式锁实现集群主备
世界观热点:薪资4K-5K!公司招聘财务要求做饭被吐槽像保姆
天天百事通!男子长期高血糖导致视网膜病变:不可逆
热头条丨不愧是万元机皇!酷安网友给三星Galaxy S23 Ultra打最高分
当前聚焦:《蚁人3》上映9天中国内地票房破2亿 网友:回到小众也挺好
世界微资讯!如何给公众号投稿赚钱_怎样给公众号投稿赚钱
双亲委派机制
天天微动态丨中国教师队伍建设研究/京师教师教育论丛
当前视讯!即将让核污水倒入大海!日本港口大量有毒海胆聚集 或出现爆发式增长
三星降低QD-OLED面板成本!让电视更具竞争力
世界关注:努比亚Z50新版下周首销:骁龙8 Gen2旗舰焊门员 性价比无敌
最新:python实现客户端和服务端的UDP相互通信
【报资讯】hbuilderx打正式包所需的私钥证书的创建方法
全球新动态:2.【go-kit教程】go-kit启动http服务
室内单目深度估计-4
最新:kaggle中训练得到的output太大该怎么下载?
世界热消息:2消息,中超新贵签约32岁国脚,5中超外援上诉国际足联
环球新动态:超市宣称1元纸币将退出历史引热议 网友直呼太突然:官方回应不属实
视点!女子患异食癖3年吃上百块粉饼:体检身体无异常
天天热点!刷题疑问
环球速读:史上最好的真全面屏手机!努比亚Z50 Ultra上架接受预约
天天精选!禁止自带食材 关停300家店 海底捞从巨亏41亿到盈利13亿
天天讯息:day04-原生的API&注解方式
【环球新要闻】Git使用
美食博主三亚买3888元海鲜被好心人提醒多花1700:当事人心累
热消息:秋裤先别着急脱!“春捂”到底该“捂”哪儿?
前沿资讯!2023年安卓之光!小米13 Ultra手机壳曝光:背部造型抢眼
餐馆接到网吧10个外卖订单 结果被刷9个差评 店主:下次亲自送餐
天天微速讯:门店2299元 GXG男士羊毛大衣0.8折清仓大促:实付199元!
世界热资讯!乐堡苏打气泡酒12罐到手19.9元:低糖0脂无负担
威马员工在线讨薪:被恶心到了、恶心的事还有更多
广州塞车登“热搜”?“甜蜜的烦恼”重回一线城市,中国经济活力加快恢复
【Tire树】高效统计字符串
80、90后泪目 国产暗黑《赵云传重制版》试玩
1岁男童误食降糖药成植物人:愿康复顺利
环球速看:中央人民广播电台民族节目中心
Ubuntu安装Zabbix6.0
秒睡令人羡慕?医生提醒:可能是种睡眠障碍
《流浪地球2》科幻成真?武汉国博用特效“加建”太空电梯
今头条!【element UI】在 el-select 与 el-tree 结合组件
环球热文:python教程:模块的搜索路径
Python中模块的四种方式