自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 收藏
  • 关注

原创 Java G1 垃圾收集器详解

G1在堆上分配内存和其他的GC有点不一样1、 G1堆结构G1的堆结构就是把一整块内存区域切分成多个固定大小的块。在JVM在启动时来决定每个小块,也就是region的大小。 JVM一般是把一整块堆切分成2000个小region。然后每个小region从1到32Mb不等。2、 G1内存分配事实上,这些region最后又被分别标记为Eden,Survivor和old。这里的eden,survivor和o...

2018-05-28 16:33:55 916 1

原创 互联网高可用架构

2018-05-04 10:50:54 346

转载 我是一名10年开发经验的中龄程序员,正在走程序生涯的后半部分

我是一名中龄程序员,几个月前刚过完三十一岁生日。某个星期六的早晨,我参加了一个某公司的大型技术交流会,演讲者正在竭力说服我们为什么它会成为移动开发领域真正的下一个大事件。但对我来说,它有点像5年前的php ,将所有的逻辑都放在演示代码里面。但我“老”了,我认为这是因为自己还没有完全理解它。演讲者展示完 ppt 后,现场进行编码,还展示了大约半打我没听说过的配套开发工具,这些都让我感到有点惊讶但...

2018-09-20 14:23:28 567

转载 三分钟看懂一致性哈希算法

转:https://blog.youkuaiyun.com/gerryke/article/details/53939212受一篇“五分钟看懂”的启发,来个哗众取宠的标题一致性哈希算法,作为分布式计算的数据分配参考,比传统的取模,划段都好很多。在电信计费中,可以作为多台消息接口机和在线计费主机的分配算法,根据session_id来分配,这样当计费主机动态伸缩的时候,因为session_id缓存缺失...

2018-09-13 14:55:53 367

转载 Java虚拟机垃圾回收(三) 7种垃圾收集器:主要特点 应用场景 设置参数 基本运行原理

转:https://blog.youkuaiyun.com/tjiyu/article/details/53983650在《Java虚拟机垃圾回收(一) 基础》中了解到如何判断对象是存活还是已经死亡?在《Java虚拟机垃圾回收(二) 垃圾回收算法》了解到Java虚拟机垃圾回收的几种常见算法。       下面先来了解HotSpot虚拟机中的7种垃圾收集器:Serial、ParNew、Parallel...

2018-09-10 14:44:52 342

转载 前端设计,CSS 常用布局解决方案

记录下 CSS 常用布局的解决方案,对于需要高兼容性的布局可以使用基于 posistion 属性的布局,table 布局方式也经常用到。还有基于margin 和 float 的传统布局方式、利用 BFC 的布局方式和 CSS3 的弹性布局 flex 的布局方式。具体选用哪一种可以依据实际业务加以变通和修改。1、水平居中布局 inline-block + text-align 优...

2018-09-03 15:39:40 420

原创 H5页面在微信端的分享

微信分享,咋一看好像很复杂,实则非常简单。只需要调用微信官方出的微信jssdk,加上些许配置,就可以实现h5页面在微信上的分享,官方文档地址为:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115一、获取基本信息找到已有公众号的appid,根据这个appid和url向后端发起请求,拿到配置所需要的参数:t...

2018-09-03 15:17:49 753

转载 选择技术方向都要考虑哪些因素

本文主要是作者读安晓辉老师的《程序员程序员职场进阶 32 讲 》中关于“选择技术方向都要考虑哪些因素”这部分做的一些笔记和自己的思考。在这里分享给各位!文章很短,所以各位只需要花3分钟左右就可以阅读完成哦!选择一种技术可能会考虑到的决定因素就业机会选择一门就业面广的技术还是比较重要的。我的很多学PHP的同学现在都在培训班学Java,真的!!!但是也不是说,你选择就业面光的就能找到好...

2018-08-31 12:14:53 357

转载 Java面试题总结(二)

主要内容:1.String和StringBuffer、StringBuilder的区别是什么?String为什么是不可变的?2.什么是反射机制?反射机制的应用场景有哪些?3. 什么是JDK?什么是JRE?什么是JVM?三者之间的联系与区别4. 什么是字节码?采用字节码的最大好处是什么?5. Java和C++的区别6. 接口和抽象类的区别是什么?7. 成员变量与局部变量...

