自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

AD_plus的博客

细说架构那些事,+V:ddmsiqi

  • 博客(61)
  • 收藏
  • 关注

原创 KMP字符串模式匹配算法Java实现

本文灵感来自于July的博客从头到尾彻底理解KMP,并着重于Java实现

2019-05-30 14:47:27 513

原创 海量数据解决思路之BitMap

一、概述本文将讲述Bit-Map算法的相关原理,Bit-Map算法的一些利用场景,例如BitMap解决海量数据寻找重复、判断个别元素是否在海量数据当中等问题.最后说说BitMap的特点已经在各个场景的使用性。二、Bit-Map算法先看看这样的一个场景:给一台普通PC,2G内存,要求处理一个包含40亿个不重复并且没有排过序的无符号的int整数,给出一个整数,问如果快速地判断这个整数是否在文件4...

2019-05-30 14:44:28 268

原创 Java程序员如何提升自我?可以从这8方面出发

作为一个开发人员,我们最大的挑战就是保持自己了解新的技术。技术变化很快,你大概每两年就会看到一个新版本的编程语言和框架。最近两年区块链、人工智能,物联网等等技术已经扑面而来了。除了这些离我们较远的,说几个离我们最近的:JDK 9、 Spring 5、 Spring Security 5、 Spring Boot 2、ServiceMesh等。这一年对于一个Java开发来说可能是最忙碌的一年了,我...

2019-05-30 14:36:12 1093

原创 java有哪些冷知识?

1)jvm有很多种,其实jvm是一个标准,sun做的那个叫hotspot,作者就是后来v8的作者lars bak,其他公司也做过jvm,其中做得比较好的有bea的jrockit,其他的包括ibm的r9,apple的jvm等在内,都做得不行,所以jvm主要是整合淘汰掉这些做得不好的jvm(s),整合成一个统一的openjdk2)java是典型的oop语言,其执行效率的优化,最早就是lars bak...

2019-05-30 14:22:43 252

原创 Java 中 double 在计算时精度丢失的问题

一、问题呈现非常经典问题,其实不仅仅是 Java 语言,还是 JS 等语言的通病,即:当我们在计算 0.1+0.2 时,惊讶的发现,结果竟然不是 0.3,而是:0.30000000000000004。二、问题分析问题很简单,是由于我们输入的十进制的 double 类型的数据在进行计算的时候,计算机会先将其转换为二进制数据,然后再进行相关的运算。然而在十进制转二进制的过程中,有些十进制数是...

2019-05-30 11:39:30 8820

原创 做一个优秀的程序员到底难在哪里?

初入此门,觉得语法和算法很难,搞不懂C++的STL,搞不懂Java的Full GC,搞不懂函数式,搞不懂动态规划和各种树、图……入行二三年,正常情况下,语法和算法都不再成为门槛,开始感觉最难是架构:RX还是Vue? Weex还是RN?Django还是Flask?然而入行五六年,我感觉最难的,还是在“人”。对于上级,你要说服他们你在做的东西是有意义的,或者使你做的东西至少“看起来”有意义——因...

2019-05-29 12:18:21 379

原创 系统架构第三篇之架构(上)

一、引言架构在百科中的定义是"架构,又名软件架构,是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计"。看到这个定义,从中获取的有效信息不大,只知道这个很厉害,用于指导大型软件系统各个方面的设计。那何为架构呢?自己对它的理解是"按照架子把它构建出来",这里包含两个方面:一是架子是什么;二是如何构建出来。在架构两篇文章中回答这两个问题。二、架构分类大部分人谈的架构,一般是...

2019-05-29 11:25:48 268

原创 系统架构第二篇之系统(下)

一、引言上一篇文章中已经提到系统是具有层次特性,那么系统的层是如何推导出来的呢?本文就主要从系统分层的最终表现反向推导出分层的过程。二、再论系统特性在上一篇文章中根据系统的定义,提炼出系统的两个关键特点:系统的整体和部分、系统的层次结构性。层次特性现在我们大概知道了,在计算机系统中也有接触过,如网络协议的分层、计算机的分层等等。分层是一种表象特征,同时系统也具有整体和部分的特征。通过整体与...

