自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(310)
  • 收藏
  • 关注

原创 [译] 用 Flutter 写一个待办事项应用

我们将创建我们的应用程序并在 Android 上进行测试,因为这在所有操作系统上都可以完成,所以这些步骤对于 iOS 都是一样的。Flutter 为不少 IDE 提供插件,包括 Android Studio 和 Visual Studio Code。但是,对于我们简单的应用程序来说,我们完全可以使用命令行和一个简单的文本编辑器完成所有操作。首先,让我们创建我们的应用程序,我们将其称为 。flutter create flutter_todoFlutter 中这个命令可以创建一个简单的 “Hello Worl

2024-05-17 09:01:10 475

原创 Window 、Activity、 View 三者关系

最后小编想说:不论以后选择什么方向发展,目前重要的是把Android方面的技术学好,毕竟其实对于程序员来说,要学习的知识内容、技术有太多太多,要想不被环境淘汰就只有不断提升自己,从来都是我们去适应环境,而不是环境来适应我们!这里附上我整理的几十套腾讯、字节跳动,京东,小米,头条、阿里、美团等公司19年的Android面试题。把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节。由于篇幅有限,这里以图片的形式给大家展示一小部分。

2024-05-17 01:31:52 439

原创 RXjava解析(二)我把RXjava的源码和这份面试都给你了,你还告诉我面不过拿不到offer-

当观察者订阅时,它开始发射原始Observable最近发射的数据(如果此时还没有收到任何数据,它会发射一个默认值),然后继续发射其它任何来自原始Observable的数据。然而,如果原始的Observable因为发生了一个错误而终止,将不会发射任何数据,只是简单的向前传递这个错误通知只会把在订阅发生的时间点之后来自原始Observable的数据发射给观察者。需要注意的是,可能会一创建完成就立刻开始发射数据(除非你可以阻止它发生),因此这里有一个风险:在Subject被创建后到有观察者订阅它之前这个时间段内,

2024-05-16 23:35:54 624

原创 Phonegap联系人 获取Contacts HTML5,android

如果你正愁这块不知道如何学习或者想提升学习这块知识的学习效率,那么这份学习笔记绝对是你的秘密武器!如果你正愁这块不知道如何学习或者想提升学习这块知识的学习效率,那么这份学习笔记绝对是你的秘密武器!fields //将要查询的 关键字。

2024-05-16 20:51:55 941

原创 MVVM与Jetpack架构核心技术DataBinding从入门到通透【第二篇】(附源码解析视频教程)(1)

goods.setPrice(new Random().nextInt(100));}public void changeGoodsDetails() {goods.setDetails(“hi” + new Random().nextInt(100));goods.setPrice(new Random().nextInt(100));}}}[图片上传失败…(image-e9261-1600669682607)]可以看到,name 视图的刷新没有同时刷新 price 视图,而 details 视图

2024-05-16 17:53:22 283

原创 Kotlin学习(2)语法(1)

但是kotlin没有,所以kotlin 用的是 if() … else …这样实现三元表达式其他的if用法和Java无异3.2 when表达式和Java中的 是类似的。因为kotlin是极简风格变成,所以它的when比switch写起来更加方便,下面一个例子:fun caseWhen(obj: Any?) {when (obj) {0, 1, 2, 3 -> print(“是0123中的一个”)“你好” -> print(“是你好”)else -> print(“什么都不是”)}}其中的 相当于 中的

2024-05-16 16:21:29 391

原创 Kotin学习手记——类、接口、扩展方法、空类型

与java相同的是,kotlin抽象类中也可以有已实现的方法和纯抽象方法,但是,与java不同的是,如果子类要覆写抽象类里的已实现方法,必须在该方法前面加。val title = person.title // 此时的title类型是java平台的String类型,不是kotlin的String类型。类和扩展方法不一定在同一个kt文件中,但必须在方法的外层定义,即不能在某个函数方法中定义,必须是顶层的,如不能在main方法中定义。与接口一样,继承抽象类也是加冒号,不过后面的抽象类要写构造函数。

2024-05-16 15:12:29 288

原创 HTTP请求以及HTTP响应(1)

看到这篇文章的人不知道有多少是和我一样的Android程序员。35岁,这是我们这个行业普遍的失业高发阶段,这种情况下如果还不提升自己的技能,进阶发展,我想,很可能就是本行业的职业生涯的终点了。我们要有危机意识,切莫等到一切都成定局时才开始追悔莫及。只要有规划的,有系统地学习,进阶提升自己并不难,给自己多充一点电,你才能走的更远。千里之行始于足下。这是上小学时,那种一元钱一个的日记本上每一页下面都印刷有的一句话,当时只觉得这句话很短,后来渐渐长大才慢慢明白这句话的真正的含义。

