自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Leetcode面T16(20-26)树

UI这块知识是现今使用者最多的。当年火爆一时的Android入门培训,学会这小块知识就能随便找到不错的工作了。不过很显然现在远远不够了,拒绝无休止的CV,亲自去项目实战,读源码,研究原理吧!

2024-05-17 08:49:36 546

原创 ViewModel原理(1)

ViewModelStoreOwner:是一个接口,ComponentActivity和Fragment实现了这个接口,所以我们在Activity或者Fragment中使用ViewModelProvider传入的this就可以了。ViewModelStore:ViewModelStore主要是用来存储ViewModel对象的,内部有一个HashMap集合用来存储ViewModel对象。ComponentActivity持有一个ViewModelStore,可以通过ViewModelStoreOwner中的g

2024-05-17 01:03:47 353

原创 RxJava 响应式编程 _ 奉上一篇全面的 RxJava2 方法总结

*要想成为高级安卓工程师,必须掌握许多基础的知识。**在工作中,这些原理可以极大的帮助我们理解技术,在面试中,更是可以帮助我们应对大厂面试官的刁难。《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!:这个调度器允许你立即在当前线程执行你指定的工作。它是timeout()以及方法默认的调度器。5.:当我们想在当前线程执行一个任务时,并不是立即,我们可以用将它入队。这个调度器将会处理它的队列并且按序运行队列中每一个任务。它是repeat()和retry()

2024-05-16 23:24:59 379

原创 Retrofit各个注解的含义及作用

找工作是个很辛苦的事情,而且一般周期都比较长,有时候既看个人技术,也看运气。第一次找工作,最后的结果虽然不尽如人意,不过收获远比offer大。接下来就是针对自己的不足,好好努力了。最后为了节约大家的时间,我把我学习所用的资料和面试遇到的问题和答案都整理成了PDF文档《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!参数的键和值都通过String.valueOf()转换为String格式map的键和值默认进行URL编码。

2024-05-16 22:03:23 409

原创 Oracle密码文件的创建、使用和维护

开发是面向对象。我们找工作应该更多是面向面试。哪怕进大厂真的只是去宁螺丝,但你要进去得先学会面试的时候造飞机不是么?作者13年java转Android开发,在小厂待过,也去过华为,OPPO等,去年四月份进了阿里一直到现在。等大厂待过也面试过很多人。深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。这里附上上述的技术体系图相关的几十套腾讯、头条、阿里、美团等公司的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含。

2024-05-16 20:39:44 976

原创 Memcached集群的使用

*其实上面说了这么多,钱是永远赚不完的,在这个知识付费的时代,知识技能提升才是是根本!我作为一名8年的高级工程师,知识技能已经学习的差不多。**在看这篇文章的可能有刚刚入门,刚刚开始工作,或者大佬级人物。像刚刚开始学Android开发小白想要快速提升自己,最快捷的方式,就是有人可以带着你一起分析,这样学习起来最为高效,所以这里分享一套高手学习的源码和框架视频等精品Android架构师教程,保证你学了以后保证薪资上升一个台阶。这么重要的事情说三遍啦!

2024-05-16 17:31:13 369

原创 Kotlin学习tips

15.映射对象到变量中映射对象的每一个属性到一个变量中,这个过程就是我们知道的多声明。这就是为什么会有 componentX 函数被自动创建。val f1 = Forecast(Date(), 27.5f, “Shiny day”)val (date, temperature, details) = f116.伴随对象可以拿来声明一些公用的方法,或者属性(需要用的时候才被初始化),和Java的静态方法有点儿像,只是有点像.17.with函数18.while条件中不允许包含赋值语句,例如java中这么写的in

2024-05-16 16:11:04 298

原创 JNI开发之局部引用、全局引用和弱全局引用(三)

给大家分享一份移动架构大纲,包含了移动架构师需要掌握的所有的技术体系,大家可以对比一下自己不足或者欠缺的地方有方向的去学习提升;《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!给大家分享一份移动架构大纲,包含了移动架构师需要掌握的所有的技术体系,大家可以对比一下自己不足或者欠缺的地方有方向的去学习提升;[外链图片转存中…(img-CjO9xk3o-1715842684415)]《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门。

2024-05-16 14:58:17 311

原创 HTML5 CSS3 诱人的实例 :模仿优酷视频截图功能