2019-05-29 11:24:54 169

原创 系统架构第一篇之系统(上)

一、引言系统架构是平常讲得比较多的词汇,但它的含义比较广,以自己的思考和实践写出系统架构系统文章,希望对大家有些启发作用。在本文中,先讨论什么是系统,系统在百科中的解释是"系统就是若干相互联系、相互作用、相互依赖的要素结合而成的,具有一定的结构和功能,并处在一定环境下的有机整体"。从这句话里可以提炼两点内容出来:一是整体与部分(由要素结合而成的);二是结构性(具有一定的结构和功能)。本文也是基...

2019-05-29 11:23:45 177

原创 业务系统开放实现

一、引言现在大部分的人都是在做业务,毕竟业务是一个公司的支撑,没有业务带来的收益,公司又怎么能发展呢。做技术的人都喜欢钻研技术,认为做技术是有含金量的,包括我自己在前两年的工作中也是这么想的。后面发现不是这样的,技术是为了更好的服务于业务的发展,真正体现一个人的技术是他能用技术解决业务上的难题。做业务的同学有一个感受,业务需求永远都做不完,做完一个接一个,天天都在码代码。这个时候就要抬头看路了...

2019-05-29 11:06:26 198

原创 2年java开发,迷茫了,该怎么办?

2年java开发,迷茫了,该怎么办?头发浓密乌黑的程序员 2019-05-28 14:59迷茫的原因?程序员是一个特殊的群体,我们不知道为什么加入这个行业,也不知道这个行业还能做多久,不同人有着不同的故事,有着不同的迷茫。家庭的作用你和大多数人不一样,你投入大量的业余时间,拼了命的学习总结,终于有点成绩,在职业上有所收获,级别和待遇都比一般人高了。但是,不要忽视一个问题,那就是家庭。有...

2019-05-28 15:01:20 521

原创 单点登录的三种实现方式

