自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

NextX工作室的博客

NextX工作室强大开发团队~Come on~~~

  • 博客(42)
  • 资源 (5)
  • 收藏
  • 关注

转载 分布式锁的介绍及使用方案

一、分布式锁当应用服务器数量超过1台,对相同数据的访问可能造成访问冲突(特别是写冲突)。单纯使用关系数据库比如MYSQL的应用可以借助于事务来实现锁,也可以使用版本号等实现乐观锁,最大的缺陷就是可用性降低(性能差)。对于GLEASY这种满足大规模并发访问请求的应用来说,使用数据库事务来实现数据库就有些捉襟见肘了。另外对于一些不依赖数据库的应用,比如分布式文件系统,为了保证同一文件在大量读写操作

2016-09-20 18:26:46 1057

原创 JAVA8新特性

Java 8 (又称为 jdk 1.8) 是 Java 语言开发的一个主要版本。 Oracle 公司于 2014 年 3 月 18 日发布 Java 8 ,它支持函数式编程,新的 JavaScript 引擎,新的日期 API,新的Stream API 等。一、接口的默认方法Java 8允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可,这个特征又叫做扩展方法,示例

2016-09-20 14:51:16 585

原创 Java实现生产者消费者模型

生产者消费者问题是研究多线程程序时绕不开的经典问题之一,它描述是有一块缓冲区作为仓库,生产者可以将产品放入仓库,消费者则可以从仓库中取走产品。解决生产者/消费者问题的方法可分为两类:(1)采用某种机制保护生产者和消费者之间的同步;(2)在生产者和消费者之间建立一个管道。第一种方式有较高的效率,并且易于实现,代码的可控制性较好,属于常用的模式。第二种管道缓冲区不易控制,被传输数据对象不易于封装等,实

2016-09-19 17:07:47 9113 1

原创 ZooKeeper常用指令集

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。下载地址:http://zookeeper.apache.org/releases.html#downloadZooKeeper服

2016-09-19 16:27:21 1239

原创 Java多线程之ForkJoinTask,ForkJoinPool介绍及使用

ForkJoinTask是jdk1.7整合Fork/Join,即拆分fork+合并join,性能上有大大提升。思想:充分利用多核CPU把计算拆分成多个子任务,并行计算,提高CPU利用率大大减少运算时间。有点像,MapReduce思路感觉大致一样。jdk7中已经提供了最简洁的接口,让你不需要太多时间关心并行时线程的通信,死锁问题,线程同步,下面是它提供的接口:RecursiveActio

2016-09-19 14:18:45 7951

原创 Java中常见内存溢出错误及处理方法