现在都说互联网寒冬,其实无非就是你上错了车,且穿的少(技能),要是你上对车,自身技术能力够强,公司换掉的代价大,怎么可能会被裁掉,都是淘汰末端的业务Curd而已!点击事件时,会暂停video,然后在video的位置生成一张图片,使用jquery动画移动到缩略图的位置,然后移除文档,缩略图显示,造成的动画效果。**任何市场都是优胜略汰适者生存,只要你技术过硬,到哪里都不存在饱和不饱和的问题,所以重要的还是提升自己。**另外一千个读者就有一千个哈姆雷特,所以以上只是自己的关键,不喜勿喷!

2024-05-16 13:20:09 224

原创 Glide load源码、缓存机制分析

以前一直是自己在网上东平西凑的找,找到的东西也是零零散散,很多时候都是看着看着就没了,时间浪费了,问题却还没得到解决,很让人抓狂。后面我就自己整理了一套资料,还别说,真香!资料有条理,有系统,还很全面,我不方便直接放出来,大家可以先看看有没有用得到的地方吧。《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!

2024-05-16 11:31:09 216

原创 Flutter是跨平台开发终极之选吗?Android开发该如何快速上手Flutter?(1)

Android开发该如何快速上手Flutter?当你快速搭建好环境,简单了解 Flutter 的 API 之后,学习 Flutter 主要有两个核心点:一个是响应式开发,另一个是弄懂 Widget 的背后是什么?这两点对于Android开发来说都有一定的难度。为了帮助大家快速无痛上手 Flutter,我这里给大家分享一份资料Flutter 学习笔记1这是为什么?2什么是跨平台开发?3什么是Flutter、4 Flutter的特性5 Flutter构建应用的工具6 使用Flutter构建的热门应用7构建Flu

2024-05-16 10:13:32 270

原创 OOP - 开闭原则(OCP)

本文讲解了我对Android开发现状的一些看法,也许有些人会觉得我的观点不对,但我认为没有绝对的对与错,一切交给时间去证明吧!愿与各位坚守的同胞们互相学习,共同进步!《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!

2024-05-16 02:06:13 329

原创 LeetCode题解(二)0100-0199

为了方便有学习需要的朋友,我把资料都整理成了视频教程(实际上比预期多花了不少精力)当程序员容易,当一个优秀的程序员是需要不断学习的,从初级程序员到高级程序员,从初级架构师到资深架构师,或者走向管理,从技术经理到技术总监,每个阶段都需要掌握不同的能力。早早确定自己的职业方向,才能在工作和能力提升中甩开同龄人。无论你现在水平怎么样一定要 持续学习 没有鸡汤,别人看起来的毫不费力,其实费了很大力,这四个字就是我的建议!!我希望每一个努力生活的IT工程师,都会得到自己想要的,因为我们很辛苦,我们应得的。

2024-05-16 00:21:37 718

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

当我们出去找工作,或者准备找工作的时候,我们一定要想,我面试的目标是什么,我自己的技术栈有哪些,近期能掌握的有哪些,我的哪些短板 ,列出来,有计划的去完成,别看前两天掘金一些大佬在驳来驳去 ,他们的观点是他们的,不要因为他们的观点,膨胀了自己,影响自己的学习节奏。基础很大程度决定你自己技术层次的厚度,你再熟练框架也好,也会比你便宜的,性价比高的替代,很现实的问题但也要有危机意识,当我们年级大了,有哪些亮点,与比我们经历更旺盛的年轻小工程师,竞争。其实,反射虽然会影响性能,但是在大多数项目,都是可以用的。

2024-05-15 23:12:27 618

原创 Jetpack MVVM七宗罪 之三 :在 onViewCreated 中请求数据(1)

首先是感觉自己的基础还是不够吧,大厂好像都喜欢问这些底层原理。之前的准备只涉及了Java、Android、计网、数据结构与算法这些方面,面对面试官对其他基础课程的考察显得捉襟见肘。下一步还是要查漏补缺,进行针对性复习。最后的最后,那套资料这次一定要全部看完,是真的太全面了,各个知识点都涵盖了,几乎我面试遇到的所有问题的知识点这里面都有!希望大家不要犯和我一样的错误呀!!!一定要看完!《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!

2024-05-15 21:45:50 595

原创 HTML5 CSS3 精美案例 : 实现VCD包装盒个性幻灯片

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

2024-05-15 19:08:33 406

原创 Glide load源码、缓存机制分析

