自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java垃圾回收(GC)机制详解

一、为什么需要垃圾回收  如果不进行垃圾回收,内存迟早都会被消耗空,因为我们在不断的分配内存空间而不进行回收。除非内存无限大,我们可以任性的分配而不回收,但是事实并非如此。所以,垃圾回收是必须的。二、哪些内存需要回收?哪些内存需要回收是垃圾回收机制第一个要考虑的问题,所谓“要回收的垃圾”无非就是那些不可能再被任何途径使用的对象。那么如何找到这些对象?1、引用计数法这个算法的实现...

2018-10-22 10:34:26 207

原创 一张图看懂产品经理五大必备技能

产品经理需要具备的技能,我认为可以总结出以下五个方面:1、需求在需求之下又细分为3个技能,分别是需求分析、竞品分析、需求分级。1.1需求分析所谓需求分析要求产品经理首先要了解所在的行业和市场的情况,包括行业的当前规模、未来发展趋势、市场饱和度、市场同类产品的发展情况,市场过去3年的数据资料等等;其次产品经理要通过用户研究,提炼出较为完整的用户画像。要完成这一要求,产品经理通...

2018-09-18 13:46:19 19620

原创 51信用卡管家app产品需求文档

文章通过使用、体验、研究等方式倒推51信用卡管家APP,通过使用axure撰写PRD文档。51信用卡业务很多,文章只撰写部分核心功能点。另外,51信用卡通过和第三方合作,开展了账单导入、办信用卡、借款、投资理财等业务,文中如有相关错误,望指出。写文目的:通过撰写产品文档,梳理51信用卡的相关业务流程,思考产品的用户体验优缺点、数据的流转、前后端的交互过程,训练思考和思维模式。目录...

2018-09-18 09:51:01 2053 1

转载 一张图说明CDN网络的原理

1.用户向浏览器输入www.web.com这个域名,浏览器第一次发现本地没有dns缓存,则向网站的DNS服务器请求;2.网站的DNS域名解析器设置了CNAME,指向了www.web.51cdn.com,请求指向了CDN网络中的智能DNS负载均衡系统;3.智能DNS负载均衡系统解析域名,把对用户响应速度最快的IP节点返回给用户;4.用户向该IP节点(CDN服务器)发出请求;5.由...

2018-09-17 09:21:35 1549

原创 Spring mvc @RequestMapping 注解使用技巧

@RequestMapping 是 Spring Web 应用程序中最常被用到的注解之一。这个注解会将 HTTP 请求映射到 MVC 和 REST 控制器的处理方法上。 在这篇文章中,你将会看到 @RequestMapping 注解在被用来进行 Spring MVC 控制器方法的映射可以如何发挥其多才多艺的功能的。 Request Mapping 基础用法 在 Spring MVC 应用程序中...

2018-09-13 09:36:03 360

转载 @RequestParam 注解的使用

前言在SpringMvc后台进行获取数据,一般是两种。 1.request.getParameter(“参数名”) 2.用@RequestParam注解获取后台代码示范@RequestMapping("/")public String Demo1(@RequestParam String lid){ System.out.println("----"+lid);...

2018-09-13 09:33:29 345

转载 分布式事务最终一致性常用方案

  目前的应用系统,不管是企业级应用还是互联网应用,最终数据的一致性是每个应用系统都要面临的问题,随着分布式的逐渐普及,数据一致性更加艰难,但是也很难有银弹的解决方案,也并不是引入特定的中间件或者特定的开源框架能够解决的,更多的还是看业务场景,根据场景来给出解决方案。根据笔者最近几年的了解,总结了几个点,更多的应用系统在编码的时候,更加关注数据的一致性,这样系统才是健壮的。一、基础理论  ...

2018-09-12 12:11:08 1100

原创 代码评审怎么做?

Code Review 是软件开发过程中非常重要的一个环节,不过相对于单元测试,大家可能接触更少,同时,想要做好 Code Review 往往也更困难。在这篇文章里,我会先普及 Code Review 的常识,然后讲一些自己在实践中积累的经验。PS,这也是一篇会保持更新的文章 : )什么是 Code Review?Code Review 翻译成中文是代码评审,具体的定义可以看 wiki。这...

2018-09-11 15:29:50 10084 2

转载 技术架构评审

 架构评审要不要开?怎么开?其实很多项目团队都会有犹豫,要么觉得项目很小,就不开了,要么流于形式,按照模板填写,搞成作业。  那应该怎么办?我们回到原点,技术架构评审解决什么问题,我觉得实现当下的需求当然重要,这里不再展开,但更重要的是解决未来的需求,就是解决两类问题,一个是业务未来的可扩展性,一个是系统稳定性的可扩展性,总之就是解决需求之外的非功能性需求的,因此我觉得如果项目对应的业务还会继...