在我实习之前我就已经在看单点登录的是什么了,但是实习的时候一直在忙其他的事,所以有几个网站就一直躺在我的收藏夹里边:在前阵子有个读者来我这投稿,是使用JWT实现单点登录的(但是文章中并没有介绍什么是单点登录),所以我觉得是时候来整理一下了。简单代码实现JWT(json web token)完成SSO单点登录一、什么是单点登录?单点登录的英文名叫做:Single Sign On(简称SSO...

2019-05-28 14:57:05 8783 2

原创 Spring、SpringMVC、SpringBoot的各析

在本文中,你将获取到有关于Spring,Spring MVC和Spring Boot的概述,了解他们解决的问题以及最佳的应用位置。最重要的是Spring,Spring MVC和Spring Boot不会矛盾。他们很好的解决了不同的问题。1.Spring框架解决的核心问题是什么?好好想想,Spring Framework解决了什么问题?Spring Framework最重要的特性是依赖注入所...

2019-05-28 13:30:36 373

原创 java程序猿面试你总会碰到的基础知识点

java中的基本数据类型图片描述(最多50字)说说&和&&的区别&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。&&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式,例如,对于i...

2019-05-28 11:21:39 202

原创 Java集合详解1:ArrayList,Vector与Stack

本文非常详尽地介绍了Java中的三个集合类 ArrayList,Vector与Stack”Java集合详解系列“是我在完成Java基础篇的系列博客后准备开始写的新系列。Java集合系列专栏地址:https://blog.csdn.net/column/details/21877.html之前的Java基础系列博客首发于我的个人博客:https://h2pl.github.io/在这个分类中...

2019-05-27 11:28:25 181

原创 自学Java到什么程度才能就业?

多年Java开发从业者:首先,这个问题主要问:自学Java编程技术,如果才能找到一份Java编程的工作。按照现在的招聘标准来看,无论你去哪个公司面试,你只需要满足他们公司的需求就可以。找到一份Java编程工作需要掌握的内容如下:首先是Javase作为Java最基本的学习内容,不在多说。然后是掌握Java的基本原理,因为做Java编程开发必须学会Java,用到Java非常多,但是现在很多公司是...

2019-05-27 11:22:26 1426 4

原创 零基础应该选择学习 java、php、前端 还是 python?

零基础应该选择学习 java、php、前端 还是 python?很多新手小白,还有想转这行的人都想知道的问题。以下就是我以个人经验发表的个人见解,如果你认同就请转发和点赞。这三门当中,首推Java。真的,Python当然是好,但是对于一个新入门的人,最重要的是先找到工作不是吗?而找工作的话,Java无疑是最容易的。对于跨行业的人而言,最困难的其实是第一步,那就是如何进入这个行业。如果你连进都...

2019-05-27 10:44:39 695

原创 线程安全的单例类

我们在之前讲到单例模式的时候,只是关注了如何创建一个单例对象。但其实当时没有关心是否线程安全。简单的单例类会有什么问题呢?先看一下代码。 private static Singleton instance; private Singleton() { } public static Singleton getInstance() { if (instan...

2019-05-27 10:33:20 628

原创 Copy GC(5): Parallel GC(下)

接Copy GC(4)继续,我们看一下push_contents的实现:inline void oopDesc::push_contents(PSPromotionManager* pm) {// 每一个Java Class在JVM内部都会对应一个Klass结构。每一个Klass中都记录// 了每个类有多少具体的域,这样我们就能通过这个Klass来计算每个实例的大小// 以及遍历这个对象所...

2019-05-26 11:07:00 517

原创 Java Web Server(4) :Servlet

在ASP流行的那个时代,人们都习惯于把业务脚本和各种网页元素混在一起写。所以很多人对于从ASP切换到JSP都觉得很自然。反倒是,对于Java Web容器中定义的servlet,很多人觉得这个东西画蛇添足,不知道为什么要搞个这么啰嗦的东西出来。我们来体验一下。还是进到前几节课所使用的root目录。新建一个Java文件,叫做DemoServlet.java:import java.io.IOEx...

2019-05-26 11:01:50 202

原创 Java Web Server(3): Ajax

我们上节课讲了一下JSP,大家掌握其中的思想就好了。至于JSP的更多知识,现在其实已经没有用了,因为直接使用JSP做web开发已经不会再有人用了。这是古代的编程知识。关于服务端的知识,我们先暂停一下,从http协议的角度去学习一个前端知识。在前端技术中,有一个非常重要的技术,叫做 ajax。我们先展示一个 ajax 的例子,再去看一下这个技术的实质。AJAX用例在很多应用中,我们其实不想去刷...

2019-05-26 10:56:08 239

原创 Java Web Server(2): JSP

今天继续Java Web相关的知识。我们知道,在一个网页中,如果要与用户进行交互,那么至少得允许用户将自己的输入提交到服务端。今天就介绍最原始,最基本的一种方法。这种方法就是使用 html 的 form 标签。表单form 标签,我们通常称之为表单,是一种 html 标签,它的作用就是把定义在它内部的用户数据上交给服务端。我们做一个例子,就知道了,我们修改一下上节课的index.jspfo...

2019-05-26 10:52:27 291

原创 Java Web Server(1): 基础篇 海纳

今天起,我们来写一个简单的web server,争取把这些疑惑都能解决了。一个不退出的Web Server上节课留的作业是让读者自己实现一个server,可以在客户端请求结束以后,不必退出。评论区有人说可以使用线程,这确实是一个最简单的方案。我们来实现一个:public class TcpServer {public static void main(String[] args) {tr...

2019-05-26 10:50:07 287

原创 Java集合系列-ConcurrentHashMap-put方法的全面解析

本篇文章主要对put方法做一个全面的理解,里面牵涉到很多的内容,也有很多理解不到位的地方,put方法我读源码前几遍时,对大致的脉络理解了,但是对里面比较细节的处理逻辑和判断通过一遍一遍的读和理解,才有点明白,然后把它写出来和大家分享,如有错误欢迎指正,使我们共同进步,此篇文章较长,请耐心看完,但是此篇文章对扩容和线程安全的内容一笔带过,这两个重要的内容,我有专门的文章去分析。本篇文章的主要内容如...

2019-05-24 11:53:01 3186 1

原创 Java集合系列-Map系列-LinkedHashMap源码解析

本人是工作7年的老程序员,发送我对Java运用和源码、各种框架运用和源码的认识和理解,如果对您有所帮助,请持续关注。声明:所有的文章都是自己工作之余一个字一个字码上去的,希望对学习Java的同学有所帮助,如果有理解不到位的地方,欢迎交流。本文主要内容包括如下:1:LinkedHashMap的demo2:结合demo对LinkedHashMap源码进行解析第一节:LinkedHashMap...

2019-05-24 11:43:36 298

原创 带你走进Java集合-HashMap的扩容机制-resize()

HashMap的底层数据结构是数组+链表+红黑树,我们知道数组的长度是固定的,所以涉及到扩容的概念,在HashMap中resize()方法就是完成这项工作的。resize()方法有两个主要的作用:1:初始化底层数组table2:进行扩容接下来我们从源码角度分析以下:第一段:映入眼帘的是获取当前的数组和扩容的阀门//把当前底层数组赋值给oldTabNode<K,V>[] o...

2019-05-24 11:24:39 1266

原创 带你走进Java集合-HashMap源码-put方法的源码解析

本篇文章内容较长,请耐心观看,相信对您理解HashMap的put方法会有所帮助。在HashMap中put方法的源码如下:public V put(K key, V value) {return putVal(hash(key), key, value, false, true);}这个put方法并没有做任何的操作,直接把任务交给了putVal方法。我们接下来去看putVal方法。首先贴出...

2019-05-23 19:48:04 379

原创 Java集合系列-Map系列-TreeMap源码解析

本文主要内容包括如下:1:TreeMap的demo2:TreeMap的源码解析第一节:TreeMap的demopublic static void main(String[] args) {Map<Integer, Integer> map = new TreeMap<>();map.put(3, 1);map.put(1, 2);map.put(12, 1...

2019-05-23 19:36:01 356

原创 带你走进Java集合-HashMap源码-put方法图解实战

这一篇文章我利用图解的方法来进行分析。首先看一下网上一个比较好的流程图:带你走进Java集合-HashMap源码-put方法图解实战实例:按照正常的流程走一下put方法第一行代码:Map<String,Integer>map = new HashMap<>();第二行代码:map.put(null,10);第三行代码:map.put(“dd”,null);第四...

2019-05-23 19:33:43 960

原创 Java集合系列-Map系列-HashMap剩余源码解析

一、HashMap对元素的删除第一个删除方法clear():清除所有元素public void clear() {Node<K,V>[] tab;modCount++;//首先判断数组是否为空,然后判断数组中是否存在元素if ((tab = table) != null && size > 0) {//走到这一步:说明HashMap中存在元素,需要清...

2019-05-23 19:28:08 419

原创 Java集合系列-Set系列-HashSet

本篇文章的主要内容:1:Set集合的特点2:HashSet的实例说明3:根据上面的实例来跟踪HashSet的源码4:LinkedHashSet的讲解一、Set集合的特点1:Set集合是无序的,就是说存入的顺序和取出的顺序不一定一致2:Set集合是不能重复的3:因为Set集合是无序的,所以不提供get(int index)这样通过下标获取的方法。上面的Set特点相信大家都非常的清楚...

2019-05-23 19:17:29 375

原创 Java并发包-atomic包-让您彻底掌握AtomicIntegerArray源码

本篇文章的主要内容如下:1:AtomicIntegerArray实例2:AtomicIntegerArray的源码解析3:AtomicInLongArray1、AtomicIntegerArray实例接下来的例子是定义一个普通的整型数组和一个AtomicIntegerArray在多线程下添加元素,看看会出现什么效果。public class AtomicIntegerArrayTest...

2019-05-23 19:14:05 346

原创 Java学到这种程度才能叫精通

把下面这些内容掌握以后,你就可以自诩精通Java后端了。前言学习路线图往往是学习一样技术的入门指南。网上搜到的Java学习路线图也是一抓一大把。今天我只选一张图,仅此一图,足以包罗Java后端技术的知识点。所谓不求最好,但求最全,学习Java后端的同学完全可以参考这张图进行学习路线安排。当然,有一些知识点是可选的,并不是说上面有的你都要会啦。我在复习秋招的过程中就是基于此图进行复习的,感觉...

2019-05-23 18:02:03 171

原创 学习大数据,公司常用开发的编程语言是什么?

最近有不少初学者来问到,学习大数据,学习spark公司主要使用那些语言编写,每听到这一个问题,起码还是很不错的,证明你已经开始学习大数据了,并了解大数据Spark是可以使用多种语言来实现开发的,那就是Java、Scala、Python和R语言都可以使用,那简单分析一下:首先Java,是现阶段使用较为居多,为什么呢?是由于玩Java转到大数据人数太多人的缘故,所以很多人都喜欢使用Java,也有的是...

2019-05-23 17:45:03 905

原创 细说java解析mxl文档的常用方法(含实例)

XML (eXtensible Markup Language) 意为可扩展标记语言,被多数技术人员用以选择作为数据传输的载体,成为一种通用的数据交换格式,xml的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的便利。在不同的语言中,解析mxl的方式都是一样的,只不过实现的语法不同而已。众所周知,现在解析XML的方法越来越多,但主流的方法也就四种,即:DOM、SAX、JDOM和DO...

2019-05-23 17:26:22 889

原创 java面试基础知识-Redis集群和持久化

首先要了解:分布式锁需要解决的问题1.互斥性2.安全性3.死锁4.容错方法一:SETNX key value:如果key不存在,则创建并赋值时间复杂度O(1),返回值:设置成功返回1 失败返回0(locknx已经存在无法更改,操作是原子的)在执行某段代码时,先尝试使用SETNX对某个key设值,如果成功则没有其他线程占用该资源,如果失败则等待到SETNX成功。但是如果SETNX某...

2019-05-23 16:05:46 231

原创 简单易用的分页查询 mybatis-pager

功能说明以前要做一个分页查询需要做的:每个接口都需要接收分页参数写一个查询特定页数据的SQL写一个查询总记录数的SQL写一个分页查询结果的实体类将结果拼到分页查询结果的实体类中,并响应给前端如果需要导出Excel,又需要写一堆POI操作用这个包后需要做的:在需要分页查询的接口上增加@Pager这个注解写一个常规的查询(无需带分页)如果需要导出Excel,在@Pager上增加一...

2019-05-20 20:22:56 742

转载 一位Java程序员辗转蚂蚁金服、饿了么、人人车等各大企业的面试经历

前言小编的一位朋友跳槽换工作,一共面试了8家公司,拿到了6个offer,其中包括阿里巴巴蚂蚁金服(外派杭州)、饿了么、人人车等公司,总体来说还算是顺利,因为也没面的特别多,他想把面试情况总结一下,做一个记录,也希望给其他人一点帮助。面试记录星云链这是面试的第一家公司,是通过猎头渠道找的,这家公司是做区块链的,是应用区块链实现了搜索引擎,阿里蚂蚁金服的区块链团队出来创业成立的公司,公司规模不大...

2019-05-19 11:47:50 729

原创 程序员们最恐惧的“代码”,一见就头疼,是老前辈留下来的代码!

t行业是目前最赚钱的行业,程序员是目前最赚钱的职业之一,也是最容易过劳死的职业之一。虽然程序员们工资都很高,有的还会赚年薪,但是他们的工作真的是非常辛苦。因为程序员经常会熬夜写代码,在电脑前工作,他们脱发秃头的几率也非常高。由于程序员经常在电脑前努力的编写代码,他们也被大家亲切的称为“码农”,意思是像农民一样勤勤恳恳的在电脑前面码代码。程序员们夜以继日的和电脑、程序代码打交道,他们之间已经建立了...

2019-05-19 11:23:08 2679

原创 Java的抽象类的概念与实例

Java 抽象类在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用。也是因为这个原因,通常在设计阶段决定要不要设计...

2019-05-17 15:21:36 318

空空如也

空空如也

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

TA关注的人

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