以前一直是自己在网上东平西凑的找,找到的东西也是零零散散,很多时候都是看着看着就没了,时间浪费了,问题却还没得到解决,很让人抓狂。后面我就自己整理了一套资料,还别说,真香!资料有条理,有系统,还很全面,我不方便直接放出来,大家可以先看看有没有用得到的地方吧。《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!

2024-05-15 17:36:16 395

原创 Flutter是跨平台开发终极之选吗?Android开发该如何快速上手Flutter?(1)

Android开发该如何快速上手Flutter?当你快速搭建好环境,简单了解 Flutter 的 API 之后,学习 Flutter 主要有两个核心点:一个是响应式开发,另一个是弄懂 Widget 的背后是什么?这两点对于Android开发来说都有一定的难度。为了帮助大家快速无痛上手 Flutter,我这里给大家分享一份资料Flutter 学习笔记1这是为什么?2什么是跨平台开发?3什么是Flutter、4 Flutter的特性5 Flutter构建应用的工具6 使用Flutter构建的热门应用7构建Flu

2024-05-15 16:18:14 312

原创 XML中配置网易云歌手详情滑动效果

custom_transformation属性则是专为自定义Transformation而服务,其值为自己实现的Transformation类的全路径。自定义Transformation有两种方式,其一是实现Transformation接口,另一种方式是继承TransformationAdapter类,TransformationAdapter是Transformation是Transformation接口的空实现,继承于此则不需要实现所有的方法。/**

2024-05-15 15:19:15 300

原创 V4L2结构体手册(1)

enum v4l2_frmsizetypes {/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */V4L2_FRMSIZE_TYPE_DISCRETE = 1,V4L2_FRMSIZE_TYPE_CONTINUOUS = 2,V4L2_FRMSIZE_TYPE_STEPWISE = 3,};/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR IN

2024-05-15 14:26:04 408

原创 Retrofit统一添加post请求的默认参数(1)

@POST(“user/login”)Observable login(@Body RequestBody body);//构造一个RequestBody对象@POST(“user/login”)Observable login(@Body LoginInfo loginInfo);//构造一个实体对象}第二种方法,你需要为每一个不同的请求的对象创建一个不同的Model,太麻烦了,这里选择第一种直接构造RequestBody对象:Retrofit mRetrofit =

2024-05-15 12:49:06 270

原创 Ormlite 基本使用(关联表)(2)

