vim

Command-Line Mode

Tip 27 Meet Vim’s Command Line

  • :[range]delete [x]
  • :[range]yank [x]
  • :[line]put [x]
  • :[range]copy {address}
  • :[range]move {address}
  • :[range]join
  • :[range]normal {commands}
  • :[range]substitue/{pattern}/{string}/[flags]
  • :[range]global/{pattern}/[cmd]
  • :edit/:write
  • :tabnew
  • :split
  • :prev/:next
  • :bprev/:bnext
  • :h ex-cmd-index

Tip 28 Execute a Command on One or More Consecutive Lines

  • :print
  • :delete
  • :join
  • :substitute
  • :normal
  • :3 <=> 3G
  • :3d <=> 3G dd
  • :{start},{end}
  • . = the current line
  • $ = the end line
  • % = all the lines

面试问题大汇总(不断更新)

Android

  • Activity & Fragment
    • Activity的生命周期
      • onDestroy一定会被执行吗?
      • onStop中能更新数据吗?
    • Activity的启动模式
      • 什么情况下Activity的onNewIntent会执行?
    • Fragment能否不依赖Activity存在?
    • 描述一下Framgent的栈管理机制?
    • Activity和Fragment如何通信?
    • 如果后台的Activity由于某原因被系统回收了,如何在被系统回收之前保存当前状态?
    • Activity间通过Intent传递数据大小有没有限制?
  • Service
    • Service有几种启动方式?
    • Service的生命周期?
    • Service和IntentService的区别是什么?
  • ContentProvider & 数据
    • 请介绍下ContentProvider是如何实现数据共享的
    • 请介绍下Android的数据存储方式
  • Intent
    • 什么是显示intent(explicit intent)、什么是隐式intent(implicit intent)?
    • intent-filter的组成部分有哪些?
  • View & Layout
    • View的绘制流程
    • Touch时间的传递机制
    • Android中的几种动画
      • FrameAnimation
      • TweenAnimation
      • PropertyAnimation
    • Android中常用的布局
      • RelativeLayout & LinearLayout & ConstraintLayout
    • Activity、View、Window之间的关系是什么?
  • Android中跨进程通讯有几种方式(多进程
    • 访问其他应用程序的Activity
    • Content Provider
    • 广播(Broadcast)
    • AIDL
  • 线程
    • 单线程模型中Message,Handler,Message Queue,Looper之间的关系
    • Thread和HandlerThread的区别是什么?
    • 造成ANR的原因是什么?
  • 内存
    • 内存溢出和内存泄漏有什么区别?
    • 何时会产生内存泄漏?
    • 内存优化有哪些方法?
  • 设计模式
    • Android 中常见的设计模式有哪些?
    • OkHttp的interceptor是什么设计模式?chain of responsibility
    • 什么是AOP?
  • 其他
    • asset 和 raw 文件夹的区别是什么?
    • ApplicationId和PackageName的区别是什么?
    • 说一个jsbridge的实现方式?
    • DVM和JVM的区别是什么?
      • Android 的类加载机制?ClassLoader
    • Android最新版本是什么?有哪些新特性?
    • version_code和version_name的区别是什么?

协议

  • http的method有哪些?
  • https与http的区别是什么?
  • 能描述一下TLS握手的过程吗?
  • 什么是中间人攻击(MIMA)?
  • 什么是对称加密、什么是非对称加密?
  • OAuth2的client_id和client_secret是干什么用的?
  • 如何在http层面优化网络?

工具类

  • git怎么暂时保存更改

Java

  • Java中volatile的作用是什么?
  • 注解 Annotation
    • 生命周期有哪些?
    • 作用对象有哪些?
  • 不应该被序列化的字段用什么关键字标记?- transient
  • WeakReference和WeakReference的区别
  • synchronized的用法(类和对象)
  • 为什么内部类会持有外部类的引用?
  • 怎样继承一个内部类?
  • 内部类的构造方法是什么?
  • Java中try catch finally的执行顺序?
  • Retrofit中如何使用了动态代理?
  • RxJava的线程模型是什么?

FP

  • 闭包是什么?lambda是一个闭包吗?
  • FP的有哪些特性?
  • Reactive 用到了FP的哪些特性?

参考资料

管理学习日记(二)

你印象最深刻的是什么

管理七原则之一——打造信任

你的感受如何?哪里感觉很好、很满意、很有感触?有什么联想?

因为信任,所以简单。信任能够消除不必要的揣测,让沟通变得更直接、更简单,而且有效的激励也是建立在信任的基础之上。

信任是双向的,管理者要信任下属,下属也要信任管理者。只有内在的真诚才能建立真正的信任,因为人与人之间的沟通,其实很容易能够感受到对方是真诚还是虚伪。互相的信任能够带来更多的安全感,有了安全感,我们才能更忠于自己的内心,做决策或做任务时就不会瞻前顾后。

打造信任让我联想到了一个诚信社会应该有的样子:

  • 进超市买东西不用存包,因为他们相信我不会偷东西
  • 进饭馆可以安心吃东西,因为我相信他们不会使用地沟油
  • 丢了东西也不会担心,因为我相信警察叔叔能帮我找到
  • 看见别人跌倒了也会上前去扶,因为我相信不会被讹上

构筑在诚信之上的社会会让每个人都活得放松、自然。

我学习到了什么?领悟了什么?发现了什么?主要体会是什么?

建立诚信必须要拿出勇气真诚

虽然信任很重要,但是过犹不及,盲目的信任其实是在逃避责任,信任不是做甩手掌柜。

以身作则、坚定信念,共同的价值观有助于建立彼此间的信任。

到目前为止,你觉得回去需要:

  • 开始做什么?
    • 来一次走心的一对一沟通
    • 发自内心地相信别人可以做得更好
  • 停止做什么?
    • 打击责备别人
  • 调整和改进什么?
    • 更多的放权
    • 更多的鼓励
    • 向上管理

管理学习日记(一)

印象最深刻的点

TL的吐槽环节中,每个小组都提出了很多槽点,有点罄竹难书的意思。

其实吐槽别人的同时,我们也需要时刻反思自己有没有中枪,对TL的不满在某种程度上能反映出自己内心想要的东西,因为能明确地指责别人,说明自己是在意这件事的。

很多时候,说者无心、听者有意,因为认知的差异会导致理解偏差,所以我们在与他人沟通时要多站在对方角度考虑问题,同理心和换位思考的能力非常重要。尽量追根溯源,弄清楚对方思考的出发点(也就是WHY)更有助于我们找到问题的根本原因。

对于大部分普通人来说,知易行难,也就是说道理我都懂,但就是不懂如何去执行,所以工具和方法论很重要。这次培训对我来说最大的意义是:能够学会如何拆解困境并找到破局之道。 又让我联想到以前在FUJITSU工作时,故障复盘时经常用到一个叫「根本原因分析」的方法:

这个方法要求我们能不断地追问自己,打破砂锅问到底,不要停留在问题表面,尽量去寻找本质。当然做不到「深度心理学」的专业性,但是方向至少是对的。

收获和启发

课程最后所讲的「结果导向」深有感触。

老板有一次在员工大会上说过:我们为过程鼓掌,但是只为结果买单。管理者带领团队的第一要义就是要拿结果,这个结果是真正意义上的“果实”,举个栗子:果农辛苦劳作一年,果树打理的也很漂亮,但是如果没有收成,那么这一年就无法创收。

也就是说,我们在执行OKR时,即使KR完成得很漂亮,如果O没有达成,依然是无法满足期望,这也证明了KR及时调整的重要性。

目标刻在岩石上、计划写在沙滩上

具有挑战性的O可以有效激励有追求的人去拿到「超出期望」的结果,取得高绩效。但是“激励”要因人而异, 要去分析每个团队成员的“需求”,“复盘”、“团建”以及“一对一沟通”可以有效帮助我们了解团队成员。

过去一年仅仅在“按部就班”地执行管理工作,一边总结一边回想着之前做的事,有一种“认知升华”的感觉,貌似看懂了很多管理动作背后的动机。:)

管理是一门科学,2018年我要好好学一学

小程序开发总结

小程序的核心是一个响应式的数据绑定系统,逻辑上分为视图层和逻辑层。这两层始终保持同步,只要在逻辑层修改数据,视图层就会相应的更新。

小程序遵守Convention Over Configuration的原则,没有留给开发者自由选择的余地。

支付宝小程序和微信小程序的开发框架几乎一模一样,以下代码以微信小程序为例。

Mockito 详解(五)MockitoAnnotation

MockitoAnnotations负责初始化@Mock@Spy@Captor@InjectMocks等注解。

如果不用@Mock,我们当然可以手动创建一个mock对象:

1
List mockedList = Mockito.mock(List.class);

但是相比于手动创建,使用注解可带来如下好处:

  • 代码更简洁
  • 避免重复创建
  • 可读性好
  • 验证错误更易读(因为注解默认使用field name来标记mock对象)