自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Zoom

beginning of the end....

  • 博客(34)
  • 问答 (4)
  • 收藏
  • 关注

原创 netty高性能调优点

netty关于netty的学习和介绍,可以去github看官方文档,这里良心推荐《netty实战》和《netty权威指南》两本书,前者对于新手更友好,原理和应用都有讲到,多读读会发现很多高性能的优化点。netty高性能优化点最近参加了阿里中间价性能比赛,为了提升netty写的servive mesh的网络通信的性能,最近几天查了书、博客(这里强力推荐netty作者的博客,干货真的很...

2018-06-19 17:44:28 13388 5

原创 【算法】你真的会二分查找吗?(结合leetcode)

转载请注明出处。 写这篇文章的初衷是因为leetcode遇到了一个坑。我们先一起来看看。leetcode 34Given an array of integers nums sorted in ascending order, find the starting and ending position of a given target value.Your algorithm’s ...

2018-05-05 13:20:17 861

原创 分布式事务浅析

之前看《数据库系统实现》中有讲一些分布式事务,稍微了解了一下,这次再好好总结一下。文中有借用了网上的一些图。有侵权联系删除。数据服务性能的提升主要依靠两种方式数据分区(不同数据存在不同节点)数据备份(多节点拷贝,相同数据存放多个节点) Master-Slave。读写请求都由Master负责。写请求写到Master上后,由Master同步到Slave上。问题是:单点崩溃无法提供写服...

2018-03-15 16:53:40 356

原创 【数据库】数据库的锁机制及原理

数据库的锁机制,今天彻底理清楚。文章中有参考整理其他一些有价值的博客以及mysql官方文档的内容,如有侵权请联系删除。数据库锁先看一张图自己整理的数据库锁的树形图 概要 数据库锁一般可以分为两类,一个是悲观锁,一个是乐观锁。 乐观锁一般是指用户自己实现的一种锁机制,假设认为数据一般情况下不会造成冲突,所以在数据进行提交更新的时候,才会正式对数据的冲...

2018-03-08 18:06:13 51585 15

原创 Go语言三种方式读取文件效率对比及原因分析

最近有遇到需要用go读取大文件的情况,顺路研究了一下go几种读取文件方式的效率。go几种常见的文件io方式使用os包内的open和read。fi, err := os.Open(path) // 打开文件buf := make([]byte, 1024)n, err := fi.Read(buf) // 读取内容使用buffered iofi, err := os.Op...

2018-10-07 12:53:55 6743 5

原创 Kafka高可用性原理

分布式系统中,任何机器都可能面临未知的宕机风险,所以很高可用涉及是一个不可避免的话题。但是高可用带来的代价就是一致性问题,这又是一个很大很有趣的话题了。今天我们仅来谈谈kafka的高可用设计。高可用设计实现高可用性的方式一般都是进行replication,对于kafka,如果没有提供High Availablity机制,一旦一个或多个Broker宕机,则宕机期间其上所有Partitio...

2018-09-16 21:41:42 5184

原创 【读书笔记】推荐系统实践-常见推荐算法及应用

衡量推荐算法的指标用户满意度满意度是评测推荐系统最重要的指标,但是无法通过离线计算获得,只能通过用户调查或者在线实验。预测准确度对于TopN推荐(这里主要讨论TopN推荐),对于准确度的衡量有两个指标。R(u)是针对测试集,根据用户在训练集上的行为给用户作出的推荐列表,而T(u)是用户在测试集上的行为列表。召回率:表示用户喜欢的物品列表里被推荐系统推荐到的比例Recall=...

2018-07-03 15:34:19 6336

原创 【读书笔记】人人都是架构师:分布式系统架构落地与瓶颈突破

《人人都是架构师:分布式系统架构落地与瓶颈突破》。书主要介绍作者遇到的一些实际场景,提供了处理一些典型场景的思路,书中介绍了许多开源软件,但代码和一些细节比较少。分布式入门书,开拓了视野。大流量消锋/限流的常规手段1. 扩容使用集群技术对服务器进行扩容,可以很好的提升系统整体的并行处理能力。2. 动静分离静态数据可以放在CDN上来加速系统的响应速度3. 缓存...

2018-07-03 00:18:39 875

原创 【安卓】rxjava2+retrofit封装处理网络请求全解析

使用rxjava2+retrofit处理网络请求,线程的切换变得十分简单,代码也简洁了很多。但是简介的代码就是对可扩展性有着负面的影响,所以要对rxjava2+retrofit进行一定封装,使结构更清晰,可扩展性更强。这里给出一种可行的封装。以下均以登陆请求为例子。API地址:http://xxx/user/loginPost请求,参数account和password均为String...

2018-05-07 20:51:00 2816 1

转载 【java并发编程】DCL单例模式与Happen-Before

本来想写一篇文章说说DCL的缺陷顺带说一下JMM,看到有一篇文章写的不错,就直接转过来修改了一下。原文出处在这里。1 前言单例模式是我们经常使用的一种模式,一般来说很多资料都建议我们写成如下的模式:public class Instance { private String str = ""; private int a = 0; private stat...

2018-05-05 21:01:55 589

原创 【java并发编程】原子变量和CAS

我们知道锁的实现可以分为乐观锁和悲观锁,具体可以参照我的这篇文章数据库的锁机制及原理。java中也有对应的乐观锁和悲观锁的实现,在之前的文章中我们讨论了ReentrantLock和synchronized,它们都是悲观锁的具体实现,都是先确保拿了锁才会去操作。java中同样也有乐观锁的实现,这就是CAS(compareAndSwap)机制。锁的劣势如果锁已经被占用,那么其他线程必须被挂起...

2018-05-05 20:41:11 244

原创 【java并发编程】ReentrantLock和synchronized

在jdk5之前,协调共享对象访问的只有synchronized和lock,jdk增加了一种新的锁机制:ReentrantLock。lock并不是对内置锁的替换,而是互补。这篇文章主要循序渐进的比较两者异同和适用场景,如果有理解错的地方希望大家能指出。synchronized怎么实现的?synchronized是Java中解决并发问题的一种最常用最简单的一种方法,有效满足了线程安全的三大...

2018-05-05 00:17:13 317

原创 【java并发编程】对象组合

介绍可以通过对象组合构造一个满足需求的线程安全的类。 笔记来自《java并发编程实战》监视器模式(实例封闭)遵循java监视器模式的对象会把对象的所有可变状态都封装起来,并由对象自己的内置锁来保护。如:public calss PrivateLock { private final Object myLock = new Object(); Widget widg...

2018-04-05 23:24:15 668

原创 【java并发编程】线程安全性和对象共享

读书笔记来自《java并发编程实战》。线程安全性可重入锁可重入意味着获取锁的操作的粒度是线程而不是调用。实现方法是为每个锁关联一个获取计数值和一个所有者进程。当计数器为0,这个锁被认为可以被任何线程池游。当线程请求一个未被池游的锁时,JVM将记下锁的持有者,并且将计数器置为1,如果同一个线程再次获取这个锁,计数器将递增。当线程退出痛不快,计数器递减。当计数器为0,锁被释放。...

2018-04-04 11:42:41 604

原创 Manacher's algorithm求最长子回文串算法解析

Manacher’s algorithm 求最长子回文串用该算法求解最长回文子串,时间和空间复杂度都是O(n)。 这里有篇英文解释,可供参考。算法不太好理解,所以在理解的时候记录下来,怕遗忘。https://articles.leetcode.com/longest-palindromic-substring-part-ii/算法思想1. 准备首先,对回文子串做处理...

2018-03-13 13:11:30 286

原创 idea项目添加spring

配置步骤1.添加spring的依赖包idea可以直接右击项目 选择add frame support,勾选spring即可2.创建applicationContext.xml在src的直接子目录下创建 applicationContext.xml 这里给出一个applicationContext.xml 的实例,以及注释解释<?xml version="1...

2018-02-09 13:40:06 15117 1

原创 【安卓】android第三方库导致support版本冲突解决方案

问题升级compileSdk版本到26,同时修改了support包的版本,报错 all com.android.support libraries must use the exact same version specification(mixing versions can lead to runtime crashes)也就是说有引入的第三方库和目前编译版本有冲突。...

2018-01-26 13:57:46 8571

原创 动态规划之01背包问题及leetcode实例

01背包问题这篇文章讲的很清楚,我这里就不赘述了。https://www.cnblogs.com/Christal-R/p/Dynamic_programming.htmlleetcode problem 416描述Given a non-empty array containing only positive integers, find if the array

2018-01-24 15:07:37 17610

原创 报错 pathspec '–m' did not match any file(s) known to git.

使用shell写git commit -m命令报错 pathspec '–m' did not match any file(s) known to git.脚本如下cd /Users/Mark.W/Documents/AboutMyself/ git add .git commit -m "add_upload_picture"git push origin master但

2018-01-20 00:04:50 22408

原创 idea使用wildfly创建ejb项目

准备工作到官网下载wildfy,解压缩即可。创建EJB端模块在已有的项目中新建模块(直接新建工程也可以),选择web application 和ejb(当时我只选择ejb,发现一直报错找不到war包,部署不上去,勾选了web application就可以部署了,还不知道啥原因)在src中新建包,我这里是xyz.wyy.order.service,里面新建接口和实现类。(暂

2018-01-06 18:34:02 4028

原创 错误Error “You must not call setTag() on a view Glide is targeting” when use Glide

参考自:http://blog.csdn.net/ltym2014/article/details/51558695项目中在使用Glide图片加载框架是遇到如下错误You must not call setTag() on a view Glide is targeting报错原因大致是因为Glide加载的iamgeView调用了setTag()方法导致的错误, 因为Glid...

2018-01-04 21:42:38 575

原创 java匿名内部类序列化问题

遇到一个序列化问题。明明对象已经实现了序列化接口,但是报错无法序列化外部的类(内心os,跟外部类什么关系啊)。最后发现原因是我使用的对象是匿名内部类的子类,继承的父类实现了序列化接口。匿名内部类的对象会伴随主对象的整个生命周期,并且匿名类必然不会继承序列化接口支持序列化,所以在执行序列化时会发生无法序列化外部类的情况,因为匿名类对象也是一个需要序列化的成员。

2018-01-04 20:40:52 3096

原创 【安卓】splash页启动优化全解析

问题一般没有特殊处理,android启动的时候,会出现白屏或者黑屏的状态,体验很差。究其原因,白屏是app在冷启动的时候,初始化,系统自动用默认的背景色来填充屏幕。这个默认的背景色和你定义的app主题有关。比如如果你的主题继承自Theme.AppCompat.Light.NoActionBar,那么启动的时候就是白色。本章就来解决app启动慢的问题。解决我所了解到的,一般解决这...

2018-01-04 20:33:18 1523 1

原创 servlet response的encodeURL

问题与解决初学servlet,一直没在意HttpServletResponse的encodeURL方法,所以服务器端返回地址的时候一直这么写的 "<form action=\"" + req.getContextPath() + "/\" method=\"post\">\n" 直到运行的时候才发现,这里的请求没有发送到服务器端到相应servlet的doP...

2017-12-25 14:21:53 984

原创 leetcode之wordsearch

ProblemGiven a 2D board and a word, find if the word exists in the grid.The word can be constructed from letters of sequentially adjacent cell, where “adjacent” cells are those horizontally or ver...

2017-12-23 11:30:14 347

转载 servlet单例多线程

转载自:https://www.cnblogs.com/yjhrem/articles/3160864.html将原文进行了修整和精简Servlet如何处理多个请求访问?Servlet容器默认是采用单实例多线程的方式处理多个请求的:当web服务器启动的时候(或客户端发送请求到服务器时),Servlet就被加载并实例化(只存在一个Servlet实例)容器初始化化Servlet...

2017-12-22 20:02:08 437

原创 servlet的filter使用替换流

servlet过滤器工作流程servlet过滤器在request到达servlet前可以拦截,在response到达客户端之前可以捕获。这样便可以在过滤器中处理一些请求响应的前置操作或通用操作。常见的一种应用就是进行敏感词过滤。但是如果直接使用HttpServletResponse,这是一个流,无法对已经out.println()的内容进行修改。所以这里需要替代流。替代流(...

2017-12-22 14:59:40 621

原创 Android报android.content.res.Resources$NotFoundException: String resource ID xxx 错误

Android报“android.content.res.Resources$NotFoundException: String resource ID xxx”错误错误情形使用TextView的setText方法,报错资源找不到。 .setText(R.id.read_num,item.getReadNum())解决这里item.getReadNum()是一个in...

2017-12-21 21:08:06 374

原创 【数据库】数据库索引

1.范式与反范式1.1 范式第一范式符合1NF的关系中的每个属性都不可再分,是所有关系型数据库的最基本要求第二范式数据表里的所有非主属性都要和该数据表的主键有完全依赖关系;如果有哪些非主属性只和主键的一部份有关的话,它就不符合第二范式;如果一个数据表的主键只有单一一个字段的话,它就一定符合第二范式第三范式指数据库中不能存在传递函数依赖关系;关系(表)中的...

2017-12-19 23:56:39 500

原创 数据结构-树

二叉树每个结点最多有两颗子树,结点的度最大为2左子树和右子树是有顺序的,次序不能颠倒节点数为n的树 深度至多为n 至少为log2(n+1)向下取整对于任何一棵非空的二叉树,如果叶节点个数为n0,度数为2的节点个数为n2,则有: n0 = n2 + 1 存储二叉树结构的方法一般有三种,数组、链表、游标满二叉树高度为h的满二叉树拥有刚刚好(2^h+1 )-1个节点...

2017-12-19 23:35:33 271

原创 【安卓】自定义支持圆角的TextView

给textview添加圆角如果想给一个普通的textview添加圆角、边框等,一般的做法是写一个drawable文件。这里通过自定义Textview实现在xml文件里方便的定义圆角等属性。

2017-12-19 23:26:39 3020

原创 【安卓】glide缓存无法更新

问题使用glide加载图片,glide有缓存,分为内存缓存和磁盘缓存,可以通过diskCacheStrategy设置不同的缓存策略。但是对于指定的url的图片,会出现服务器端的图片已经改变,但是本地加载的时候,glide发现有缓存,不会重新从服务器加载,导致一直显示老的图片。解决方案。

2017-12-15 10:12:56 2024

原创 alfred的workflow快捷键登录校园网,自制图床

关于alfred之前也一直使用被称为mac神器到alfred。直到今天才发现我用的是低版本,功能非常基础。而高版本所支持的workflow才是真的称为神器。alfred下载猛戳这里这里。至于powerpack的一些功能,可以选择购买使用或者…(滑稽脸)workflowworkflow就是让alfred直接执行脚本,包括shell、python、php等,直接那两个例子来解释,就知道

2017-12-12 21:15:27 2211

原创 【安卓】rxjava2的disposable

rxjava+retrofit处理网络请求在使用rxjava+retrofit处理网络请求的时候,一般会采用对观察者进行封装,实现代码复用和拓展。可以参考我的这篇文章:rxjava2+retrofit封装处理网络请求全解析。一种可行的封装如下:基类observerpublic abstract class BaseObserver<T> implements Obser...

2017-12-11 17:08:14 20495 2

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除