
Java
文章平均质量分 71
迷了路的木头人z
4年的编程小白,会点安卓,会点java,会点Kotlin,会点dart/flutter,会点h5/css/js,会点python/后端,会点爬虫
展开
-
CentOS 7 yum安装与配置 Tomcat7
转载自 :https://blog.youkuaiyun.com/github_38336924/article/details/822535531、准备工作Tomcat检测本机是否安装Tomcatsystemctl status tomcat.service/*或者*/systemctl status tomcat出现如下图所示,本机没有安装Tomcat查看Tomcat信息...转载 2019-06-24 14:21:35 · 752 阅读 · 1 评论 -
Retrofit2.0+RxJava+RxAndroid——强强联合的网络请求框架
<div class="markdown_views"> <p>最近看了很多关于Retrofit和Rxjava的文档介绍。终于在弄清Rxjava后顺利的弄懂了Retrofit。</p>网上有很多人都介绍了它们的联合使用,但是我看过之后理解不是太好。可能我太笨。 不过,今天写这篇博客的目的就是想来说说它们之间如何使用以及使用的时候遇到的坑。这两者的关系并不大转载 2018-03-06 16:38:23 · 288 阅读 · 0 评论 -
Java设计模式——代理模式
代理模式的作用是通过代理对象来访问目标对象,优点是在不改变原对象的情况下,增加自己的一部分功能逻辑。常用的代理模式有两种:静态代理,动态代理,下面我们通过栗子来一 一介绍一下。一、定义为其他对象提供一种代理以控制这个对象的访问UML:Subject:抽象主题类,声明主题与代理的共同接口方法RealSubject:被代理类,定义了代理所表示的真实对象ProxySu...原创 2018-03-20 11:16:55 · 132 阅读 · 0 评论 -
这是一份很详细的 Retrofit 2.0 使用教程(含实例讲解)
<div class="markdown_views"> <h1 id="前言"><a name="t0"></a>前言</h1>在Andrroid开发中,网络请求十分常用而在Android网络请求库中,Retrofit是当下最热的一个网络请求库今天,我将献上一份非常详细Retrofit v2.0的使用教程,希望你们会喜欢。 如果对Retrofit v2.转载 2018-03-01 16:24:28 · 252 阅读 · 0 评论 -
Java并发编程——线程池的使用(七)线程池的可执行任务:Future和Callable
一、回顾线程池的创建首先我们先来回顾下创建线程池:ThreadPoolExecutor executor = new ThreadPoolExecutor(5, 10, 60, TimeUnit.SECONDS, new LinkedBlockingDeque<Runnable>());线程池的submit可以提交一个Callable任务,Future的get方法可以获取到Callable的call原创 2017-12-28 13:24:42 · 667 阅读 · 0 评论 -
Java并发编程——分治编程
分治算法是五大常用算法之一,本来不应该在这个时间写这篇博客,因为之前的线程池还没有写完,有些知识点也是需要用到的线程池的,但是架不住现在的项目里有个坑队友,名曰大乒乓,他好像是批量注册用户还是什么(暂时就先当做是批量注册吧~),反正就是很多很多用户,每个用户大概0.5秒左右的注册时间,要睡觉时我问他,你的电脑怎么还开着啊,他说在那注册用户呢,得跑一宿···几千条还是几万条,就一个主线程for循环在那原创 2017-12-27 14:42:29 · 1000 阅读 · 0 评论 -
Java并发编程——CyclicBarrier和Phaser
一、CyclicBarrier CyclicBarrier拥有CountDownLatch的功能(CountDownLatch的介绍请看我的另一篇博客: Java并发编程——Semaphore (信号量)和CountDownLatch ),任何一个线程在没有完成时,所有线程都在等待。有点类似于屏障的意思,比如百米赛跑,需要等所有运动员都到达起跑线后,裁判才会鸣枪,这个“起跑线原创 2017-12-19 14:22:35 · 809 阅读 · 1 评论 -
关于Android Studio的JCenter库上传aar后无法引用的问题
最近JCenter突然更新,我把自己的开源框架从1.0.2升级为1.0.3后并传到JCenter中央库,上传成功后,发现在项目中compile后报错,错误是: Error:Failed to resolve: annotationProcessor Open File Error:(143, 13) Failed to resolve: com.lbx:xTools:1.0.3 Show ...原创 2018-06-13 10:25:09 · 1609 阅读 · 2 评论 -
记录:百度Android开发工程师面试题
博主近期面试了百度网盘的Android开发高级工程师职位,好多人都问我在BAT面试大神们都会问些什么问题,所以我在这里整理了一下,我就不再写面试的流程什么的了,博主过了一面和二面,三面在等通知,其中一面和二面问的全是纯技术,三面问的近期做的项目相关,比如遇到哪些困难,怎么解决的,架构是如何搭建的等等,又聊了些以后的职业规划,面试的感觉还是很不错的,这是近三年来,我的第一个面试,所以准备得不够充分...原创 2019-02-25 12:00:58 · 462 阅读 · 0 评论 -
Gradle基础 构建生命周期和Hook技术
https://juejin.im/post/5afec54951882542715001f2对于初学者来说,面对各种各样的Gradle构建脚本,想要梳理它的构建流程,往往不知道从何入手。Gradle的构建过程有着固定的生命周期,理解Gradle的生命周期和Hook点,有助于帮你梳理、扩展项目的构建流程。构建的生命周期任何Gradle的构建过程都分为三部分:初始化阶段、配置阶段和执行...转载 2019-06-18 17:31:22 · 1116 阅读 · 0 评论 -
Java设计模式——单例模式
单例模式是应用最广的设计模式之一,也是初级工程师唯一会使用的设计模式。单例模式的类必须保证只有一个实例存在。许多时候系统只需要一个全局实例对象,或者需要全局共享实例中的某个变量或实例对象,这是我们可以选择单例模式。一、定义确保某个类只有一个实例,而且向整个系统提供实例。UML:Client:客户类Singleton:单例类实现单例模式有下面几个关键点:1、构造函数私有化2、通过静...原创 2019-05-21 14:35:21 · 165 阅读 · 0 评论 -
Java设计模式——观察者模式
观察者模式是一个使用率非常高的的模式,它是一套订阅——发布系统,这个模式最重要的作用就是将订阅者和被订阅者解耦。一、定义定义对象间一种对多种的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知。UML:Subject:抽象主题类,也就是被观察者(Observable),把所有观察者对象保存在一个集合里,每个被观察者都可以有任意数量的观察者,并且可以增加和删除...原创 2019-05-18 11:23:22 · 155 阅读 · 0 评论 -
OkDownload主要功能
转载自 https://www.cnblogs.com/fuyaozhishang/p/8285349.html 结合OkGo的request进行网络请求,支持与OkGo保持相同的配置方法和传参方式支持断点下载,支持突然断网,强杀进程后,继续断点下载每个下载任务具有无状态、下载、暂停、等待、出错、完成共六种状态所有下载任务按照tag区分,切记不同的任务必须使用不一样的tag,否者断点会...转载 2019-05-07 10:21:44 · 5655 阅读 · 8 评论 -
git的GUI工具Sourcetree使用及命令行对比
转载自 https://segmentfault.com/a/11900000156748221.提交推送流程勾选要提交的文件填写提交说明内容想提交直接推送到代码仓库时,勾选左下角按钮最后点击提交按钮即可完成代码推送等同于 git add index.html //添加暂存文件git commit -m...转载 2019-05-07 10:15:19 · 292 阅读 · 0 评论 -
实际项目中如何使用Git做分支管理
版权声明https://blog.youkuaiyun.com/ShuSheng0007/article/details/80791849 </div> <link rel="stylesheet" href="https://csdnimg.cn/release...转载 2019-05-07 10:11:59 · 157 阅读 · 0 评论 -
关于ANR异常捕获与分析,你所需要知道的一切
转载自 https://codezjx.com/2017/08/06/anr-trace-analytics/背景最近项目组需要实现捕获ANR并上传到公司服务器相关的功能,因此花了点时间来整理相关的知识,并从AMS源码与腾讯Bugly-SDK中逆向找到相关思路,在此分享给大家。ANR是什么?Application Not Responding的缩写,即应用程序无响应。简单来说,就是应用跑着...转载 2019-05-07 10:09:10 · 2085 阅读 · 0 评论 -
Android中的Apk的加固(加壳)原理解析和实现
原文:https://blog.youkuaiyun.com/jiangwei0910410003/article/details/48415225一、前言今天又到周末了,憋了好久又要出博客了,今天来介绍一下Android中的如何对Apk进行加固的原理。现阶段。我们知道Android中的反编译工作越来越让人操作熟练,我们辛苦的开发出一个apk,结果被人反编译了,那心情真心不舒服。虽然我们混淆,做到nati...转载 2019-04-29 10:19:55 · 4034 阅读 · 0 评论 -
Java并发编程——Semaphore (信号量)和CountDownLatch
一、Semaphore (信号量) 说简单点,Semaphore维护了一个许可集合,在创建Semaphore的时候,设置上许可数,每条线程在只有在获得一个许可的时候才可以继续往下执行逻辑(申请一个许可,则Semaphore的许可池中减少一个许可),没有获得许可的线程会进入阻塞状态。举个栗子:public static void main(String[] args) {...原创 2017-12-19 10:54:09 · 3664 阅读 · 2 评论 -
Java并发编程——线程池的使用(九)SynchronousQueue 阻塞队列
SynchronousQueue<Integer> queue = new SynchronousQueue<>()//阻塞住queue.put(1);//取出数据后,put的地方释放queue.take();//add、put、offer区别:add超过队列大小抛异常,put阻塞,offer有返回值失败返回false...原创 2019-06-23 16:20:58 · 1109 阅读 · 0 评论 -
Java并发编程——线程池的使用(八)CompletionService的使用
CompletionService 可以一边处理已完成的任务,一遍产生新任务,可以解决Future的缺点。CompletionService<Boolean> service = new ExecutorCompletionService<>(threadPoolExecutor);service.submit();//获取boolean时take()获取的fut...原创 2019-06-23 16:19:52 · 301 阅读 · 0 评论 -
Java设计模式——责任链模式
责任链模式,顾名思义,多个对象可以处理同一个请求,但是用哪个对象处理请求,是动态的,对象成链式结构,将请求一级一级向下传,处理则截断,否则继续向下传递,这就是责任链模式。 android里的屏幕触摸事件就是用的这种模式,父布局先收到触摸事件,如果父布局选择处理,子view则收不到触摸事件,反之父布局将事件传给子布局,后面有时间我会写一篇关于android触摸事...原创 2017-07-08 16:15:08 · 479 阅读 · 0 评论 -
Java设计模式——策略模式
我们写代码的时候,有时会写很多if...else if....else...的条件语句,或者switch...case...case... 。。。 这会使我们的代码非常臃肿,策略模式的目的就是避免了各种条件判断的臃肿代码,使代码更加可读,而且方便后期维护。一、定义策略模式定义了一系列算法或逻辑,并将每一个算法或逻辑封装起来,而且使它们可以相互替换,策略模式让算法或逻辑独立于使...原创 2017-07-07 11:09:59 · 228 阅读 · 0 评论 -
Java设计模式——原型模式
原型模式既简单、又好用,Java中的原型模式需要实现Cloneable接口,说的纯粹点,原型模式的作用就是克隆。下面举一个例子,我们来克隆绵羊:一、定义1、用原型的实例,确定待拷贝对象的种类。2、拷贝这些原型创建新的独立的对象。UML图:Client:客户端用户Prototype:抽象的类或接口,有clone的能力ConcretePrototype:具体的原...原创 2016-12-22 15:48:09 · 288 阅读 · 0 评论 -
Java设计模式——状态模式
状态模式,顾名思义,在不同的状态有不通的行为,比如我们常用的新浪微博,当点击分享按钮时,如果是登录状态,则跳入分享输入界面,如果是未登录状态,则跳入登录页面。一、定义:当一个对象的内在状态改变时允许改变其行为,对这个对象看起来像是改变了其类。状态模式的UML图如下:Context:环境类,定义客户感兴趣的解耦,维护一个States子类的实例,这个实力定义了对象当...原创 2017-07-07 11:47:57 · 332 阅读 · 1 评论 -
Java设计模式——装饰者模
装饰者模式,其实不难理解,简单地说就是装饰者和被装饰者拥有共同的超类,装饰者只是丰富了行为,拓展了功能,而类型是不变的。说起来可能比较抽象,接下来通过一个简单的例子来实现一个装饰者模式。一、定义动态的给一个对象添加一些额外的职责或者功能,就增加功能来说,装饰者模式相比生成子类更为灵活。大多数情况下被装饰者不需要操心自己具体要做什么,交给装饰者去装饰就好了UML:...原创 2017-12-20 10:05:44 · 180 阅读 · 0 评论 -
GitHub上README.md教程
GitHub上README.md教程2014-08-12 12:58 80120人阅读 评论(11)收藏举报分类: GITHUB GIT(1) 作者同类文章X目录(?)[+]开始编辑README关于标题显示文本普通文本显示空格的小Tip单行文本多行文本部分文字的高亮文字超链接插入转载 2018-05-08 17:46:39 · 190 阅读 · 0 评论 -
Java设计模式——适配器模式
适配器模式,顾名思义,它的职责就是做适配,将两个不兼容的东西,通过适配器的连接,变得兼容起来。有些情况下,需要兼容的二者并不能修改,所以需要“适配器”这个中间件做一个桥接。一、定义适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。UML:Target:目标角色,也就是期待得到的接口,可以不是类,比如...原创 2017-12-20 11:18:14 · 243 阅读 · 0 评论 -
Java设计模式——外观模式
外观模式说,也叫门面模式,这个模式简单也简单,说复杂也复杂。简单是因为,外观模式很好理解,有可能你已经用到过这个模式,只是你还不知道这个是外观模式。说复杂是因为外观模式是为了将复杂的逻辑封装起来,向外暴露出一个/多个简单的接口供使用者使用,而这个“复杂的逻辑”根据实际情况会有不同的难度。一、定义 为子系统提供若干个接口,外观模式提供一个高层级的接口,外界只需调...原创 2017-12-21 14:50:30 · 243 阅读 · 0 评论 -
Java并发编程——线程池的使用(六)线程池的常用方法
整理了一下线程池经常用到的方法原创 2017-12-25 17:00:36 · 970 阅读 · 0 评论 -
Java并发编程——线程池的使用(一) 简单创建线程池
Java并发编程——线程池的使用原创 2017-12-22 11:50:59 · 626 阅读 · 0 评论 -
Java并发编程——线程池的使用(五)延时执行的线程池ScheduledExecutorService
一、ScheduledExecutorService的延时执行功能原创 2017-12-25 16:55:38 · 22799 阅读 · 2 评论 -
Java并发编程——线程池的使用(四)线程池的更多用法
一、shutdownNow配合Thread.currentThread().isInterrupted()使用先看下代原创 2017-12-25 16:33:15 · 317 阅读 · 0 评论 -
Java并发编程——线程池的使用(二) 手动创建线程池以及线程池的拒绝策略
一、线程池的普通创建 我们也可以直接手动创建一个线程池:ThreadPoolExecutor executor = new ThreadPoolExecutor( 5, 10, 60, TimeUnit.SECONDS, new LinkedBloc原创 2017-12-25 15:19:14 · 5056 阅读 · 0 评论 -
Java并发编程——Exchanger的使用
Java并发编程——Exchanger的使用原创 2017-12-22 11:50:15 · 326 阅读 · 0 评论 -
Java设计模式——建造者模式
建造者模式是常用的设计模式。正如其名,建造者模式正如建造者一般,建造的流程是一样的,但是属性不一样,比如一个建楼房的工人,建造的流程都是先打桩,然后搭楼房框架等一系列流程,但是属性比如每个房间的布局,是不一样的,这样就用到了我们的建造者模式。同时,建造者模式方便了初始化的繁杂代码,我们常见到的imageloader初始化就是用的建造者模式,它会统一初始化若干个属性,最后统一设置,若没有建造者模式...原创 2016-12-22 15:27:50 · 321 阅读 · 0 评论