- 博客(70)
- 资源 (9)
- 收藏
- 关注
原创 十二,设计模式之-代理模式(Proxy pattern)
在有些情况下,一个客户不能或者不想直接访问另一个对象,这时需要找一个中介帮忙完成某项任务,这个中介就是代理对象。例如,购买火车票不一定要去火车站买,可以通过 12306 网站或者去火车票代售点买。又如找女朋友、找保姆、找工作等都可以通过找中介完成。在软件设计中,使用代理模式的例子也很多,例如,要访问的远程对象比较大(如视频或大图像等),其下载要花很多时间。还有因为安全原因需要屏蔽客户端直接访问真实对象,如某单位的内部数据库等。代理模式的定义与特点代理模式的定义:由于某些原因需要给某对象提供一个代理
2020-12-27 13:32:52 334
原创 Andorid 官网资料
Android的官方samplehttps://github.com/googlesamplesJetpack官方资料:https://developer.android.google.cn/jetpack/
2020-12-23 13:16:48 343
原创 设计模式目录
设计原则:1,开闭原则对扩展开放,对修改关闭2,单一职责一个类只负责一项职责3,里氏替换原则任何基类可以出现的地方,子类一定可以出现。子类可以扩展父类的功能,但不能改变父类原有的功能。4,依赖倒置原则要依赖于抽象,不要依赖于具体。要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块间的耦合5,接口隔离原则其原则字面的意思是:使用多个隔离的接口,比使用单个接口要好。本意降低类之间的耦合度,而设计模式就是一个软件的设计思想,从大型软件架构出发,为了升级和维护方便。所以上文中多次
2020-12-18 14:47:00 385 1
转载 四,设计模式之-原型模式(Prototype)
原型模式虽然是创建型的模式,但是与工程模式没有关系,从名字即可看出,该模式的思想就是将一个对象作为原型,对其进行复制、克隆,产生一个和原对象类似的新对象。本小结会通过对象的复制,进行讲解。在Java中,复制对象是通过clone()实现的...
2020-12-17 22:52:05 160
转载 依赖、关联、聚合和组合之间区别的理解
在学习面向对象设计对象关系时,依赖、关联、聚合和组合这四种关系之间区别比较容易混淆。特别是后三种,仅仅是在语义上有所区别,所谓语义就是指上下文环境、特定情景等。他们在编程语言中的体现却是基本相同的,但是基本相同并不等于完全相同,这一点在我的前一篇博文《设计模式中类的关系》中已经有所提及,下面就来详细的论述一下在Java中如何准确的体现依赖、关联、聚合和组合。首先看一看书上对这四种关系的定义:依赖(Dependency)关系是类与类之间的联接。依赖关系表示一个类依赖于另一个类的定义。例如,一个人(Pers
2020-10-15 11:15:10 2388 2
转载 常用的web服务器软件
1、ApacheApache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上。Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软件之一。Apache取自"a patchy server"的读音,意思是充满补丁的服务器,因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。特点就是处理php页面,如果需要执行php的内容过多可以采用apache,如
2020-09-24 10:19:20 1987
原创 二,设计模式之-单例模式(Singleton Pattern)
单例模式是我们在开发中经常用到的模式,它有三个好处。 1、某些类创建比较频繁,对于一些大型的对象,这是一笔很大的系统开销。 2、省去了new操作符,降低了系统内存的使用频率,减轻GC压力。 3、有些类如交易所的核心交易引擎,控制着交易流程,如果该类可以创建多个的话,系统完全乱了。(比如一个军队出现了多个司令员同时指挥,肯定会乱成一团),所以只有使...
2020-06-27 20:01:52 159
原创 Kotlin的5种单例写法和java对比
主要单例模式实现如下:饿汉式 懒汉式 线程安全的懒汉式 双重校验锁式 静态内部类式一,饿汉式实现(1)java恶汉式public class Singleton{ public static final Singleton instance = new Singleton(); public static Singleton getInstance() { return instance; }}(2)Kotlin饿汉式/
2020-06-14 17:41:42 892
转载 Kotlin系列之let、with、run、apply、also函数的使用
Kotlin系列之let、with、run、apply、also函数的使用总结https://blog.csdn.net/u013064109/article/details/78786646
2020-02-29 14:15:46 226
转载 Linux常用命令大全(非常全!!!)
Linux常用命令大全(非常全!!!)最近都在和Linux打交道,感觉还不错。我觉得Linux相比windows比较麻烦的就是很多东西都要用命令来控制,当然,这也是很多人喜欢linux的原因,比较短小但却功能强大。我将我了解到的命令列举一下,仅供大家参考:系统信息arch 显示机器的处理器架构uname -m 显示机器的处理器架构uname -r 显示正在使用的内核版本d...
2019-12-27 19:59:42 315
转载 Emacs和Vim:神的编辑器和编辑器之神
在这个蔚蓝色的星球上,流传着两大神器的传说:据说Emacs是神的编辑器,而Vim是编辑器之神。一些人勇敢地拾起了Vim或Emacs,却发现学习曲线陡峭而漫长,还是有一些人留下来了,坚定地守护着这两大神器。一些说葡萄太酸的人想离开又不甘心,总是问:它们到底神在哪里啊?0. 序章:神器的传说在这个蔚蓝色的星球上,流传着两大神器的传说:据说Emacs是神的编辑器,而Vim是编辑器之神。追求独...
2019-12-27 17:29:11 780
转载 Gradle编译打包Android apk详细介绍
Gradle编译打包Android apk详细介绍理解Gradle构建过程,解读Android Gradle插件的配置阅读本文一定是要使用过Gradle生成apk,文中不会讲如何安装运行Gradle,如有需要可先看文末的参考文章。APK包是一个ZIP压缩包,从Java源代码、资源文件到生成这个APK,经过了编译打包一系列特定的过程,SDK文档(/docs/tools/building/...
2019-11-21 11:19:22 1734
转载 Gradle依赖关键字学习
查看依赖树查看所有依赖树: ./gradlew :app:dependencies 总共有releaseUnitTestCompileClasspath、releaseCompileClasspath、debugCompileClasspath等依赖树,直接用上面这条命令的话,会列举出所有的,不利于查看,可以使用类似以下命令,查看目标依赖树:./gradlew :app:de...
2019-09-23 11:19:16 1032
原创 六,设计模式之-装饰器模式(Decorator Pattern)
一,介绍 概念:允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。 意图:动态地给一个对象添加一些额外的职责。就增加功能来说,装饰器模式相比生成子类更为灵活。 作用:一般的,我们为了扩展一个类经常使用继承方式实现,由于继承为类引入静态特征,并且随着扩展功能的增多,子类会很膨胀。 ...
2019-08-02 11:02:29 207
原创 五,设计模式之-适配器模式(adapter pattern)
一,是什么:在我们的应用程序中我们可能需要将两个不同接口的类来进行通信,在不修改这两个的前提下我们可能会需要某个中间件来完成这个衔接的过程。这个中间件就是适配器。所谓适配器模式就是将一个类的接口,转换成客户期望的另一个接口。它可以让原本两个不兼容的接口能够无缝完成对接。二,作用:使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。 中间这个用来装小存储卡的就相当于适配...
2019-07-12 18:51:44 285
原创 API 'variantOutput.getProcessManifest()' is obsolete and has been replaced
这个问题怎么解API 'variantOutput.getProcessManifest()' is obsolete and has been replaced with 'variantOutput.getProcessManifestProvider()'.在gradle-wapper.properties中使用:distributionUrl=https\://servic...
2019-07-11 16:40:44 2872 2
转载 classloader加载的双亲委托模式
要深入了解ClassLoader,首先就要知道ClassLoader是用来干什么的,顾名思义,它就是用来加载Class文件到JVM,以供程序使用 的。我们知道,java程序可以动态加载类定义,而这个动态加载的机制就是通过ClassLoader来实现的,所以可想而知ClassLoader的重 要性如何。看到这里,可能有的朋友会想到一个问题,那就是既然ClassLoader是用来加载类到JVM中的,...
2019-06-27 11:28:37 411
转载 Android全面插件化RePlugin流程与源码解析
RePlugin,360开源的全面插件化框架,按照官网说的,其目的是“尽可能多的让模块变成插件”,并在很稳定的前提下,尽可能像开发普通App那样灵活。那么下面就让我们一起深入♂了解它吧。 (ps :阅读本文请多参考源码图片 ( ̄^ ̄)ゞ )一、介绍RePlugin对比其他插件化,它的强大和特色,在于它只Hook住了ClassLoader。One Hook这个坚持,最大程度保证了稳定性、兼容...
2019-06-27 10:27:06 590
转载 ReentrantReadWriteLock读写锁详解
一、读写锁简介 现实中有这样一种场景:对共享资源有读和写的操作,且写操作没有读操作那么频繁。在没有写操作的时候,多个线程同时读一个资源没有任何问题,所以应该允许多个线程同时读取共享资源;但是如果一个线程想去写这些共享资源,就不应该允许其他线程对该资源进行读和写的操作了。 针对这种场景,JAVA的并发包提供了读写锁ReentrantReadWriteLock,它表示两个锁,一个是读操作...
2019-06-17 10:52:23 185
原创 颜色透明度16进制对照表
100% — FF99% — FC98% — FA97% — F796% — F595% — F294% — F093% — ED92% — EB91% — E890% — E689% — E388% — E087% — DE86% — DB85% — D984% — D683% — D482% — D181% — CF80% — CC79% — C97...
2019-05-10 19:58:26 2684 1
原创 Android常用的文件路径获取
1,路径为:data/data/包名/app_+APP_CONFIG /APP_CONFIG ,其中包名后面的app_是为调用时,系统自己加上的。Context context ;private final String APP_CONFIG ="config";File dirConf= context.getDir(APP_CONFIG, Context.MODE_PRIVATE)...
2019-04-17 14:16:04 13184
转载 Fresco简单的使用—SimpleDraweeView
Fresco是一个第三方库,github官网地址:https://github.com/facebook/fresco 百学须先立志—学前须知: 在我们平时加载图片(不管是下载还是加载本地图片…..)的时候,我们经常会遇到这样一个需求,那就是当图片正在加载时应该呈现正在加载时的图像,当图片加载失败时应该呈现图片加载时的图像,当我们重新加载这张图片时,应该呈现重试时图像,直到...
2019-04-04 19:36:32 2630
转载 DexClassLoader和PathClassLoader的区别
先说结论1、DexClassLoader可以加载jar/apk/dex,可以从SD卡中加载未安装的apk2、PathClassLoader只能加载系统中已经安装过的apkPathClassLoader 源码以下源码全部来自Android6.0.1package dalvik.system;public class PathClassLoader extends Base...
2019-04-01 20:51:22 511
原创 git的简介及安装使用
一,关于版本管理工具简介1,集中式的版本控制系统:常见的集中式版本控制系统有CVS,SVN。特点:管理方便,逻辑明确,符合一般人思维习惯。 易于管理,集中式服务器更能保证安全性。 代码一致性非常高。 适合开发人数不多的项目开发。2,分布是版本控制系统:常见的分布式版本控制系统有bitkip Git。特点:最优的存储能力。 非凡的新能。 开源的。 很容易做备...
2019-03-13 01:39:17 169
转载 AndroidStudio如何根据返回的json数据快速自动生成实体类,只需一个GsonFormat插件
AndroidStudio如何根据返回的json数据快速自动生成实体类,只需一个GsonFormat插件1.在Android Studio中点击左上角菜单栏中的File,然后点击Settings,在弹窗中选择Plugins,然后点击下方的Browse repositories…2.在新打开的窗口中搜索GsonFormat,点击右侧绿色按钮下载安装,安装完重启下Android...
2019-02-28 16:34:50 2194
原创 比较5种hashTable的遍历方式的效率
在hashTable中插入1000000条数据然后遍历比较五种方式的效率。import java.util.Enumeration;import java.util.Hashtable;import java.util.Iterator;import java.util.Map;import java.util.Map.Entry;public class TraverseHa...
2019-02-27 10:29:11 2400
转载 自定义Drawable:实现文字生成图片
一 、写在正文前作为一个初来乍到的非资深android从业者,这是本人第一次在简书装逼,哦不,发表文章,因此有点小紧张以及难以掩饰的小激动[手动滑稽],若是有什么写的有问题的,没错,是本人技术问题,还望多多见谅。二、概述二话不说反手就是一个超链接:下载地址一言不合反手又是一个超链接:github地址本文将介绍的是一款在googleplay上线的APP:TextImageMaker主...
2019-02-13 14:05:25 2864
转载 git回滚到任意版本
https://www.cnblogs.com/wancy86/p/5848024.htmlgit回滚到任意版本先显示提交的log$ git log -3commit 4dc08bb8996a6ee02fAuthor: Mark <xxx@xx.com>Date: Wed Sep 7 08:08:53 2016 +0800 xxxxxcommit ...
2019-01-22 10:42:27 373 1
原创 DataBinding使用详解
binding框架是一个UI框架,作用帮助开发者快速开发UI。原理是先通过一定的规则写一个XML的布局,Android studio自动生成一个Binding的java类。 使用Data Binding首先,环境搭建: Android 的 Gradle 插件版本不低于 1.5.0-alpha1: classpath ‘com.android.t...
2019-01-20 23:35:29 1619
原创 Android的3种Notification实现方式详解
普通通知 自定义布局通知 悬挂式通知 先贴出效果图。 自定义布局通知普通通知悬挂式通知 一,普通通知 下面是普通通知的主要代码类NotificationTools1 ,如果需要拷贝到自己的项目里面使用还需要后面的工具类一起拷贝进入。public class Noti...
2019-01-18 17:03:55 6744
转载 Java 8、9、10、11 新特性
原文地址:https://blog.csdn.net/lcn_2017/article/details/80146668
2019-01-18 16:04:15 2665
原创 Android版本和版本号的对于关系,以及市场占有率。
2019-01-16Version Codename API Distribution 2.3.3 - 2.3.7 Gingerbread 10 0.2% 4.0.3 - 4.0.4 Ice Cream Sandwich 15 0.3% 4.1.x Jelly Bean 16 1.1% ...
2019-01-16 19:33:39 1575
转载 Java 8新特性终极指南
2014/06/20 | 分类: 基础技术 | 8 条评论 | 标签: JAVA8分享到:本文由 ImportNew - 刘 家财 翻译自 javacodegeeks。欢迎加入翻译小组。转载请见文末要求。编者注:Java 8已经公布有一段时间了,种种迹象表明Java 8是一个有重大改变的发行版。在Java Code Geeks上已经有大量的关于Java 8 的教程了,像玩转Java...
2019-01-10 15:28:32 172
转载 几款流行的SQLite图形用户界面工具
您是否在寻找一个用于管理SQLite数据库的图形用户界面(GUI)工具?下面是一些流行的SQLite GUI工具列表。SQLite Database BrowserSQLite Database browser 是一个免费、开源的SQLite 数据库的轻量级 GUI 客户端,主要是为非技术用户创建、修改和编辑 SQLite 数据库的工具,使用向导方式实现。 SQLite Admin...
2019-01-09 10:54:24 82774 1
原创 数据结构之-单向链表和双向循环链表,栈,二分法查询
一,链表实现 1,接下来实现一个简单的单向链表,下面直接贴代码。 链类public class Link {// 链类 private Node head; // 初始化链表 相当于有了一个具体的火车头 public Link(Node head) { this.head = head; } // 往链表中添加节点 就是加车厢 public v...
2019-01-06 17:21:56 713
转载 Android studio Git及TortoiseGit使用全程图解
刚使用git的时候配置git环境很有必要的一篇文章:https://blog.csdn.net/kill_bugs/article/details/49755095
2019-01-06 16:33:10 707
转载 线程池不允许使用Executors去创建,而是通过ThreadPoolExecutor的方式,这样的处理方式让写的同学更加明确线程池的运行规则,规避资源耗尽的风险。
前言:jdk1.7中java.util.concurrent.Executor线程池体系介绍java.util.concurrent.Executor : 负责线程的使用与调度的根接口 |–ExecutorService:Executor的子接口,线程池的主要接口 |–ThreadPoolExecutor:ExecutorService的实现类 |–ScheduledExecut...
2019-01-04 16:43:30 3414 2
原创 Retrofit介绍-简单的Get请求
参考:https://blog.csdn.net/carson_ho/article/details/73732076常量类public class constant { // URL模板 public static String url1= "http://fy.iciba.com/ajax.php";// URL实例 public static Strin...
2019-01-02 14:40:22 1203
最值得学习的10大开源框架,高级工程师必备。
2018-11-09
Android应用保活与拉活
2018-07-31
Windows图片查看器注册文件
2018-07-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人