2018-09-11 15:07:49 3591

转载 分布式系统中的幂等性

    我们的系统大多拆分为分布式SOA,或者微服务,一套系统中包含了多个子系统服务,而一个子系统服务往往会去调用另一个服务,而服务调用服务无非就是使用RPC通信或者restful,既然是通信,那么就有可能再服务器处理完毕后返回结果的时候挂掉,这个时候用户端发现很久没有反应,那么就会多次点击按钮,这样请求有多次,那么处理数据的结果是否要统一呢?那是肯定的!尤其再支付场景。    幂等性:就是用...

2018-09-11 14:50:56 143

转载 新浪、万网前系统架构师高俊峰:统一监控报警平台架构设计思路

高俊峰(南非蚂蚁)Linux资深技术专家,畅销书籍《循序渐进Linux》、《高性能Linux服务器构建实战》作者,曾就职于新浪、万网,目前服务于上海好耶集团,具有多年的自动化运维和管理经验,擅长Linux、集群应用、Mysql、Oracle等方面的系统管理、性能调优,规划设计,实战经验丰富。目前关注于Hadoop数据平台以及和Hadoop相关的生态系统的运维、监控、部署、优化等技术。 以下...

2018-09-11 10:04:40 287

转载 高性能JSON框架之FastJson的简单使用