2024-05-16 13:33:40 321

原创 Glide图片框架使用详细介绍(五)之Glide-源码详解

今天关于面试的分享就到这里,还是那句话,有些东西你不仅要懂,而且要能够很好地表达出来,能够让面试官认可你的理解,例如Handler机制,这个是面试必问之题。有些晦涩的点,或许它只活在面试当中,实际工作当中你压根不会用到它,但是你要知道它是什么东西。最后在这里小编分享一份自己收录整理上述技术体系图相关的几十套腾讯、头条、阿里、美团等公司20年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。还有。

2024-05-16 11:41:26 371

原创 Flutter版-WanAndroid-App

分享一份工作1到5年以上的Android程序员架构进阶学习路线体系,希望能对那些还在从事Android开发却还不知道如何去提升自己的,还处于迷茫的朋友!阿里P7级Android架构师技术脑图;查漏补缺,体系化深入学习提升**全套体系化高级架构视频;**七大主流技术模块,视频+源码+笔记有任何问题,欢迎广大网友一起来交流《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!缺,体系化深入学习提升。

2024-05-16 10:23:50 398

原创 Lottie动画资源放到服务器预下载

object FileDownloadConstant {const val filePath = “gifts/zip”//下载下来的资源存放的根目录var DEFAULT_FILE_CACHE_PATH = ContextUtils.getApplicationContext().getExternalFilesDir(“gift”).path//礼物动画存储目录var rootPathAnimation = “DEFAULTFILECACHEPATH/{DEFAULT_FILE_CACHE_

2024-05-16 00:40:20 798

原创 Kotlin协程

Element之间可以通过+号进行组合Element有如下四类,共同组成了CoroutineContextJob:协程的唯一标识,用来控制协程的生命周期(new、active、completing、completed、cancelling、cancelled)CoroutineDispatcher:指定协程运行的线程(IO、Default、Main、Unconfined)CoroutineName: 指定协程的名称,默认为coroutineCoroutineExceptionHandler: 指定协程的异常

2024-05-15 23:22:37 670

原创 Jetpack学习之 ViewModel

如果你看到了这里,觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足。欢迎大家一起交流讨论啊~《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!这个 Factory 如果未指定, 一般就是,来看看它的create()如果你看到了这里,觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足。[外链图片转存中…(img-qhb3sm2u-1715782063925)]

2024-05-15 22:07:56 552

原创 HttpURLConnection的addRequestProperty和setRequestProperty区别

网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。同时我还搜集整理2020年字节跳动,以及腾讯,阿里,华为,小米等公司的面试题,把面试的要求和技术点梳理成一份大而全的“ Android架构师”面试 Xmind(实际上比预期多花了不少精力),包含。网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。注意name的设置,会发生覆盖的作用。

2024-05-15 19:22:07 401

原创 Glide图片框架使用详细介绍(五)之Glide-源码详解

今天关于面试的分享就到这里,还是那句话,有些东西你不仅要懂,而且要能够很好地表达出来,能够让面试官认可你的理解,例如Handler机制,这个是面试必问之题。有些晦涩的点,或许它只活在面试当中,实际工作当中你压根不会用到它,但是你要知道它是什么东西。最后在这里小编分享一份自己收录整理上述技术体系图相关的几十套腾讯、头条、阿里、美团等公司20年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。还有。

2024-05-15 17:46:28 395

原创 Flutter版-WanAndroid-App

分享一份工作1到5年以上的Android程序员架构进阶学习路线体系,希望能对那些还在从事Android开发却还不知道如何去提升自己的,还处于迷茫的朋友!阿里P7级Android架构师技术脑图;查漏补缺,体系化深入学习提升**全套体系化高级架构视频;**七大主流技术模块,视频+源码+笔记有任何问题,欢迎广大网友一起来交流《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!缺,体系化深入学习提升。

2024-05-15 16:28:41 416

原创 zookeeper原理篇-Zookeeper的数据存储与恢复原理

这里附上上述的技术体系图相关的几十套腾讯、头条、阿里、美团等公司2021年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。当程序员容易,当一个优秀的程序员是需要不断学习的,从初级程序员到高级程序员,从初级架构师到资深架构师,或者走向管理,从技术经理到技术总监,每个阶段都需要掌握不同的能力。早早确定自己的职业方向,才能在工作和能力提升中甩开同龄人。

2024-05-15 15:30:51 337

原创 RXJava之扩展的观察者模式(二)(1)

对于程序员来说,要学习的知识内容、技术有太多太多,要想不被环境淘汰就只有不断提升自己,从来都是我们去适应环境,而不是环境来适应我们!当你有了学习线路,学习哪些内容,也知道以后的路怎么走了,理论看多了总要实践的最后,互联网不存在所谓的寒冬,只是你没有努力罢了!《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!最后,互联网不存在所谓的寒冬,只是你没有努力罢了!《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!

2024-05-15 13:02:01 306

原创 poi-tl—一个超级好用开源的Word模板引擎

在文档的任何地方做任何事情(Do Anything Anywhere)是poi-tl的星辰大海。​2.1 poi-tl与其他word模板引擎的对比方案移植性功能性易用性Poi-tl| Java跨平台 | Word模板引擎 | 基于Apache POI,更友好的API |Apache POI Word快速入门| Freemarker | XML跨平台 | 仅支持文本,很大的局限性 | 不推荐,需要维护XML结构,代码后期不可维护 |

2024-05-15 11:37:11 493

原创 MVC、MVP、MVVM,我到底该怎么选?

具有一定的分层,model彻底解耦,controller和view并没有解耦层与层之间的交互尽量使用回调或者去使用消息机制去完成,尽量避免直接持有controller和view在android中无法做到彻底分离,但在代码逻辑层面一定要分清业务逻辑被放置在model层,能够更好的复用和修改增加业务通过引入接口BaseView,让相应的视图组件如Activity,Fragment去实现BaseView,实现了视图层的独立,通过中间层Preseter实现了Model和View的完全解耦。

2024-05-15 06:26:06 820

原创 Kotlin学习日志(二)数据类型(1)

很多人在刚接触这个行业的时候或者是在遇到瓶颈期的时候,总会遇到一些问题,比如学了一段时间感觉没有方向感,不知道该从哪里入手去学习,对此我整理了一些资料如果你熟练掌握以下列出的知识点,相信将会大大增加你通过前两轮技术面试的几率!这些内容都供大家参考,互相学习。①「Android面试真题解析大全」PDF完整高清版+②「Android面试知识体系」学习思维导图压缩包《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!

2024-05-15 04:56:04 1011

原创 JWT在Java和Android中的使用

3.4.0Gradlecompile ‘com.auth0:java-jwt:3.4.0’public String JWTGenerate(String key, String secret, String jwtSecret) {Map headers = new HashMap();headers.put(“alg”, “HS256”);headers.put(“typ”, “JWT”);String builder = JWT.crea

2024-05-15 03:45:53 824

原创 HTTP和HTTPS的区别,SSL的握手过程(1)

最后对于程序员来说,要学习的知识内容、技术有太多太多,要想不被环境淘汰就只有不断提升自己,从来都是我们去适应环境,而不是环境来适应我们!这里附上上述的技术体系图相关的几十套腾讯、头条、阿里、美团等公司2021年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。

2024-05-15 02:10:12 583

原创 Glide图片框架使用详细介绍(五)之Glide-源码详解

今天关于面试的分享就到这里,还是那句话,有些东西你不仅要懂,而且要能够很好地表达出来,能够让面试官认可你的理解,例如Handler机制,这个是面试必问之题。有些晦涩的点,或许它只活在面试当中,实际工作当中你压根不会用到它,但是你要知道它是什么东西。最后在这里小编分享一份自己收录整理上述技术体系图相关的几十套腾讯、头条、阿里、美团等公司20年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。还有。

2024-05-15 00:33:23 832

原创 Flutter版-WanAndroid-App

分享一份工作1到5年以上的Android程序员架构进阶学习路线体系,希望能对那些还在从事Android开发却还不知道如何去提升自己的,还处于迷茫的朋友!阿里P7级Android架构师技术脑图;查漏补缺,体系化深入学习提升**全套体系化高级架构视频;**七大主流技术模块,视频+源码+笔记有任何问题,欢迎广大网友一起来交流《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!缺,体系化深入学习提升。

2024-05-14 23:16:14 852

原创 [译] Kotlin Clean 架构

在不同层级中分离具有特定职责的代码,让其更容易做进一步修改。高度的抽象代码解耦轻松的代码测试“整洁的代码总是看起来像是由在意它的人来写的。这将是三个层级中最通用的一个。它将 Presentation 层和 Data 层连接起来,并执行应用相关的业务逻辑。该层级负责提供应用所需的数据。Data 层应该设计任何应用都可以重复使用而无需在其展示逻辑中进行修改的数据。API提供远程网络实现。任何网络库都可以集成到这里,如 retrofit、volley 等。同样,DB提供本地数据库实现。

2024-05-14 22:31:12 928

原创 UI组件化--干掉shape终极一战

默认背景颜色按下背景颜色Disable背景颜色默认开始渐变颜色默认结束渐变颜色按下开始渐变颜色按下结束渐变颜色Disable开始渐变颜色Disable结束渐变颜色渐变方向默认文字颜色按下文字颜色Disable文字颜色边框颜色按下边框颜色Disable边框颜色边框宽度水波纹是否可用默认水波纹颜色按下水波纹颜色圆角角度左上圆角角度右上圆角角度左下圆角角度右下圆角角度是否开启防抖。

2024-05-14 20:53:04 615

原创 Redis持久化AOF与RDB全面解析(大厂面试必问,看完之后offer直接到手,你学废了吗?)(1)

RDB持久化方案进行备份时,Redis会单独fork一个子进程来进行持久化,会将数据写入一个临时文件中,持久化完成后替换旧的RDB文件。在整个持久化过程中,主进程(为客户端提供服务的进程)不参与IO操作,这样能确保Redis服务的高性能,RDB持久化机制适合对数据完整性要求不高但追求高效恢复的使用场景。

2024-05-14 19:17:27 887

原创 OO六大设计原则最全分析总结篇

public class BookStore {private final List mBookList = new ArrayList();public BookStore() {setBooks();}private void setBooks() {mBookList.add(new OffNovelBook(“天龙八部”, 3200, “金庸”));mBookList.add(new OffNovelBook(“巴黎圣母院”, 5600, “雨果”));mBookList.add(new Off

2024-05-14 17:54:28 849

原创 LeetCode题解(八)0700-0799

今天关于面试的分享就到这里,还是那句话,有些东西你不仅要懂,而且要能够很好地表达出来,能够让面试官认可你的理解,例如Handler机制,这个是面试必问之题。有些晦涩的点,或许它只活在面试当中,实际工作当中你压根不会用到它,但是你要知道它是什么东西。最后在这里小编分享一份自己收录整理上述技术体系图相关的几十套腾讯、头条、阿里、美团等公司的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。还有。

2024-05-14 16:09:57 988

原创 Kotlin-风险高、RxJava-不老,Android-原生开发现状分析!(1)

请允许我用 Android 开发者的背景,描述一下我这两年所经历的事情:在过去的两年里,我启动了三个项目,我一直争取,至少参与其中一个项目的开发工作。我回过头来看这些已经存在的项目,并分析这些项目前期所做的技术决定对整个项目的影响。我写了这篇文章,也制作了很多 Android 开发的高级课程,也花了很多时间在互联网上讨论 Android 相关的主题。即使这样,我今天依然感觉跟不上 Android 整个生态系统的变化。可想而知,对于那些经验不足,需要指导的 Android 开发者而言,是多么地绝望。

2024-05-14 14:59:08 1111

原创 Jetpack Compose 的Column , Row ,Box 的用法(1)

@Preview()@Composablefun columnTest(){Column(// 设置Column的宽度高200dpmodifier = Modifier.size(200.dp),// 设置居底部对齐verticalArrangement = Arrangement.Bottom){Text(text = “第一个文本控件ikkokokojih呼呼呼呼呼呼”)Text(text = “第二个文本控件”)}}举个例子说明,比如上面两个文本控件,一个比较长,一个比较短。如果horizontalA

2024-05-14 13:26:53 653

原创 interrupted()和isInterrupted()详述(1)

Android架构学习进阶是一条漫长而艰苦的道路,不能靠一时激情,更不是熬几天几夜就能学好的,必须养成平时努力学习的习惯。所以:贵在坚持!上面分享的字节跳动公司2020年的面试真题解析大全,笔者还把一线互联网企业主流面试技术要点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节。就先写到这,码字不易,写的很片面不好之处敬请指出,如果觉得有参考价值的朋友也可以关注一下我。

2024-05-14 09:26:02 232

原创 Glide源码学习六:图片变换

现在都说互联网寒冬,其实无非就是你上错了车,且穿的少(技能),要是你上对车,自身技术能力够强,公司换掉的代价大,怎么可能会被裁掉,都是淘汰末端的业务Curd而已!现如今市场上初级程序员泛滥,这套教程针对Android开发工程师1-6年的人员、正处于瓶颈期,想要年后突破自己涨薪的,进阶Android中高级、架构师对你更是如鱼得水!为什么某些人会一直比你优秀,是因为他本身就很优秀还一直在持续努力变得更优秀,而你是不是还在满足于现状内心在窃喜!Android架构师之路很漫长,一起共勉吧!

2024-05-14 02:15:30 839

原创 Flutter状态管理--Getx学习2(1)

*一个零基础的新人,我认为坚持是最最重要的。**我的很多朋友都找我来学习过,我也很用心的教他们,可是不到一个月就坚持不下来了。我认为他们坚持不下来有两点主要原因:他们打算入行不是因为兴趣,而是因为所谓的IT行业工资高,或者说完全对未来没有任何规划。刚开始学的时候确实很枯燥,这确实对你是个考验,所以说坚持下来也很不容易,但是如果你有兴趣就不会认为这是累,不会认为这很枯燥,总之还是贵在坚持。技术提升遇到瓶颈了?缺高级Android进阶视频学习提升自己吗?还有大量大厂面试题为你面试做准备!

2024-05-14 00:55:13 857

原创 RXJava之线程控制Scheduler(四)(1)

Android架构学习进阶是一条漫长而艰苦的道路,不能靠一时激情,更不是熬几天几夜就能学好的,必须养成平时努力学习的习惯。所以:贵在坚持!上面分享的字节跳动公司2021年的面试真题解析大全,笔者还把一线互联网企业主流面试技术要点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节。【Android高级架构视频学习资源】Android部分精讲视频领取学习后更加是如虎添翼!进军BATJ大厂等(备战)!

2024-05-13 18:02:54 948

原创 Qemu(纯软实现)架构+KVM(基于kernel模拟硬件)原理(一)(1)

QEMU是“Quick Emulator”的缩写,是一个用C语言编写的开源虚拟化软件。本文的目的是描述本人所理解的QEMU技术架构的见解,并以此抛砖引玉。众所周知,QEMU的源代码开发文档非常稀少,描述内部结构和工作机理的文档更是凤毛麟角,一般的开发人员想要从事QEMU的开发工作,通常只能从源代码入手。因此,对于技术人员来说,了解QEMU是一项艰巨的任务。QEMU有几种虚拟化模式。首先,它可以使用基于内核的虚拟机(KVM)执行x86处理器硬件虚拟化,以几乎比拟硬件本机的速度执行运算任务。其次,它可以通过机器

2024-05-13 16:39:00 615

原创 OOM问题原理解析(一):adj内存管理机制(1)

​ *但是一般启动了服务的进程往往是希望服务在后台能够执行某些任务,这样看是不希望这些服务因为进程被杀而过早的被终止的,那如何调和这种矛盾呢?正确的做法是,对于期望较长时间留在后台的服务,应该将服务运行在单独的进程里,即是UI进程与Servie进程分离,这样期望长时间留在后台的Serivce会存在与一个被lmk分类为Service 进程的服务而获得较小的Adj值,而占有大量内存的UI进程则会分类为Cached进程,能够在需要的时候更快地被回收。*​ *还有一点,这类进程虽然被lmk划分为cached进程,但

2024-05-13 15:35:47 791

原创 LeetCode题解(一)0001-0099

最后小编想说:不论以后选择什么方向发展,目前重要的是把Android方面的技术学好,毕竟其实对于程序员来说,要学习的知识内容、技术有太多太多,要想不被环境淘汰就只有不断提升自己,从来都是我们去适应环境,而不是环境来适应我们!这里附上我整理的几十套腾讯、字节跳动,京东,小米,头条、阿里、美团等公司19年的Android面试题。把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节。由于篇幅有限,这里以图片的形式给大家展示一小部分。

2024-05-13 13:53:23 976

原创 Kotlin-编程核心基石—高阶函数

SAM(Single Abstract Method),顾名思义,就是:只有一个抽象方法的类或者接口,但在 Kotlin 和 Java8 里,SAM 代表着:只有一个抽象方法的接口。符合 SAM 要求的接口,编译器就能进行 SAM 转换:让我们可以用 Lambda 表达式来简写接口类的参数。函数式接口必须是接口,抽象类不行该接口有且仅有一个抽象的方法,抽象方法个数必须是1,默认实现的方法可以有多个。

2024-05-13 12:44:43 912

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除