2018-08-31 12:12:25 203

转载 常见的Java面试题总结(一)

一 Java中的值传递和引用传递(非常重要)首先要明确的是:“对象传递(数组、类、接口)是引用传递,原始类型数据(整型、浮点型、字符型、布尔型)传递是值传递。”那么什么是值传递和应用传递呢?值传递是指对象被值传递,意味着传递了对象的一个副本,即使副本被改变,也不会影响源对象。(因为值传递的时候,实际上是将实参的值复制一份给形参。)引用传递是指对象被引用传递,意味着传递的并不是实际的...

2018-08-31 12:10:41 220

转载 Java集合框架面试题在面试中几乎必问

主要内容:  Arraylist 与 LinkedList 异同 ArrayList 与 Vector 区别 HashMap的底层实现 HashMap 和 Hashtable 的区别 HashMap 的长度为什么是2的幂次方 HashSet 和 HashMap 区别 ConcurrentHashMap 和 Hashtable ...

2018-08-31 12:08:21 455

转载 Java内存区域讲的最清楚的一篇文章

写在前面(常见面试题)下面是面试官可能在“Java内存区域”知识点问你的问题,快拿出小本本记下来!基本问题: 介绍下Java内存区域(运行时数据区)。 Java对象的创建过程(五步,建议能默写出来并且要知道每一步虚拟机做了什么) 对象的访问定位的两种方式(句柄和直接指针两种方式) 拓展问题: String类和常量池 8种基本类型的包装类和常量池...

2018-08-31 12:06:12 501

转载 JVM 垃圾回收面试

写在前面本节常见面试题:问题答案在文中都有提到 如何判断对象是否死亡(两种方法)。 简单的介绍一下强引用、软引用、弱引用、虚引用(虚引用与软引用和弱引用的区别、使用软引用能带来的好处)。 如何判断一个常量是废弃常量 如何判断一个类是无用的类 垃圾收集有哪些算法,各自的特点? HotSpot 为什么要分为新生代和老年代? 常见...

2018-08-31 12:04:12 545

转载 什么是线程安全,你真的了解吗?

在说什么是线程安全之前我们先来聊聊什么是进程。1、什么是进程? 先来看一张图 我们看到的这些单独运行的程序就是一个独立的进程,进程之间是相互独立存在的。我们上面图中的QQ、酷狗播放器、电脑管家等等都是独立的进程。 2、什么是线程? 上面简单的说了一下什么是进程,进程想要执行任务需要依赖线程,换句话说就是进程中的最小执行单位就是线程,并且一...

2018-08-31 12:01:42 357

转载 电商系统如何做搜索引擎?

0 什么搜索引擎? 搜索引擎(search engine)是指根据一定的策略、运用特定的计算机程序搜集互联网上的信息,在对信息进行组织和处理后,为用户提供检索服务的系统。数据其实就是一块块的砖头,当用户需要的时候搜索引擎搬过来。我们的宗旨就是在最短的时间内,让用户找到他们最想要的东西。 1 电商系统为什么需要搜索引擎 电商搜索业务特点: 第一点, 电商系统的商品...

2018-08-31 11:46:29 7698 3

转载 程序员面试,为什么要考察算法和智力题?

小灰一直很喜欢算法。不是因为小灰附庸风雅,而是算法本身千变万化,魅力无穷。在面试的时候,面试官也常常考察候选人的算法能力,甚至有的面试官还需要出各种各样有趣的智力题。这是为什么呢?因为候选人对技术知识的掌握固然重要,但是对于程序员来说,缜密的逻辑思维、灵活解决问题的能力更加难能可贵。这些能力从解决算法问题,回答智力题目的过程中,可以充分地展现出来。下面我们来举几个例子,看看大家...

2018-08-31 11:19:22 5063 2

原创 Unsupported major.minor version 52.0报错

