- 博客(41)
- 收藏
- 关注
原创 Webx3原理分析
WebX3原理分析1 前言抽空总结了Webx3框架,如有错误,欢迎指正!2 背景知识2.1 MavenMaven主要解决了以下两个问题:(1)、它为项目构建引入了一个统一的接口,抽象了构建的生命周期,并为生命周期中的绝大部分任务提供了实现的插件。你不需要去关心这个生命周期里发生的事情,只需要把代码放在指定的位置,执行一条命令,整个构建过程就完成了。(2)、其次,它为Java世界里的依赖引入了经纬度(
2016-07-09 19:05:34 2482
原创 Volocity使用总结
基本展示:$!var 集合遍历:#foreach($var in $varList) $!var(!是避免var为空时,$var直接显示在页面上)#end
2016-06-15 11:46:25 1002
原创 端口号被占用解决方法
Mac环境下:1、查看占用端口号的pid,以端口8080为例 sudo lsof -i:8080 (需要输入密码)2、根据1中的pid结束对应的进程 kill -9 pidLinux环境: 1、查看占用端口号的pid,以端口8080为例 netstat -tunpl | grep port 2、根据1中的pid结束对
2016-04-11 09:07:47 2489
原创 Java的四种引用类型分析
引用的基本概念1.1、强引用当我们使用new 这个关键字创建对象时被创建的对象就是强引用,如Object object = new Object() 这个Object()就是一个强引用了,如果一个对象具有强引用。垃圾回收器就不会去回收有强引用的对象。如当jvm内存不足时,具备强引用的对象,虚拟机宁可会报内存空间不足的异常来终止程序,也不会靠垃圾回收器去回收该对象来解决内存。1.2、软引用如果一个对象具备软引用,如果内存空间足够,那么垃圾回收器就不会回收它,如果内存空间不足了,就会回收该对象。当然没
2016-03-30 11:24:53 439
原创 Dubbo分布式服务框架
Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。说到RPC框架和SOA服务治理,还是从"淘宝技术这十年"听过并尝试着了解这一块的内容,Dubbo是阿里开源的RPC框架,与其类似的还有HSF,但是这个应该是阿里内部框架。
2016-03-05 21:02:20 597 1
原创 Homebrew的使用
Homebrew的使用:linux系统有个通病,软件包依赖,好在当前主流的两大发行版本都自带了解决方案,Red hat有yum,Ubuntu有apt-get,但是mac os没有类似的东西,但是有第三方支持版本:Homebrew,Homebrew简称brew,是Mac OSX上的软件包管理工具,能在Mac中方便的安装软件或者卸载软件,可以说Homebrew就是mac下的apt-get、yum神器在Mac上面找不到的软件安装,可以使用brew安装安装方式: Homebrew是基于Ruby的(M
2016-03-05 18:16:25 496
原创 spring mvc使用Maven配置Velocity
在Spring mvc中视图解析器组件默认为Jsp,这仅仅是其中一种视图解析器。除了使用Jsp作为视图解析器之外,我们还可以使用Velocity、FreeMarker作为视图解析器,该文章主要针对Spring mvc配置Velocity作为spring mvc的视图解析器,至于配置Freemarker与配置Velocity类似,Volocity的定位和Jsp一样,下面主要介绍如何使用Velocit
2016-03-05 18:14:03 1001
原创 Servet介绍及其生命周期
1、Servlet简介Servlet是java用于开发动态web资源的技术。是java web的基础。2、Servlet生命周期Servlet程序是由WEB服务器调用,web服务器收到客户端的Servlet访问请求后:①Web服务器首先检查是否已经装载并创建了该Servlet的实例对象。如果是,则直接执行第④步,否则,执行第②步。②装载并创建该Servlet的一个实例对象。 ③调用Servl
2016-02-12 09:58:45 1246
原创 SAX和DOM解析的xml的区别
DOM解析DOM方法读取XML文档,需要将整个XML文档加载内存中,对系统资源占用比较多,尤其对内存比较紧张的Android系统来说,使用DOM方法读取XML文档会有很大的限制。SAX解析使用SAX方法读取XML,对内存资源的占用的比较少,因此在嵌入式设备中极力推荐使用,网站项目也不例外。
2016-02-12 09:54:58 432
原创 DTD和Schema
DTD和Schema是两种常用的xml文件的约束文件,都是用来约定XML文件,目的是会提示使用者让使用者按照规定的格式去书写XML,验证XML文件有效性。主要的区别有一下几点: 1、Schema遵循XML语法,学习成本低,不需要再学习新的语法;DTD和XML语法使用的是自己特殊的语法 2、DTD只能指定元素含有文本,不定定义元素文本的类型,如字符型、整型、日期型、自定义类型等。Schema在这方面比DTD强大。 3、Schema对命名空间的支持,如果出现两个相
2016-01-29 10:15:54 602
原创 Map遍历
public static void main(String[] args) { Map map = new HashMap(); map.put("1", "value1"); map.put("2", "value2"); map.put("3", "value3"); System.out.println("通过Map.keySet遍历key和val
2016-01-26 09:21:16 268
原创 QPS UV PV
QPS UV PVQPS:每秒查询率(Query Per Second),每秒的响应请求数,也即是最大的吞吐能力。QPS= req/sec = 请求数/秒QPS统计方式【一般使用http_load进行统计】峰值QPS:原理:每天80%的访问集中在20%的时间里,这20%的时间叫做峰值时间公式:(总PV数*80%)/(每天秒数*20%)=峰值QPSPV: 访问量即Page View,即
2016-01-22 19:19:58 495
原创 Hash和一致性Hash算法
Hash Hash无论是数据结构还是分布式缓存,都有应用。Hash更确切的说是hash函数,是一个集合的数据到另一个集合内数据的一个映射。被映射方在数学里面叫做原象,这里我们叫做数据,映射到的叫象,这里我们称作槽。 分布式缓存服务器和应用服务器的区别在于,应用服务器中的所有服务器都部署着相同的应用,而缓存服务器集群中不同的机器中存放着不同的缓存,因为缓存的访问请求不能再几种中任意一台服务器上处理,必须先找到数据所在的服务器,才能访问。由此可以看出,在上述的分布式缓存系统中,对于服务器集群的
2016-01-10 15:19:46 615
原创 日志框架和日志系统
日志框架和日志系统日志系统 Log4j,是较早出现的比较成功的日志系统,它开创的日志系统模型(如 Logger/Appender/Level)行之有效,且一直沿用至今; JUL(java.util.logging.*),JDK 1.4 自带的日志系统;JUL 并没有明显的优势来战胜Log4j,反而造成了标准的混乱——采用不同日志系统的应用程序无法和谐共存; Logback,是较新的日志系统,它是
2016-01-05 09:20:15 1261
原创 StringUtil.isEmpty()和StringUtil.isBlank()的区别
1. public static boolean isEmpty(String str)判断某字符串是否为空,为空的标准是str==null或str.length()==0下面是StringUtils判断是否为空的示例:StringUtils.isEmpty(null) = true StringUtils.isEmpty("") = true StringUtils.isEmpty(" ") = fa......
2015-12-22 10:41:26 28210 2
原创 spring mvc使用Maven配置Velocity
Maven依赖配置<dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>4.1.1.RELEASE</version></dependency><dependency> <
2015-12-22 10:25:33 681
原创 Mac卸载MySQL
Mac卸载MySQL由于Mac只有安装MySQL的方法,没有卸载MySQL的方法,只能使用命令行的方式进行卸载sudo rm /usr/local/mysqlsudo rm -rf /usr/local/mysql* sudo rm -rf /Library/StartupItems/MySQLCOMsudo rm -rf /Library/PreferencePanes/My*vim
2015-12-21 15:51:13 517
原创 IntelliJ IDEA 常用设置
####修改javaDoc签名1、打开Setting2、找到File and Code Templates3、找到Includes4、修改掉${User}为自定义用户名即可,可以改为/** * Created by 姓名 on ${DATE}. */ ####导入包的时候设置下不出现*1、打开Setting2、Code style->Java->Im
2015-12-14 10:59:51 8570
原创 Linux修改hostname导致无法解析主机错误
电脑新安装系统后,默认的hostname为电脑品牌加上具体的型号很长的一串主机名,这样导致在terminal界面看起来很不友好,默认第一行全部被计算机名字占用了,然后便通过指令将hostname更改了:sudo vi /etc/hostname//输入计算机密码后,然后在里面配置自己自定义的主机名通过这样设置后,重启电脑后,hostname是更改了,但是每次执行sudo指令的时候都会出现无法解析主
2015-12-11 09:54:22 10402
原创 Velocity 页面四则运算
因为项目需求,在数据库里面存储的数据是美分,在前台显示要显示为美元,所以要对金额数据进行除10操作(其它除数可能需要考虑到无限小数的问题),但是因为使用Velocity进行四则运算和远程部署热部署问题导致了不少的坑,下面总结下使用Velocity如何正确的进行四则运算......
2015-12-09 17:50:55 14511 2
原创 Java自定义注解
说到注解,也是面试中的重点高频知识点,因为利用注解加上反射可以做很多事情,通过注解对一些类或方法进行标示(override),通过注解、反射和AOP切面来做缓存,通过注解在类文件编译的时候添加一些自定义的结构或是方法(例:Lombok)如果要自己写自定义注解,那我们应该知道我们系统的注解是什么样子的,为此我们可以像看Java源码一样点开一个注解,以override为例:@Target(ElementType.METHOD)@Retention(RetentionPolicy.SOURCE)publ
2015-12-08 14:14:52 307
原创 Java常见异常总结
1. java.lang.NullPointerException(空指针异常) 调用了未经初始化的对象或者是不存在的对象,经常出现在创建图片,调用数组这些操作中,比如图片未经初始化,或者图片创建时的路径错误等等。对数组操作中出现空指针,即把数组的初始化和数组元素的初始化混淆起来了。数组的初始化是对数组分配需要的空间,而初始化后的数组,其中的元素并没有实例化,依然是空的,所以还需要对每个元
2015-12-07 16:17:30 513
原创 单例模式
单例模式单例模式在全局范围内,同一个类只构造一个对象,全局范围可以引用。减少因对象创造、销毁带来的资源消耗。(项目中的应用:spring容器中所有的bean都是单例的),因为是单例,也就意味着只能多线程环境下使用,所以不得不考虑线程安全的问题,所以应该尽量避免使用类的实例变量,因为在单例的环境下,类的实例变量相当于静态变量保存在主存中,而主存中的变量是在所有线程之间共享的,所以在单例环境中应该尽量避免使用实例变量,单例环境中一定要用实例变量的话,只用实例变量来维护一些静态的资源(缓存功能,如xml资源等等
2015-12-01 16:49:30 360
原创 Java实现Date日期加一天
因为在项目中遇到了需要将日期进行加减一些天数的操作,但是自己加需要考虑到跨月的情况,所以便找了Java提供的相关的API,方法如下date=new date(); //取时间 Calendar calendar = new GregorianCalendar(); calendar.setTime(date); calendar.add(calendar.DATE,1); //把日期往......
2015-12-01 13:34:44 120930 4
转载 VO、DTO、DO、PO的概念、区别和用处
概念:VO(View Object):视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。DTO(Data Transfer Object):数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载,但在这里,我泛指用于展示层与服务层之间的数据传输对象。
2015-11-30 12:49:48 472
原创 spring mvc原理分析
什么是spring mvc?spring mvc是spring框架的一个模块,spring mvc和spring无需通过中间整合层整合spring mvc是一个基于mvc的web框架spring mvc框架spring mvc框架原理(掌握)前端控制器、处理器映射器、处理器适配器、视图解析器spring mvc入门程序目的:对前端控制、处理器映射器、处理器适配器、视图解析器的学习非注解的处理器映射器、处理器适配器注解的处理器映射器、处理器适配器(掌握)spring和mybatis整
2015-11-23 09:18:50 408
原创 mybatis原理分析
在使用mybatis之前,我们要知道不使用Mybatis的时候我们用JDBC是如何做数据库相关的操作,进而才会更加深刻的理解为什么我们要使用mybatis这种ORM框架,当然ORM框架还有一个比较有名的开源框架Hibernate,本文我会重点讲解为什么将JDBC封装成Mybatis这样一种持久层框架,在对Mybatis分析完成之后,我会对比两个ORM框架的异同点.1.使用JDBC实现数据库连接我们先看看我们最熟悉也是最基础的通过JDBC查询数据库数据,一般需要以下七个步骤:(1) 加载JDBC驱
2015-11-23 09:17:01 633
原创 Lombok精简Java代码及安装使用
Lombok是一个Jar的包,一种Java使用工具,通过注解的方式实现对Java代码的精简和优化,通过在项目中引入Lombok的jar包和在IDE集成开发环境中安装相应的Lombok插件,开发人员就可以节省构建冗余方法所耗费的大量时间,进而提升开发效率
2015-11-20 09:55:08 397
原创 使用IntelliJ IDEA如何使用远程debug
项目的部署方式有在本地搭建服务器进行启动或是debug,或是将项目在远程服务器上面部署。一般如果在本地搭建服务器的时候,可以直接选择启动或是直接debug,但是如果项目部署在远程的服务器上面的时候, 我们该如何进行调试呢?这时候我们就需要用远程debug,通过远程服务器的ip地址和远程开启的debug端口进行调试:1.首先把远程服务器上面需要调试的代码放在IDE里面2.在菜单栏选择run.........
2015-11-19 16:23:39 16630
原创 Linux系统日常笔记总结
Linux系统简介:Linux系统是一个免费使用和自由传播的操作系统Linux应用:1.Linux作为Internet网络服务器的应用--提供Web DNS FTP和Mail服务2.Linux作为中小企业内部服务器的应用--提供网络代理 网络防火墙 DHCP和文件共享服务3.Linux作为软件开发环境的应用--支持C C++ PHP Java Python语言等(强烈建议计算机专业的同学安装Linux(Ubuntu)系统做日常开发)Linux系统的特点:多用户多任务一切都是文件(文件
2015-11-16 17:51:54 808
原创 svn日常笔记总结
SVN是Subversion的简称,是一个开放源代码的集中式的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。但是相比较于分布式的Git分布式版本管理系统还是有很大的差距,目前新项目几乎统一采用的是Git作为版本管理工具,但是很多公司的老项目依旧采用的是svn管理,所以在这里还是总结一下日常使用svn的笔记
2015-11-16 13:54:56 484
原创 Linux系统下安装Intellij IDEA
安装Intellij IDEA之前首先要安装的是JDK,并配置好相关的环境变量(1)首先到官网下载相关Intellij IDEA的安装包:http://www.jetbrains.com/idea/download/(2)解压安装文件 tar xvzf ideaIC-14.0.1.tar.gz(3)解压完成后切换到解压后安装包根目录下的bin路径下,执行idea.sh脚本
2015-11-16 10:33:20 1954
原创 Linux系统环境变量设置
由于Linux操作系统是多用户操作系统,所以对应的环境变量Path有两种,一种是单一用户的环境变量Path,一种是全局的环境变量Path1、设置系统环境变量变量的方法:使用终端输入sudo vi /etc/envirment,根据提示输入密码,在PATH="...."的末尾处添加自己所需要添加的环境变量,最后source /etc/envirment使其配置生效2、设置单一用户环境变量
2015-11-14 23:24:57 465
原创 一方库、二方库、三方库
一方库:自己项目中的各模块的相互依赖二方库:公司内部的依赖库,一般放在公司Maven私服上,指公司内部的引用或是被引用的jar包三方库:公开的外部依赖jar包
2015-11-12 16:54:10 1805
原创 Ubuntu下面vi编辑器使用方向键会出现ABCD解决办法
ubuntu下 vi输入方向键会变成ABCD先卸载vim-tiny:$ sudo apt-get remove vim-common再安装vim full:$ sudo apt-get install vim
2015-11-12 14:40:37 716 1
原创 Git日常笔记总结
git init:git仓库初始化git config - -global user.name “ahpuchunwei”git config - -global user.email ahpuchunwei@163.comgit remote remove origin master删除本地和远程关联的代码git remote add origin url添加远程分支和本
2015-10-16 12:56:40 394
原创 Java Web学习路线
什么是spring mvc?spring mvc是spring框架的一个模块,spring mvc和spring无需通过中间整合层整合spring mvc是一个基于mvc的web框架spring mvc框架spring mvc框架原理(掌握)前端控制器、处理器映射器、处理器适配器、视图解析器spring mvc入门程序目的:对前端控制、处理器映射
2015-08-25 16:11:14 656
原创 数据结构日常笔记总结
数据结构概述定义:我们如何把现实中大量而复杂的问题以特定的数据类型和特定的存储结构保存到主存储器(内存)中,以及在此基础上为实现某个功能(比如查找某个元素,删除某个元素,对所有元素进行排序)而执行的的相应操作,这个相应的操作也叫算法数据结构=个体+个体的关系算法=对存储数据的操作算法:解题的方法和步骤衡量算法的标准1、时间复杂度大概程度要执行的次数,而非
2015-08-13 09:01:57 537
转载 数据库设计三大范式
为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库,必须满足一定的范式。 在实际开发中最为常见的设计范式有三个:1.第一范式(确保每列保持原子性)第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值
2015-08-08 12:15:48 387
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人