自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zhangxing

天道酬勤,天下未定,你我皆是黑马!

  • 博客(260)
  • 资源 (25)
  • 论坛 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 SpringBoot中Velocity动态模版引擎

Velocity模版引擎简介Velocity是一个基于java的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象。当Velocity 应用于web开发时,界面设计人员可以和java程序开发人员同步开发一个遵循MVC架构的web站点,也就是说,页面设计人员可以只关注页面的显示效果,而由java程序开发人员关注业务逻辑编码。Velocity基础语法1."#"用来标识Velocity的关键字,包括#set、

2021-09-09 11:29:32 69

原创 Java经典面试题

1. 缓存雪崩,缓存击穿,缓存穿透区别2. Spring如何解决循环依赖问题3.MYSQL语句执行全过程4.SpringBoot自动装配原理

2021-08-26 10:43:56 84

原创 Swagger Model时间戳自动转型

前言坦白来讲,如果不做任何处理,从数据库表的Date类型字段通过接口吐出来的却是一串时间戳,这样的话,开发者还得另外开辟一个字段来存储转化的具体日期。Swagger 集成POM依赖 <!-- Swagger --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox

2021-06-25 16:17:56 144

原创 JAVA之责任链模式

责任链模式简介责任链模式是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任。组成角色抽象处理者(Handler)角色:定义出一个处理请求的接口。如果需要,接口可以定义 出一个方法以设定和返回对下家的引用。这个角色通常由一个Java抽象类或者Java接口实现。具体处理者(Con

2021-06-10 20:00:20 62

原创 JAVA之装饰者模式

前言装饰者模式,动态的给对象添加一些额外的属性或行为。相比于使用继承,装饰者模式更加灵活。装饰者模式组件Component:装饰者和被装饰者共同的父类,是一个接口或者抽象类,用来定义基本行为ConcreteComponent:定义具体对象,即被装饰者Decorator:抽象装饰者,继承自Component,从外类来扩展ConcreteComponent。对于ConcreteComponent来说,不需要知道Decorator的存在,Decorator是一个接口或抽象类ConcreteDec

2021-04-28 21:29:27 82

原创 Git标准的提交规范

说说为什么要commit message? 这个很重要,对于后期的代码review有着重要的凭证;所以commit message写得好,是一种十分赏心悦目的代码走读体验。编写规则 type: desc 或 [type]:descfeat - 新功能 featurefix - 修复 bugdocs - 文档注释style - 代码格式(不影响代码运行的变动)refactor - 重构、优化(既不增加新功能,也不是修复bug)perf - 性能优化test - 增加测试chore .

2021-04-28 16:16:11 164

原创 JAVA之模板方法模式

模版方法模式,顾名思义就是定义一个抽象父类,其涵盖了需要子类实现的模版方法,一般地,不让子类实现的方法用final修饰;需要让子类实现的方法用protected修饰。抽象父类public abstract class Animal { final void attribute() { eat(); shout(); sleep(); } abstract void eat(); abstract void sh.

2021-04-26 21:29:51 55

原创 Golang之数据库连接池

Golang之数据库连接池前言池化代码Go init函数详解引用代码前言数据库池化,是目前最常用且行之有效的对数据库连接优化的技术手段,今天我们就golang中如何实现数据库连接池。池化代码package utilsimport ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql")const ( userName = "root" pwd = "attendancecheck_du" host

2021-03-13 14:24:16 349

原创 SpringBoot中Lucene索引的导入

前言lucene是一款强大的支持全文索引的工具包,注意这里是工具包;而我们熟知的solr、elasticsearch都是基于lucene开发的独立出来的中间件服务,不是工具包。全文索引导入方案在应用启动的时候,我们加载lucene索引导入本地服务器某文件夹下;然后在项目的定时器中定时更新本地索引库。实现方案添加依赖 <!--lucene高亮显示 --> <dependency> <groupId>org.ap

2021-03-08 16:15:08 99

原创 Golang搭建简易web应用

前言golang作为一门敏捷开发的编程语言,自身就支持高并发优良特性,这无疑被无数编程者所钟爱,今天就来讲讲golang如何搭建web应用。搭建环境这里笔者以ubuntu环境为例,环境搭建链接:https://zhangxing.blog.csdn.net/article/details/89379501疑惑很多小伙伴们对golang很是感兴趣,但苦于golang各种包需要翻墙,不会科学上网的同学索性了放弃了学习golang;其实不然golang开发者在中国还是占有很大部分比例的;众所周

2021-03-08 11:39:41 155

原创 MySQL5.7以下版本如何操作JSON字段

目录前言需求背景案例分析前言MySQL5.7及以上版本自带有操作JSON的内置函数,这里就不再赘述。今天我主要记录下MySQL5.7版本以下如何操作JSON字段。需求背景数据库某表的某字段是json串存值,现在要以json中某一字段的值作为这条记录是否能够被查询到的开关。大家可以设想下,如果不以为sql进行过滤的话, 在逻辑层面进行过滤对于分页数据势必有影响的,最好的情况还是在sql层面解决数据过滤问题。案例分析eg:学生表info字段json如下{ "control":

2021-03-05 15:59:45 217 1

原创 经典算法之分治算法

前言分治算法是递归算法的一种变体,执行效率却高于递归;主要思想是将将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之。二分法及快速排序算法都是运用二分法实现的。分治法适用的场景该问题的规模缩小到一定的程度就可以容易地解决;该问题可以分解为若干个规模较小的相同问题,即该问题具有最优子结构性质。利用该问题分解出的子问题的解可以合并为该问题的解;该问题所分解出的各个子问题是相互独立的,即子问题之间不包含公共的子子问题。经典案例:二分查找或折半查找 publ

2021-02-23 14:47:58 115

原创 谈谈HSF在Spring中的应用

谈谈HSF在Spring中的应用HSF简介HSF的应用场景什么是二方包服务提供方怎么提供服务?服务调用方怎么订阅服务?HSF简介HSF即高可用服务框架(High-speed Service Framework),是在阿里巴巴广泛使用的分布式RPC服务框。HSF的应用场景HSF调用链包括服务调用方及服务提供方,服务提供方需要提供可用服务并提供二方包给服务调用方,服务调用方需要订阅提供方的服务,通过二方包调用相应的API完成请求。什么是二方包公司内部的依赖库,一般指公司内部的其他项目发布的

2021-02-05 15:15:38 309

原创 姗姗来迟的2020年终总结

姗姗来迟的2020年终总结前言2020@大事回顾2020@自我的成长新年的期许新年的祝福前言2020年度总结,我想了想,还是得总结下。总有一瞬间,千言万语汇聚于心,却又不能万分之一的表达;冰冷的手指滑落在键盘的每个角落,也算是给这个与众不同的年份,一个圆满的交代。2020@大事回顾2020最为震慑的当属至今未灭的新冠肺炎病毒,面对严峻的病毒侵犯,全世界人在这个瞬间仿佛距离得最近了,"同一个地球,同一个人类"的概念愈发坚定。面对突如其来的新冠侵袭,让我深深的感受到人作为一个社会个体的卑微与弱小;

2021-01-16 17:39:37 1202 10

原创 K8S难不难?搭个集群试试看!

Kubernetes自我介绍Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效,Kubernetes提供了应用部署,规划,更新,维护的一种机制。Kubernetes一个核心的特点就是能够自主的管理容器来保证云平台中的容器按照用户的期望状态运行着(比如用户想让某应用一直运行,用户不需要关心怎么去做,Kubernetes会自动去监控,然后去重启,新建,总之让应用一直提供服务),管理员可以加载一个微服务,让规划器来找到合适的

2021-01-16 16:35:29 650 1

原创 SpringBoot参数花式校验

前言对于参数检验这块,如果使用不当,对于程序猿编码来说,可能会出现大量的冗余或繁琐的判空代码,这种代码在code review中是不期望看到的;如何优雅的实现参数校验呢?实现方案定义入参param body@Data@ApiModel(value = "用户信息",description = "用户信息")public class UserParam{ @ApiModelProperty(value = "用户ID", name = "userId") // 这里的mes

2021-01-08 17:34:31 140 1

原创 数据结构之Stack

前言stack即为栈,主要的特性先进后出。可以把栈通俗的理解为一个有且只有一个洞口的山洞,洞口横向每次能且只能刚好通过一人的山洞。这样的话,先进洞的人出洞最晚,最后进洞的人出洞却最早。栈的应用场景需求场景:将一个有序队列倒序后,每个实体嵌套下一个实体,直至栈帧为空栈的使用 Stack<EmployeeTalentDTO> structureEmployeeTalentDTOStack = new Stack<>(); sortList.for

2020-12-09 15:09:54 124

原创 经典算法之递归算法

前言何为递归?通俗理解就是在满足某一条件的基础上,重复执行某一代码块,直到不符合执行的条件为止。在开发过程中,很多场景会运用递归算法来解决实际项目需求;但是递归有着最为致命的缺点,如果使用不慎,会使项目一直重复执行递归函数,直到系统抛出stack over flow,所以在运用递归的时候,要慎之又慎!递归算法的应用场景如果在遇到相同逻辑代码块的重复迭代,那么毋庸置疑,运用递归算法不二之选。递归算法的实现 private void iterationByDeptName(BuLevelDTO

2020-12-07 15:22:26 179

原创 经典算法之冒泡算法

前言冒泡算法是一种经典的排序算法,在大学起初学习C语言的时候,冒泡算法是笔者接触编程的第一个算法。冒泡,顾名思义就是轻(小)的往上冒,重(大)的往下沉,也称鸡尾酒算法。算法解析首先我们需要确立两层嵌套for循环,第一层for循环主要控制总体循环的趟数,第二层for循环主要是比对相邻的两个数,运用CAS的思路将每一趟的第二层for循环执行完成,就会将一个最大的数沉到最下面。来张图,理解效果会更佳!算法实战public class BubbleSort { public static

2020-11-20 18:11:54 500

原创 【git reflog】程序员的后悔药

目录前言git reflog 使用场景git log与git reflog的区别如何在git中卖后悔药前言世人皆说,这个世界上是没有后悔药可吃的!所以在做某件事之前,需要考虑到事情的后果!但是今天笔者想说的是,在git维护的代码版本的世界里,后悔药常有,卖后悔药的人却不常有!今天笔者就分享下如何做一个卖后悔药的人。git reflog 使用场景很多时候,我们需要回退代码版本,但是可能在操作的过程中,我们误回退了些许,或者删除了些许,那么如何还原之前回退的或删除的commitId呢?这个时候gi

2020-11-18 16:35:46 492

原创 Dockerfile之最佳实践

文章目录Docker 简介Dockerfile 最佳实践Dockerfile 是什么?Dockerfile 命令详解Dockerfile 最优编写策略Docker 简介Docker 是一个开源,轻量级的应用容器引擎,基于 Golang 语言开发,用于创建、管理和编排容器。与 VMware 虚拟机相比,Docker 使用容器承载应用程序,而不使用操作系统,所以它的开销很少,性能很高。但是 Docker 对应用程序的隔离不如虚拟机彻底,所以它并不能完全取代 VMware。Docker 运用 Dockerfi

2020-11-14 13:37:26 199

原创 git commit --amend如何合并多个commitId

前言很多时候,由于自己的疏忽,把该提交的文件没有提交上去,但是考虑到后期代码的code review,最好是一个功能对应一个commitId,这是最理想的状态。那么问题来了?如何合并多个commitId呢?如何合并多个commitId当然笔者在之前的Git专栏文章里面已经介绍了相关的方法,相信看了笔者的Git专栏后,就很容易知道其中的两种方案;第一种:git reset;第二种:git rebase;今天笔者再介绍另一种方案:git commit --amend。首先对于某个功能来个不完整的

2020-11-13 22:55:38 641

原创 Maven依赖优化

前言先谈谈自身的项目经验,每次在接手二次开发项目的时候,笔者都能发现一个明显却又广泛被忽视的问题:maven依赖很杂乱,甚至多有冗余的嫌疑;虽然说对于项目的运行没有什么障碍,但是对于后期的jar依赖的版本维护会很痛苦的,每次改升级某个JAR包版本的时候,还需要全局搜索并依次修改其版本。可想而知,这种方法是最笨且失误率是最大的。Maven依赖优化排除无用重复的基础JAR包每个jar包可能会依赖多个基础jar包,在工程中可能存在不同的jar包的基础jar相互重复,也就是我们经常见到的omitted

2020-11-11 16:21:19 294

原创 Mysql获取最新记录

前言怎么获取Mysql表中同一标识(flag)下多条记录的最新记录呢?这里的宗旨是先order by time desc,其结构作为一个父表,然后再在父表中进行group by flag;这里值得注意的是,如果order by 与 group by在同一维度中的话,group by应该放在order by之前。SQL示例对于多张维表 select task.* from task_info task left join( select *

2020-10-30 14:48:35 3502 6

原创 老生常谈的ArrayList与LinkedList

ArrayList与LinkedList再常见不过的数据结构了,也是平常面试中极易遇到的面试题之一,如果还没搞清楚的,赶紧过来看下星哥的解读,撸掉它!就是干!小王最近刚被公司裁员了,迫于生计,一天也不敢消停,这不魔鬼面试周已经拉开了帷幕。面试官:你能说说ArrayList与LinkedList的区别吗?小王:ArrayList底层是基于动态数组的,而LinkedList底层是基于双向链表的。面试官:那你能分别说说两者分别适合什么场景使用?小王:好的。ArrayLsit适用于随机查询...

2020-10-16 16:07:27 224

原创 谁在贩卖焦虑?

前天发表的《30+的程序猿,路在何方》热度暴涨,一时炸开了锅,这个结局却是我始料未及的。从评论区络绎不绝的回复,字里行间无不感同身受,表现出一种隐隐的焦虑。谁在贩卖大龄程序猿的焦虑?又是谁在贩卖成年人的焦虑?当今局势羸弱,疫情肆虐,米国夹逼,国内乃至世界经济低迷下行,像我等这般千千万万普通老百姓能够苟活于世,焦虑实属在所难免。昨天有个粉丝私信我,“星哥,我被公司裁员了,到现在还没找到工作,怎么搞啊?”。语气分外焦灼却又万般无奈,姑且来个推己及人的设想:一旦工作丢了,家里老婆孩子等着养,房贷车贷指

2020-10-15 16:17:26 332 1

原创 岁月如白驹过隙,抓住了你就是黑马

依稀记得,那是个炎热的夏天,一个身穿黑色短袖,戴着一副黑色镜框眼镜的少年,被公司HR领到我面前,略显得有些怯羞;已记不清我当时又在研究什么黑科技,想着来了,咱就好好给人面试,毕竟大热天的出个门,跟蒸桑拿根本没有什么两样。面试过程中,我大概问了些关于Java基础知识及项目实践中所遇到的棘手问题的处理方案,当时看来面试少年面试情况还算满意。我顺理成章的跟老板如是说,“X总,这个相比之前的面试者,回答的稍微好些,总体感觉还行!”X总风风火火的跑过去跟少年说,“明天你就过来上班吧”;X总向来豪横惯了,薪资一

2020-10-13 15:57:20 489 4

原创 30+的程序猿,路在何方?

​最近,由于岗位招聘要求,电话面试了许多程序猿,他们的年龄大都分布在22-25岁之间,多么好的黄金敲码阶段啊,不禁地生出一丝丝羡慕。面试期间,大概算了下,估计有个40+份的简历吧,出于工作稳定性考虑,我还是倾向于选择年龄稍微大的程序猿。这里不是有意鄙视年纪较轻的程序猿,这完全取决于岗位jd要求,而且我相信,年轻者更有活力,更富有创造力。当捕捉到一个32岁的求职者,面试职位:高级开发工程师。我心里一阵欢喜,便毫无吝啬的拨通了对方的电话,电话大抵嘟嘟嘟的连续了50秒,接电话的是一个声音暗沉的中年男人。中

2020-10-12 15:38:46 3729 27

原创 葵花宝典之Git All-in

文章目录前言Git 分区Git 流程规范分支的创建项目的分支规范开发中需要注意的点Git 的棘手场景分析拉取最新主干代码,进行功能迭代或 bug 修复如何重命名远程分支功能开发一半,临时修复线上紧急 bug如何挑拣别人的 commit如何回退版本如何撤销某一个 commit如何合并分支前言Git 是一款优秀的分布式版本控制工具,对于大型项目的多人开发场景,Git 能够基于粗粒度功能 branch 或更细力度的 commitId 来进行版本控制。总而言之,学好 Git,老板再也不用担心代码被覆盖呢!给我一

2020-10-11 20:09:50 717

原创 如何自定义注解实现拦截

1.前言在springmvc及springboot中,注解随处可见,我们几乎每天都在跟他打交道;那么如何自定义注解呢?自定义注解会不会更香呢2.Java注解理解Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制。Java 语言中的类、方法、变量、参数和包等都可以被标注。和 Javadoc 不同,Java 标注可以通过反射获取标注内容。在编译器生成类文件时,标注可以被嵌入到字节码中。Java 虚拟机可以保留标注内容,在运行时可以获取到标注内容 。 当然

2020-09-18 15:40:12 794 1

原创 .gitignore过滤配置无效

1 .gitignore是什么?通俗来讲,.gitignore是基于Git控制版本用来过滤指定每次提交的文件或文件夹的配置文本;一旦配置在.gitinnore中,后续提交就配置的文件或文件夹中的代码,系统就不显示更新;一般地,.gitignore会过滤一些自动生成的配置类。2 .gitignore样式仅供参考HELP.mdtarget/*/target/!.mvn/wrapper/maven-wrapper.jar!**/src/main/**!**/src/test/**###

2020-09-12 17:05:54 152

原创 Java8炸翻天的Stream用法

1.Stream简介Stream 作为 Java 8 的一大亮点,它与 java.io 包里的 InputStream 和 OutputStream 是完全不同的概念。Java 8 中的 Stream 是对集合(Collection)对象功能的增强,它专注于对集合对象进行各种非常便利、高效的聚合操作(aggregate operation),或者大批量数据操作 (bulk data operation)。Stream API 借助于同样新出现的 Lambda 表达式,极大的提高编程效率和程序可读性。同时

2020-09-10 17:33:35 396

原创 oss多线程分片上传

1. 前言oss是阿里巴巴研发的分布式存储中间件,可以存储各种文件:图片,文档等;今天博主就oss多线程分片上传作个分享。2. 分片代码2.1 主线程代码 private static final long EACH_PART_SIZE = 2 * 1024 * 1024; // 创建InitiateMultipartUploadRequest对象 InitiateMultipartUploadRequest request = new Initia

2020-09-08 11:42:23 949

原创 Docker baba带你一键安装mysql

1. 场景还原在传统的mysql安装教程中,惯用的方法就是去官网下载mysql zip或tar包,然后再去对应的系统手动进行安装;这一系列的操作甚是繁琐,一招不慎,很可能会安装失败。今天就docker安装mysql以单独的篇幅做个记录。2. 安装命令docker run --name some-mysql --net=host -e MYSQL_ROOT_PASSWORD=my-secret-pwd -d mysql:5.7或docker run --name some-mysql -p 3

2020-09-01 19:57:43 191

原创 史上最简单的SpringBoot docker部署大法

1.创建一个简单的springboot应用@SpringBootApplication(exclude={DataSourceAutoConfiguration.class})public class SpringbootwithdockerApplication { public static void main(String[] args) { SpringApplication.run(SpringbootwithdockerApplication.class, args

2020-08-28 15:56:28 594

原创 Java全局异常捕捉

1.场景还原 在项目开发中,对于各种异常都有不同的报错提示或策略,无疑对于用户或者开发来说,是一个很好的用户体验;如何在java定义一个全局异常捕捉呢?2.实现方案2.1 自定义一个业务异常类@Setter@Getterpublic class BizException extends RuntimeException { private static final long serialVersionUID = -6233506444097954612L; ...

2020-08-21 18:04:17 1503

原创 MySQL单条insert语句,插入多条数据记录

1.场景分析 当一条sql语句中包含多个insert,且以分号隔开,对于不同的mysqlb版本,有的可以执行成功,有的却直接报错com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException2.实现方案

2020-08-17 17:47:29 1601

原创 git 查看某commitId的提交内容

1.场景还原 在开发过程中,可能会对某次提交的commit的内容进行查看或进行代码确认,这个时候git的这个查看内容的命令就显示的格外重要。2.命令详解 要实现上述需求,可以运用一下两个git命令2.1 git show commitIdgit show commitId2.2 git log -p -ngit log -p -n这里的n表示提交的最近的次数;欢迎加入博主的Java博客党VIP群,群号:779015139;如果还有什么不懂的地方,可以私信博主,...

2020-08-16 15:38:25 9740

原创 SpringMVC中filter实现跨域请求

1.需求背景 如果在项目中有需要暴露某一接口给外部服务调用,那么对于web项目势必会出现跨域情况,那么如何解决这个跨域呢?2.实现方案i. CORSFilterpublic class CORSFilter implements Filter { private static final Logger logger = LoggerFactory.getLogger(CORSFilter.class); @Override public void init(F..

2020-07-27 15:49:51 508

原创 泛型的今生来世

1.什么是泛型? Java 泛型是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。2.为什么要用泛型?3.泛型的分类...

2020-07-01 14:46:33 146

Zxing二维码生成与扫描

二维码生成与识别的demo

2016-10-19

websocket实现服务端与客户端通信

websocket实现服务端与客户端实时通信,实现即时推送功能

2021-09-18

MQTT实现前后端实时通信

该demo主要围绕mqtt如何实现前后端实时通信及如何设计优雅的主题(topic),适用于物联网mqtt通信集成方案或实时性较强的通信功能。

2021-01-14

MQTT定时上报第三方系统

根据第三方提供的MQTT配置信息,topic的设计及playload封装,定时的上报相关参数给第三方系统

2021-08-28

基于SpringBoot的微服务考勤系统

该项目主要基于SpringBoot的考勤系统,主要涉及角色管理,用户管理,考勤管理,课程管理等模块组成

2021-01-14

实现app后台更新进度

实现app后台更新进度

2016-12-14

webviewCacheDemo

webview的缓存,内存泄漏的处理及加载

2016-12-18

android6.0权限适配

android6.0权限适配

2016-12-08

Zxing jar包

这是一个zxing的架包

2016-10-19

ShareSDKDemo

这是一个一键分享至各个平台大的demo

2016-10-09

MaterialRefreshLayout

这是一种新的上拉刷新,下拉加载更多的控件

2016-10-25

baiduMap1Demo

百度地图Demo,涵括了基础地图,定位,检索等功能

2016-10-17

自定义设置刻度控件

自定义设置刻度控件

2016-11-27

百度key的shh1生成工具

这是一个自动生成百度地图的SHH1值的工具

2016-10-17

MD5签名生成器

2017-04-11

日期选择器

日期选择控件

2016-11-30

progressDialogDemo

自定义progressDialog

2016-12-21

HiJson.exe

格式化json数据的工具

2016-10-11

gson开源架包

Gson开源架包

2016-10-12

sourceTree

代码托管工具

2017-07-05

listview的自动显示与隐藏

toolbar的自动显示与隐藏

2016-10-23

JsonWeather

json解析天气信息

2016-10-11

GsonTrainDemo

这是一个利用Gson解析json数据的Demo

2016-10-12

自定义View

自定义View

2016-09-29

BmobDataAysc

BmobDataAysc

2016-10-06

eagle-zhang的留言板

发表于 2020-01-02 最后回复 2020-01-02

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

TA关注的人 TA的粉丝

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