stanford parser和jdk版本对应关系 J2SE 8 = 52, J2SE 7 = 51, J2SE 6.0 = 50, J2SE 5.0 = 49, JDK 1.4 = 48, JDK 1.3 = 47, JDK 1.2 = 46, JDK 1.1 = 45 Unsupported major.minor...

2018-08-23 12:27:52 380

原创 唯一流水号生成方式

目前很多系统采用32位流水号生成,其采用UUID算法随机产生,为32位长度的16进制字符串,各开发语言例如JAVA/C++/Python等基础函数库中都有此类算法。但UUID具有多个版本,每个版本的算法不同,应用范围也不同。想查看几种版本生成的ID区别,可以访问:http://www.uuid.online/根据经验分为以下几种UUID Version 1:基于时间的UUID基于时间的U...

2018-08-22 09:56:41 12562

原创 抢购流程

1:抢购活动录入(包括:活动名称,活动描述,活动图片,活动开始时间,结束时间)。2:抢购商品录入(包括:商品名,图片,描述,价格,库存数量(100))。3:抢购服务架构:nignx(2台)--》4台tomcat--》2台redis和2台mysql4:抢购前,把活动和商品数据加载到redis 里面。5:抢购前,可以访问活动情况页面和接口,但购买接口会判断是否到抢购时间,如果没到则返回提取抢错...

2018-08-17 09:27:58 2071

原创 汉子的构造

一、六书汉字构造有六种方法,人们将这些构造方法归纳为“六书”。“六书”最早见于《周礼》:“...五曰六书”。汉代班固在《汉书.艺文志》中说:“周官保氏掌养国子,教之六书,谓象形、象事、象声、转注、假借,造字之本也”,东汉许謓在《说文解字.续》中对其做了处不解释,并举例说明。1、指事创造文字时,具体的东西有形可象,抽象的事物只能用记号来表示,这就是指事,如上、下、一、二、三2、象形...

2018-07-24 16:17:18 626

原创 maven编译时报错:致命错误: 在类路径或引导类路径中找不到程序包 java.lang

maven编译时报错:致命错误: 在类路径或引导类路径中找不到程序包 java.lang:[INFO] Scanning for projects...[INFO]                                                                         [INFO] ----------------------------------...

2018-07-17 10:13:06 991

原创 docker安装运行es遇到的坑

正常情况下运用docker pull下es,然后使用docker run -p 9200:9200 -p 9300:9300 -d 容器,就可以运行容器,但是es有很多配置不得不让你蛋疼的启动不了,下面就楼主遇到的问题进行总结:1、内存问题,Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000085...

2018-07-08 18:02:19 10670 3

转载 CentOS7 下安装 ElasticSearch 5.x 及填坑

ElasticSearch简介什么是ElasticSearch:ElasticSearch是基于Apache Lucene构建的开源搜索引擎采用Java编写,提供了简单易用的RESTFul API轻松的横向扩展,可支持PB级的结构化或非结构化的数据处理应用场景:海量数据分析引擎站内搜索引擎作为数据仓库一线公司实际应用场景:英国卫报 - 实时分析公众对文章的回应维基百科、GitHub - 站内实时搜...

2018-07-05 17:53:22 585 1

原创 docker 官方的镜像大多基于debian,但是官方源apt-get update更新失败,如何更换成中国源

一开始创建容器的时候就应该更换成国内数据源,可是我的镜像源在经历重启后,回归到官方镜像源,当想安装别的linux命令时,异常缓慢,安装不上。这种情况就是镜像源导致。镜像源可以在容器创建前后更换1、在创建时运行run更换如下:#更新apt-get源 使用163的源RUN mv /etc/apt/sources.list /etc/apt/sources.list.bak && \...

2018-07-04 19:08:30 13632

原创 Java Service Wrapper如何开启远程调试

      在实际开发过程中很多模块需要独立运行,他们并不会以web形式发布,传统的做法是将其压缩为jar包独立运行,这种形式简单易行也比较利于维护,但是 一旦服务器重启或出现异常时,程序往往无法自行修复或重启。解决服务器重启的传统做法是编写一段shell脚本随服务器启动而运行,但是这样做只是治标, 那么我们想寻求一种“治本”的方式该怎么办呢?        Java Service Wrappe...

