王家兴,男,90后草根站长,技术宅,有时间就晚上出去跑跑步 目前的博客,除了一些笔记,其它全部原创输出,就当自己瞎写吧,反正前期也没指望有人看。 爱逛技术社区,看书,王者荣耀,美剧《硅谷》 主要擅长Android应用开发,但目前还没达到高级工程师级别,正在向这个目标努力。
参考 《设计模式:可复用面向对象软件的基础 》5.2 Command 命令 对象行为型模式 《Android源码设计模式解析与实战》第11章 让程序畅通执行--命令模式 意图 将一个请求封装为一个对象,从而使你可用不同地请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销地操作。
参考 《设计模式:可复用面向对象软件的基础 》5.3 Interpreter 解释器 类行为型模式 《Android源码设计模式解析与实战》第10章 化繁为简的翻译机--解释器模式 意图 给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器适用该表示来解释语言中的句子。
参考 《设计模式:可复用面向对象软件的基础 》5.1 Chain of responsibility 职责链 对象行为型模式 《Android源码设计模式解析与实战》第9章 使编程更有灵活性--责任链模式 意图 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。
参考 《设计模式:可复用面向对象软件的基础 》5.8 State 状态 对象行为型模式 《Android源码设计模式解析与实战》第7章 随遇而安--状态模式 意图 允许一个对象在其内部状态改变时改变它的行为。
参考 《设计模式解析》 第十一章 Abstract Factory模式 《设计模式:可复用面向对象软件的基础 》3.1 Abstract Factory 抽象工厂 对象创建型模式 《Android源码设计模式解析与实战》第6章 创建型设计模式--抽象工厂模式 意图 协调对象的实例化,提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。
参考 《设计模式:可复用面向对象软件的基础 》3.3 Factory method 对象创建型模式 《Android源码设计模式解析与实战》第5章 应用最广泛的模式--工厂方法模式 意图 定义一个用于创建对象的接口,让子类决定实例化哪一个类。
参考 《设计模式:可复用面向对象软件的基础 》3.4 prototype 原型--对象创建型模式 《Android源码设计模式解析与实战》第4章 使程序运行更高效 原型模式 意图 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象 使用场景 类初始化需要消化非常多的资源,这个资源包括数据,硬件资源等,通过原型拷贝避免这些消耗。
参考 《设计模式:可复用面向对象软件的基础 》4.7 Proxy 代理--对象结构型模式 《Android源码设计模式解析与实战》第18章 编程好帮手--代理模式 意图 为其它对象提供一种代理以控制对这个对象的访问 适用性 在需要用比较通用和复杂的对象指针代替简单的指针的时候,使用Proxy模式。
参考 《设计模式:可复用面向对象软件的基础 》3.2 Builder 生成器--对象创建型模式 《Android源码设计模式解析与实战》第3章 Builder模式 意图 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
参考 《设计模式:可复用面向对象软件的基础 》3.5 Singleton 单件--对象创建型模式 《设计模式解析》(第二版)第21章 Singleton模式和Double-Checked Locking模式 《Android源码设计模式解析与实战》第2章 单例模式 意图 保证一个类仅有一个实例,并提供一个访问它的全局访问点。
如何使用 继承SQLiteOpenHelper,通过SQLiteOpenHelper可以方便的管理SQLiteDatabase public class MyDataBaseHelper extends SQLiteOpenHelper { ...
JetBrains C++ IDE CLion配置 windows 就是坑 最近在学数据结构与算法,但是教程上用的是c++,所以不得不安装个好用的IDE,因为我用过Intelij IDEA和AndroidStudio,所以选择了Clion,其实他们都同属一个JetBrains系统的。
例子5 编写一个通用的利于管理依赖库版本的脚本文件 参考项目 googlesamples的BasicSample 再应用Android插件时,我们通常会配置很多版本号,例如 .
Day1 可见性 参考 31 天,从浅到深轻松学习 KotlinKotlin实战 在 Kotlin 中一切都是默认 public 的。在Kotlin中,存在private、protected、internal和 public四种修饰符,它们可用于修饰类、对象、接口、构造器、函数、属性、以及属性的设值方法等。
gradle.org 参考资料 Groovy groovy官网 写出gradle风格的groovy代码 Groovy教程 Gradle 书籍《Gradle in action》 Gradle官方文档 Gradle中文文档 Groovy&Gradle总结 从移动应用到微服务,从小型创业公司到大企业,Gradle帮助团队更快地构建,自动化并交付更好的软件。
Day 1 语言特点,环境搭建,数据结构 python 官网:http://python.org 集成开发环境:Geany,一个字:快,各个平台都有对应版本 变量 变量名只能包含字母,数字和下划线 变量名不能包含空格 不要将Python关键字和函数名用作变量名 变量名应既简短而又具有描述性 慎用小写字母l和大写字母O,因为它们可能被人错堪称1和0 字符串 用单引号或者双引号括起来,主要是为了方便在字符串中包含引号和撇号。
非技术类 疯狂的程序员 疯狂的程序员 这本小说读起来很真实,是由程序员写的,曾经还能看到他的CSDN,小说完完全全地记录了一个程序员的成长过程,记得当初就是因为这本小说逐渐进入编程界的。
外行静坐等待灵感,其他人则唤起激情努力工作 --- 斯蒂芬.金《写作这回事:创作生涯回忆录》 第四章 生产力 第三十六章 一切始于专注 软技能第四篇:生产力第36章.
软件工程的前生今世 被迫产生的软件工程 软件开发 50-60年代:手工作坊 60-70年代:合作生产 70年代以后:工程化 1968年“软件危机”概念出现 质量,进度与成本 人们被迫研究软件生产中的技术手段和管理方法 产生了软件工程 软件工程是应用计算机科学、数学及管理科学等原理 开发软件的工程。
该剧主要描述硅谷的程序猿发家史,演员大都非常年轻。故事描述四个不善社交但绝顶聪明的计算机程序员受到依靠互联网站发家的百万富翁的特殊照顾。他们可以免费住在他家中,但他们的项目日后如果获得成功,他要拿10%的股份。
这是我正式开始写作的开篇之作,说实话我也不知道该写啥,前期就胡编乱凑吧,想到哪个话题就写吧,如果有人访问看到,欢迎吐槽。 或许是平时接触技术文章的缘故吧,还是先要点,再详细介绍,我觉得这样写挺好的,什么衔接技巧,语句精炼以后再思考。
声明:本笔记所涉及的资料来源于牛客网 认识时间复杂度 常数时间的操作:一个操作如果和数据量没有关系,每次都是固定时间内完成的操作,叫做常数操作。我的理解是这种操作最终的执行就是执行汇编命令,而汇编命令执行花费的时间都是有限的机器时钟时间,可以简单理解为执行一个相加指令,所以常数操作花费的时间是确定有限的,和数量级没关系。
命令通用格式 adb [-d|-e|-s] 命令通用格式,adb是必须的,接下来方括号[]里面的内容不是必须的,最后才是我们需要执行的命令操作,例如 adb -s emulator-5554 install xxxer.
参考 《设计模式:可复用面向对象软件的基础 》5.9 Strategy--对象行为型模式 《设计模式解析》(第二版)第九章 Strategy模式 《Android源码设计模式解析与实战》第七章策略模式 处理新需求的一种途径 灾难往往是由短期未甄选最优的决策,长期积累而引起的 在软件开发中也是如此,只关心眼前的事情,而忽视长期问题 原因: 我们确实无法预测新需求将如何变化 如果要把软件编写得能够方便地添加新功能,在设计阶段就永远止步不前了 客户或老板正死死盯着我们的进度,要求立即实现,我们没有时间多想。
第二章 创建和销毁对象 何时以及如何创建对象,何时以及如何避免创建对象,如何确保他们能够适时地销毁,以及如何管理对象销毁之前必须进行的各种清理动作。 1.考虑用静态工厂方法代替构造器 一般在某处获取一个类的实例最常用的方法是提供一个共有的构造器,还有一种方法,就是提供一个共有的静态工厂(static factory method),他只是一个返回类的实例的静态方法。
前言 平时项目开发总要自定义dialog满足产品的设计需求,但系统提供Dialog和AlertDialog用起来不是很方便,所以自己封装一个好用的Dialog基类是再好不过了。
对象的自动清除 对象回收是由垃圾回收线程负责 System.gc()方法可以要求系统进行垃圾回收,仅仅是建议系统 java没有“析构方法”,但Object的finalize()有类似方法 系统在回收时会自动调用对象的finalize()方法 protected void finalize() throws Throwable{} 子类的finalize方法可以在里面释放系统资源,一般来说,子类的finalize方法中应该调用父类的finalize方法。
话说孙悟空得了金箍棒,扬长而去,龙王大惊,说那金箍棒重达一万三千五百斤,孙悟空如何使得动?龟丞相答道:“我们使不动是因为那金箍棒是定海神针,龙宫 至宝,我们把它看的太重,便放不开,而那猴子只不过当它是个棍子,所以便拿得起放得下了。
image 前言 这是一本真正从“人”(而非技术也非管理)的角度关注软件开发人员自身发展的书。书中论述的内容既涉及生活习惯,又包括思维方式,凸显技术中“人”的因素,全面讲解软件行业从业人员所需知道的所有“软技能”。
问题描述 private void testGenerateFile(){ try { // 输出路径为/storage/emulated/0/Out/test.
图片发自简书App
图片发自简书App
图片发自简书App
图片发自简书App
token 我的理解是一种凭证,客户端请求时携带此凭证才能有效访问需要验证凭证的服务端接口,而且token可以加密携带客户端的一些信息,比如基本的信息是有效期,生效日期,可以看作是令牌。
角色 Android SDK里有自己的Activity栈管理器,但是我们无法调用,所有只能自己用一个堆栈来管理Activity。这个类的主要任务是进行应用的Activity入栈,出栈,获取当前Activity,finish掉在当前栈的所有Activity,退出应用 实现 import android.
仿nginx命令行 go语言些命令行程序是不错的选择,所以它可以轻松达到如上图类似nginx命令行的效果 例子 package main import ( "flag" "fmt" "os" ) // var...
Android的消息是怎样传的?Handler为什么要这么用? 一个简单的例子 import android.os.Handler; import android.
install VIM VIM官网下载安装包 我是安装再D盘 vimPath 基础配置 vim所有配置都在_vimrc里配置。例默认的配置颜色字体主题不是很好看,可以在里面加 set background=dark colorsc...
内置关键字(25个,均为小写) break default func interface select case defer go map struct chan else goto package switch const fall...
执行go env 会输出go环境信息 image.png GOPATH :工作目录,包含三个文件夹,bin里是生成的可执行文件,windows加个GOPATH环境变量即可设置GOPATH,不然默认在用户目录下 image.
上一篇的方法完全是我们手动编译并拷来拷去集成so库的,这样会很麻烦,但对初学者来说就应该这样一步一步前进,混合编程本来就是个很复杂的流程,我觉得这样把每个流程分开来学习是最好的。
创建Android工程 这里开始我不勾选supportC++选项,而是我想在一个非NDK工程上添加配置,使之成为NDK工程 编写Java代码 还是一个简单的例子 package com.
1.安装python 首先我的云主机系统是ubuntu 64位的,预装有python2.7 2.安装python-pip和python-dev $ sudo apt-get install python-pip python-dev 3.安装TensorFlow pip安装软件是默认先读到内容,在安装,又因为我的云主机内存只有1个G,带宽也只有1Mbps,所有必须设置no-cache安装。
参考 一天掌握Android JNI本地编程 快速入门Android开发实践:常用NDK命令行参数Secrets of Android.mk JNI JNI是啥? JNI(Java Native Interface):Java本地开发接口,JNI是一个...
基类/子类结构的接口(卡榫(Hook)函数) interface 变与不变的分离是设计卡榫函数及应用框架的基本原则和手艺 分离出变与不变部分之后,就可以将不变部分写在父类别,而变的部分就写在子类别 IoC机制与Default函数 卡榫函数实现IoC机制 控制反转:IoC:Inversion of Control IoC机制源自于OO语言(C++等)的类别集成体系。
Cookie保存 Cookie的保存也提供了快捷方式,当然也可以通过拦截器自己实现 OkHttpClient okHttpClient = new OkHttpClient.
参考 参考的是学习 CleanArchitecture 心得体会 参考的代码是brzhang的项目 Clean架构 一直都想学Clean架构,今天终于实践了一个简单的CleanDemo,对Clean架构有了进一步的认识。
1.创建工程 所有模块依赖于Google,jencenter,maven仓库 allprojects { repositories { jcenter() maven { url 'https://maven.
参考okhttp官方wiki https://github.com/square/okhttp/wiki/Calls okhttp3的设计思路 API部分简介 OkHttpClient.