1.前言1.1.FastJson的介绍:JSON协议使用方便,越来越流行,JSON的处理器有很多,这里我介绍一下FastJson,FastJson是阿里的开源框架,被不少企业使用,是一个极其优秀的Json框架,Github地址: FastJson1.2.FastJson的特点:1.FastJson数度快,无论序列化和反序列化,都是当之无愧的fast 2.功能强大(支持普通JDK类...

2018-09-11 09:43:13 131

转载 数据库的三大范式以及五大约束

数  据   库    数据库的三大特性可谓是:实体属性和关系。     实体:表; 属性:表中的数据(字段); 关系:表与表之间的关系;     数据库设计三大范式(重点):第一范式(1NF):数据表中的每一列(每个字段)必须是不可拆分的最小单元,也就是确保每一列的原子性;                                例如:userInfo:山东省烟台市  ...

2018-09-11 09:28:39 232

转载 MYSQL数据库设计规范与原则

MYSQL数据库设计规范 1、数据库命名规范 采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线'_'组成; 命名简洁明确(长度不能超过30个字符); 例如:user, stat, log, 也可以wifi_user, wifi_stat, wifi_log给数据库加个前缀; 除非是备份数据库可以加...

2018-09-11 09:15:15 167

转载 java @interface 自定义注解

1. 注解的好处注解可以替代配置文件完成对某些功能的描述,减少程序配置;在没有配置文件的情况下,我们去观察代码,并不需要同时打开两个文件来观察这个字段到底对应数据库的哪个列,减少了程序繁琐性,使得代码更加清晰易懂;目前市面上流行的框架基本上都包含了注解配置,那么针对于开源项目,我们在阅读项目代码时,不懂注解如何实现,真的是举步难坚,所以,学习注解也可以加强我们对开源项目源码的解读。...

2018-09-10 16:20:24 289

转载 Springboot系列:@SpringBootApplication注解

在使用 Springboot 框架进行开发的时候,通常我们会在 main 函数上添加 @SpringBootApplication 注解,今天为大家解析一下 @SpringBootApplication,如有不正之处,欢迎批评指正。@SpringBootApplication@SpringBootApplication源码如下:@Target({ElementType.TYPE})...

2018-09-10 13:55:55 157

转载 SOA和微服务的区别

SOA和微服务的区别其实服务化架构已经可以解决大部分企业的需求了,那么我们为什么要研究微服务呢?先说说它们的区别;首要目标不同:SOA首先要解决的是异构应用的服务化;微服务强调的是服务拆分尽可能小,最好是独立的原子服务。 服务依赖:传统的SOA服务,由于需要重用已有的资产,存在大量的服务间依赖;微服务的设计理念是服务自治、功能单一独立,避免依赖其他服务产生耦合,耦合会带来更高的复杂度。...

2018-09-10 11:46:17 1935

转载 服务化框架技术选型与京东JSF解密

作者:章耿,原京东资深架构师,曾负责京东服务框架,配置中心等基础平台。近十年工作经验,专注于基础中间件等底层技术架构,对分布式系统/服务化/DevOps建设有一定经验。 |前言首先本文不讨论为什么要服务化,包括服务化的优点缺点。其次本文也不讨论什么是微服务,也不讨论微服务和SOA的区别。最后本文也不讨论哪个技术最优。 |服务化框架构成最基本的服务框架基本的服务化...

2018-09-10 11:41:44 449

转载 Java RMI与RPC

 一:RPC 远程过程调用 RPC(Remote Procedure Call Protocol)远程过程调用协议,通过网络从远程计算机上请求调用某种服务。 一次RPC调用的过程大概有10步:  1.执行客户端调用语句,传送参数  2.调用本地系统发送网络消息  3.消息传送到远程主机  4.服务器得到消息并取得参数   5.根据调用请求以及参数执行远程过程(服务)...

2018-09-10 11:26:24 125

原创 如何选择云服务器的带宽?

由于云服务器具有弹性的扩容机制、安全的云端集群分布式存储等,云服务器的优势逐渐凸现出来,我们越来越多的人开始选择云服务器,那么如何选择云服务器配置呢?怎样的云服务器配置才能不浪费呢?计算机数据的最小单位是bit,称之为位,其他还有B、KB、MB、GB、TB等,虽然计算机也提供对位的判断和操作,但是一般以字节(Byte)为单位。它们之间的换算关系是1Byte=8bit,1KB=1024B,1MB...

2018-08-28 13:53:21 8790 3

原创 Spring RestTemplate详解

1、什么是REST?  REST(RepresentationalState Transfer)是Roy Fielding 提出的一个描述互联系统架构风格的名词。REST定义了一组体系架构原则,您可以根据这些原则设计以系统资源为中心的Web 服务,包括使用不同语言编写的客户端如何通过 HTTP处理和传输资源状态。  为什么称为 REST?Web本质上由各种各样的资源

2017-12-08 13:36:51 1344

原创 java线程池大小为何会大多被设置成CPU核心数+1

线程池究竟设成多大是要看你给线程池处理什么样的任务,任务类型不同,线程池大小的设置方式也是不同的。任务一般可分为:CPU密集型、IO密集型、混合型,对于不同类型的任务需要分配不同大小的线程池。CPU密集型任务 尽量使用较小的线程池,一般为CPU核心数+1。 因为CPU密集型任务使得CPU使用率很高,若开过多的线程数,只能增加上下文切换的次数,因此会带来额外的开销。IO密集型任务

2017-12-08 13:18:00 9064

原创 volatile与synchronized的区别

1、锁提供了两种主要特性:互斥(mutual exclusion) 和可见性(visibility)。  互斥即一次只允许一个线程持有某个特定的锁,因此可使用该特性实现对共享数据的协调访问协议,这样,一次就只有一个线程能够使用该共享数据。  可见性要更加复杂一些,它必须确保释放锁之前对共享数据做出的更改对于随后获得该锁的另一个线程是可见的 —— 如果没有同步机制提供的这种可见性保证

2017-12-08 13:05:38 216

原创 Java并发编程:volatile关键字解析

volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我们先来

2017-12-08 12:55:15 133

原创 StringUtils类

StringUtils 方法的操作对象是 java.lang.String 类型的对象,是 JDK 提供的 String 类型操作方法的补充,并且是 null 安全的(即如果输入参数 String 为 null 则不会抛出 NullPointerException ,而是做了相应处理,例如,如果输入为 null 则返回也是 null 等,具体可以查看源代码)。 除了构造器,StringUt

2017-11-17 10:32:27 187

原创 mybatis中的#和$的区别

#相当于对数据 加上 双引号,$相当于直接显示数据 1. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。如:order by #user_id#,如果传入的值是111,那么解析成sql时的值为order by "111", 如果传入的值是id,则解析成的sql为order by "id".  2. $将传入的数据直接显示生成在sql中。如:order

2017-11-01 17:03:11 173

转载 数据库的复合主键、多主键

最近学习一点数据库的基本知识,被一个问题困惑了许久:主键是唯一的索引,那么为何一个表可以创建多个主键呢?其实“主键是唯一的索引”这话有点歧义的。举个例子,我们在表中创建了一个ID字段,自动增长,并设为主键,这个是没有问题的,因为“主键是唯一的索引”,ID自动增长保证了唯一性,所以可以。此时,我们再创建一个字段name,类型为varchar,也设置为主键,你会发现,在表的多行中你是可

2017-10-09 18:29:14 821

原创 osi七层模型

从下往上依次是物理层、数据链路层、网络层、传输层、会话层、表示层、应用层

2017-09-30 03:50:05 175

原创 性能优化:用FreeMarker实现页面静态化

众所周知,随着网站的访问量增加,如何给用户以良好的访问体验就显得尤为重要。提升网站性能便成为一些网站面临的一大难题,像hao123这样的导航网站要提升网站的性能只要部署的web服务器数量足够就可以承载超大规模的访问量,如果是一个动态的网站呢?例如像凤凰新闻、网易新闻这样的CMS系统,淘宝、京东这样的大型购物网站由于这些网站都使用到了数据库这也就很难做到单纯的通过增加web服务器数量的方式来有效的提

2017-09-20 11:15:37 1719

转载 Java面试题全集(上)

1、面向对象的特征有哪些方面? 答:面向对象的特征主要有以下几个方面: - 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。 - 继承:继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类、基类);得到继承信息的类被称为子类(派生类)。继承让变化中的软件系统有了一定的

