匠心独运

职业是编程,爱好是写诗

Effective Java 第20条:类层次优于标签类

标签类(tagged class)有着许多的缺点 破坏可读性 内存消耗 域不能做成final的 一句话:标签类过于冗长、容易出错、并且效率低下。 其实有更好的方法定义能表示多种风格对象的单个数据类型:子类型化(subtyping)。 标签类正是类层次的一种简单的仿效。 为了将标签类...

2019-05-26 21:02:39

阅读数 41

评论数 0

Effective Java 第19条:接口只用于定义类型

当类实现接口时,接口就充当可以引用这个类的实例的类型(type)。因此类实现了接口,就表明客户端可以对这个类的实例实施某些动作。为了其他目的而定义接口是不恰当的。 有一种接口被称为常量接口(constant interface),他不满足上面的条件。这种接口没有包含任何方法,他只包含静态的fina...

2019-05-25 22:16:05

阅读数 26

评论数 0

Effective Java 第18条:接口优于抽象类

Java程序设计语言提供了接口和抽象类两种机制来定义允多个实现的类型。这两种机制的主要区别有: 抽象类中可以存在某些方法的实现,接口不可以 如果要实现抽象类定义的类型,类必须成为抽象类的子类。而对接口来说,任何一个类,只要实现接口里面必要的方法,就可以了,而且不用管这个类处于类的层次的哪个...

2019-05-25 20:49:26

阅读数 18

评论数 0

Effective Java 第17条:要么为继承而设计,并提供文档说明,要么就禁止继承

对于专门为了继承而设计并且具有良好文档说明的类而言,该类的文档必须精确地描述覆盖每个方法所带来的影响。该类必须有文档说明它可覆盖的方法的自用性。 好的API文档应该描述一个给定的方法做了什么工作,而不是描述它是如何做到的。 类必须通过某种形式提供适当的钩子,以便能够进入到它的内部工作流程中...

2019-05-25 15:40:45

阅读数 19

评论数 0

小桃红·秋江

【越调】小桃红·秋江 作者:倪瓒 一江秋水澹寒烟,水影如练,眼底离愁数行雁。雪晴天,绿苹红蓼参差见。吴歌荡桨,一声哀怨,惊起白鸥眠。

2019-05-24 22:55:49

阅读数 47

评论数 0

阳春曲·春景

阳春曲·春景 作者:胡祗遹 几枝红雪墙头杏,数点青山屋上屏。一春能得几晴明?三月景,宜醉不宜醒。 残花酝酿蜂儿蜜,细雨调和燕子泥。绿窗春睡觉来迟。谁唤起?窗外晓莺啼。 一帘红雨桃花谢,十里清阴柳影斜。洛阳花酒一时别。春去也,闲煞旧蜂蝶。 ...

2019-05-24 22:32:40

阅读数 23

评论数 0

AI音箱工作原理浅析

