- 博客(54)
- 收藏
- 关注
java编程之美(一)
实践编程已经有足足6年多时间,也算是有一定经验,经常在工作中遇到各种让人不爽的代码编写方式,今天忍不住要来唠叨下。 为什么叫编程之美? 在我看来,代码有丑陋难看和赏心悦目两类,当然还有介于两者之间的。优秀开源框架的源码,让人看了就觉得舒服;而有些新手写的代码,让人看了别扭、添堵。本人也是从新手一步步过来的,想想自己早年写得代码,也是很丑的。当年丑不要紧,一直丑就要命了。 废话不...
2015-11-01 18:28:00
314
架构师之路
拿破仑曾经说过,不想当将军的士兵不是好士兵。我非常认同这个说法,在我看来,不想当架构师的程序员不是好程序员。很幸运,在追求梦想的第6年,我终于也当上架构师。过程不算短,但只要是目标实现了,一切都值了。我想很多程序员也正在追逐梦想的路上。下面分享下我的架构师成长过程,希望能帮助到大家,少走一些弯路(大牛人就不要往下看了,哈哈)。首先,先自我介绍下本人在北京读的书...
2015-10-17 16:48:00
319
java实现各种排序算法及比较
常见排序算法包括以下七种:选择排序、冒泡排序、插入排序、快速排序、希尔排序、堆排序、归并排序。 在学习具体算法实现并进行比较前,先来学习算法比较的几个维度。 一是稳定性 所谓稳定性,是指值相等的两个元素在排序前后是否会发生位置的交换。如果不会发生交换,则认为是稳定的算法;反之,则认为是不稳定的排序算法。 二是时间复杂度,指执行算法所需的时间长短。简单说就是算法执行的快慢程序。 三是空间...
2015-06-08 11:01:00
458
mysql常用命令
cmd下连接mysqlmysql -u root -proot-u后面跟用户名,-p后面跟密码,注意-p后没有空格 如果提示mysql命令找不到,在环境变量Path下增加mysql安装目录的bin路径(C:\Program Files (x86)\MySQL\MySQL Server 5.1\bin)source命令mysql>use xmanager;my...
2015-06-04 11:18:00
167
Druid数据源配置入门(超详细)
Druid是阿里开发的数据库连接池,据说比c3p0性能更好,支持下国产。下面就来学习下超简单的连接池配置: <!-- 阿里 druid数据库连接池 --> <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destr...
2015-06-03 10:49:00
1063
hadoop中map和reduce的数量设置问题
转载http://my.oschina.net/Chanthon/blog/150500map和reduce是hadoop的核心功能,hadoop正是通过多个map和reduce的并行运行来实现任务的分布式并行计算,从这个观点来看,如果将map和reduce的数量设置为1,那么用户的任务就没有并行执行,但是map和reduce的数量也不能过多,数量过多虽然可以提高任务并行度,但是太多的map...
2015-05-21 09:08:00
367
ant之build.xml详解
最近项目中用到了ant构建项目,由于之前一直用的maven,没接触过ant,就抽空补了下ant相关知识。下面分三部分介绍ant:ant安装ant命令build.xml配置详解ant安装直接上官网下载ant包ant官网,最新包是apache-ant-1.9.4-bin.zip。将其解压到某个目录,我的放置在E:\develop目录下然后配置环境变量,增加系统变量ANT_HOM...
2015-05-15 13:51:00
841
mvn+eclipse构建hadoop项目并运行(超简单hadoop开发入门指南)
本文详述如何在windows开发环境下通过mvn+eclipse构建hadoop项目并运行必备环境windows7操作系统eclipse-4.4.2mvn-3.0.3及用mvn生成项目架构(参阅mvn入门指南)hadoop-2.5.2(直接上hadoop官网下载hadoop-2.5.2.tar.gz并解压到某个目录)windows7下环境配置1、本地hadoo...
2015-05-15 10:07:00
318
mvn构建JAX-WS项目含服务端和客户端代码实现
java中WebService框架有很多,像Axis,XFire,CXF等,除了上述框架外,JDK中自带JAX-WS框架。相比而言,JWS是轻量级的,使用非常简便,可与Spring集成使用。下面就详述如何通过mvn构建WebService服务端及客户端。1.引包。在mvn项目的pom文件中加入依赖包<dependency> <groupId>...
2015-05-06 16:07:00
242
windows下创建.gitignore文件(git提交时忽略某些文件)
相信大家在使用eclipse的git插件提交文件时,都会遇到这样一个问题:就是有可能不小心把不必要的文件也被提交了(如.project,.classpath文件或者.settings文件夹及其下面的文件等),那有没有办法把这些文件忽略掉呢? 方法很简单,就是在项目目录下新建.gitignore文件,然后在里面声明要忽略的文件夹或者文件就可以了。麻烦的地方来了,因为该文件是点开头,没有文件名,没...
2015-04-28 16:52:00
1054
CronExpression表达式语法总结
一个cron表达式由6或7个时间元素组成。它们之间用空格分隔,依次为:[秒] [分] [小时] [日] [月] [星期] [年]序号 说明 是否必填 允许填写的值 允许的符号1 秒 是 0-59 , - * /2 分 是 0-59 , - * /3 小时 是 0-23 , - * /4 日 ...
2015-04-28 10:17:00
436
Linux下查看文件和文件夹大小(df&du)
df用法:df [选项]… [文件]… 显示每个文件所在的文件系统的信息,默认显示全部的文件系统常用选项 -h, –human-readable 大小显示为人类易读形式 (e.g., 1K 234M 2G)例子[root@www ~]# df -h文件系统 容量 已用 可用 已用% 挂载点/dev/sda1 94G ...
2015-04-08 15:58:00
123
[Java]String之寻根问底
转载请注明出处:http://blog.csdn.net/tang9140/article/details/43982887引言一 Immutable特性二 连接符号本质三 相等判断两种方式equals说明题1题2题3补充知识点附反射修改String对象代码引言在java编程中,几乎每天都会跟String打交道,因此,深入理解Stri...
2015-02-28 10:51:00
138
欢迎使用CSDN-markdown编辑器
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦在:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I ...
2015-02-08 11:33:00
137
java之XMemcached使用及源码详解
转载请注明出处:http://blog.csdn.net/tang9140/article/details/43445511前言 本文主要讲述如何使用XMemcached客户端与Memcached服务端进行交互。通过XMemcached的API调用与Memcached的set/get命令对比及跟踪XMemcached源码,使大家对XMemcached的API有更深层次的理解,能够从底层...
2015-02-03 09:18:00
254
java中int与byte数组互转代码详细分析
转载请注明出处:http://blog.csdn.net/tang9140/article/details/43404385 在java中,可能会遇到将int转成byte[]数组,或者将byte[]数组转成int的情况。下面我们来思考下怎么实现?首先,分析int在java内存中的存储格式。 众所周知,int类型在内存中占4个字节,采用补码方式存储(假如对原码、反码、补码不熟悉,...
2015-02-02 09:01:00
736
Zookeeper 的学习与运用
引用?云计算越来越流行的今天,单一机器处理能力已经不能满足我们的需求,不得不采用大量的服务集群。服务集群对外提供服务的过程中,有很多的配置需要随时更新,服务间需要协调工作,这些信息如何推送到各个节点?并且保证信息的一致性和可靠性?众所周知,分布式协调服务很难正确无误的实现,它们很容易在竞争条件和死锁上犯错误。如何在这方面节省力气?Zookeeper是一个不错的选择。Zookeepe...
2015-01-30 13:40:00
94
Hadoop-2.5.2集群安装配置详解
转载请注明出处:http://blog.csdn.net/tang9140/article/details/42869531最近学习了下hadoop的安装。下面详细说明下步骤一、环境我的是在Linux环境下进行安装的。对于想在windows系统上学习的同学,可以采用虚拟机方式或通过cygwin模拟linux环境方式进行学习。现在有三台服务器,分配如下:10.0.1.100 ...
2015-01-19 09:43:00
160
java能不能自己写一个类叫java.lang.System/String正确答案
最近学习了下java类加载相关的知识。然后看到网上有一道面试题是能不能自己写个类叫java.lang.System?网上提供的答案:通常不可以,但可以采取另类方法达到这个需求。所谓的另类方法指自己写个类加载器来加载java.lang.System达到目的。首先表明下我的观点。上述答案完全是误导读者,是不正确的答案。我就纳闷了网上怎么把这种完全不正确的搜索结果排在前面,而且几乎搜到的都是...
2015-01-15 11:03:00
1575
5
hadoop 2.5.2执行bin/hdfs namenode -format报错
按照hadoop 2.5.2文档学习,在执行命令bin/hdfs namenode -format时,老是报错:java.lang.NoClassDefFoundError: namecode到网上搜了很多解决方法,有说修改etc/hadoop/hadoop-env.sh增加export HADOOP_COMMON_HOME=/root/test/hadoop-2.5...
2014-12-31 17:05:00
976
java泛型学习和实践(4)
引言前三节讲述了泛型常见声明及使用,泛型既可以在类上进行声明,也可以在单个方法上进行声明,并分别对这两种情况进行了总结。下面来学习下泛型扩展知识。延用前面的Runnable接口、Buick类、Ford类、Driver类,新增加一个汽车容器类CarContainer第一版代码如下:public interface Runnable { public void run(...
2014-12-30 13:23:00
111
java泛型学习和实践(3)
引言泛型除了像前面两节所讲的在类名后进行定义外,也可以在单独的方法上进行定义。这次我们就讲下如何在方法进行泛型声明和使用同样的,假设一个汽车改装厂的场景。延用上节中的Runnable接口、Ford类、Buick类。新增CarRefitFactory类(汽车改装工厂类)。第一版代码如下:public interface Runnable { public void r...
2014-12-27 15:32:00
130
java泛型学习和实践(2)
引言上节中简单介绍了泛型基本使用方法及使用泛型带来的安全性和可读性好处,接下来继续思考第二版代码的不足之处。回顾第二版Driver类的drive方法,其接收T泛型参数,为了调用具体car的run方法,需要向下转型,进行了多次instanceof判断,代码冗余且扩展性不好,不符合代码设计的"开闭原则"。有没有更好的方式?根据“依赖反转”原则,即代码应当依赖于抽象,而不是具体。由于T类型可以是...
2014-12-26 13:39:00
73
java泛型学习和实践(1)
引言JDK1.5之后引入了泛型,泛型刚开始接触时比较难理解,经过慢慢学习,有一些收获,现总结下,既可以加深自身理解,也可以帮助他人。由于本人水平有限,难免有不对的地方,还请指正。废话不多说,下面正式开始。为了更直观的说明泛型,现假设一个司机开车的场景。我们需要3个类,Driver(司机)、Ford(福特)、Buick(别克)。第一版第一版本代码如下:public c...
2014-12-25 16:32:00
128
java里Date对象格式化为Sun Feb 01 2015格式
上面格式化有两种方式:一是用DateFormat格式化: Calendar calendar = Calendar.getInstance(); calendar.set(2015, 1, 1); Date date = calendar.getTime(); DateFormat df = new SimpleDateFor...
2014-12-17 11:53:00
172
eclipse 3.5导入和导出个性格式化配置文件
点Window->Preferences,按下图选择点击Edit,然后弹出框右上角选择下面进行导出选择第一图中的Import...按钮进行导入另附上本人的格式化配置文件<?xml version="1.0" encoding="UTF-8" standalone="no"?><profiles version="11">&
2014-12-09 09:37:00
206
关于eclipse 3.5.0安装Git插件出错解决方法
使用Help --> Install New Software... 进行在线安装插件 eclipse 3.5.0的可以使用1.3版本的git:输入 http://download.eclipse.org/egit/updates-1.3/注,不支持2.0及以上版本(网上有误导),操作图示如下:EGit Mylyn 和 EGit P...
2014-12-08 09:22:00
181
java的native2ascii工具用法
一般在jdk下自带编码转换工具native2ascii,对本地编码和unicode编码进行相互转换用法如下:native2ascii [options] inputfile [outputfile]options-reverse : 指定逆向转换,即将unicode编码转换成本地编码 (形如:\u4f60\u597d -->你好)-encoding encoding...
2014-12-02 16:46:00
105
java字符串编码认识误区说明
最近深入研究了java内部字符串编码方式,发现大家在对java字符串编码认识上存在很大的分歧。网上的说法很多,其中很多都是不严谨的说法或者说是错误的说法。现在把常见认识误区列举如下:误区一:Java的字符串是unicode编码,java编码方式是unicode,Java内字符编码是unicode。说明:上面的说法都提到unicode编码,这是非常不正确的说法。首先说下什么是un...
2014-11-10 11:24:00
92
java对byte,short,char,int,long运算时自动类型转化情况说明
大家都知道,在进行运算时,java会隐式的自动进行类型转化,那么有哪些情况会进行转化呢?总结如下:一、算术运算符单目运算符:+(取正)-(取负) ++(自增1) --(自减1)1.1 +(取正)-(取负)当操作数是byte,short,char时,会自动转化为int类型;返回结果为int。当操作数是int,long时,不转化,原来是啥类型,还是啥类型。1.2++(自增1)-...
2014-11-06 16:39:00
734
用Perl、Shell脚本基于Tomcat6开发cgi程序环境配置
以本人tomcat-6.0.36,linux系统为例:先切换到tomcat所在home目录,本机为"/usr/local/project/tomcat"一、修改conf/web.xml将CGI的serlvet配置与URL映射注释打开 <servlet> <servlet-name>cgi</servlet-name>...
2014-10-30 17:39:00
140
Linux Shell 通配符、转义字符、元字符、特殊字符
一、linux shell通配符(wildcard)通配符是由shell处理的(不是由所涉及到命令语句处理的,其实我们在shell各个命令中也没有发现有这些通配符介绍), 它只会出现在命令的“参数”里(它不用在命令名称里,也不用在操作符上)。当shell在“参数”中遇到了通配符时,shell会将其当作路径或文件名去在磁盘上搜寻可能的匹配:若符合要求的匹配存在,则进行替换(路径扩展);否则就将该...
2014-10-15 17:26:00
222
IT书籍阅读推荐
阅读推荐,与君共勉。摘自(http://blog.csdn.net/forfuture1978/article/details/5551388)C: 《The c programming langage》C++:《Thinking in C++》,《The c++ programming language》,《effective c++》,《more effective c++》,《exc...
2014-10-13 14:50:00
133
spring_jdbc数据库配置项中用户名及密码密文处理类(防黑客入侵用)
原始配置spring结合mysql,一般是单独出配置文件jdbc.properties,配置如下driverClassName=com.mysql.jdbc.Driverdb.mysql.url=jdbc:mysql://127.0.0.1:3306/tq?autoReconnect=true&useUnicode=true&characterEncoding=u...
2014-10-08 17:30:00
507
FreeMarker与SpringMVC整合实例代码教程
增加视图XML配置/testMvc/src/main/resources/conf/springMVC-servlet.xml<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:aop="http://www.spr...
2014-09-30 16:18:00
107
FreeMarker常见用法教程
一、认识FreeMarkerFreeMarker是一款模板引擎:一种基于模板的、用来生成输出文本的通用工具。类似模板引擎还有Velocity,Common Template等。对于java web开发来说,使用FreeMarker模板,可以将java代码从页面中分离出来。开发人员只需关注业务逻辑代码,而由页面设计人员去设计显示效果,两类人员各司其职,发挥其擅长的一面。FreeMarke...
2014-09-30 14:28:00
994
数据结构中树的基本定义相关概念汇总
定义树的递归定义如下(个人比较喜欢的定义,源自百度百科):单个结点是一棵树,树根就是该结点本身。设T1,T2,..,Tk是树,它们的根结点分别为n1,n2,..,nk。用一个新结点n作为n1,n2,..,nk的父亲,则得到一棵新树,结点n就是新树的根。我们称n1,n2,..,nk为一组兄弟结点,它们都是结点n的子结点。我们还称T1,T2,..,Tk为结点n的子树。空集合也是树,称为...
2014-09-26 16:37:00
227
linux grep命令学习与总结
一、grep简述grep命令是linux中强大的文本搜索工具,那么grep取名是怎么来的呢?grep :g(globally) search for are(regular expression) andp(print ) the results从上面的英文解释中可以看出,grep命令使用正则表达式搜索文本,并把匹配的行打印出来二、grep使用格式grep [OPTION]...
2014-09-23 10:45:00
159
linux文件权限查看及修改命令chmod
查看权限Linux文件访问权限分为可读,可写和可执行三种。可用ls -l命令查看,例:ls -l显示-rwxr-xr-x 1 root root 6444 09-22 15:33 shmwrite-rw-r--r-- 1 root root 1443 09-22 15:33 shmwrite.cdrwxr-xr-x 2 root root 4096 09-22 17:19 t...
2014-09-22 17:28:00
536
Linux系统调用
什么是系统调用?Linux内核内置了一组用于实现各种系统功能的函数,称为系统调用。用户可以在应用程序中调用系统调用来实现某种系统功能。从某种角度来看,系统调用和普通的函数调用非常相似。区别仅仅在于,系统调用由操作系统核心提供,运行于核心态;而普通的函数调用由函数库或用户自己提供,运行于用户态。系统调用把应用程序的请求传给内核,调用相应的的内核函数完成所需的处理,将处理结果返回给应用程序。系...
2014-09-19 14:43:00
69
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人