摘要: 《Effective Java》 第48条:如果需要精确的答案,请避免使用float和double。如果我们编译运行下面这个程序会看到什么?public class Test{ public static void main(String args[]){ System.out.println(0.05+0.01); System.out.println(1.0-0.42); System.out.println(4.015*100); System.out.println(123.3/100); }};你没有看错!结果确实是0.0600000000000000050.580000000000 阅读全文
posted @ 2013-07-16 23:29 storm king 阅读(363) 评论(0) 推荐(0) 编辑
摘要: 英文原文:jtraining,译文:Lixiang引言我们都听过 cache,当你问他们是什么是缓存的时候,他们会给你一个完美的答案,可是他们不知道缓存是怎么构建的,或者没有告诉你应该采用什么标准去选择缓存框架。在这边文章,我们会去讨论缓存,缓存算法,缓存框架以及哪个缓存框架会更好。面试“缓存就是存贮数据(使用频繁的数据)的临时地方,因为取原始数据的代价太大了,所以我可以取得快一些。”这就是 programmer one (programmer one 是一个面试者)在面试中的回答(一个月前,他向公司提交了简历,想要应聘要求在缓存,缓存框架,大规模数据操作有着丰富经验的 java 开发职位)。 阅读全文
posted @ 2013-07-15 23:29 storm king 阅读(181) 评论(0) 推荐(0) 编辑
摘要: J2EE集群原理什么是集群呢?总的来说,集群包括两个概念:“负载均衡”(load balancing)和“失效备援”(failover)图一:负载均衡多个客户端同时发出请求,位于前端的负载均衡器根据特定算法,将请求分担给比较空闲的机器,从而实现较高性能和较好的扩展性图二:失效备援当客户端连续向某个服务器发出请求时,该服务器可能处理到一半就宕机了,失效备援系统能够检测出有问题的服务器,将后续的请求转发至其他可用的机器,从而实现容错功能那么,哪些对象可以被集群呢,答案是:“可以被部署在分布式拓扑的组件”因此,负载均衡和失效备援会发生在哪些J2EE代码中呢?“仅当你调用分布式对象的方法时”图四:分布 阅读全文
posted @ 2013-07-15 18:04 storm king 阅读(295) 评论(0) 推荐(0) 编辑
摘要: 题目详情:我们要给每个字母配一个1-26之间的整数,具体怎么分配由你决定,但不同字母的完美度不同,而一个字符串的完美度等于它里面所有字母的完美度之和,且不在乎字母大小写,也就是说字母F和f的完美度是一样的。现在给定一个字符串,输出它的最大可能的完美度。例如:dad,你可以将26分配给d,25分配给a,这样整个字符串最大可能的完美度为77。import java.util.*;/** * @author xueji */public class Main { /** * @param s * @return */ public static int perfe... 阅读全文
posted @ 2013-07-13 14:21 storm king 阅读(285) 评论(0) 推荐(0) 编辑
摘要: 1、String是一个final的类型 即不可被继承修改,一经生成不可改变。所以在代码中使用String s = s1 + s2;的时候,执行完之后s所指向的是一个新生成的对象,这里有个地方值得注意下就是jvm在装载类的时候,如果代码中书写的是字符串,那么返回的对象是直接返回的StringPool中的对象,而如果加号两边有一个变量的话,返回的是一个在堆中分配的新对象。2、String的StringPool(字符串池) 因为String在编写代码使用很广泛,所以jvm对于String做了一定的优化。即StringPool的出现。首先要说明的是:StringPool仅仅是个缓存并不会破坏程序描述语 阅读全文
posted @ 2013-07-08 00:48 storm king 阅读(376) 评论(0) 推荐(0) 编辑
摘要: 假设,一个农场产出多种植物,具体的某一植物产于某一农场。 3 import java.io.Serializable; 4 import java.util.Set; 5 import javax.persistence.CascadeType; 6 import javax.persistence.Column; 7 import javax.persistence.Entity; 8 import javax.persistence.FetchType; 9 import javax.persistence.GeneratedValue; 10 import javax.pe... 阅读全文
posted @ 2013-06-30 12:26 storm king 阅读(1085) 评论(0) 推荐(1) 编辑
摘要: JPA标准方式下,不可以生成uuid类型的主键,但是hibernate提供了一些方式生成uuid主键,具体如下:1.主键生成器 @GeneratedValue(generator="idGenerator")2.通过注解方式生成一个generator @GenericGenerator(name="idGenerator", strategy="uuid")/** * annotation uuid * @author xueji */@Entitypublic class Teacher2 { private String id ; 阅读全文
posted @ 2013-06-25 11:14 storm king 阅读(2295) 评论(0) 推荐(0) 编辑
摘要: hibernate.hbm2ddl.auto 配置:create:每次加载hibernate时都会删除上一次的生成的表,然后根据你的model类再重新来生成新表,哪怕两次没有任何改变也要这样执行,这就是导致数据库表数据丢失的一个重要原因。create-drop :每次加载hibernate时根据model类生成表,但是sessionFactory一关闭,表就自动删除。update:最常用的属性,第一次加载hibernate时根据model类会自动建立起表的结构(前提是先建立好数据库),以后加载hibernate时根据 model类自动更新表结构,即使表结构改变了但表中的行仍然存在不会删除以前的 阅读全文
posted @ 2013-06-22 09:11 storm king 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 说明:先从整体介绍了Java集合框架包含的接口和类,然后总结了集合框架中的一些基本知识和关键点,并结合实例进行简单分析。一、综述所有集合类都位于java.util包下。集合中只能保存对象(保存对象的引用变量)。(数组既可以保存基本类型的数据也可以保存对象)。当我们把一个对象放入集合中后,系统会把所有集合元素都当成Object类的实例进行处理。从JDK1.5以后,这种状态得到了改进:可以使用泛型来限制集合里元素的类型,并让集合记住所有集合元素的类型(参见具体泛型的内容)。Java的集合类主要由两个接口派生而出:Collection和Map,Collection和Map是Java集合框架的根接口, 阅读全文
posted @ 2013-06-16 20:36 storm king 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 1.网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成。传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。 2.那么程序获取网页的原理到底是怎么回事呢?看下面的图:客服端首先向服务器端发出Http请求,之后服务器端返回相应的结果或者请求超时客户端自己报错。 服务器端发出的Http请求,实际上说是对服务器的文件的请求。下面的表格是一些常见的HTTP请求对应的文件。(因为第一列给出的都是主机的网址信息,主机一般都通过配置文件将该请求转换为网站主页地址i... 阅读全文
posted @ 2013-06-15 00:32 storm king 阅读(5446) 评论(0) 推荐(0) 编辑