相信有一定JAVA开发经验的人或多或少都会遇到OutOfMemoryError的问题,随着解决各类问题经验的积累以及对问题根源的探索,终于有了一个比较深入的认识。  在解决Java内存溢出问题之前,需要对JVM(Java虚拟机)的内存管理有一定的认识。JVM管理的内存大致包括三种不同类型的内存区域:Permanent Generation space(永久保存区域)、Heap space(

2016-09-18 18:01:30 4171

转载 分布式集群项目中同步DB数据的解决方案之Canal

业务场景描述:在我们的项目中有些配置信息持久化在数据库中,这些配置信息又是在系统启动后自动加载并缓存在local或者redis中,但如果后台运营系统进行了相应更新配置操作,我们需要实现“热部署”或“热插拔”等功能的话,我们有哪些方案可以实现呢?单机项目就非常简单了,但分布式集群的项目怎么办呢? 分布式集群的项目之间同步数据,我们来讲一下有哪些方案解决。方案一:项目程序中对DB进行操

2016-09-18 15:23:08 6088

转载 IDEA下安装/配置Jrebel6.X

1. 为什么要使用Jrebel在日常开发过程中, 一旦修改配置/在类中增加静态变量/增加方法/修改方法名等情况, tomcat不会自动加载, 需要重启tomcat才能使修改后的代码或配置生效.对于比较大的项目, 每次启动需要5min+时, 就比较浪费时间了. Jrebel插件可以让我们修改任何代码均不用重启, 可以大大减少重启项目所浪费的时间.Jrebel官网: http://

2016-07-18 11:11:00 1687

转载 常用UML每种图的细节问题

常用UML每种图的细节问题:          1、用例图(use case diagrams)【概念】描述用户需求,从用户的角度描述系统的功能【描述方式】椭圆表示某个用例;人形符号表示角色【目的】帮组开发团队以一种可视化的方式理解系统的功能需求【用例图】 2、静态图     类图(class  diagrams) 【概念】显

2016-07-18 10:43:54 1405

原创 UML类图中类与类之间的关系及画法

类与类之间的关系通常有4种,即依赖关系(Dependency)、泛化关系(Generalization)、关联关系(Association)、实现关系(Realization)依赖关系(Dependency)【概念】表示两个或多个模型元素之间语义上的连接关系【绘图方式】虚线箭头,箭头指向被使用者【依赖图】泛化关系(继承)(Generalization)【概念】描述类

2016-07-18 10:42:01 7156

转载 高并发系统之限流特技:有了它,京东6.18如虎添翼!

转载 ------ 2016-06-24 张开涛相关文章在开发高并发系统时有三把利器用来保护系统:缓存、降级和限流。缓存的目的是提升系统访问速度和增大系统能处理的容量,可谓是抗高并发流量的银弹;而降级是当服务出问题或者影响到核心流程的性能则需要暂时屏蔽掉,待高峰或者问题解决后再打开;而有些场景并不能用缓存和降级来解决,比如稀缺资源(秒杀、抢购)、写服务(如评论、下单)、频繁的复杂查询(

2016-06-24 10:28:17 6773

原创 Java基础面试复习二

21、写clone()方法时,通常都有一行代码,是什么?clone 有缺省行为,super.clone();因为首先要把父类中的成员复制到位,然后才是复制自己的成员。22、面向对象的特征有哪些方面计算机软件系统是现实生活中的业务在计算机中的映射,而现实生活中的业务其实就是一个个对象协作的过程。面向对象编程就是按现实业务一样的方式将程序代码按一个个对象进行组织和编写,

2016-06-12 16:55:18 1365

原创 Hibernate的N+1查询及解决

在Session的缓存中存放的是相互关联的对象图。默认情况下,当hibernate从数据库中加载Customer对象时,会同时加载所有关联的Order对象。以Customer和Order类为例,假定ORDERS表的CUSTOMER_ID外键允许为null,图1列出了CUSTOMERS表和ORDERS表中的记录。 以下Session的find()方法用于到数据库中检索所有的Custome

2016-06-08 19:12:12 6887

转载 B树、B-树、B+树、B*树

B树       即二叉搜索树:       1.所有非叶子结点至多拥有两个儿子(Left和Right);       2.所有结点存储一个关键字;       3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树;       如:              B树的搜索,从根结点开始,如果查询的关键字与结点的关键字相等,那么就命中;否则,

2016-06-08 18:29:00 4101

转载 Mybatis入门实例(四)——MyBatis与Spring 3.X的整合

这篇文章主要是说明了Spring3和MyBatis的整合方法,之所以要整合就是将MyBatis创建factory等各种繁冗的工作以及对session的管理、事务的管理交由spring容器帮我们管理,省心省力。这个项目是在我的前几篇文章的基础上加入spring的内容,关于MyBatis的项目如何建立请查阅我之前的关于MyBatis的帖子。 整个的项目结构如下:先把包都导入

2016-06-08 15:49:55 4479

原创 Mybatis入门实例(三)——使用MyBatis Generator生成DAO

虽然MyBatis很方便,但是想要手写全部的mapper还是很累人的,好在MyBatis官方推出了自动化工具,可以根据数据库和定义好的配置直接生成DAO层及以下的全部代码,非常方便.需要注意的是,虽然自动化工具需要一个配置文件,但是MyBatis的配置文件仍然不能少,自动化工具的配置文件用于对生成的代码的选项进行配置,MyBatis的配置文件才是运行时的主要配置文件.在类路径下面建立gen

2016-06-08 14:48:20 6492

转载 Mybatis入门实例(二)——添加ehcache缓存支持

为了提高MyBatis的性能,有时候我们需要加入缓存支持,目前用的比较多的缓存莫过于ehcache缓存了,ehcache性能强大,而且位各种应用都提供了解决方案,在此我们主要是做查询缓存,提高查询的效率. 在Mybatis的官网上把集成ehcache的文档下载下来看了看,说的太简单了,对于新手很难理解,而且里面说的也不是很清楚,经过一番折腾,终于将ehcache加入了. 官网上提供

2016-06-08 14:47:33 4659

转载 Mybatis入门实例(一)

ibatis的3.X版本改名了,叫做MyBatis,暂且不讨论之间的差别,今天来做一个MyBatis的小例子其实MyBatis虽然在源码层面上和ibatis差别较大,但是我们实际用的时候差别并不大,只不过xml里面的标签名变了变,类名变了而已,其他的基本上一样.如果学过hibernate,会发现Mybatis里面的类名等和hibernate的很接近,这样做就是为了降低开发人员的学习成本.

2016-06-08 14:46:06 4986

原创 Nginx相关指令及配置

一.Nginx相关指令:1.nginx启动nginx -c /etc/nginx/nginx.conf其中参数-c指定nginx启动时加载的配置文件,当然也可以不指定配置文件,省略-c,也可以启动,表示使用默认的配置文件。nginx2.nginx停止nginx -s stop 或者nginx -s quit 或者pkill -9 nginx  例如在

2016-06-02 16:07:34 6860

原创 Nginx安装及使用

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好。(百度百科-http://www.dwz.cn

2016-06-01 14:37:41 1741

原创 Mac系统开发常见问题-80端口被占用的解决方案2-使用Nginx解决

起因:      开发中,eclipse中无法使用80端口(因mac 本身已经占用了80端口),导致调试项目的时候,需要使用8080端口调试,不是很方便,所以,想到使用nginx做代理,然后做转发到8080端口。思路:     无非就那么几种:          1、干掉80端口的占用程序,直接让tomcat占用          2、端口转发,将80端口转发到其他

2016-05-31 21:16:17 5878

原创 Mac系统开发常见问题-80端口被占用的解决方案1-使用pfctl做网络层转发

IntelliJ IDEA之Tomcat启动相关报错:1.EvnetLog报错:Error running test1: Address localhost:80 is already in use大致可能解决方案1:Mac OS X 因为要绑定80端口需要ROOT权限, 但是如果用root权限启动eclipse或tomcat又会造成, 启动创建的各类文件是root的,普通用户无法

2016-05-31 21:05:36 14338 1

原创 Mac系统开发常见问题-IntelliJIDEA-TOMCAT-Unable to ping server at localhost:1099

IntelliJ IDEA之Tomcat启动相关报错:1.EvnetLog报错:Application Server was not connected before run configuration stop, reason:           Unable to ping server at localhost:1099  out报:/Users/niefei/Programs

2016-05-30 23:13:51 6905

原创 Mac系统开发常见问题-IntelliJIDEA-TOMCAT-Address localhost:80 is already in use

IntelliJ IDEA之Tomcat启动相关报错:1.EvnetLog报错:Error running test1: Address localhost:80 is already in usea默认Mac系统中80端口由web共享文件apache【/etc/apache/】占用,更换listen 80 - 》 8011等b默认Mac系统中80端口需要使用root用户才能启动,即你

2016-05-30 23:00:05 13270

原创 Mac系统开发常见问题-Mac登录界面多了一个其他账户选项

最近在给MacbookPro安装许多应用多了,开机登录页面“其他账户”选项,开机及其丑陋,无法忍受,搜索相关文章发现可以这样解决。方法:1.系统偏好设置-》用户与群组-》解锁-》登录选项-》自动登录-》所用账号及保存密码。【好处在于自动登录,坏处是无隐私】2.彻底解决问题的方式,类似于windows的修改注册表,大致方案如下:原因分析:      在安装一些软件时会自动启用ro

2016-05-30 22:51:37 18346 1

转载 Git常用指令集

Git 是一个很强大的分布式版本控制系统。它不但适用于管理大型开源软件的源代码,管理私人的文档和源代码也有很多优势。Git常用操作命令:1) 远程仓库相关命令检出仓库:$ git clone git://github.com/jQuery/jquery.git查看远程仓库:$ git remote -v添加远程仓库:$ git remote add

2016-05-27 11:23:48 2080

原创 苹果Mac系统开发必备资源

昨天在Mac系统上安装了一系列的开发工具,搞了到半夜,要装的有点贪多....哈哈,分享一下,相关安装软件及注册码的获取方式。分享相关下载软件的地址:mac软件:http://soft.macx.cn/pc6苹果电脑软件::http://www.pc6.com/mac/开发工具:1.InteliiJ IDEA15:(建议官方版,怕又有xcode事件)htt

2016-05-24 09:43:25 3533

原创 2016年5月热门IT职位的推荐

如有兴趣联系直接回复“NextX工作室”的公众号,并将简历发送我们邮箱:[email protected] 。我们会诚心将你简历转发给相关HR,并更新相关信息。——————————互联网公司推荐求职网站:“拉勾网”,“100offer”普通行业推荐求职网站:“51job”,“智联招聘”,“赶集网”等Hot Jobs List

2016-05-20 18:01:44 3830

转载 理解Java垃圾回收机制

理解java垃圾回收机制有什么好处呢?作为一个软件工程师,满足自己的好奇心将是一个很好的理由,不过更重要的是,理解GC工作机制可以帮助你写出更好的Java应用程序。这是我个人的主观观点,但我相信一个人精通了GC,往往会是一个更好的Java程序员。如果你对GC感兴趣,那就意味着你有一定大规模应用开发的经验。如果你已经仔细过考虑选择合适的GC算法,这意味着你完全理解你开发的应用程序的功能。当然,这

2016-05-20 17:58:09 2114

转载 Java-JVM的内存调优

首先需要注意的是在对JVM内存调优的时候不能只看操作系统级别Java进程所占用的内存,这个数值不能准确的反应堆内存的真实占用情况,因为GC过后这个值是不会变化的,因此内存调优的时候要更多地使用JDK提供的内存查看工具,比如JConsole和Java VisualVM。对JVM内存的系统级的调优主要的目的是减少GC的频率和Full GC的次数,过多的GC和Full GC是会占用很多的系统资源

2016-05-17 11:00:31 1823

转载 Java-JVM的内存管理和垃圾回收

JVM内存组成结构JVM栈由堆、栈、本地方法栈、方法区等部分组成,结构图如下所示:1)堆所有通过new创建的对象的内存都在堆中分配,其大小可以通过-Xmx和-Xms来控制。堆被划分为新生代和旧生代,新生代又被进一步划分为Eden和Survivor区,最后Survivor由From Space和To Space组成,结构图如下所示:新生代。新建的对象都是用新生代分配内存,

2016-05-17 10:56:54 1690

转载 Java-JVM的Java代码编译和执行的整个过程

Java代码编译是由Java源码编译器来完成,流程图如下所示:Java字节码的执行是由JVM执行引擎来完成,流程图如下所示: Java代码编译和执行的整个过程包含了以下三个重要的机制:Java源码编译机制类加载机制类执行机制Java源码编译机制Java源码编译由以下三个过程组成:分析和输入到符号表注解处理语义分析和生成class文件流程图如下所示

2016-05-17 10:55:21 5267

转载 Java-JVM的基本结构

从Java平台的逻辑结构上来看,我们可以从下图来了解JVM:从上图能清晰看到Java平台包含的各个逻辑模块,也能了解到JDK与JRE的区别对于JVM自身的物理结构,我们可以从下图鸟瞰一下:对于JVM的学习,在我看来这么几个部分最重要:Java代码编译和执行的整个过程JVM内存管理及垃圾回收机制

2016-05-17 10:02:07 4337

转载 Java多线程

线程的概念:程序 进程与线程的区别:  程序是一个静态的代码或者说静态的存在.而进程是程序的一次运行过程.   多个进程的内部数据和状态都是完全独立的,而多线程是共享一块内存空间和一组系统资源,有可能互相影响.  线程本身的数据通常只有寄存器数据,以及一个程序执行时使用的堆栈,所以线程的切换比进程切换的负担要小。线程的实现方法:继承Threa

2016-05-16 18:03:41 1658

转载 CAS实现SSO单点登录原理

1.      CAS 简介1.1.  What is CAS ?CAS ( Central Authentication Service ) 是 Yale 大学发起的一个企业级的、开源的项目,旨在为 Web 应用系统提供一种可靠的单点登录解决方法(属于 Web SSO )。CAS 开始于 2001 年, 并在 2004 年 12 月正式成为 JA-SIG 的一个项目。1.

2016-05-16 17:17:29 2030

转载 Java内存模型及管理

1. 概述  多任务和高并发是衡量一台计算机处理器的能力重要指标之一。一般衡量一个服务器性能的高低好坏,使用每秒事务处理数(Transactions Per Second,TPS)这个指标比较能说明问题,它代表着一秒内服务器平均能响应的请求数,而TPS值与程序的并发能力有着非常密切的关系。在讨论Java内存模型和线程之前,先简单介绍一下硬件的效率与一致性。2.硬件的效率与一致性  由于

2016-05-16 14:10:04 2325

转载 Spring的AOP实现原理

什么是AOPAOP(Aspect-OrientedProgramming,面向方面编程),可以说是OOP(Object-Oriented Programing,面向对象编程)的补充和完善。OOP引入封装、继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为的一个集合。当我们需要为分散的对象引入公共行为的时候,OOP则显得无能为力。也就是说,OOP允许你定义从上到下的关系,但并不适合定义从

2016-05-13 16:01:41 11819

原创 HashMap实现原理

1.    HashMap概述:   HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 2.    HashMap的数据结构:   在Java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造的,H

2016-05-13 10:39:32 16265 4

原创 Java基础面试复习一

做Java业务开发很久了,有些技术快忘了?来吧,让我们从基础重新开始复习一下~~~1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?可以有多个类,但只能有一个public的类,并且public的类名必须与文件名相一致。2、Java有没有goto?java中的保留字,现在没有在java中使用。3、说说&和&&的区别。&和&&都可以用作逻辑与的运算

2016-05-12 15:47:56 4456

原创 Linux常用指令集

1. ls命令ls命令是列出目录内容(List Directory Contents)的意思。运行它就是列出文件夹里的内容,可能是文件也可能是文件夹。?1234567root@tecmint:~# ls Android-Games

2016-05-10 18:09:18 2787

Jrebel安装使用教程

Jrebel安装使用教程

2016-07-18

Apache Tomcat-8

tomcat8

2016-05-13

Apache Tomcat-6

tomcat6

2016-05-13

windows64位-GIT

windows32位-GIT

2016-05-13

windows32位-GIT

windows32位-GIT

2016-05-13

空空如也

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

TA关注的人

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