前言 了解相关更多技术,可参考<我就死磕安卓了,怎么了?>,接下来谈一谈我们来学习一下MVP的基本认识. 大家对MVC的架构模式再熟悉不过.今天我们就学习一下MVP架构模式. MVC和MVP之间的对比 mvc和MVP之间的对照 什么是MVP(Model View Presenter)模式? 1.为了使得视图接口可以与模型和控制器进行交互,控制器执行一些初始化事件 2.用户通过视图(用户接口)执行一些操作 3.控制器处理用户行为(可以用观察着模式实现)并通知模型进行更新 4.模型引发一些事件,以…
转载请注明出处:http://www.blog.csdn.net/zhyxuexijava/article/details/51597230.com 前段时间看了MVP架构和RxJava,最近也在重构一些项目(MVC架构),于是写一个简单的例子,好了,废不多说了,入坑开始. 一.RxJava是什么? GitHub([https://github.com/ReactiveX/RxJava])(https://github.com/ReactiveX/RxJava)上是这样解释的: RxJava i…
在日常开发工作中,你一定会经常遇到要根据指定字段进行排序的需求. 这时,你的SQL语句类似这样. select id,phone,code from evt_sms where phone like '13020%' order by id desc limit 10 这个SQL的逻辑是十分清晰明了,但其内部的执行原理你知多少. 接下来,本期文章将带你打开order by的大门一探究竟. 本期所有结论都基于MySQL8.0.26版本 最新文章 字符串可以这样加索引,你知吗?<死磕MySQL系列…
原文:<死磕 Elasticsearch 方法论>:普通程序员高效精进的 10 大狠招!(完整版) 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/wojiushiwo987/article/details/79293493 人工智能.大数据快速发展的今天,对于 TB 甚至 PB 级大数据的快速检索已然成为刚需.Elasticsearch 作为开源领域的后起之秀,从2010年至今得到飞跃…
转载请注明出处: http://www.cnblogs.com/cnwutianhao/p/6772759.html MVP架构模式 大家都不陌生,Google 也给出过相应的参考 Sample, 但是有的人会有疑问为啥 GitHub 上面大神写的 MVP架构模式 和 Google 的不太一样. Google MVP架构模式 Sample 地址 https://github.com/googlesamples/android-architecture/tree/todo-mvp/ 下面我们就仿照…
原文出自:http://cmsblogs.com import 标签解析完毕了,再看 Spring 中最复杂也是最重要的标签 bean 标签的解析过程. 在方法 parseDefaultElement() 中,如果遇到标签 为 bean 则调用 processBeanDefinition() 方法进行 bean 标签解析,如下: protected void processBeanDefinition(Element ele, BeanDefinitionParserDelegate deleg…
在一开始学习 Spring 的时候,我们就接触 IoC 了,作为 Spring 第一个最核心的概念,我们在解读它源码之前一定需要对其有深入的认识,本篇为[死磕 Spring]系列博客的第一篇博文,主要介绍 IoC 基本概念和各个组件. IOC 理论 IoC 全称为 Inversion of Control,翻译为 "控制反转",它还有一个别名为 DI(Dependency Injection),即依赖注入. 如何理解"控制反转"好呢?理解好它的关键在于我们需要回答如…
MVP之高级MVP架构封装 No MVP: 我们一般会这样写: public class MainActivity extends AppCompatActivity { private EditText etAccount,etPassWord; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.ac…
3个月的死磕Python后,参加「 楼+ Python实战 · 第4期 」的学员们感想如何?下面带来他们的真实评价. 作为实验楼的网红课程——「 楼+ Python实战 」已经走过了第四期,经过了三个月的学习,大家感想如何?以下是学员们的真实反馈. 学习收获 服务反馈 给老师和助教的评价 emiyasyrou: 真的非常感谢实验楼的大神搞了这么一个学习项目,实验的方案设计得非常清晰,一步步照着教程码下来基本上可以把各个知识点领会的七八成.有些特别难懂的概念,特别难表述的操作,也有老师的视频的示范…
无编程不创客,无案例不学习.疯狂创客圈,一大波高手正在交流.学习中! 疯狂创客圈 Java 死磕系列: [博客园 总入口]  QQ群:104131248 [Java 聊天室] 实战从0开始,打造100W级 仿QQ IM后台 [Spring +Netty]:   Spring Netty (整合实战,带源码) [IM协议 实战]:        Netty+Protobuf    整合一:实战案例,带源码 Netty +Protobuf   整合二:protobuf 消息通讯协议设计的几个准则 P…
死磕 Fragment 的生命周期 本文原创,转载请注明出处.欢迎关注我的 简书 ,关注我的专题 Android Class 我会长期坚持为大家收录简书上高质量的 Android 相关博文.本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 本文例子中 github 地址:github BuzzerBeater 项目链接(第一个开源项目,目前在逐步更新一些知识点,希望对你有所帮助) 曾经在北京拥挤的13号线地铁上,一名背着双肩包穿着格子衫带着鸭舌帽脚踏帆布鞋的程序员讲了一句:“我…
精进篇:netty源码  死磕4-EventLoop的鬼斧神工 目录 1. EventLoop的鬼斧神工 2. 初识 EventLoop 3. Reactor模式回顾 3.1. Reactor模式的组成元素: 3.2. Reactor模式的三步曲 4. Netty中的Reactor模式应用 5. channel系列类结构 5.1. channel家族成员 5.2. NioSocketChannel 类的层次机构 5.3. netty channel 和本地Channel的关系 6. NioEve…
概览 原子操作是指不会被线程调度机制打断的操作,这种操作一旦开始,就一直运行到结束,中间不会有任何线程上下文切换. 原子操作可以是一个步骤,也可以是多个操作步骤,但是其顺序不可以被打乱,也不可以被切割而只执行其中的一部分,将整个操作视作一个整体是原子性的核心特征. 在java中提供了很多原子类,笔者在此主要把这些原子类分成四大类. 原子更新基本类型或引用类型 如果是基本类型,则替换其值,如果是引用,则替换其引用地址,这些类主要有: (1)AtomicBoolean 原子更新布尔类型,内部使用in…
[正文]Java类加载器(  CLassLoader ) 死磕 8:  使用ASM,和类加载器实现AOP 本小节目录 8.1. ASM字节码操作框架简介 8.2. ASM和访问者模式 8.3. 用于增强字节码的事务类 8.4 通过ASM访问注解 8.5. 通过ASM注入AOP事务代码 8.6. 实现AOP的类加载器 1.1. 使用类加载器实现AOP 前面讲到,编程过程中,出现了很多需要动态加强字节码的场景:为了性能.统计.安全等等可能的加强,根据实际情况动态创建加强代码并执行. 这次使用asm来…
SpingSecurity + SpringSession 整合 疯狂创客圈 Java 高并发[ 亿级流量聊天室实战]实战系列 [博客园总入口 ] 架构师成长+面试必备之 高并发基础书籍 [Netty Zookeeper Redis 高并发实战 ] 疯狂创客圈 高并发 环境 视频,陆续上线: Windows Redis 安装(带视频) Linux Redis 安装(带视频) Windows Zookeeper 安装(带视频) Linux Zookeeper 安装(带视频) RabbitMQ 离线…
疯狂创客圈 Java 高并发[ 亿级流量聊天室实战]实战系列 [博客园总入口 ] 架构师成长+面试必备之 高并发基础书籍 [Netty Zookeeper Redis 高并发实战 ] 前言 Crazy-SpringCloud 微服务脚手架 &视频介绍: Crazy-SpringCloud 微服务脚手架,是为 Java 微服务开发 入门者 准备的 学习和开发脚手架.并配有一系列的使用教程和视频,大致如下: 高并发 环境搭建 图文教程和演示视频,陆续上线: 中间件 链接地址 Linux Redis…
Android架构(一)MVP架构在Android中的实践 https://www.300168.com/yidong/show-2790.html   核心提示:为什么要重视程序的架构设计 对程序进行架构设计的原因,归根结底是为了 提高生产力 .通过设计是程序模块化,做到模块内部的 高聚合 和模块之间的 低耦合 (如依赖注入就是低耦合的集中体现). 这样做的好处是使得程序开发过程中,开发人员主需要专注于一点, 为什么要重视程序的架构设计 对程序进行架构设计的原因,归根结底是为了 提高生产力 .…
死磕以太坊源码分析之EVM如何调用ABI编码的外部方法 配合以下代码进行阅读:https://github.com/blockchainGuide/ 写文不易,给个小关注,有什么问题可以指出,便于大家交流学习. 前言 abi是什么? 前面我们认识到的是智能合约直接在EVM上的表示方式,但是,比如我想用java端程序去访问智能合约的某个方法,难道让java开发人员琢磨透汇编和二进制的表示,再去对接? 这明显是不可能的,为此abi产生了.这是一个通用可读的json格式的数据,任何别的客户端开发人员或…
死磕hyperledger fabric源码|Order节点概述 文章及代码:https://github.com/blockchainGuide/ 分支:v1.1.0 前言及源码目录 Orderer排序节点这块内容主要包括了节点启动流程.Broadcast广播交易服务.Orderer共识排序服务以及Deliver区块分发服务.其相关源码目录文件如下: /orderer |-common ​ |-blockcutter:交易切割打包模块 ​ |-bootstrap:引导启动模块,生成创世块 ​…
该系列文章是本人在学习 Spring 的过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring 源码分析 GitHub 地址 进行阅读 Spring 版本:5.1.14.RELEASE 开始阅读这一系列文章之前,建议先查看<深入了解 Spring IoC(面试题)>这一篇文章 该系列其他文章请查看:<死磕 Spring 之 IoC 篇 - 文章导读> @Autowired 等注解的实现原理 在上一篇<Bean 的属性填充阶段>文章中讲…
该系列文章是本人在学习 Spring 的过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring 源码分析 GitHub 地址 进行阅读. Spring 版本:5.1.14.RELEASE 在开始阅读 Spring AOP 源码之前,需要对 Spring IoC 有一定的了解,可查看我的 <死磕Spring之IoC篇 - 文章导读> 这一系列文章 了解 AOP 相关术语,可先查看 <Spring AOP 常见面试题) > 这篇文章 该系列其他文章请…
系列文章 原来一条select语句在MySQL是这样执行的<死磕MySQL系列 一> 一生挚友redo log.binlog<死磕MySQL系列 二> 前言 咔咔闲谈 上期根据一条查询语句查询流程分析MySQL的整体架构.同样,本期也使用一条查询SQL语句来做引子.可以肯定的是,查询语句执行的流程更新语句同样也会执行. 因此本期的着重点就不在MySQL架构图上,文章标题也给出了大家重点,就是要了解redo log.binlog. 一.redo log 第一步,创建一个表 user,…
系列文章 一.原来一条select语句在MySQL是这样执行的<死磕MySQL系列 一> 二.一生挚友redo log.binlog<死磕MySQL系列 二> 前言 最近数据库老是出现下面死锁情况,借着这俩种情况出发详细的理解一下MySQL中的锁. Lock wait timeout exceeded; try restarting transaction Deadlock found when trying to get lock; try restarting transact…
在开发中有遇到很简单的SQL却执行的非常慢,甚至只查询一行数据. 咔咔遇到的只有两种情况,一种是MySQL服务器CPU占用率很高,所有的SQL都执行的很慢直到超时,程序也直接502,另一种情况是行锁造成的锁等待. 接下来咔咔带领大家看看各种为难SQL执行的场景,本期文章带大家再熟悉一下MySQL中的锁 最新文章 死磕MySQL系列总目录 什么?还在用delete删除数据<死磕MySQL系列 九> MySQL统计总数就用count(*),别花里胡哨的<死磕MySQL系列 十> 为什么…
由于业务随着时间不停的改变,起初的表结构设计已经满足不了如今的需求,这时你是不是想那就加字段呗!加字段也是个艺术活,接下来由本文的主人咔咔给你吹. 试想一下这个场景 事务A在执行一个非常大的查询 事务B毫不犹豫的执行了DDL操作 接下来会发生什么,你如果已经知道答案的话恭喜你又掌握了一个MySQL中重要的知识点. 事务A执行查询时会持有MDL锁,而事务B同样也需要MDL锁,但事务A在进行大查询,所以导致事务B后的所有操作都会被堵塞. 这时你应该知道了在MySQL中所有对表的增删改查都需要申请MD…
大家好,我是咔咔 不期速成,日拱一卒 本期来聊聊MySQL的加锁规则,知道这些规则后可以判断SQL语句的加锁范围,同时也可以写出更好的SQL语句,防止幻读问题的产生,在能力范围内最大程度的提升MySQL并发处理事务能力. 现在你应该知道了MVCC解决了快照读下的幻读问题,但当前读的幻读问题还是基于锁解决的,也就是next-key lock. 最新文章 死磕MySQL系列总目录 为什么MySQL字符串不加引号索引失效?<死磕MySQL系列 十一> 打开order by的大门,一探究竟<死磕…
大家好,我是咔咔 不期速成,日拱一卒 在平时开发工作中join的使用频率是非常高的,很多SQL优化博文也让把子查询改为join从而提升性能,但部分公司的DBA又不让用,那么使用join到底有什么问题呢? 死磕MySQL系列 一.什么是Nested-Loop Join 在MySQL中,使用Nested-Loop Join的算法进行优化join的使用,此算法翻译过来为嵌套循环连接,并且使用了三种算法来实现. Index Nested-Loop Join :简称NLJ Block Nested-Loo…
大家好,我是大明哥,一个专注于[死磕 Java]系列创作的程序员. [死磕 Java ]系列为作者「chenssy」 倾情打造的 Java 系列文章,深入分析 Java 相关技术核心原理及源码. 死磕 Java :https://www.cmsblogs.com/group/1420041599311810560 前两篇文章我们分析了 Channel 及 FileChannel,这篇文章我们探究 SocketChannel的核心原理,毕竟下一个系列就是 [死磕 Netty]了. 聊聊Socket…
前段时间搞优化,最后瓶颈发现都在数据库单点上. 问DBA,给我的写入答案是在1W(机械硬盘)左右. 联想起前几天infoQ上一篇文章说他们最好的硬件写入速度在2W后也无法提高(SSD硬盘) 但这东西感觉从来没证实过,故一时兴起,弄台虚拟机压测起来.   想搞清下面的问题:   1,mysql支撑多少连接数? 2,写入瓶颈到底是多少? 3,求QPS   畅想:  足够的CPU, load>远小于核数*2 足够的内存, 基本只用到物理内存 瓶颈在硬盘,写入速度应该能到90-100M/S(机械硬盘,7…
紧跟当今的技术发展趋势还远远不够,我们要引领变革!加入本地技术专家社区,获取真实案例.实况培训演示以及探讨新一代解决方案.在此活动中,您将: 了解如何运用开源(OSS)技术.Microsoft 技术及其他技术来打造更加灵活的基础架构,真正做到资源规模按需伸缩. 了解如何最大限度综合提升各类设备及平台的安全性.易管理性及生产力. 探索如何让您的企业数据中心进驻云端,同时,又不会损失安全性.可控性.可靠性及可伸缩性. 让社区专家.行业专家及 Microsoft 专家来为您答疑解惑. 与 IT 同行建…