@DatabaseField(columnName = “birthday”)private Date birthday;@DatabaseField(columnName = “address”)private String address;@ForeignCollectionField(eager = true)private ForeignCollection articles;public UserBean() {}public UserBean(String name, char sex, Dat

2024-05-15 11:25:19 206

原创 Material Design

CardView是用于实现卡片式布局效果的重要控件,由appcompat-v7库提供.实际上,CardView就是一个FrameLayout,只是额外提供了圆角和阴影等效果,看上去会有立体的效果. 下面就将使用CardView作为Recycler的子项来使用,达到下面图片上的效果.网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。建议先制定学习计划,根据学习计划把知识点关联起来,形成一个系统化的知识体系。

2024-05-15 06:04:40 544

原创 Kotlin和RecyclerView的一个demo(1)

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

2024-05-15 04:45:47 926

原创 JMS与消息中间件

每条消息通仅会传送给一个接受者。可能会有多个接受者在一个队列中侦听,但是每个队列中的消息只能被队列中的一个接受者消费。消息存在先后顺序。一个队列会按照消息服务器将消息放入队列中的顺序,把它们传送给消费者当消息已被消费时,就会从队列头部将它们删除。每个消息只有一个消费者(Consumer)(即一旦被消费,消息就不再在消息队列中)发送者发送了消息之后,不管接收者有没有正在运行,它不会影响到消息被发送到队列接收者在成功接收消息之后需向队列应答成功如果希望发送的每个消息都应该被成功处理的话,使用这个P2P模式。1、

2024-05-15 03:34:24 982

原创 HTML5 CSS3 诱人的实例 : 网页加载进度条的实现,下载进度条等(1)

文章会持续更新的。绝对干货!!!Android进阶学习全套手册关于实战,我想每一个做开发的都有话要说,对于小白而言,缺乏实战经验是通病,那么除了在实际工作过程当中,我们如何去更了解实战方面的内容呢?实际上,我们很有必要去看一些实战相关的电子书。

2024-05-15 01:56:37 636

原创 Glide load源码、缓存机制分析

以前一直是自己在网上东平西凑的找,找到的东西也是零零散散,很多时候都是看着看着就没了,时间浪费了,问题却还没得到解决,很让人抓狂。后面我就自己整理了一套资料,还别说,真香!资料有条理,有系统,还很全面,我不方便直接放出来,大家可以先看看有没有用得到的地方吧。《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!

2024-05-15 00:23:11 699

原创 Flutter是跨平台开发终极之选吗?Android开发该如何快速上手Flutter?(1)

Android开发该如何快速上手Flutter?当你快速搭建好环境,简单了解 Flutter 的 API 之后,学习 Flutter 主要有两个核心点:一个是响应式开发,另一个是弄懂 Widget 的背后是什么?这两点对于Android开发来说都有一定的难度。为了帮助大家快速无痛上手 Flutter,我这里给大家分享一份资料Flutter 学习笔记1这是为什么?2什么是跨平台开发?3什么是Flutter、4 Flutter的特性5 Flutter构建应用的工具6 使用Flutter构建的热门应用7构建Flu

2024-05-14 23:05:59 679

原创 [s1e8]超详细!3小时从0开始开发一个GitHub客户端(Android版本)(1)

简历首选内推方式,速度快,效率高啊!然后可以在拉钩,boss,脉脉,大街上看看。简历上写道熟悉什么技术就一定要去熟悉它,不然被问到不会很尴尬!做过什么项目,即使项目体量不大,但也一定要熟悉实现原理!不是你负责的部分,也可以看看同事是怎么实现的,换你来做你会怎么做?做过什么,会什么是广度问题,取决于项目内容。但做过什么,达到怎样一个境界,这是深度问题,和个人学习能力和解决问题的态度有关了。大公司看深度,小公司看广度。大公司面试你会的,小公司面试他们用到的你会不会,也就是岗位匹配度。面试过程一定要有礼貌!

2024-05-14 22:21:00 733

原创 this与super关键字(阿里巴巴面试竟然问道这个了……今天把它盘透彻了!)

最后为了帮助大家深刻理解Android相关知识点的原理以及面试相关知识,这里放上相关的我搜集整理的24套腾讯、字节跳动、阿里、百度2019-2021面试真题解析,我把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包知识脉络 + 诸多细节。还有高级架构技术进阶脑图、Android开发面试专题资料帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。

2024-05-14 20:40:12 561

原创 RecyclerView

}if (!mReSchedulePostAnimationCallback) {smoothScroller.stop(); //stop if it does not trigger any scroll}}…省略部分代码}ViewFlinger的run()方法内部实现比较复杂, 在该方法第一次执行的时候,会执行,if (scroller.computeScrollOffset()) ,其中scroller是ViewFlinger中的属性mScroller的引用,其中mScroller会在V

2024-05-14 19:01:16 753

原创 Okhttp的线程池和高并发

总而言之,成功是留给准备好的人的。无论是参加什么面试,都要做好充足的准备,注意好面试的礼仪和穿着,向面试官表现出自己的热忱与真诚就好。即使最后没有过关,也要做好经验的总结,为下一次面试做好充足准备。这里我为大家准备了一些我在面试后整理的面试专题资料,除了面试题,还总结出了互联网公司Android程序员面试涉及到的绝大部分面试题及答案,并整理做成了文档,以及系统的进阶学习视频资料分享给大家,希望能帮助到你面试前的复习,且找到一个好的工作,也节省大家在网上搜索资料的时间来学习。

2024-05-14 17:41:34 833

原创 LeetCode刷题笔记4寻找两个正序数组的中位数

思路1:直接合并两个数组,如果总长度为奇数那么就是中间那一个,如果偶数那么就是中间哪两个的平局值。思路2:因为两个数组都是有序的,我们每次减去一个最大值和最小值,这样当剩下的数小于等于2的时候,就是中位数。因为都有序,那么最大值和最小值一定在两个数组的两端产生。示例代码:public double solution1(int[] nums1, int[] nums2) {int leftStart = 0, leftEnd = nums1.length - 1, rightStart = 0, right

2024-05-14 15:58:57 547

原创 Kotlin(2)-泛型与集合(2)

我们在编码java的时候,写一个泛型类,可能是这样的class Plate{T t;Plate(T t){this.t = t;}T get(){return t;}void set(T t){this.t =t;}}以上是java代码。Java泛型是伪泛型,在编译之后,所有的泛型写法都会被移除,而会用实际的类型去替换。mian函数运行的时候, 被移除。而原来的T,就变成了Object。所以,Plate的字节码反编译过来就应该是class Plate{Object t;Plate(Obj

2024-05-14 14:48:55 912

原创 IT从业15年,给后辈的一点建议

4、 胆子要大,要多发出自己的声音。很多职场新人在项目讨论的时候会担心自己技术深度不足,提出的观点比较浅薄,这个是不对的。说得不好听,我们都是来打工的,赚钱才是王道,面子是最不重要的。只有多表达自己对业务的思考才能展现自己的价值,很多时候跟人探讨自己的想法能及快速的更新自己的知识储备。5、 答主机械工程出身,再说说机械(包括电气)工程如何转行进入互联网公司。看情况,如果是本科,极力建议跨考电气工程,因为很多基础课程像数电模电、电工学、高等数学等重要课程两个学科都有学习,考研难度相对较小。如果是机械的硕士,那

2024-05-14 13:12:04 454

原创 IOS开发之——私人通讯录编辑样式(60)

本文主要介绍一下内容:导航条右侧(已有添加按钮)添加一个删除按钮点击删除按钮,删除tableview条目tableview编辑之前调用,切换tableview中编辑模式(添加、删除模式)二 效果图三 导航条右侧(已有添加按钮)添加一个删除按钮业务逻辑现获取布局中的“add”按钮通过代码新建一个“delete”按钮通过avigationItem.rightBarButtonItems将上面的两个按钮添加进来代码实现123456//获取+按钮UIBarButtonItem *add=self.navigati

2024-05-14 11:27:23 305

原创 http 头信息详解

Cookie:这是最重要的请求头信息之一,参见后面《Cookie处理》一章中的讨论。From:请求发送者的email地址,由一些特殊的Web客户程序使用,浏览器不会用到它。Host:初始URL中的主机和端口。If-Modified-Since:只有当所请求的内容在指定的日期之后又经过修改才返回它,否则返回304“Not Modified”应答。Pragma:指定“no-cache”值表示服务器必须返回一个刷新后的文档,即使它是代理服务器而且已经有了页面的本地拷贝。Referer:包含一个URL,用户从该UR

2024-05-14 03:40:37 558

原创 Glide 这样用,更省内存!!!(1)

其实 LruResourceCache 和 LruBitmapPool 中,对 和 的操作是类似的,这里就以 LruBitmapPool 举例。/gm-LruBitmapPool.png在 LruBitmapPool 中,会根据回调的方法以及参数,调用 或者 ,其实最终都是调用的 方法。它用于裁剪当前缓存资源的个数。/gm-trimtosize.png可以看到,根据裁剪的目标尺寸,会去回收多余的 Bitmap 到合适的目标大小,以达到清理内存的目的。GlideModule 是 Glide 提供的一个

2024-05-14 02:04:32 338

原创 Flutter是跨平台开发终极之选吗?Android开发该如何快速上手Flutter?

跨端技术是Android程序员乃至所有移动开发程序员一直在研究的课题。3月4日,谷歌正式发布了 Flutter 的 2.0。该版本最大的特性就是可以支持五大主流的操作系统:iOS、Android、Linux、Windows 和 MacOS。官方甚至还说丰田将会把 Flutter 带到汽车中。也就是说,我们可以用一套 Flutter 代码适配全平台了。同时间,开发社区讨论炸开了锅:Flutter 到底能不能成为跨平台开发终极之选?Flutter不是正在被放弃吗?相信很多人心中都有上面这些疑惑,今天我们就来好好

2024-05-14 00:44:58 873

原创 [译] 如何用 Android vitals 解决应用程序的质量问题

为了提供一个客观的质量衡量标准,使你可以轻松发现应用需要解决哪些稳定性问题,我们在 Play Console 中添加了一个名为 Android vitals 的新模块。这个模块可以告诉你应用程序的性能和稳定性问题,而不需要在代码中添加仪器或库。当你的应用程序运行在众多设备上的时候,Android vitals 会收集关于应用程序性能的匿名指标。即使在使用硬件实验室进行测试时,它也会以其他方式难以获得的规模为你提供信息。Android vitals 可以提醒你的问题包括崩溃、应用程序无响应(ANR)和渲染时间

2024-05-13 21:07:49 665

空空如也

空空如也

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

TA关注的人

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