- 浏览: 352096 次
- 性别:
- 来自: 南京
博客专栏
-
让Java跑起来
浏览量:64754
最新评论
-
mikey_5:
谢谢,果然是在maven中没有引一个包导致的ZkNoNodeE ...
如何解决Java.lang.NoClassDefFoundError--第一部分 -
田梦桦:
挺实用的,顶楼主
Google Guava集合4:创建方法和只读特性 -
nxweiwei:
如何在classpath中验证啊,能写详细点嘛?
如何解决java.lang.NoClassDefFoundError--第二部分 -
吴乃翁:
写的很好,只是这里写着 NoClassDefFoundErro ...
如何解决java.lang.NoClassDefFoundError--第二部分 -
空杯V:
也有可能是配置jar路径的时候出现问题了,如出现空格或下划线而 ...
如何解决Java.lang.NoClassDefFoundError--第一部分
文章列表
“米卡多”方法
你有没有考虑过对一个软件进行一个较大的修改?或者做一些在一天之内很难完成的事情?你在这种变更面前退缩或者放弃了么?或者你是不是会在夜里为这事做恶梦?想起来合并这些代码或者做影响分析就头疼不已。
如果你遇到过这些情况,请继续阅读。我想你应该会希望学会这种米卡多方法的。
米卡多方法,实际来源于一个游戏。游戏说明如下:
IKADO SPIEL(“米卡多游戏棒”)1936年源于匈牙利,传到美国,而后盛行全世界,是一种适合儿童和成人玩的游戏,游戏人数2人或以上,游戏工具是31根不同颜色的竹签组成,具体组成如下:1支带螺旋的“米卡多”游戏棒,每支20分;5支中间红两边蓝的游戏棒, ...
西安对我们外地人来说,就是古都,有秦始皇、唐朝,有长长的城墙,有贾平凹,有陈忠实。但是住一段时间后,你会发现,这里最吸引你的,不是刚说的那些人文辉煌历史,而是小吃。
说到小吃,我想起了南京夫子庙,那里是南京的小吃集散地,在那里,有长长的小吃一条街,天南海北的人们聚在这里海吃海喝,说起来倒也不错,只是太集中,在南京城里其他地方你想找到这样的小吃的地方太难。而西安的小吃,是入到骨子里的,在西安城里,基本大街小巷都有小吃店或者小摊,也不需要什么特别的店面、多大的面积、多么豪华的装修、多么美丽的服务小姐,最简单的,只要一个三轮车,上面架一个带玻璃的橱柜,里面放上各种调料,就齐了。
西安的小吃品种很多 ...
如何解决NoClassDefFoundError--第二部分
第一部分请看:http://vipcowrie.iteye.com/blog/1561291
本文面向的是JAVA初学者,建议你们自己编译和运行例子程序。
本文包含了NoClassDefFoundError的原因分析和例子程序,并且给出了建议的处理策略。
NoClassDefFoundError 问题原因1:缺少jar包
首先最常见的原因是classpath的配置问题。例子程序:
本例子程序尝试创建一个新的CallerClassA实例,然后执行他的一个方法,此方法引用了类ReferencingClassA,本例子演示了cl ...
还在写代码注释么?你Out了
如果把开发过程比作开车,那么代码的注释就相当于路边的指示牌。注释是辅助的信息,并不影响程序的最终执行结果。
一个好的代码注释会减少开发周期,比如帮助下一个接手的开发人员快速熟悉 ...
在JAVA开发中,main线程中抛出java.lang.NoClassDefFoundError是一个非常普遍且比较难解决的问题。解决这个问题的复杂性主要取决于你的软件大小和中间件部署情况,尤其要考虑在应用中出现的数量众多的classloader的情况。
本文将从一 ...
在面试么?放松点,傻瓜!
如果你正在或者马上要参加一个面试,那么请用心看我的建议,这是一个非常有用的面试法则。
一些人喜欢在面试的时候吹嘘他们的技能:
“我是一个JAVA开发大师”
“我精通在云中的NOSQL系统中进行大数据量分析”
“我喜欢设计,这些是我最喜欢的设计模式,我一直在用它们”
上面这些例子可能会和你的想法不谋而合、、、但是请你注意,这些和你希望获得的职位有没有什么关系?如果职位仅仅需要你能够写普通的业务代码,那么你不需要在面试者面前显摆你实现map reduce算法的能力或者设计模式的技能。
当然,能够使用好的设计模式、能够进行单元测试、能够写出扩展性好的代码,这些能 ...
oracle 发布JAVA SE的14个重要补丁
(其中一些补丁涉及到严重的安全问题)
Oracle在周二发布了14个JAVA标准版(JAVA SE)的补丁程序,包括一些在CVSS登记的高等级的安全补丁。
oracle申明:“由于发现了一些利用JAVA漏洞造成的有效攻击,oracle强烈的希望大家尽快更新这些安全补丁”
这次补丁影响了一系列的JAVA产品,包括JDK/JRE 7,JDK/JRE 6(update 32以下)以及JavaFX 2.1以下。
oracle表示,这14个漏洞可能被黑客远程利用,不需要账号密码。有的漏洞竟然在CVSS中
评分高达10分(最高等级),但是oracle ...
OSGi vs Jigsaw:Kirk Knoernschild访谈
Kirk Knoernschild是OSGi领域的专家,DZone最近有机会对他做了一次关于2012年模块开发思想的访谈,kirk最近出了一本书《java应用架构:使用osgi模块化模式》,这本书介绍了18中模式,帮助你开发模块化的软件。
问题:模块化为何很重要,有什么好处?
Kirk:模块化的软件很容易扩展,重用、维护和使用,也很容易理解修改的影响范围。所以,当你修改一些有大量依赖的代码的时候,你会非常确切的知道会发生什么。从大的方面说,模块化能够帮助你快速响应需求,因为你会很容易知道变更会有哪些影响。但是模块化开发并 ...
Google Guava:函数式编程
在guava中存在一个com.google.common.base.Functions和com.google.common.base.Function类,利用他们,可以为集合类的转换提供自定义的转换函数。
首先我们看第一个例子,简单的自定义一个函数,然后用于一个简单的list对象的转换,代码如下:
初始化的代码:
static class School {
public String name;
public String location;
public static School newSchool(String name ...
- 2012-05-12 22:36
- 浏览 9912
- 评论(0)
Google Guava快速入门
众所周知,Apache commons提供了一系列强大的功能库,对JDK提供了很好的补充,但是这里不介绍commons,这里介绍给大家的是Google Guava,一个被多数人遗忘的英雄。他是一个独立的库,为大家提供了日常开发经常 ...
Google guava 集合的创建特性和只读特性
现在,让我们一起看看guava集合的创建模式,再看看guava提供的一些只读的集合类型。
如果你还不了解guava集合,那么可以参考我之前写的文档:
Guava集合1:MultiMap
http://vipcowrie.iteye.com/blog/ ...
BiMap
BiMap是一个有用的集合类型,很简单,它就是一个双向的映射。
反向转换一个Map
一个普通的map是一个key/value的集合,你可以使用key来查询
value,例如,我来创建一个字段:
Map<String,String> britishToAmerican =
Maps.newHashMap();
britishToAmerican.put("aubergine","egglant");
britishToAmerican.put("courgette","zuc ...
Multimap是guava中一个有用的工具类,下面我来介绍一下。
由来:
你是不是经常需要一个这样的数据结构:
Map<String,List<MyClass>> myClassListMap test2
= new HashMap<String,List<MyClass>>()
自己实现太麻烦,你需要检查key是否存在,否则创建一个,最后代码成为这个样子:
void putMyObject(String key, Object value) {
List<Objec ...
Google Guava: Multisets
我们继续研究Guava,这次我将介绍Multiset,虽然这个不经常使用,但是还是有必要介绍一下。
Multiset是什么?
顾名思义,Multiset和Set的区别就是可以保存多个相同的对象
它和List有什么区别?
在JDK中,List和Set有一个基本的区别,就是List可以包含多个相同对象,且是有顺序的,而Set不能有重复,且不保证顺序(有些实现有顺序,例如LinkedHashSet和SortedSet等)
所以Multiset占据了List和Set之间的一个灰色地带:允许重复,但是不保证顺序。
注意:这种集合在a ...
Guava Splitter vs StringUtils
最近写了关于apache commons的StringUtils提供的常用功能介绍,见链接(http://vipcowrie.iteye.com/blog/1513017),但是我们知道google的guava也提供了一些字符串处理的常见功能,所以,我在本文将对两者的字符串分割函数做一次比较详细的对比(结果比较surprise)。
区别
首先看基本的使用方法:
// Apache StringUtils...
String[] tokens1= StringUtils.split("one,two,three&q ...