
Java
文章平均质量分 89
新拖拉机
对技术高峰,身虽不能至,而心向往之。
GitHub空间:https://github.com/pumadong
展开
-
《Tomcat权威指南》第二版学习笔记
本篇是《Tomcat权威指南》第二版学习笔记,Jason Brittain著,英文名是:Tomcat:The Definitive Guide,中国电力出版社,2009.9出版。在工作中经常使用Tomcat、JBoss、Jetty等Java容器,但都不曾系统的学习总结过,本次拿出一个周末的时间,通过本书,较为系统的学习一下Tomcat,并结合互联网的参考资料,写下这篇学习总结,颇有收获。原创 2014-03-23 16:36:55 · 2668 阅读 · 0 评论 -
《Java性能权威指南》学习笔记
英文版《Java Performance The Definitive Guide》,出版于2014年,中文版出版于2016年,相比于《深入理解Java虚拟机》,讲的更加透彻、准确。适合读一遍,然后做长期参考。作者Scott Oaks是Oracle公司的一位架构师,专注研究Oracle中间件软件的性能。加入Oracle之前,他曾于Sun Microsystem公司任职多年,在多个技术领域都有建树,包括SunOS的内核、网络程序设计、Windows系统的远程方法调用(RPC)以及 OPEN LOOK虚拟窗口原创 2016-06-24 13:34:13 · 4821 阅读 · 0 评论 -
Java之旅--跨域(CORS)
CORS全称:Cross-Origin Resource Sharing在前后台分离的应用开发中,跨域是经常需要处理的场景。指的是访问不同域名的资源,对于静态资源的访问,比如CSS、GIF、Form请求,不存在跨域问题,一般说跨域问题,就是指的JavaScript的跨域问题以及Cookie的跨域使用问题(是使用,不是读取内容)。一个Java应用,为了支持跨域,允许其他域名的JavaScript脚本访问本应用的资源,本文提供了一个解决办法。原创 2016-05-13 16:45:04 · 12484 阅读 · 0 评论 -
Java之旅--Web.xml解析
Windows的IIS,是用UI界面进行站点的配置;Linux下面的几乎所有系统,都是使用配置文件来进行配置,Java容器(JBoss/Tomcat/Jetty/WebSphere/WebLogic等等)也不例外,它们使用一个部署在WEB-INFO目录下面的web.xml来作为站点配置文件。本文参考互联网文章,学习并记录web.xml的加载顺序及配置详解。原创 2014-07-18 23:47:28 · 3378 阅读 · 0 评论 -
《Spring3.X企业应用开发实战》学习笔记--DAO和事务
本篇是“《Spring3.X企业应用开发实战》,陈雄华 林开雄著,电子工业出版社,2012.2出版”的学习笔记的第二篇,关于DAO和事务。本篇从DAO操作,以及事务处理的基本知识谈起,介绍事务本身,以及Spring如何通过注解实现事务。原创 2014-07-21 12:00:46 · 3698 阅读 · 0 评论 -
《Spring3.X企业应用开发实战》学习笔记--IoC和AOP
本篇是“《Spring3.X企业应用开发实战》,陈雄华 林开雄著,电子工业出版社,2012.2出版”的学习笔记。在日常的开发中,最近几年正在使用着Spring,过去几年中,使用过Spring.Net,从官方文档及互联网博客,看过很多Spring文章,出于各种原因,没有系统的进行Spring的学习,这次通过这本书系统的学习了Spring框架,很多知识贯穿起来,改变了一些错误理解,受益匪浅。原创 2014-03-09 21:09:29 · 4066 阅读 · 2 评论 -
记一次本机InetAddress.getLocalHost()引起的项目启动变慢及解决过程
某一天,项目启动突然很慢,并且连很简单的单元测试都需要1分钟的时间才开始运行;貌似是Mac升级到最新版本的:Sierra之后开始出现的。经过使用jstack,jmap,debug进行分析,定位到了问题所在:debug工程,发现 java.net.InetAddress.getLocalHost 每次都会锁5秒,很多jar都会调用到这个方法,累计就让启动启动停滞了1分钟。具体的阻塞点是:addresses = nameService.lookupAllHostAddr(host)原创 2016-11-09 21:53:24 · 18386 阅读 · 10 评论 -
Eclipse使用入门指南及技巧
介绍Eclipse这种纯绿色的Java IDE工具的使用技巧,包括:插件管理、配置、性能优化、内嵌容器优化等。例如:Svn插件的安装,以及SVN插件和Eclipse版本不匹配导致的问题;Maven插件安装后,jar包下载不下来的问题;Eclipse关闭XML文件验证的方法;Eclipse运行速度优化等待。原创 2013-12-16 21:22:41 · 10867 阅读 · 0 评论 -
记一次SpringAOP实践过程-包扫描和嵌套注解
这次SpringAOP实践过程,是对两个问题的解决或者说理解学习过程记录:包扫描和嵌套注解。每一次实践得出结论,得出的对过往理论的印证,都是一次悟道,其收益远大于争论和抱怨。技术是一件比较客观的事,正确与错误,其实就摆在哪里,意见不统一,写段代码试验一下就好了,一段代码印证不了的时候,就多写几段。原创 2016-11-08 00:59:26 · 7398 阅读 · 1 评论 -
ElasticSearch之旅--常用语法
最近,工作中有2个项目使用到ElasticSearch(2.3.3),记录一下ElasticSearch的从0开始的使用过程,可以作为入门参考资料。本篇介绍ElasticSearch的常用语法,包括:集群管理、索引/映射/模板-CRUD、查询语法、如何删除、聚合语法、分词等。原创 2016-10-18 09:31:20 · 2273 阅读 · 0 评论 -
ElasticSearch之旅--入门
最近,工作中有2个项目使用到ElasticSearch(2.3.3),记录一下Elastic的从0开始的使用过程,可以作为入门参考资料。原创 2016-10-17 13:09:15 · 688 阅读 · 0 评论 -
《Netty in Action V5》-- 第1章 Netty与Java NIO APIS
本篇基于MEAP Edition进行翻译,MEAP即Manning Early Access Program,Manning是一个出版社的名字,EAP是早期预览版。我计划翻译这本书的时候,已经有了Netty in Action V10,但是我感觉从基础的Java NIO 讲起,能有一些对比,更容易理解,所以就翻译了V5。Norman Maurer,是英文原著的作者,目前就职于苹果公司,Norman Maurer的个人主页:http://normanmaurer.me/。翻译 2016-02-04 00:31:43 · 1431 阅读 · 1 评论 -
Java之旅--硬件和Java并发
从最底层,从硬件级别,了解Java并发的本质。为什么会有Java并发?为什么我们需要Java并发?这实际是由于计算机硬件发展的不平衡引起的,CPU发展的极快,而周边硬件发展慢,我们需要把CPU的资源尽可能的利用起来,同时让我们的程序跑的更快。如果CPU周边的硬件都极快,不论是数据在哪里,CPU拿到数据都没有成本,则并发将毫无意义。这是一篇2015年个人总结的老文章,个人感觉还不错,...原创 2018-11-01 13:48:48 · 1449 阅读 · 0 评论 -
Java之旅--Linux&java进阶(看清操作系统层面的事)
本次讲座,先走马观花串一遍Linux命令,让其可以辅助我们的工作。但是不仅仅是讲几个命令而已,而是希望能看清楚一些操作系统层面上的事,达到理解和境界思想上的提升。理解是灵魂,串讲是骨架,然后可以自行丰满血肉,这是目的。本次讲座,特别适合“有一定理解,但是不深刻,或者恰恰处于进阶边缘”这种情况的人,一讲,一串,醍醐灌顶,理解会立刻深了一层。原创 2015-04-19 16:35:17 · 1762 阅读 · 0 评论 -
《深入理解Java虚拟机》学习笔记
本篇是《深入理解Java虚拟机-Java 高级特性与最佳实践》学习笔记,周志明著,Understanding the JVM-Advanced Features and Best Practices,机械工业出版社,2011.6出版。重温Java JVM知识,重点学习了与日常开发工作相关性最大的“自动化内存管理”模块,对Java容器优化、内存问题解决很有帮助;习惯了从互联网看电子书,难以集中和记忆,现在找几本纸质书重温,可以很清静、很安静的理解和消化,受益匪浅。原创 2014-02-23 11:01:26 · 8320 阅读 · 3 评论 -
Java之旅--多线程进阶
关于多线程的知识,有非常多的资料可以参考。这里稍微总结一下,以求加深记忆。关于多线程在日常工作中的使用:对于大多数的日常应用系统,比如各种管理系统,可能根本不需要深入了解,仅仅知道Thread/Runnable就够了;如果是需要很多计算任务的系统,比如推荐系统中各种中间数据的计算,对多线程的使用就较为频繁,也需要进行一下稍微深入的研究。原创 2014-07-09 14:13:09 · 3241 阅读 · 0 评论 -
Solr3.6.2和Solr4.9.0常用配置
介绍solr3.6.2和solr4.9.0在tomcat7.0.55下的基本配置。包括IK分词器、主从配置。可以满足工作中的最基本需求。原创 2014-08-28 17:06:29 · 2700 阅读 · 0 评论 -
Java之旅--定时任务(Timer、Quartz、Spring、LinuxCron)
在Java中,实现定时任务有多种方式,本文介绍4种,Timer和TimerTask、Spring、QuartZ、Linux Cron。以上4种实现定时任务的方式,Timer是最简单的,不需要任何框架,仅仅JDK就可以,缺点是仅仅是个时间间隔的定时器,调度简单;Spring和QuartZ都支持cron,功能都很强大,Spring的优点是稍微简单一点,QuartZ的优点是没有Spring也可使用;Linux Cron是个操作系统级别的定时任务,适用于所有操作系统支持的语言,缺点是精度只能到达分钟级别。原创 2014-07-22 10:00:31 · 4981 阅读 · 1 评论 -
Java之旅--通讯
通讯,源于网络,网络从下到上,分为7层:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层;通讯,基于协议,常用的协议有很多,比如网络层协议IP、传输层协议TCP/UDP、应用层协议HTTP/SOAP/REST等。我们还会经常听到Socket,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口。有个形象的比喻:HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通信的能力。任何语言,都会提供对通讯的支持,我们今天用Java语言,演示几种在原创 2015-03-24 00:24:40 · 1858 阅读 · 0 评论 -
JDK框架简析--java.util包中的工具类库
在本节中,简析java.util包所包含的工具类库,主要是集合相关的类库,其次还有正则、压缩解压、并发、日期时间等工具类。原创 2014-10-14 13:59:17 · 5585 阅读 · 1 评论 -
Java之旅--XML/JSON
XML和JSON是两种常用的数据交换格式。虽然对于XML和JSON的各种操作,仅仅是常用的工具jar包的使用,没有什么技术含量,但鉴于这两种数据格式的普遍使用,还是拿出一点时间,进行一下简单总结。原创 2015-05-17 15:44:24 · 1154 阅读 · 0 评论 -
Spring实用功能--Profile、WebService、缓存、消息、ORM
本篇介绍一些Spring与其他框架结合的实用功能,包括:Apache CXF WebService框架、Redis缓存、RabbitMQ消息、MyBatis框架。另外对于Profile,也是Spring3.0开始新加的功能,对于开发测试环境、和生产环境分别采用不同的配置,有一定用处。原创 2014-07-22 11:47:33 · 2819 阅读 · 0 评论 -
记一次TcpListenOverflows报警解决过程
问题描述2015-06-25,晚上21:33收到报警,截图如下:此时,登陆服务器,用curl检查,发现服务报500错误,不能正常提供服务。问题处理tail各种日志,jstat看GC,不能很快定位问题,于是dump内存和线程stack后重启应用。jps -v,找出Process IDjstack -l PID > 22-31.logjma...原创 2015-06-28 10:20:08 · 10908 阅读 · 0 评论 -
Java之旅--设计模式
设计模式,先看名字,设计,模式,目的是为了设计,为了设计给出一些定义出来的,总结出来的,抽象出来的办法,叫做模式。设计是什么?软件构建中的设计,承前(需求分析、产品定义、架构选择),启后或者伴随(编码、测试),包含结构、包、类、子程序,而模式讲的就是这些东西。这次关于设计模式的分享不是纯技术,是思想。思想的东西,很难讲,需要听众具备恰当的理解层次,而这种层次的进化,远比一种技术或者工具的进步难以捉摸,有时十年循环不如一夕顿悟。原创 2015-05-28 22:30:51 · 1355 阅读 · 2 评论 -
jetty
java容器很很多,tomcat、jetty、jboss、resin、weblogic、webspere等等。有收费的,也有开源免费的,性能可能是有些许差异的,理论上,收费的应该比免费的,性能要要一些。但是,用开源免费的来做巨大访问量的(比如千万PV)应用,也是毫无问题的,当前我们所处的技术浪潮,性能的瓶颈一般都在数据库上,在硬盘的访问上,而不是网络请求和响应。原创 2015-06-22 20:44:43 · 2532 阅读 · 0 评论 -
JDK框架简析--java.lang包中的基础类库、基础数据类型
在本节中,简析java.lang包所包含的基础类库,比如:Object、System、Runtime、Class、基本数据类型、异常和错误、注解类等,当我们新写一个class时,这个package里面的class都是被默认导入的,所以我们不用写import java.lang.Integer这样的代码,我们依然使用Integer这个类,当然,如果你显示写了import java.lang.Integer也没有问题,不过,何必多此一举呢:)原创 2014-09-29 22:12:44 · 4101 阅读 · 0 评论 -
Java之旅--如何从草根成为技术专家
我个人觉得,不论什么领域,成为专家有3条是最重要的:1、持续的努力,这是不可或缺的;2、勤于思考,走了更少的弯路,这决定的是在路上的时间;3、受到了高人的指导,或者自行模仿了高人,至少是仰望了一下,所谓:“身虽不能至,而心向往之”,这是理想,是驱动力。原创 2013-10-10 01:17:49 · 4761 阅读 · 0 评论 -
《Spring3.X企业应用开发实战》学习笔记--SpringMVC
本篇是《Spring3.X企业应用开发实战》,陈雄华 林开雄著,电子工业出版社,2012.2出版”的学习笔记的第三篇,关于SpringMVC。Spring MVC 3.0和早期版本相比拥有了一个质的飞跃,全面支持REST风格的WEB编程、完全注解驱动、处理方法签名非常灵活、处理方法不依赖于Servlet API等。由于Spring MVC框架在后头做了非常多的隐性工作,所以想深入掌握Spring MVC 3.0并非易事,本章我们在学习Spring MVC的各项功能时,还深入其内部了解其后台的运作机理,只原创 2014-07-21 17:41:38 · 3749 阅读 · 2 评论 -
JDK框架简析--java.io包中的输入输出类库
Java IO库提供了一个可以称之为链接的机制,可以将一个流与另一个流首尾衔接,形成一个流管道的链接。这种机制实际上是装饰模式(Decorator)的应用。通过流的链接,可以动态的增加流的功能,而这种功能的增加,是通过动态的组合一些流的基本功能获取的。将对象转化为字节流保存起来,并在日后还原这个对象,这种机制叫做对象序列化。一个对象要想能够实现序列化,必须实现java.io.Serializable接口,这个接口是一个声明式接口,没有任何内容,只是告诉编译器,对象是可以序列化的。原创 2015-01-05 15:50:56 · 2526 阅读 · 0 评论 -
《Netty in Action V5》-- 第2章 Your First Netty Application
本章,通过对Netty核心内容的入门介绍为本书的其他章节做准备。其中一项内容是学习怎么样利用Netty拦截和处理异常,当我们开始使用Netty需要调试问题的时候,这是非常重要的。本章也介绍了其他的核心内容,像客户端和服务端启动,通过通道处理器实现的解耦。为了将来的章节提供一个基础,你会通过Netty建立一个互相通讯的客户端和服务端。翻译 2016-02-25 22:45:42 · 1222 阅读 · 0 评论