2018-07-02 21:03:11 821

原创 note++匹配文件所有注释

近来使用docker构建镜像发现,如果sql文本有如下注释,创建镜像莫名奇怪不行由于文本中有大量注释,一个一个替换不太现实,于是想到了note++正则表表达式批量替换,由于/*属于特殊字符,再加上对正则表达式疏于练习,导致匹配了好大一阵,现记录如下:正则表达式为:\/\*![\s\S]*?\*\/;点击note++批量替换,选择正表达式,替换最终结果如下图...

2018-06-27 23:57:15 936

原创 windows下安装docker

1、安装前首先确认是否是系统10,第二确认系统是否有Hyper-V虚拟机(查看控制面板---打开或者关闭windows功能)小记:由于楼主虽然win10系统,安装之前看书籍和网上套路支持Hyper-V虚拟机就去直接下载 Docker for Windows Installer.exe安装,然后安装完成后发现启动不了,各种百度开启Hyper-V最终无果,浪费不少时间,最直接就是在控制面板查看wind...

2018-06-26 12:54:43 1140

原创 docker 安装hadoop,hive,spark,hbase

0:网络和主机规划docker network create --subnet=172.18.0.0/16 mynetwork主机规划"172.18.0.30 master" "172.18.0.31 slave1" "172.18.0.32 slave2"    1:安装基础环境docker pull ubuntu:16.04docker run -it  ubuntu:16.04 /bin/b...

2018-06-25 10:21:59 5496

转载 一年管理成富翁,三年市场路路通,十年技术一场空

0、题记99年毕业到现在,已做了18年的技术,我能力一般,但也不是最差的。从我过往的经历看,给我的感觉就是:在中国,做技术的出路非常有限。首先做技术需要跟对老板,其次做技术的要和老板有共同的价值观,再有最最重要的是需要有一个好的身体。1、跟了“对”的老板?我好像并没有。不只是我,想必很多人都和我一样。在中国现在这个社会,老板你不能选,随意跳槽的结局就是一个老板还不如一个,尽管你的工资每个月增加了几...

2018-06-08 13:17:50 411

转载 为什么分布式一定要有延时任务?

0 引言在开发中,往往会遇到一些关于延时任务的需求。例如生成订单30分钟未支付,则自动取消生成订单60秒后,给用户发短信对上述的任务,我们给一个专业的名字来形容,那就是延时任务。那么这里就会产生一个问题,这个延时任务和定时任务的区别究竟在哪里呢?一共有如下几点区别定时任务有明确的触发时间,延时任务没有定时任务有执行周期,而延时任务在某事件触发后一段时间内执行,没有执行周期定时任务一般执行的是批处理...

2018-06-08 12:53:04 223

转载 为什么分布式一定要有消息队列?

0 为什么写这篇文章?博主有两位朋友分别是小A和小B:小A,工作于传统软件行业(某社保局的软件外包公司),每天工作内容就是和产品聊聊需求,改改业务逻辑。再不然就是和运营聊聊天,写几个SQL,生成下报表。又或者接到客服的通知,某某功能故障了,改改数据,然后下班部署上线。每天过的都是这种生活,技术零成长。小B,工作于某国企,虽然能接触到一些中间件技术。然而,他只会订阅/发布消息。通俗点说,就是调调AP...

2018-06-08 12:45:56 162

转载 为什么分布式一定要有redis?

1、为什么使用redis分析:博主觉得在项目中使用redis,主要是从两个角度去考虑:性能和并发。当然,redis还具备可以做分布式锁等其他功能,但是如果只是为了分布式锁这些其他功能,完全还有其他中间件(如zookpeer等)代替,并不是非要使用redis。因此,这个问题主要从性能和并发两个角度去答。回答:如下所示,分为两点(一)性能如下图所示,我们在碰到需要执行耗时特别久,且结果不频繁变动的SQ...

2018-06-08 12:13:37 190

转载 走出架构误区

转发一篇有争议文章,如有任何不适请绕道:):):)但随着年代的变迁,从前的小程序员也成了有多年工作经验的大咖了,更多人的头衔从程序员贴上了架构师标签。而在互联网如此火的今天,在这样一个年代里,我又要出来指出几个误区。1 误区一,一套开发框架代替架构师       首先我们来看下,架构师全称为“软件系统架构设计师”。名字很长,但拆分开来是xxxxxx设计师,前面加上“架构”这一词突出了是一个从更高层...

2018-06-08 11:11:10 230

转载 为什么分布式一定要有一致性方案?

0 引言为什么写这篇文章?首先,缓存由于其高并发和高性能的特性,已经在项目中被广泛使用。在读取缓存方面,大家没啥疑问,都是按照下图的流程来进行业务操作。但是在更新缓存方面,对于更新完数据库,是更新缓存呢,还是删除缓存。又或者是先删除缓存,再更新数据库,其实大家存在很大的争议。目前没有一篇全面的博客,对这几种方案进行解析。于是博主战战兢兢,顶着被大家喷的风险,写了这篇文章。1 正文先做一个说明,从理...

2018-06-08 10:41:53 242

转载 HTTPS和证书原理

安全的原理其实非常多,基础的诸如数字签名,加密解密等等,这边不会细讲,会略微提一下。主要讲讲常见的web相关的安全原理,比如HTTPS,证书,双向证书等。  关于对称加密和非对称加密:对称加密算法比非对称加密要快,但是对称加密要求密钥对等,这会带来几个问题:一是密钥传输过程中容易被截获,从而导致加密的无效;二是在一个n节点的传输网络中,某节点需要保存n-1个密钥,非常繁琐。非对称加密则不存在这个问...

2018-06-05 10:25:52 10885 1

转载 opentsdb 简易生动讲解

转载:https://yq.aliyun.com/articles/54785摘要 OpenTSDB是一个分布式的、可伸缩的时间序列数据库,在DB-engines的时间序列数据库排行榜上排名第五。它的特点是能够提供最高毫秒级精度的时间序列数据存储,能够长久保存原始数据并且不失精度。它拥有很强的数据写入能力,支持大并发的数据写入,并且拥有可无限水平扩展的存储容量。        它的强大的数据写入能...

2018-06-05 10:17:34 6912

转载 什么样的程序员会让人讨厌

我有一个朋友,就是一个程序员,找他做事的时候,最让人讨厌了。00不愿意帮我修电脑。我说电脑坏了,想让他看看,他先是叫我检查插头,然后叫我重启,重启好之后,他冷淡的说:以后有事先重启。他明明什么都没有帮忙,还这种态度,让人生气。01不帮我重装系统。我让他帮我在我90年代的电脑上装个win10,他居然说不行,明显就是懒得帮我,他就是程序员,软件优化做得相当好,居然不会在老电脑上优化win10,看不起我...

2018-06-01 09:19:42 601

转载 八幅漫画理解使用 JWT 设计的单点登录系统

原文:http://blog.leapoahead.com/2015/09/07/user-authentication-with-jwt/上次在《JSON Web Token - 在Web应用间安全地传递信息》中我提到了JSON Web Token可以用来设计单点登录系统。我尝试用八幅漫画先让大家理解如何设计正常的用户认证系统,然后再延伸到单点登录系统。如果还没有阅读《JSON Web Toke...

2018-05-28 16:41:26 219

原创 mycat 方案整理

一、整体高可靠架构应用访问ha 的vip来访问数据库。多个mycat可以达到负载均衡和高可靠。二、mycat 基本配置1、表按库分区<schema name="DBTest" checkSQLschema="false" sqlMaxLimit="100">        <!-- sharding by murmur id -->        <table nam...

2018-05-25 10:29:39 387

原创 线程池原理和机制简述

一:结构线程池一般有core 线程数,最大线程数和缓存队列(阻塞队列)组成。二:线程复用原理线程池里面的线程(真正线程,start 方法启动的)运行业务线程对象(Thread 或者Runable 对象,但不是真正的线程)的run (非start方法)方法。三:线程池逻辑四:常用线程池1:newFixedThreadPoolpublic static ExecutorService newFixed...

2018-05-24 11:18:31 2269

空空如也

空空如也

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

TA关注的人

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