All posts by 龙生
15款Java程序员必备的开发工具
如果你是一名Web开发人员,那么用膝盖想也知道你的职业生涯大部分将使用Java而度过。这是一款商业级的编程语言,我们没有办法不接触它。 对于Java,有两种截然不同的观点:一种认为Java是最简单功能最强大的编程语言之一,另一种则表示这种编程语言既难用又复杂。 下面这些工具或许功能和作用不同,但是有着一个共同的主旨,那就是——它们都是为了给Java编码和开发提供卓越的支持。 1. JDK(Java开发工具包) 如果你打算用Java开发一些小程序和应用程序,那么首先得给自己准备一个类似于JDK的工具,其中包括必要的Java Complier、Java Runtime Environment(JRE)和Java API。这是开始Java之旅的第一步。 官方网站:http://java.com/en/download/faq/develop.xml 2. Eclipse IDE 如果咨询一些经验丰富的Java开发人员关于他们最喜欢的Java Integrated Development Environment(IDE)是什么,不少人会告诉你是Eclipse IDE。 Eclipse能提供关于代码完成、重构和语法检查这些急需的帮助。它还能提供JDT的一系列工具,包括各种插件工具来帮助开发各种Java应用。 此IDE的真正优势是它允许开发人员使用不同的语言支持,如它也可以提供C/ C++和PHP 的IDE。这使得它成为了Java开发的一个一站式资源。 官方网站:http://www.eclipse.org/ 3.NetBeans 这又是一个IDE,提供了功能全面的阵列,如转换器,编辑器和代码分析器,这些工具可以帮助你使用最新的Java技术实现应用程序。工具范围相当广泛,而且IDE背后的团队也在不断地改进。此外你还可以得到静态分析工具的帮助——编写出无bug的代码。 官方网站:https://netbeans.org/ 4. IntelliJ IDEA 13.1 据传它有“最智慧的Java IDE”之称。如果你尝试过后,就会发现它所言不虚,因为它能帮助开发人员拿出最具有创造性的解决方案。它的“Smart Code Completion”和“On-the-fly Code Analysis”功能等可以提高开发人员的工作效率,并且还提供了对web和移动开发高级支持。所以,不妨试试这个好助手。 官方网站:http://www.jetbrains.com/idea/ 5.Oracle JDeveloper 如果你正在寻找一个免费的IDE来构建一个面向服务的架构,那没有比JDeveloper更好的了。它支持完整的开发生命周期,这意味着你可以放心自豪名正言顺地使用ava解决方案。 官方网站:http://www.oracle.com/technetwork/developer-tools/jdev/overview/index.html 6. JUnit 这是一个可以帮助开发人员编写和运行测试的单元测试框架。但是JUnit和市场上一些类似的框架还有着本质的区别。你可以一次测试一个代码块,而不需要等待该模块在运行测试前完成。实际上就是你可以“先测试,然后写代码”,这意味着对于应用程序的最终功能如何你可以先放下心中的大石了。 官方网站:http://junit.org/ 7. Apache ANT™ 这是一个开源工具,其最大的优势就是简单。关键是可以实现开发人员处理复杂和重复性任务的目标。ANT™,可以自动执行此类任务。这还只是其众多简化功能之一而已。 官方网站:http://ant.apache.org/ 8. JRAT(Java Runtime Analysis Toolkit) 如果你想要评测应用程序的性能,那么就必须具备JRAT这个分析工具。有了这个工具,你可以找出潜在的可能会影响应用程序性能的问题域。 官方网站:http://jrat.sourceforge.net/ 9.Apache JMeter™ 这是Apache的另一种工具,主要用于测试。它可以评测功能行为以及网站、数据库、Web服务等的性能。它有一个易于理解的GUI,这一事实意味着你可以轻松地构建测试计划并迅速调试应用程序。 官方网站:http://jmeter.apache.org/ 10.Apache Maven 上面曾提到过Apache ANT™,而现在的Maven能帮助你做同样的事情。不过,很多开发人员表示相比ANT™,Maven前进了一大步。在依赖管理、构建行动、调试和协作方面,它都比ANT™略高一筹。简单地说,如果你正在使用ANT™,那么你需要告诉它到底应该怎么做:你需要提供资源的确切位置,分配生成的位元码的存储位置以及用JAR文件打包。 Maven,换句话说,则简化了这些东西。 官方网站:http://maven.apache.org/index.html 11.Gradle 如果你想要有这样一种工具,可以结合ANT™和Maven的优点,那么你一定会喜欢Gradle。有了Gradle,你就可以在Groovy编码——这是一个巨大的优势,因为它允许你编写任何代码。这个工具的第二大优势是,它支持惯例优先配置的模式。 官方网站:http://www.gradle.org/ 12.Clover 该工具提供了Java和Groovy代码覆盖。Clover能让你直接瞄准问题可能性最大的部分,确保测试侧重于特定代码。 官方网站:https://www.atlassian.com/software/clover/overview 13.YourKit 这是一个Java分析工具,允许在开发或生产过程中按需分析:这意味着你可以确保你的产品符合最高的质量标准。按需分析指的是,被分析的应用程序可以在不产生任何费用的情况下运行。 官方网站:http://www.yourkit.com/ 14.Mockito 如果你想用干净和简单的API编写测试,Mockito应该就是你的首选。Mockito本质上是一个模拟库,可以帮助你创建、验证和清除模块——Java开发的几个重要方面。 官方网站:https://code.google.com/p/mockito/ 15. FindBugs的™ Java代码有bug?如何才能找到它们呢?——没错,就是FindBugs的™。它不但免费,还易于操作,真心很不错! 官方网站:http://findbugs.sourceforge.net/ 这15个工具,能让你的Java开发工作更为轻松便捷,但是前提是要因地制宜,根据需求选择适合的工具,然后你才能受益无穷。 from:http://www.php100.com/html/it/biancheng/2015/0121/8428.html
View Details启动 Eclipse 弹出“Failed to load the JNI shared library jvm.dll”错误的解决方法!
原因1:给定目录下jvm.dll不存在。 对策:(1)重新安装jre或者jdk并配置好环境变量。(2)copy一个jvm.dll放在该目录下。 原因2:eclipse的版本与jre或者jdk版本不一致 对策:要么两者都安装64位的,要么都安装32位的,不能一个是32位一个是64位。 原因2的概率更大一些,原因1不太可能发生。 from:http://blog.csdn.net/zyz511919766/article/details/7442633/
View Detailsandroid studio 无法在可视化页面预览布局文件
Rendering Problems the following classes could not be found: android.support.v7.internal.widget.ActionBarOverlayLayout (Fix Build Path, Edit XML, Create Class) Tip: Try to build the project 是什么问题 把你的style文件中theme改一下 在Theme.AppCompat.Light.DarkActionBar前面加上Base. 如下 <!-- Base application theme. --> <style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar"> <!-- Customize your theme here. --> </style> app-debug.apk
View DetailsThe Beatles
The Beatles是一支来自英国利物浦的摇滚乐队,由约翰·列侬、保罗·麦卡特尼、乔治·哈里森和林戈·斯塔尔四名成员组成。乐队成立于1960年,其音乐风格源自20世纪50年代的摇滚乐,之后开拓了迷幻摇滚、流行摇滚等曲风[1] 。 1962年发行首支单曲《Love Me Do》。1963年发行首张专辑《Please Please Me》,创下连续30周位居英国流行音乐专辑榜榜首的纪录[2-3] 。1964年4月4日,创下包揽公告牌Hot 100单曲榜前5名的纪录[4] ;同年凭借歌曲《A Hard Day’s Night》获得第7届格莱美最佳乐队奖[5] 。1965年推出的歌曲《Yesterday》成为乐队具有代表性的作品之一[6] 。1967年发行的专辑《Sgt.Pepper’s Lonely Hearts Club Band》获得第10届格莱美年度最佳专辑奖[7] 。1968年发行的单曲《Hey Jude》连续9周位居美国公告牌榜首[8] 。1970年乐队解散[9] 。 1988年进入摇滚名人堂[10] 。1996年凭借《Free As A Bird》获得第39届格莱美最佳流行乐队奖[11] 。2004年《滚石》杂志评选了“历史上最伟大的50位流行音乐家”,The Beatles排名第一位[12] 。2008年他们在美国公告牌“最杰出音乐人Hot 100”榜单上名列榜首[13] ,同年以20首冠军单曲在公告牌“最多冠军单曲”榜单上排名第一[14] 。2012年,英国官方排行榜公司公布了英国最畅销乐队排行榜,The Beatles名列榜首[15] 。
View Details卡朋特乐队
卡朋特乐队(Carpenters)是美国歌星理查德·卡朋特和卡伦·卡朋特兄妹二人组成的演唱组合,1970年代和1980年代初期风靡一时。卡朋特兄妹于1965年开始组织乐队,1969年11月15日,卡朋特乐队的单曲《Close to You》(靠近你)一举走红,其后,他们在整个1970年代大获成功。《Yesterday Once More》(昨日重现)、《Top of the World》(世界之颠)、《Please Mr. Postman》(请等一下,邮差先生)等歌曲广为人知。 木匠兄妹由著名的歌星卡朋特与她哥哥理查德·卡朋特组成,卡伦·卡朋特1950年生于美国康耐狄格州,从小在哥哥的影响下学习乐器,成了一名鼓手,大她三岁的哥哥理查德是个非常有才华的青年,担任钢琴伴奏和制作人,并创作了大量歌曲。后来在著名经纪人德纽文的帮助下,进入了美国流行乐坛。1970年一曲《靠近你》(Close To You)荣登排行榜首,这使木匠兄妹一炮走红,70年代中他们不断有佳作问世,成为无数美国青年的偶像,尼克松总统称卡朋特兄妹是最出色的美国青年。 令人惋惜的是卡伦·卡朋特年仅32岁便过早地离去。她死于神经性厌食症。这是由于她为了保持身材的苗条,长期服用轻泻剂,与长期节食的严重后果。1983年2月4日她死于深爱她的父母怀中。卡伦·卡朋特嗓音优美,演唱亲切自然,略带伤感,加之他们运用了多轨录音技术,因此他们的唱片无论在艺术上或技术上都非常成功,是当代流行音乐的精品。
View Details水木年华
水木年华,大陆男子歌唱组合,创作的歌曲以校园民谣为主打。“水木年华”的名字取自于“水木清华”,[1] 前后共有四位成员,均是清华大学毕业生。 2001年,卢庚戌与李健创立了水木年华,2002年李健单飞,随后缪杰与姚勇加入成为三人组合,2003年姚勇单飞,水木年华剩下卢庚戌与缪杰并组合至今。 水木年华以《一生有你》、《在他乡》等校园民谣歌曲走红内地歌坛。在第十四届东方风云榜上凭借单曲《Forever Young》将十大金曲奖收入怀中,并获得内地最佳组合。 2008年夏天,水木年华还曾与老狼、高晓松等音乐人在北美举行大型巡回演唱会。
View Details歌手维也那和他的“菊花台”
记不清多久了,反正好几年了,我看见一个网络版的越剧《红楼梦》,是一些越剧戏迷自己演绎的。组织者名字叫“维也那”,他是一位越剧戏迷,召集了一些网上的越剧爱好者,各自录制自己的唱段,他把这些唱段编辑起来,形成了《红楼梦》的第一场“黛玉进府”,过些日子,又录制了第二场“读西厢”。按照他的计划,他是打算把越剧《红楼梦》的全剧录制下来的。可惜,我们现在看到的好像只有这两场。 我加了他QQ好友,经常跟他聊天,才知道他是一位了不起的音乐人,自己作词、作曲、演唱了一首脍炙人口的红楼梦歌曲《你是天上掉下的林妹妹》。这首歌曲美、词绝,唱得也很好,我们在歌厅唱歌的时候,歌厅的选歌器上就能搜索到这首很好听的歌。 < /P> 他的另外一首歌,是根据京剧《西厢记》改编的,名字叫《让红娘帮我传个纸条》。本来是撕心裂肺的悲剧,在他的重新演绎下,却变得轻松、淡然,给我们带来的是不一样的感受。 其实,他创作的歌曲很多,最让我们叫绝的,是他把周杰伦的《菊花台》改编成了越剧版。这个版本的《菊花台》曾经在网上轰动一时,有人甚至专门联系了周杰伦。据说,周杰伦对此淡然一笑,因为,改编后的《菊花台》旋律异常动人,更加加大了《菊花台》的知名度。 让人遗憾和辛酸的是,这样一位富有才华的音乐人,却因为生活的身体的原因(据说是暴盲》,再也无法进行音乐创作了。我近期看到他本人在中央七套现场演绎的《菊花台》,心中按捺不住的悲酸,他戴了一幅墨镜,也许他再也看不到灿烂的阳光了。他现在演唱的《菊花台》带给我们的是不一样的感受。也许,作为一个艺人,注定他要走上“天将降大任于斯人”的坎坷之路的。 我总在想,维也纳天赋好嗓,假如他从事越剧事业,也许会成为一颗夺目的尹派越剧小生。 from:http://blog.sina.com.cn/s/blog_4e806e920102ds9x.html
View Details关于《心愿》——四个女生
这里收集到一些资料,是很久以前听到的一首歌《心愿》的。网上有很多人把《心愿》这首歌的四个女生当成了马来西亚的4inlove这个组合,其实是错误的。下面把我搜集到的资料转载如下,希望对大家有帮助: 曾经那首《心愿》和《同桌的你》一样风靡整个校园,而民大人往往更加乐道的是《心愿》以及那四位漂亮的女生。确实,那是一首非常动听的歌曲,还有一幅很怀旧的照片,那也曾是民大人一个美好的回忆。但是,那是不属于民大人的《心愿》,只是发生在民大的校园里!详情如下:1、那张怀旧的照片,拍摄于中央民族大学北主楼(现在的北智楼)的一个教室里,外面的葱郁的柏树现在还屹立在那里。 2、《心愿》词曲兼演唱——王泽介绍 1978年生于北京; 1993-1996年任北京青年报中学生通讯社记者兼副社长,负责校园音乐栏目; 1996年录制《第一直觉》合辑;同年考入北京理工大学; 1998年《第一直觉》合辑由上海声像出版社出版;同年,小说《王者当歌》由河北人民出版社出版; 2000年9月,赴美费城艺术学院学设计专业; 2002年5月研究生毕业后在美国工作; 创作的歌曲共4首:心愿、航行(收在《第一直觉》合辑);一棵叫做feeling的植物、山歌(收在《校园feeling》合辑); 王泽 邮址:zezecn@yahoo.com 3、《心愿》的歌词介绍 心愿 词曲:王泽 演唱:王泽 杨颖 乔媛 唐景莲 湖水是你的眼神 梦想满天星辰 心情是一个传说 亘古不变地等候 成长是一扇树叶的门 童年有一群亲爱的人 春天是一段路程 沧海桑田的拥有 那些我爱的人 那些离逝的风 那些永远的誓言 一遍一遍 那些爱我的人 那些沉淀的泪 那些永远的誓言 一遍一遍 我们都曾有过一张天真而忧伤的脸 手握阳光我们望着遥远 轻轻的一天天一年又一年 长大间我们是否还会再唱起心愿 长大间我们是否还会再唱起心愿 音乐下载地址:http://211.99.191.19:8080/getfile/jV1ViGyBfHe63tjretIvegjue0YW4BaleB+w.mp3 4、作者王泽的说明(王泽在网上对大家的回复) 作者:王泽 回复日期:2003-07-03 23:37:30 继续介绍。 说明一下,这首歌是我高二的秋天,大约16岁生日前后写的,96年夏天我们四个都是刚高考结束那时候录的。所以说是大学女生的校园歌曲不是很准确。不过很多大学里的朋友并不觉得它太幼稚,我也很高兴啦。她们三个,乔媛读的是北京旅游学院,杨颖是北京商学院,日语,唐景莲是北京工业大学。大学里面我曾经请她们过来我们俱乐部的演出一起唱歌,也参加过北京音乐台的演出,还有拍那个12演播室的采访片子–那张照片就是当时拍片子时候我的大学同学秦燕给我们拍的。当时是年底,我们也不是专业演员/歌手,没有化妆,没有特别的服装,就随便拍了玩的。拍出来的片子我也没有留底子,只有一两张照片了。我不太清楚她们几个毕业以后到现在的情况,杨颖有可能在海南和她的很帅的BF在一起,乔媛在北京工作,唐景莲的消息我暂时没有。 很盼望有机会回国一次和她们再聚一聚 作者:王泽 回复日期:2003-07-0721:09:44 再次感谢大家喜欢这首歌。:)想要再次罗嗦的是: 1.首歌是94年写的,当时我15/16岁,录音是96年夏天,我17岁,我的同伴也不过18。出版是98/99年,CZ音乐(香港)合集<第一直觉>。严格说不算大学生原创。 2.我们几个都不是专业歌手/演员,CZ音乐录音是追求的也是阁楼录音的效果,详细参见第一直觉的介绍。这张照片是我曾经贴在校园民谣网上的,为了介绍和我一起唱歌的几个女孩,因为很多地方网站转载没有写全她们的名字。98年底中央电视台12演播室给我拍摄一个短采访时候,我又约了她们来拍摄,在中央民族大学的一间教室里我的好朋友秦燕给我们拍了这个照片。 本来我是不应该贴她们的照片的,更不应该被转载得到处都是。只是中央台的节目早也播出了,她们也是我的好朋友,想来不算侵权。 3.我们不是专业歌手/演员,也无心走这条路。前面诸位要帮我们包装/推广的朋友,费心了。 4.我们也不是中央民族大学的学生,好多网站上都误写了,我也解释一下叭。 5.希望大家一直都喜欢音乐:) 结束语:不管怎么样,我们都应该去聆听这首歌曲,虽然不是民大人的《心愿》,但是我们学到了歌曲作者身上的那种青春活力,我们每个人都应该保持并追求自己的《心愿》! from:http://blog.sina.com.cn/s/blog_3cc43f5d01017j95.html
View DetailsMVC数据验证
前一篇说了MVC数据验证的例子,这次来详细说说各种各样的验证注解。System.ComponentModel.DataAnnotations 一、基础特性 一、Required 必填选项,当提交的表单缺少该值就引发验证错误。 二、StringLength 指定允许的长度 指定最大长度:
1 |
[StringLength(20)] //最大长度不超过20个字符 |
指定最短于最长限制:
1 |
[StringLength(20,MinimumLength=3)] //最大长度不超过20个字符,最短不能低于3个字符 |
三、RegularExpression 正则表达式能够匹配的字符串,如果不能匹配,则报一个验证错误
1 |
[RegularExpression(@"[A-Za-z0-9.%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}")] |
如邮箱格式验证:
1 |
[RegularExpression(@"^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$", ErrorMessage = "请输入正确的电子邮箱地址!")] |
四、Range Range特性用来指定数值类型值的最小值和最大值。
1 2 |
[Range(35,44)] //整型,最小35,最大44 [Range(typeof(decimal),"0.00","49.99")] //decimal类型 |
五、Remote 允许利用服务器端的回调函数执行客户端的验证逻辑。说白了就是支持AJAX验证。 需要引用命名空间:System.Web.Mvc; 这个写个异步验证用户名是否存在的DEMO:
1 2 3 4 5 6 7 |
[Required] [Remote("CheckUserName", "Home")] public string UserName { get; set; } |
Controller代码:
1 2 3 4 5 6 7 8 9 |
public JsonResult CheckUserName(string UserName) { bool result = true; if (UserName == "admin") { result = false; } return Json(result,JsonRequestBehavior.AllowGet); } |
显示结果: 留意到,是通过AJAX发送UserName的值到服务器端判断过的。 六、Compare 用于确保模板对象的两个对象拥有相同的值。 例如,通常输入密码之后还要求用户再次确认密码,这时候就是Compare属性发挥作用的时候了。
1 |
[Compare("要对比的属性名")] |
以上特性需要 using System.ComponentModel.DataAnnotations; 同时需要注意Web.config里面的这两个选项是否设置为了true;
1 2 |
<add key="ClientValidationEnabled" value="true"/> <add key="UnobtrusiveJavaScriptEnabled" value="true"/> |
二、自定义错误提示消息 每个特性都允许传递一个带有自定义错误提示消息的参数。
1 2 3 4 5 6 7 |
[Required(ErrorMessage="用户名必须填写")] [Remote("CheckUserName", "Home",ErrorMessage="此用户名已存在")] public string UserName { get; set; } |
自定义错误消息,还有一个格式项,如
1 2 3 4 5 6 |
[Required(ErrorMessage="{0}必须填写")] publit string Name { get; set; } |
则{0}在输入的时候会被Name替换。 如果以上的验证方式还不够,你还可以自定义验证,到时候忘记了可以翻《Asp.net MVC3 高级编程》第127页。这里就不写DEMO了,用到再写。 三、显示和编辑注解 1、Display 如果使用的是直接EditorForModel实现的话,Display特性可以帮助你设置友好的显示名称 例如:
1 2 |
[Display(Name="密码")] public string PassWord { get; set; } |
显示结果如下: 其次Display还支持显示属性的顺序,如
1 2 3 4 |
[Display(Name="密码",order = 15000)] public string PassWord { get; set; } [Display(Name="密码",order = 15001)] public string UserName { get; set; } |
后面的顺序是显示编辑框的顺序,默认是10000,按升值排序。 2、ScaffoldColumn 隐藏Html辅助方法(如EditorForModel,DisplayForModel)显示一些属性。
1 2 |
[ScaffoldColumn(false)] //不显示该属性的编辑框 public string UserName { get; set; } |
虽然ScaffoldColumn可以做到不显示一些属性在页面上被编辑,但是如果提交的Form有这个属性值,模型绑定机制依然会绑定此属性值。要解除就要显式的[Bind]了,这个与本篇无关。此处不提。 3、DisplayFormat DisplayFormat特性可以用来处理属性的各种格式化选项。当属性包含空值时,可以提供可选的显示文本,也可以为包含标记的属性关闭HTML编码,还可以为运行时指定一个应用于属性值的格式化字符串。 例如:
1 2 |
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:c}")] public decimal money { get; set; } |
这样,当有初始值的时候,显示的代码将如下所示: 注意是初始值,如果是直接填写的并不会有符号。来看Controller中设置的初始值:
1 2 3 4 5 6 |
public ActionResult PersonAdd() { Person_Model p = new Person_Model(); p.money = 12.10M; return View(p); } |
此显示样式在提交回Controller中是没用的,因为模型绑定器将不能解析返回的价格值。怎么用自己斟酌,用于显示还是OK的。 4、ReadOnly 如果确保默认的模型绑定器不使用请求中的新值更新属性,可以给属性添加ReadOnly特性:
1 2 |
[ReadOnly(true)] public string Name { get; set; } |
注意,此属性仍然会显示一个可编辑的文本框来显示Name,但是模型绑定器不会接收其值,因此只有模型绑定器考虑ReadOnly属性。 5、DataType DataType特性可以为运行时提供关于属性的特定用途的信息。 例如:
1 2 |
[DataType(DataType.Password)] public string PassWord { get; set; } |
显示效果如下: 该属性可以用于指定多选按钮,单选按钮,密码输入框,等等类型的数据。 6、UIHint UIHint特性给Asp.net MVC运行时提供了一个模板名字,以备调用模板辅助方法如(DisplayFor和EditorFor)渲染输出时使用。也可以自定义自己的模板辅助方法来重写Asp.net MVC的默认行为。 7、HiddenInput HiddentInput在名称空间System.Web.Mvc中,它可以告知运行时渲染一个type特性值为"hidden"的输入元素。说白了就是<input type="hidden" value="xxx" /> 四、验证示例 首先新建一个MVC项目。添加如下代码,代码非常简单:一个Person_Model类 […]
View DetailsDataType枚举
此枚举用于指定要与数据列或参数关联的数据类型。 成员名称 说明 Custom 表示自定义的数据类型。 DateTime 表示时间上的一刻,以日期和当天的时间表示。 Date 表示日期值。 Time 表示时间值。 Duration 表示对象存在的一段连续时间。 PhoneNumber 表示电话号码值。 Currency 表示货币值。 Text 表示所显示的文本。 Html 表示一个 HTML 文件。 MultilineText 表示多行文本。 EmailAddress 表示电子邮件地址。 Password 表示密码值。 Url 表示 URL 值。
View Details