2017-09-13 17:40:58 1276

转载 浅析VO、DTO、DO、PO的概念、区别和用处

概念: VO(View Object):视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。 DTO(Data Transfer Object):数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载,但在这里,我泛指用于展示层与服务层之间的数据传输对象。

2017-09-13 17:37:44 192

转载 mvc模式中关于DTO层的简单使用

1、概念:DTO:Data Transfer Object,数据传输对象,起到数据封装与隔离的作用2、应用介绍:在实际项目中,DTO的分在两层传输,一层是service层向controller层,这一层的DTO封装service执行结果,给controller,简化业务数据,只提取部分业务相关字段或补充处理相关字段,不同业务可能有不同的此类dto,具有业务相关性;另

2017-09-13 10:20:10 2690

原创 java instanceof用法

instanceof运算符用法 运算符是双目运算符,左面的操作元是一个对象实例,右面是一个类.当 左面的对象是右面的类创建的对象时,该运算符运算的结果是true,否则是false

2017-09-11 17:41:35 169

转载 Java 空字符串“”和null区别

空字符串“”1、类型:“”是一个空字符串(String),长度为0,占内存,在内存中分配一个空间,可以使用Object对象中的方法。(例如:“”.toString()等)2、内存分配:表示声明一个字符串类型的引用,其值为“”空字符串,这个引用指向str1的内存空间。null1、类型:null是空引用,表示一个对象的值,没有分配内存,调用null的字符串的方法会抛出空

2017-09-11 13:15:03 1009

转载 String、StringBuffer、与StringBuilder的区别

相信大家都知道StringBuffer、StringBuilder,但是这两个的用法都差不多,到底有什么区别呢,这也是面试的时候问的比较多的一道题,这里我就来说说,这两个的区别结合String来说~  String:查看源码得知,String类的声明是:public final,所以可以很清楚的知道,fianl的话是改变不了的,所以,如果我们用String来操作字符串的时候,一旦我们字符串

2017-09-04 14:54:56 145

转载 Java 8的新特性总结

前言: Java 8 已经发布很久了,很多报道表明java 8 是一次重大的版本升级。在Java Code Geeks上已经有很多介绍Java 8新特性的文章,例如Playing with Java 8 – Lambdas and Concurrency、Java 8 Date Time API Tutorial : LocalDateTime和Abstract Class Versu

2017-09-04 10:23:08 264

转载 JSP里的basePath

Eclipse 新建 jsp页面里自动生成以下代码:String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>作用相当生成了以下路径: p

2017-08-07 14:56:34 263

转载 ${sessionScope.user}的使用方法

EL 全名为Expression LanguageEL 语法很简单,它最大的特点就是使用上很方便。接下来介绍EL主要的语法结构:${sessionScope.user.sex}所有EL都是以${为起始、以}为结尾的。上述EL范例的意思是:从Session的范围中,取得用户的性别。假若依照之前JSP Scriptlet的写法如下:User user = (Us

2017-08-07 14:55:21 536

转载 用jspf文件做jsp页面的通用页面头

写jsp页面时,是不是:%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>12css和js引用特别多,而且有些页面头部信息包括css、js引用都一样,这时候聪明的程序猿肯定会想

2017-08-07 14:42:40 549

转载 SSM框架运行原理以及流程

ssm框架:包括,springMVC  --  spring --  mybatisspringMVC  是基于MVC的框架属于MVC框架的还有:Struts1 Struts2SpringMVC获取值得方式:Struts1  actionForm(javabean中继承)Struts2  通过 set get  方法Spr

2017-08-07 10:09:22 14009 2

空空如也

空空如也

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

TA关注的人

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