Java
文章平均质量分 82
SleepInDelphi
perl,c,java,delphi,ajax,biancheng
展开
-
初探Java 7异常处理功能增强
【51CTO译文】之前我们介绍过Java 7的最新特性更新和代码示例,今天我们来看看Java 7异常处理方面的功能增强。来自Coin项目的又一个细微语言增强已经被包含在Java 7中:由谷歌专任工程师兼Java讲师Neal Gafter提出的Java增强异常处理功能。Open JDK开发的领导者Joe Darcy已经在其博客上宣布了这个变化。此次变动增加了两处对异常处理机制的细微增强:...原创 2010-06-11 11:25:00 · 113 阅读 · 0 评论 -
使用 AppFuse 的七个理由
AppFuse 是一个开放源码的项目和应用程序,它使用了在 Java 平台上构建的开放源码工具来帮助我们快速而高效地开发 Web 应用程序。我最初开发它是为了减少在为客户构建新 Web 应用程序时所花费的那些不必要的时间。从核心上来说,AppFuse 是一个项目骨架,类似于通过向导创建新 Web 项目时 IDE 所创建的东西。当我们使用 AppFuse 创建一个项目时,它会提示我们将使用开...原创 2010-07-05 08:20:14 · 113 阅读 · 0 评论 -
学习JAVA浮点数必看文章!
虽然几乎每种处理器和编程语言都支持浮点运算,但大多数程序员很少注意它。这容易理解 ― 我们中大多数很少需要使用非整数类型。除了科学计算和偶尔的计时测试或基准测试程序,其它情况下几乎都用不着它。同样,大多数开发人员也容易忽略 java.math.BigDecimal 所提供的任意精度的小数 ― 大多数应用程序不使用它们。然而,在以整数为主的程序中有时确实会出人意料地需要表示非整型数据。...2011-06-09 09:13:09 · 110 阅读 · 0 评论 -
[转载]谈谈2011年度最佳代码
原文: http://blog.zhaojie.me/2011/08/from-the-code-of-no-matter-you-believe-it-or-not.html作者:赵劼 这段代码是这样的: try{ if (you.believe(it) == true || you.believe(it) == false) { ...2011-08-08 16:24:43 · 147 阅读 · 0 评论 -
网上支付原理
一个电子商务网站要开通网上支付功能,有两种途径:一是通过第三方支付平台,例如支付宝、网银等;二是与银行协商获得一个支付接口。前一种方式以支付宝为例,商户可以向支付宝提交申请,申请成功后支付宝会提供一个整合支付宝到商户网站的接口并提供该接口的调用方法及示例。这种网上支付方式手续简单,支付宝向商户收取的费用是按商户网站通过支付宝完成的交易额按一定比例来收取的。后一种方式需要和开通网上支付功能的银...2011-12-14 16:43:05 · 197 阅读 · 0 评论 -
java面试题及答案(一)
1、面向对象的特征有哪些方面 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。2.继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了...原创 2012-04-25 13:00:06 · 93 阅读 · 0 评论 -
java面试题及答案(二)
16、同步和异步有何异同,在什么情况下分别使用他们?举例说明。如果数据将在线程间共享。例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率。17、abstract class...原创 2012-04-25 13:01:24 · 91 阅读 · 0 评论 -
Java 8 新功能
我们已经急不可待想知道Java 8可用的新功能,其中大部分是以前为Java 7设计的新功能,但不得不推迟。现在,甲骨文承诺,他们在“革命”,而不是“进化”新版本。未来Java语言有什么呢?马克·雷纳德,甲骨文的Java的总设计师,在2011年JavaOne大会上,给观众提到了Java 8预计会有什么,并谈到即将到来的Java 9一点点计划。这是不幸的,本来将会在Java 7实现的五个重要...原创 2012-05-02 08:48:09 · 160 阅读 · 0 评论 -
for 循环为何可恨?
Java的闭包(Closure)特征最近成为了一个热门话题。 一些精英正在起草一份议案,要在Java将来的版本中加入闭包特征。 然而,提议中的闭包语法以及语言上的这种扩充受到了众多Java程序员的猛烈抨击。不久前,出版过数十本编程书籍的大作家Elliotte Rusty Harold发表了对Java中闭包的价值的质疑。 尤其是他问道“for 循环为何可恨?”[http://justjav...原创 2012-05-15 12:44:28 · 168 阅读 · 0 评论 -
java编程的78条黄金法则
创建和销毁对象1、考虑用静态工厂方法(返回类的实例的静态方法)代替构造器2、遇到多个构造器参数时要考虑用构造器3、用私有构造器或者枚举类型强化Singleton属性4、通过私有构造器强化不可实例化的能力5、避免创建不必要的对象6、消除过期的对象引用7、避免使用终结(final)方法对于所有对象都通用的方法8、覆盖equals时请遵守通用约定9、覆盖equals时总要覆盖hashC...原创 2012-05-16 12:57:14 · 158 阅读 · 0 评论 -
CruiseControl
CruiseControl 是 CI 服务器的老者。它已经用了有五年多了,在许多方面, CruiseControl 服务器 已经成为持续集成实践的同义词。出于完全坦白的目的,我应当提到,我也是 CruiseControl 的多年的老用户。改进的安装如果您从最后一次使用 CruiseControl 到现在已经有段时间,而且认为它的安装和配置是个负担,那么您可以看看最新版本。现有,有许多方...原创 2010-06-29 15:11:28 · 87 阅读 · 0 评论 -
Java程序员的知识架构浅析
作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从。我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水平的Java程序员们。 一、Java编程入门类 对于没有Java编程经验的Java程序员要入门,随便读什么入门书籍都一样,这个阶段需要你快速的掌握Java基础语法和基本用法,宗旨就是“囫囵吞枣...原创 2010-06-25 12:29:59 · 124 阅读 · 0 评论 -
初探Java 7异常处理功能增强
今天我们来看看Java 7异常处理方面的功能增强。来自Coin项目的又一个细微语言增强已经被包含在Java 7中:由谷歌专任工程师兼Java讲师Neal Gafter提出的Java增强异常处理功能。Open JDK开发的领导者Joe Darcy已经在其博客上宣布了这个变化。 此次变动增加了两处对异常处理机制的细微增强: ◆Multicatch:开发者现在能够在一个catch代码块中捕获...原创 2010-06-23 08:53:35 · 99 阅读 · 0 评论 -
Oracle推出首个Java 7闭包版本
【51CTO快译】虽然关于Java 7闭包一直波澜不断,开发者们也对Java是否真的需要引入闭包存在争议,但Oracle还是在两天前放出了Java 7闭包的第一个版本。我们可以在测试项目中看到Java编译器语法规则的演变。点此查看测试项目。Oracle发布的最新版本有以下功能更新:◆函数类型语法◆函数类型的子类型◆全面支持Lambda表达式◆在lambda中对thrown/...原创 2010-06-11 11:25:18 · 105 阅读 · 0 评论 -
构建和实现单点登录解决方案
在现有的应用程序中实现单点登录解决方案(single sign-on,SSO,即登录一次,就可以向所有网络资源验证用户的身份)是非常困难的,但是在构建复杂的门户时,每个开发人员都要面对这个问题。因为门户需要与后端资源集成,而每个后端资源都有自己的身份验证需求,所以门户常常必须向用户提供单点登录特性。在本文中,Chris Dunne 一步步地描述了他为一个 Web 门户构建单点登录解决方案的...原创 2010-06-19 08:50:39 · 193 阅读 · 0 评论 -
Servlet 3.0 新特性详解
Java servlets 是一项被普遍接受的技术,用于构建基于 web 应用程序的动态内容;Servlet 3.0 规范早期草案版本的发行让该技术在特性和应用程序接口(Application Program Interface,API)方面得到了极大增强。Java Specification Request(JSR)已经以 JSR 315 的形式得到了批准,并计划成为 Java Ente...原创 2010-06-19 08:52:46 · 121 阅读 · 0 评论 -
android 机器人
Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。目前最好的是Android2.0的摩托罗拉Droid Android是基于Linux内核的软件平台和操作系统,早期由Google开发,后由开放手机联盟Open ...原创 2010-06-19 08:53:28 · 404 阅读 · 0 评论 -
用Apache Velocity模板引擎速造网站
基于Java的网站开发,很多人都采用JSP作为前端网页制作的技术,尤其是在国内。这种技术通常会存在一些问题,可以通过简单地分析网站开发过程来看看这些问题。通常网站开发采用以下两种方式: ◆ 网站功能确定后,由美工设计网页的UI(界面)部分,然后由程序员在其上加入代码显示逻辑(比如循环、判断显示数据结果)。这就是通常的JSP页面制作,当然这部分可以由美工完成模板,然后由JSP工程师以它为原型创建相应...原创 2010-06-19 13:38:16 · 113 阅读 · 0 评论 -
TDD(Test-Driven Development)测试驱动开发
测试驱动开发是敏捷开发中的一项核心实践和技术,也是一种设计方法论。TDD的原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。TDD虽是敏捷方法的核心实践,但不只适用于XP(Extreme Programming),同样可以适用于其他开发方法和过程。 TDD的基本思路就是通过测试来推动整个开发的进行,但测试驱动开发并不只是单纯的测试工作,而是把需求分析,设计...原创 2010-06-20 19:38:00 · 126 阅读 · 0 评论 -
Oracle发布首个Java 7闭包版本
虽然关于Java 7闭包一直波澜不断,开发者们也对Java是否真的需要引入闭包存在争议,但Oracle还是在两天前放出了Java 7闭包的第一个版本。我们可以在测试项目中看到Java编译器语法规则的演变。点此查看测试项目。 Oracle发布的最新版本有以下功能更新:◆函数类型语法◆函数类型的子类型◆全面支持Lambda表达式◆在lambda中对thrown/return类型的引...原创 2010-06-22 18:06:19 · 168 阅读 · 0 评论 -
JAVA7语言特性投票的结果
上周javapolis举行了一次关于JAVA7中可能支持的语言特性的投票,该投票涉及到十中JAVA7 中可能的语法增强(这里不包括闭包,后面将单独列出).对于每种语法特性你需要回答"Do you support this language change?",答案可以是"YES","NO","Maybe"三者之一. 下面罗列出这十种语法特性以及投票结果: 1.Property declaration...原创 2010-06-22 18:07:57 · 129 阅读 · 0 评论 -
Java 7新I/O特性解析
Java 7提供了一个新API访问文件系统,但除此之外,JSR 203(NIO.2)还包含其它很多新特性,这个新版本的确新增了很多改善I/O编程的类,本文将会介绍下面的新特性:· SeekableByteChannel:随机访问通道;· MulticastChannel:允许IP多播的通道;· NetworkChannel:新的网络通道超级接口;· 异步I/O API:新的...原创 2010-06-23 08:53:20 · 105 阅读 · 0 评论 -
只要一个返回语句
别再这样写了:public boolean foo() { if (true) { return true; } else { return false; }}每次当我深入某个开源项目,看到大概是某个专家写的、并被有经验的专业人士审查过的这样的代码, 我都会惊讶不已,竟然没有人去阻止这个开发者在这个方...原创 2012-05-18 13:18:55 · 90 阅读 · 0 评论 -
数字签名是什么?
今天,我读到一篇好文章。它用图片通俗易懂地解释了,"数字签名"(digital signature)和"数字证书"(digital certificate)到底是什么。我对这些问题的理解,一直是模模糊糊的,很多细节搞不清楚。读完这篇文章后,发现思路一下子就理清了。为了加深记忆,我把文字和图片都翻译出来了。===============================...2011-11-29 17:32:14 · 105 阅读 · 0 评论 -
菜鸟入门:Java语言学习六大要点
Java的学习是比较复杂的,主要表现在相关的一系列平台、规范和协议上。有经验的Java程序员都知道,只掌握了Java语言本身很难开发应用程序。本文不讨论这些复杂的概念,而是我是在北京参加的培训,现在从初学者的角度,对于Java语言本身的学习提出自己的见解和建议。本文的讨论基于以下假设: 1. 学习的目的是为了将来进行应用程序的开发,而不是进行语言理论研究 2. 将来的应用开发是在成熟的...原创 2012-04-20 11:28:01 · 106 阅读 · 0 评论 -
Java入门教程学习
不介绍Java 常用语,对Java 的总体介绍就是不完整的。尽管促使Java 诞生的源动力是可移植性和安全性,但在Java 语言最终成型的过程中,其他一些因素也起了重要的作用。Java 设计开发小组的成员总结了这些关键因素,称其为Java 的专门用语,包括下面几个: · 简单(Simple) · 安全(Secure) · 可移植(Portable) · 面向对象(Objec...原创 2012-04-20 11:28:10 · 109 阅读 · 0 评论 -
Java集合框架系列教程一:集合框架简介
原文:http://docs.oracle.com/javase/tutorial/collections/intro/index.html译文:Java集合框架系列教程一:集合框架简介一个集合,即collection,有时也被称为一个容器,只是将多个元素聚集成一个单元。Collections常被用来存储、检索、操纵聚集数据以及聚集数据间的通信。一般来说,Collections表...2013-01-18 12:47:56 · 224 阅读 · 0 评论 -
「译」Java集合框架系列教程二:集合接口
原文:http://docs.oracle.com/javase/tutorial/collections/interfaces/index.html译文:Java集合框架系列教程二:集合接口核心集合接口封装了不同类型的集合,如下图所示。这些接口使得我们可以操作集合而不必关心它们的具体实现细节。核心集合接口是Java集合框架的基础。正如我们可以从下图看到的,核心集合接口形成了层次结构:...2013-01-18 13:13:48 · 152 阅读 · 0 评论 -
「译」Java集合框架系列教程三:Collection接口
原文:The Collection Interface译文:Java集合框架系列教程三:Collection接口一个集合表示一组对象。Collection接口被用来传递对象的集合,具有最强的通用性。例如,默认所有的集合实现都有一个构造器带有一个Collection类型参数。这个构造器被称作转换构造器,用指定集合的元素来初始化新集合,而不管指定集合实现的是哪个集合接口和实现类型。换句话说,...2013-01-18 13:16:27 · 148 阅读 · 0 评论 -
「译」Java集合框架系列教程四:Set接口
原文:The Set Interface译文:Java集合框架系列教程四:Set接口一个Set是一个不能包含重复元素的集合。它映射了数学意义上的集合抽象。Set接口只是在继承自Collecton接口的方法基础之上加上不允许元素重复的限制。Set也对equals和hashCode的行为规约施加了更强的限制,使得Set实例允许进行有意义的比较,即使他们的具体实现不同。两个集合实例相等(equ...2013-01-18 13:20:24 · 188 阅读 · 0 评论 -
JUnit 测试建议
以下是对JUnit实践的一个很好的总结,信息来源于一些比较权威的JUnit书籍和网上资料。这里集合如下:1、每次只对一个对象进行UT测试(unit-test one object at a time)。这样能使你尽快发现问题,而不被各个对象之间的复杂关系所迷惑。2、给测试方法起个好名字(choose meaningful test method names)。应该是用形如testXXX...2013-07-22 09:04:56 · 163 阅读 · 0 评论 -
一步步开发 Spring MVC 应用
Spring MVC 框架Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还是 Struts 这样的 Web 框架。通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer Pages(JSP)技术、Velocity、Tiles、iTex...2013-02-23 10:53:31 · 143 阅读 · 0 评论 -
Java NIO与IO的详细区别(通俗篇)
内核空间、用户空间、计算机体系结构、计算机组成原理、……确实有点儿深奥。 我的新书《代码之谜》会有专门的章节讲解相关知识,现在写个简短的科普文: 就速度来说 CPU > 内存 > 硬盘 I- 就是从硬盘到内存O- 就是从内存到硬盘第一种方式:我从硬盘读取数据,然后程序一直等,数据读完后,继续操作。这种方式是最简单的,叫阻塞IO。 第...2014-01-02 10:51:43 · 908 阅读 · 1 评论 -
Java泛型-类型擦除
一、概述 Java泛型在使用过程有诸多的问题,如不存在List<String>.class, List<Integer>不能赋值给List<Number>(不可协变),奇怪的ClassCastException等。 正确的使用Java泛型需要深入的了解Java的一些概念,如协变,桥接方法,以及这篇笔记记录的类型擦除。Java泛型的处理几乎都...原创 2012-12-05 15:48:38 · 278 阅读 · 0 评论 -
网站建设中关于eclipse启动参数的优化
在网站建设中,经常用到eclipse,每次启动都是很费时间的,那么如何对它进行优化呢?版本:Eclipse3.6参数配置文件:eclipse.ini结果:修改后启动速度直观上有比较明显的加快注意:重点是后面红字部分的设置首先建立评估体系,比如,我们需要建立一个网站http://www.hualai.net.cn,首先将workspace里所有的项目close掉,关闭eclips...2012-08-23 09:23:22 · 97 阅读 · 0 评论 -
Eclipse程序员要掌握的常用快捷键
判断一个人的编程水平,就看他用键盘多,还是鼠标多。用键盘一是为了输入代码(当然了,也包括注释),再有就是熟练使用快捷键。 曾有人在豆瓣评《卓有成效的程序员》:“人有多大懒,才有多大闲”。之前我整理了一个程序员图书列表,目的也就是通过读书,让程序员变懒。 写道程序员作为特殊的群体,有的人可以这么懒,懒到事情都交给机器去做,而有的人又可以那么勤奋,每天都孜孜不倦得做着重复单...2012-08-22 09:33:06 · 193 阅读 · 0 评论 -
何时提炼函数 & 用查询取代临时变量
拥有[短函数」(short methods)的对象会活得比较好、比较长。不熟悉面向对象技术的人,常常觉得对象程序中只有无穷无尽的delegation(委托),根本没有进行任何计算。 我们遵循这样一条原则:每当感觉需要以注释来说明点什么的时候,我们就把需要说明的东西写进一个独立函数中,并以其用途(而非实现手法)命名。我们可以对一组或甚至短短一行代码做这件事。哪怕替换后的函数调用动作比函数自...2012-02-16 11:34:00 · 127 阅读 · 0 评论 -
好代码是廉价的代码
长久以来我一直主张:好代码是廉价的代码。当我跟做开发的同事说出这话时,他们的第一反应是一种惊愕,然后是将近一个星期的嘲笑,把它当作一个笑话来讲。 当他们走近看我的表情、知道我是认真的时,才收敛一点。当最初的惊愕消退后,他们会用一些这样的话来反驳: “好代码不廉价,好代码是采用经过数十年计算机科学研究和积累得出的最佳实践设计模式和方法论建立起来的精心制作的程序代码。”我只好继续解释...2012-07-19 08:03:45 · 107 阅读 · 0 评论 -
京东今天还在用.NET架构的原因是什么?
我觉得这个问题有三个部分: 1)为什么京东选Win/.NET平台 2)选Win/.NET平台行不行? 3)京东的系统的问题是什么? 1)为什么京东选Win/.NET平台? ———————————————— 我觉得京东用.NET的原因应该很简单:一开始他就用.NET/Windows了,所以长期就这样了。 那么,为什么他会一开始用.NET呢?这个东西就只能我就只能推理了。Windows的东西门槛低,而...原创 2012-03-27 13:33:08 · 100 阅读 · 0 评论 -
老生常谈:面试算法有必要吗?
声明:虽然发表在愚人节,但是文章内容很严肃。前几天在知乎有人问“作为一名做 Web 开发的 Java 工程师,算法在工作中基本不怎么用到,但为什么面试总会问算法的问题?”, 原文地址: http://www.zhihu.com/question/20887109。我工作也有四五个年头了,个人觉得算法在工作中基本不怎么用到, 也可能是因为我工作内容的原因,我主要做web开发,请问大家...2013-04-01 09:55:54 · 396 阅读 · 0 评论