智能音箱工作原理 →1、识别人说的话(ASR ,Automatic Speech Recognition 自动语音识别技术) →2、对识别的内容提取信息并处理(NLP,Natural Language Processing自然语言处理 ) →3、把处理结果发出声音给人(TTS,TextToSpee...

2019-05-19 17:25:16

阅读数 200

评论数 0

念奴娇·千金

临江仙·新春 张世文轩 公元二零一九己亥年四月初五,喜得一女,豪情顿生,故作词一首。 张弓挽箭,射狼星,扶摇而上万里。 芷约兰期,再重逢,劝君切莫相负。 夏木阴阴,芳草未歇,荷花镜里香。 乃听蝉鸣,午阴嘉树清圆。 吾忆欢趣儿时,两小无猜,青梅竹马。 千转娇莺,隔琼林,一片欢声笑...

2019-05-16 21:42:54

阅读数 24

评论数 0

最近面试别人,分享一些心得

行业内流传一句话:面试造航母,工作拧螺丝。 这句话不是让你消极对待面试,相反,这是要面试者对面试过程保持放松心情,对面试结果保持平和心态。 面试更像是一次博弈,成功与否,因素很多,不是说你表现得好,你就OK,表现得不好,你就没机会了,这里面还是有很多套路的。 作为一个搬砖娴熟的Android码农...

2019-04-29 12:49:20

阅读数 206

评论数 0

Flutter实战(四)---LoadingDialog

在实际项目开发中,我们获取数据总会有一个等待过程,为了不让用户迷惑或者误操作,我们一般都会设计一个等待加载框 ,起到一个呈现数据前的过渡作用。 效果: 实现: 自定义一个等待加载提示框,继承Dialog /* * 自定义等待加载提示框 * Created by ZhangJun on 2...

2019-04-28 11:30:17

阅读数 147

评论数 0

Flutter实战(三)---SnackBar

Snackbar是Android 5.0新特性——Material Design中的一个控件,用来代替Toast,Snackbar与Toast的主要区别是:Snackbar可以滑动退出,也可以处理用户交互(点击)事件。 Snackbar的特性 Snackbar会在超时或者用户在屏幕其他地方触摸...

2019-04-17 09:09:39

阅读数 45

评论数 0

Flutter实战(二)---多语言跨平台

前言 去年12月份,Flutter1.0正式版发布,标志着Flutter已经达到可以投入商用项目的状态,我们可以看到Google的野心,不止步于移动端,已经向桌面端(Flutter Desktop Embedding)和Web端(Hummingbird)逐步拓展,大有一统天下之趋势。 时隔三月,在...

2019-04-10 09:10:00

阅读数 55

评论数 0

Flutter实战(一)---闪屏(启动)页面的实现

很多app启动之后都会出现一个splash启动界面,显示广告信息或产品的LOGO、公司的LOGO或者开发者信息。如果应用程序启动时间比较长,那么启动界面就是一个很好的东西,可以让用户耐心等待这段枯燥的时间。 那么,我们使用Flutter开发应用该怎么实现闪屏页面呢? 有两种方案可以实现:第一种,平...

2019-02-26 12:42:38

阅读数 464

评论数 0

Android不用申请权限读取系统目录文件的方法

文件保存在getCacheDir().getPath()路径里 /** * 获取到/data/user/0/[packageName]/cache目录下图片并显示在imageView中 */ public void loadCacheDir(ImageView ...

2019-02-23 15:43:10

阅读数 124

评论数 0

如何向一个Fragment传递参数---setArguments方法的介绍

Fragment只有一个无参构造函数,并且要显式定义 用法 public static XxFragment newInstance(String text) { XxFragment fragment = new XxFragment(); Bundle bu...

2019-02-23 15:34:48

阅读数 38

评论数 0

Android转场动画--共享元素(Shared Element)

什么是共享元素呢?可以理解为当页面跳转时,看起来一个View属于界面A又属于界面B, 看一下下边这个效果: 在这个转场动画中,图片和文字都是共享元素,具体怎么实现这种效果呢? Step1 首先需要先在style.xml配置上允许内容过度。 <style name=&...

2019-02-23 15:28:56

阅读数 59

评论数 0

简析React Native

跨平台+动态更新 传统的客户端开发模式是怎样的呢? Android 与 iOS Team 分别编写客户端代码,打包,分发到 Play Store 和 Apple Store,通过更新 JSON 数据来更新页面。 不过,当客户端发生严重问题而服务器上无法 quick fix 时,就不得不重新发版。 ...

2019-02-23 15:12:06

阅读数 25

评论数 0

Android SurfaceView使用详解

SurfaceView的定义 SurfaceView是View的子类,它内嵌了一个专门用于绘制的Surface,你可以控制这个Surface的格式和尺寸,Surfaceview控制这个Surface的绘制位置。surface是纵深排序(Z-ordered)的,说明它总在自己所在窗口的后面。 S...

2019-02-23 14:57:52

阅读数 23

评论数 0

为什么java构造函数的构造器只能在第一行写this() 或者super()

super()在第一行的原因就是:子类有可能访问了父类对象, 比如在构造函数中使用父类对象的成员函数和变量, 在成员初始化使用了父类, 在代码块中使用了父类等, 所以为保证在子类可以访问父类对象之前要完成对父类对象的初始化 this()在第一行的原因就是:为保证父类对象初始化的唯一性. 我们假设一...

2019-02-23 14:18:14

阅读数 37

评论数 0

Android内存分析

dumpsys meminfo <pid> procrank PID Vss Rss Pss Uss cmdline total free buffers cached shmem slab 从以上打印可以看出,一般来说内存占用大小...

2019-02-19 10:47:22

阅读数 45

评论数 0

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