自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 基本数据结构简述

数据结构分类:线性结构和非线性结构什么是线性和非线性我个人的理解是:数据结构中线性结构指的是数据元素之间存在着“一对一”的线性关系的数据结构;线性结构包括:数组,链表,队列,栈;非线性结构包括:树,图,表;线性结构1.数组特点:我们都知道数组中的元素在内存中连续存储的,可以根据是下标快速访问元素,因此,查询速度很快,然而插入和删除时,需要对元素移动空间,...

2019-04-02 23:57:00 178

转载 深入理解HashMap

1、为什么用HashMap?HashMap是一个散列桶(数组和链表),它存储的内容是键值对(key-value)映射HashMap采用了数组和链表的数据结构,能在查询和修改方便继承了数组的线性查找和链表的寻址修改HashMap是非synchronized,所以HashMap很快HashMap可以接受null键和值,而Hashtable则不能(原因就是equlas()方...

2019-04-01 23:59:00 186

转载 常用排序算法Java实现

一、冒泡排序冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。  冒泡排序的示例:冒泡排序的算...

2019-03-30 23:54:00 154

转载 Spring核心组件知识梳理

Spring的一些概念和思想Spring的核心:AOP、IOC。简单点说,就是把对象交给Spring进行管理,通过面向切面编程来实现一些"模板式"的操作,使得程序员解放出来,可以更加关注业务实现。Spring已经是一站式的开源框架解决方案,而且形成了Spring生态。关于IOCIOC,从操作上来看,要么通过XML配置实现,要么通过注解的方式实现。在实际开发中,越来越流...

2019-03-29 23:58:00 138

转载 HashMap中使用自定义类作为Key时,为何要重写HashCode和Equals方法

之前一直不是很理解为什么要重写HashCode和Equals方法,才只能作为键值存储在HashMap中。通过下文,可以一探究竟。首先,如果我们直接用以下的Person类作为键,存入HashMap中,会发生发生什么情况呢?public class Person { private String id; public Person(Stri...

2019-03-28 23:57:00 1088

转载 Nginx是什么东东?

Nginx的产生没有听过Nginx?那么一定听过它的"同行"Apache吧!Nginx同Apache一样都是一种WEB服务器。基于REST架构风格,以统一资源描述符(Uniform Resources Identifier)URI或者统一资源定位符(Uniform Resources Locator)URL作为沟通依据,通过HTTP协议提供各种网络服务。然而,这些服务器在设计之初...

2019-03-27 18:30:00 100

转载 Java中常用的四种线程池

1、new Thread的弊端执行一个异步任务你还只是如下new Thread吗?newThread(newRunnable(){@Overridepublicvoidrun(){//TODOAuto-generatedmethodstub}}).start();那你就out太多了,new Thread的弊端如下:a. 每次new T...

2019-03-26 23:57:00 88

转载 What is MongoDB and For What?

1、MongoDB是什么?MongoDB是一款为web应用程序和互联网基础设施设计的数据库管理系统。没错MongoDB就是数据库,是NoSQL类型的数据库2、为什么要用MongoDB?(1)MongoDB提出的是文档、集合的概念,使用BSON(类JSON)作为其数据模型结构,其结构是面向对象的而不是二维表,存储一个用户在MongoDB中是这样子的。{us...

2019-03-25 23:58:00 106

转载 Spring Boot熟稔于心的20个常识

1、什么是 Spring Boot?Spring Boot 是 Spring 开源组织下的子项目,是 Spring 组件一站式解决方案,主要是简化了使用 Spring 的难度,简省了繁重的配置,提供了各种启动器,开发者能快速上手。更多 Spring Boot 详细介绍请看这篇文章《什么是Spring Boot?》。2、为什么要用 Spring Boot?...

2019-03-25 00:27:00 70

转载 解析Tomcat构成及运行原理

本文的知识点分为:Server、Service、Connector、Container四大组件之间的关系和联系,以及他们的主要功能点;Tomcat执行的整体架构,请求是如何被一步步处理的;Engine、Host、Context、Wrapper相关的概念关系;Container是如何处理请求的;Tomcat用到的相关设计模式;...

2019-03-24 23:59:00 61

转载 Redis这些知识你知道吗?

1.什么是redis?Redis 是一个基于内存的高性能key-value数据库。2.Redis的特点Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最快的Ke...

2019-03-24 23:57:00 134

转载 如何有效的阅读JDK源码

阅读Java源码的前提条件:1、技术基础在阅读源码之前,我们要有一定程度的技术基础的支持。假如你从来都没有学过Java,也没有其它编程语言的基础,上来就啃《Core Java》,那样是很难有收获的,尤其是《深入Java虚拟机》这类书,或许别人觉得好,但是未必适合现在的你。比如设计模式,许多Java源码当中都会涉及到。再比如阅读Spring源码的时候...

2019-03-24 00:00:00 161

转载 Java多线程问题40个

1、多线程有什么用?一个可能在很多人看来很扯淡的一个问题:我会用多线程就好了,还管它有什么用?在我看来,这个回答更扯淡。所谓”知其然知其所以然”,”会用”只是”知其然”,”为什么用”才是”知其所以然”,只有达到”知其然知其所以然”的程度才可以说是把一个知识点运用自如。OK,下面说说我对这个问题的看法:(1)发挥多核CPU的优势随着工业的进步,现在的笔记本、台式机乃至商用的应用...

2019-03-22 23:17:00 65

转载 浅谈服务架构“五脏六腑”之Spring Cloud

本文将从 Spring Cloud 出发,分两小节讲述微服务框架的「五脏六腑」:第一小节「服务架构」旨在说明的包括两点,一服务架构是什么及其必要性;二是服务架构的基本组成。为什么第一节写服务架构而不是微服务架构呢?原因主要是微服务架构本身与服务架构有着千丝万缕的关系,服务架构是微服务架构的根基。第二小节「五脏六腑」则将结合 Spring Cloud 这个特例来介绍一个完...

2019-03-21 23:59:00 50

转载 Java中性能优化的45个细节

在JAVA程序中,性能问题的大部分原因并不在于JAVA语言,而是程序本身。养成良好的编码习惯非常重要,能够显著地提升程序性能。1. 尽量在合适的场合使用单例使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面:控制资源的使用,通过线程同步来控制资源的并发访问;控制实例的产生,以达到节...

2019-03-20 23:59:00 141

转载 Spring中应用的那些设计模式

设计模式作为工作学习中的枕边书,却时常处于勤说不用的尴尬境地,也不是我们时常忘记,只是一直没有记忆。今天,我们就设计模式的内在价值做一番探讨,并以spring为例进行讲解,只有领略了其设计的思想理念,才能在工作学习中运用到“无形”。Spring作为业界的经典框架,无论是在架构设计方面,还是在代码编写方面,都堪称行内典范。Spring中常用的设计模式达到九种,如下:...

2019-03-18 23:44:00 64

转载 Java工程师常用Linux命令

本文所列的Linux常用命令包含:文件相关(目录操作,内容查看,查找与比较,压缩与解压),进程管理,网络操作,系统管理,性能监测与优化,Java常用工具多个方面概述。文件目录基本操作ls 命令用来显示目标列表,在Linux中是使用率较高的命令。ls命令的输出信息可以进行彩色加亮显示,以分区不同类型的文件。常用选项:ls(选项)(参数)-a 显示所有档案及目录(l...

2019-03-17 23:59:00 127

转载 数据结构中的堆栈和内存中的堆栈不是一回事

今天看《码出高效》第四章JVM内容时,读到JVM提供了直接控制操作栈的指令时,突然联想到数据结构中对于栈结构的出入栈的操作。遂联想二者之间莫非有什么关联,于是就查阅相关博文,记录成文。数据结构中的堆栈 栈:是一种连续存储的数据结构,特点是存储的数据先进后出。 堆:是一棵完全二叉树结构,特点是父节点的值大于(小于)两个子节点的值(分别称为大顶堆和小顶堆)。它常用于管理算法...

2019-03-16 19:50:00 74

转载 JVM中内存分配策略及堆和栈的比较

最近愈发对JVM底层的运行 原理产生了兴趣,遂查阅相关资料以备忘。内存分配策略根据编译原理的观点,程序运行时的内存分配,有三种策略,分别为静态的、堆式的、栈式的。静态存储分配指的是在编译时就能确定每个数据目标在运行时的存储空间需求,因而在编译时就给它们分配了固定的内存空间。这种分配方式要求程序代码中不能有可变数据结构(例如可变数组)的存在,也不允许有嵌套或者递归的结构出现,因...

2019-03-16 19:29:00 139

转载 MySQL常用存储引擎:MyISAM与InnoDB之华山论剑

一 MyISAM1.1 MyISAM简介MyISAM是MySQL的默认数据库引擎(5.5版之前),由早期的ISAM(Indexed Sequential Access Method:有索引的顺序访问方法)所改良。虽然性能极佳,而且提供了大量的特性,包括全文索引、压缩、空间函数等,但MyISAM不支持事务和行级锁,而且最大的缺陷就是崩溃后无法安全恢复。不过,5.5版本之后,My...

2019-03-15 23:59:00 87

转载 通俗解释下分布式、高并发、多线程

当提起这三个词的时候,是不是很多人都认为分布式=高并发=多线程?当面试官问到高并发系统可以采用哪些手段来解决,或者被问到分布式系统如何解决一致性的问题,是不是一脸懵逼?确实,在一开始接触的时候,不少人都会将三者混淆,误以为所谓的分布式高并发的系统就是能同时供海量用户访问,而采用多线程手段不就是可以提供系统的并发能力吗?实际上,他们三个总是相伴而生,但侧重点又有不同。什么...

2019-03-14 23:21:00 107

转载 Java中的集合类、Lambda、鲁棒性简述

集合类在java.util包中提供了一些集合类,常用的有List、Set和Map类,其中List类和Set类继承了Collection接口。这些集合类又称为容器,长度是可变的,数组用来存放基本数据类型的数据,集合用来存放类对象的引用。List接口、Set接口、Map接口以及Collection接口的主要特征如下:Collection接口是List接口和Set接口的父接口,通常...

2019-03-13 23:59:00 90

转载 快速熟知微服务理论技术体系

1.什么是微服务1)一组小的服务(大小没有特别的标准,只要同一团队的工程师理解服务的标识一致即可)2)独立的进程(java的tomcat,nodejs等)3)轻量级的通信(不是soap,是http协议)4)基于业务能力(类似用户服务,商品服务等等)5)独立部署(迭代速度快)6)无集中式管理(无须统一技术栈,可以根据不同的服务或者团队进行灵活选择)ps:微...

2019-03-12 23:59:00 120

转载 开发人员如何有效地进行数据库设计

数据库设计在软件开发过程中占有重要的地位,国内开发者 MeteorSeed 在博客中结合自己的实际经历全面总结了关系型数据库设计需要注意的各个方面,包括 Codd 的基本法则、设计阶段、设计原则和命名规则。MeteorSeed 认为在项目早期应该由开发者进行数据库设计,后期调优则需要 DBA:“一个精通 OOP 和 ORM 的开发者,设计的数据库往往更为合理,更能适应需求的变化”。他引用...

2019-03-11 15:07:00 400

转载 Oracle, Mysql及Sql Server的区别

  从事技术工作以来,算是把关系型数据库SQL Server,Oracle, MySQL均用了一遍,本文参考网友的梳理,做一下知识总结。源头说起  Oracle:中文译作甲骨文,这是一家传奇的公司,有一个传奇的大老板Larry Ellision。 Ellision 32岁还一事无成,读了三个大学,没得到一个学位文凭,换了十几家公司,老婆也离他而去。开始创业时只有1200美...

2019-03-07 22:38:00 176

转载 Java中的自动装箱与拆箱

自动装箱和拆箱从Java 1.5开始引入,目的是将原始类型值转自动地转换成对应的对象。自动装箱与拆箱的机制可以让我们在Java的变量赋值或者是方法调用等情况下使用原始类型或者对象类型更加简单直接。如果你在Java1.5下进行过编程的话,你一定不会陌生这一点,你不能直接地向集合(Collections)中放入原始类型值,因为集合只接收对象。通常这种情况下你的做法是,将这些原...

2019-03-06 23:13:00 93

转载 Java程序员必读的9本书

本文列出的9本书在Java程序员界都是被认为很棒的书。当一个程序员开始初学Java时,他的第一个问题应该是如何选择一本书来作为指导学习Java。这个问题也就表明,相对于其他的教程和博客,Java书籍还是很重要的参考,主要表现在以下两点通常书籍是由比较权威的程序员来撰写的。相比其他媒介,书籍对于内容的描述更加详细,解释更加明确。本文列出的九本书是我个人非常喜欢的Ja...

2019-03-06 00:29:00 95

转载 JVM中堆和栈的区别

当一个人开始学习Java或者其他编程语言的时候,会接触到堆和栈,由于一开始没有明确清晰的说明解释,很多人会产生很多疑问,什么是堆,什么是栈,堆和栈有什么区别?更糟糕的是,Java中存在栈这样一个后进先出(Last In First Out)的顺序的数据结构,这就是java.util.Stack。这种情况下,不免让很多人更加费解前面的问题。事实上,堆和栈都是内存中的一部分,有着不同的...

2019-03-05 23:56:00 156

转载 简述MySQL数据库中的Date,DateTime,TimeStamp和Time类型

DATETIME类型  定义同时包含日期和时间信息的值时。MySQL检索并且以'YYYY-MM-DD HH:MM:SS'格式显示DATETIME值,支持的范围是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。(“支持”意味着尽管更早的值可能工作,但不能保证他们可以。)DATE类型  定义日期值时,没有时间部分。MySQL检索并且以...

2019-03-04 18:47:00 269

转载 架构本质:从规划、思维到设计,构建可靠的架构根基

一、什么是架构关于什么是架构,业界从来没有一个统一的定义。Martin Fowler在《企业应用架构模式》中也没有对其给出定义,只是提到能够统一的内容有两点:最高层次的系统分解;系统中不易改变的决定。《软件架构设计》一书则将架构定义总结为组成派和决策派:组成派:架构=组件+交互:软件系统的架构将系统描述为计算组件及组件之间的交互。决策派:架构=重要决策集:...

2019-03-03 18:53:00 292

转载 Mysql数据库主键,外键,索引概述

主键: 主键是数据表的唯一索引,比如学生表里有学号和姓名,姓名可能有重名的,但学号确是唯一的,你要从学生表中搜索一条纪录如查找一个人,就只能根据学号去查找,这才能找出唯一的一个,这就是主键;如:id int(10) not null primary key auto_increment ;自增长的类型 ;外键: 定义数据表  假如某个电脑生产商,它的数...

2019-03-03 18:24:00 97

转载 软件架构的演进:单体、垂直、SOA、微服务

软件架构演进 软件架构的发展经历了从单体结构、垂直架构、SOA架构到微服务架构的过程,以下为具体分类:1.1.1单体架构特点:1、所有的功能集成在一个项目工程中。2、所有的功能打一个war包部署到服务器。3、应用与数据库分开部署。4、通过部署应用集群和数据库集群来提高系统的性能。优点:1、项目...

2019-03-01 18:11:00 175

转载 2018年阿里巴巴关于Java重要开源项目汇总

1.分布式应用服务开发的一站式解决方案 Spring Cloud AlibabaSpring Cloud Alibaba 致力于提供分布式应用服务开发的一站式解决方案。此项目包含开发分布式应用服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。依托 Spring Cloud Alibaba,您只需要添加一些注解和少量配置,就可以...

2019-02-28 10:28:00 71

转载 全面了解HTTP和HTTPS

序言Http和Https属于计算机网络范畴,但作为开发人员,不管是后台开发或是前台开发,都很有必要掌握它们。在学习Http和Https的过程中,主要是参考了阮一峰老师的博客《阮一峰:HTTP 协议入门》,讲的很全面,并且通俗易懂,有兴趣的同学可以去学习学习。这篇文章主要是按照自己的思路来讲解对Http和Https的理解。文章将会从以下几个方面介绍。目录树:一、网络...

2019-02-28 10:14:00 200

转载 创业互联网公司如何搭建自己的技术架构

适用范围本文主要针对中小型互联网公司,特别适用于手机APP或者pc的后台架构,基本可以支撑5万日活。本文会对可能用到的相关技术进行技术选型的说明,以及技术的架构介绍。技术指标说一下一些技术指标的计算过程可以作为其他同学的参考QPS, 如果是5万日活,使用集中在每天的4小时,每个用户大概产生100的请求,那么平均下来,我们系统大概应该支撑的请求为:50000 * 100 /...

2019-02-27 23:52:00 73

转载 Dubbo与Spring Cloud的比较

区别:-----来源(背景):Dubbo,是阿里巴巴服务化治理的核心框架,并被广泛应用于阿里巴巴集团的各成员站点。Spring Cloud,从命名我们就可以知道,它是Spring Source的产物,Spring社区的强大背书可以说是Java企业界最有影响力的组织了,除了Spring Source之外,还有Pivotal和Netfix是其强大的后盾与技术输出。其中Netf...

2019-02-27 23:48:00 86

转载 Java工程师技能点梳理

从个人技术积累的角度,来看看一名合格的Java工程师在面试时所需要的知识技能。1、基本语法这包括static、final、transient等关键字的作用,foreach循环的原理等等。今天面试我问你static关键字有哪些作 用,如果你答出static修饰变量、修饰方法我会认为你合格,答出静态块,我会认为你不错,答出静态内部类我会认为你很好,答出静态导包我会对你很满 意,因为能...

2019-02-26 09:45:00 92

转载 使用SpringCloud将单体迁移至微服务

使用SpringBoot构建单体项目有一段时间了,准备对一个老项目重构时引入SpringCloud微服务,以此奠定后台服务能够应对未知的业务需求。现在SOA架构下的服务管理面临很多挑战,比如面临一个非常大型的代码库,版本合并困难,甚至存在不同项目不同版本,维护量极其庞大,无法快速响应不同的业务需求;同时这些大型代码库由于没有前后端分离,导致打包成一个大型的WAR包,服务自身无法独立打...

2019-02-22 00:25:00 134

转载 Springmvc与Struts区别?

在一个技术群里看到机器人解释的二者区别,在此Mark下。一、框架机制spring mvc 和 struts2的加载机制不同:spring mvc的入口是servlet,而struts2是filter。1、Struts2采用Filter(StrutsPrepareAndExecuteFilter)实现,SpringMVC(DispatcherServlet)则采用S...

2019-02-21 14:41:00 77

转载 简述单机,集群,分布式架构区别及联系

单机结构我想大家最最最熟悉的就是单机结构,一个系统业务量很小的时候所有的代码都放在一个项目中就好了,然后这个项目部署在一台服务器上就好了。整个项目所有的服务都由这台服务器提供。这就是单机结构。那么,单机结构有啥缺点呢?我想缺点是显而易见的,单机的处理能力毕竟是有限的,当你的业务增长到一定程度的时候,单机的硬件资源将无法满足你的业务需求。此时便出现了集群模式,往下接着看。...

2019-02-20 16:01:00 138

空空如也

空空如也

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

TA关注的人

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