摘要: Android平台对新手开发者来说是最通俗易懂的平台,我们发现有些错误反复出现在刚涉足Android平台的新手开发者身上,下面是他们常犯的10大严重错误。 作为过去10年广泛涉猎各热门平台的经验丰富手机应用开发商,我们觉得Android平台对新手开发者来说是最通俗易懂的平台。平价的工具、友好的开发社区、及众所周知的编程语言(Java),可以说开发Android应用不是难事。但尽管如此,我们依然发现有些错误反复出现在刚涉足Android 平台的新手开发者身上,下面是他们常犯的10大严重错误。1. 未阅读Android文件Android Developer Website能够给予你很大帮助。很多. 阅读全文
posted @ 2012-04-15 16:01 OrionBox 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 1、 对象的初始化(1) 非静态对象的初始化在创建对象时,对象所在类的所有数据成员会首先进行初始化。基本类型:int型,初始化为0。如果为对象:这些对象会按顺序初始化。构造方法的作用就是初始化。(2) 静态对象的初始化程序中主类的静态变量会在main方法执行前初始化。 不仅第一次创建对象时,类中的所有静态变量都初始化,并且第一次访问某类(注意此时未创建此类对象)的静态对象时,所有的静态变量也要按它们在类中的顺序初始化。2、 继承时,对象的初始化过程(1) 主类的超类由高到低按顺序初始化静态成员,无论静态成员是否为private。(2) 主类静态成员的初始化。(3) 主类的超类由高到低进行默认构 阅读全文
posted @ 2012-04-15 16:01 OrionBox 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 这个是一个老问题,但是发现大多数人说的还不够透。小弟就在这里抛砖引玉了,欢迎拍砖.......问题:比如我有一个数组(元素个数为0哈),希望添加进去元素不能重复。拿到这样一个问题,我可能会快速的写下代码,这里数组用ArrayList.privatestaticvoidtestListSet(){ List<String>arrays=newArrayList<String>(){ @Overridepublicbooleanadd(Stringe){ for(Stringstr:this){ if(str.equals(e)){ System.out.println(& 阅读全文
posted @ 2012-04-15 16:00 OrionBox 阅读(751) 评论(0) 推荐(0) 编辑
摘要: Java查询一次性查询几十万,几百万数据解决办法。很早的时候写工具用的一个办法,当时是用来把百万数据打包成rar文件。所以用了个笨办法。 希望高手指导一下,有什么好方法没有啊。 Java查询一次性查询几十万,几百万数据解决办法。很早的时候写工具用的一个办法,当时是用来把百万数据打包成rar文件。所以用了个笨办法。 希望高手指导一下,有什么好方法没有啊。先批量查出所有数据,例子中是一万条一批。在查出数据之后把每次的数据按一定规则存入本地文件。获取数据时,通过批次读取,获得大批量数据。此方法参见:http://yijianfengvip.blog.163.com/blog/static/1752. 阅读全文
posted @ 2012-04-15 16:00 OrionBox 阅读(539) 评论(0) 推荐(0) 编辑
摘要: Java开发中所要遵守的编码规范大体上有如下7点。命名规范、注释规范、缩进排版规范、文件名规范、声明规范、语句规范以及编程规范。1.命名规范(1)所有的标示符都只能用ASCⅡ字母(A-Z或a-z)、数字(0-9)和下划线“_”。(2)一个唯一包名的前缀总是全部小写的字母。例如:www.tonysun.cc(3)类名是一个名词,采用大小写混合的方式,每个单词的首字母大写。例如:Tony。(4)接口的大小写规则与类名相似:例如:Tony。(5)方法名是一个动词或动词词组,采用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母大写。例如:setNeekeName(String neekeNa 阅读全文
posted @ 2012-04-15 16:00 OrionBox 阅读(151) 评论(0) 推荐(0) 编辑
摘要: Java的动态绑定又称为运行时绑定。意思就是说,程序会在运行的时候自动选择调用哪儿个方法。一、动态绑定的过程:例子:publicclassSonextendsFather Sonson=newSon();3son.method();1. 首先,编译器根据对象的声明类型和方法名,搜索相应类(Son)及其父类(Father)的“方法表”,找出所有访问属性为public的method方法。可能存在多个方法名为method的方法,只是参数类型或数量不同。2. 然后,根据方法的“签名”找出完全匹配的方法。方法的名称和参数列表称为方法的签名。在Java SE 5.0 以前的版本中,覆盖父类的方法时,要求返 阅读全文
posted @ 2012-04-15 15:59 OrionBox 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 每天在写Java程序,其实里面有一些细节大家可能没怎么注意,这不,有人总结了一个我们编程中常见的问题。虽然一般没有什么大问题,但是最好别这样做。另外这里提到的很多问题其实可以通过Findbugs( http://findbugs.sourceforge.net/ )来帮我们进行检查出来。字符串连接误用错误的写法:Strings=""; for(Personp:persons){ s+=","+p.getName(); } s=s.substring(2);//removefirstcomma正确的写法:StringBuildersb=newStringB 阅读全文
posted @ 2012-04-15 15:58 OrionBox 阅读(238) 评论(0) 推荐(0) 编辑
摘要: Java防SQL注入,最简单的办法是杜绝SQL拼接,SQL注入攻击能得逞是因为在原有SQL语句中加入了新的逻辑,如果使用 PreparedStatement来代替Statement来执行SQL语句,其后只是输入参数,SQL注入攻击手段将无效,这是因为 PreparedStatement不允许在不同的插入时间改变查询的逻辑结构,大部分的SQL注入已经挡住了,在WEB层我们可以过滤用户的输入来防止 SQL注入比如用Filter来过滤全局的表单参数。importjava.io.IOException; importjava.util.Iterator; importjavax.servlet.Fil 阅读全文
posted @ 2012-04-15 15:58 OrionBox 阅读(303) 评论(0) 推荐(0) 编辑
摘要: 从大二开始我们就接触了Java,大三才真正开始Java之旅,不过大部分的当时会被Java的环境变量搞得晕头转向,虽然知道环境变量的方法,但是还是一知半解。有多少人真正透彻Java环境变量呢? 1、查看当前可用的所有环境变量(=系统变量+用户变量)set查看某个环境变量,如PATHset PATH添加环境变量,如xxx=aaset xxx=aa将环境变量(如xxx)的值置为空set xxx=在某个环境变量(如PATH)后添加新的值(如d:\xxx)set PATH=%PATH%;d:\xxx[注]:以命令行方式对环境变量的操作只对当前窗口的应用有效!2、Windows下JAVA用到的环境变量主. 阅读全文
posted @ 2012-04-15 15:58 OrionBox 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 所谓回调,就是客户程序C调用服务程序S中的某个函数A,然后S又在某个时候反过来调用C中的某个函数B,对于C来说,这个B便叫做回调函数。例如 Win32下的窗口过程函数就是一个典型的回调函数。一般说来,C不会自己调用B,C提供B的目的就是让S来调用它,而且是C不得不提供。由于S并不知道 C提供的B姓甚名谁,所以S会约定B的接口规范(函数原型),然后由C提前通过S的一个函数R告诉S自己将要使用B函数,这个过程称为回调函数的注册,R 称为注册函数。Web Service以及Java的RMI都用到回调机制,可以访问远程服务器程序。(这段是网上抄的,摘自http://hi.baidu.com/f117_ 阅读全文
posted @ 2012-04-15 15:56 OrionBox 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 报表输出是Java应用开发中经常涉及的内容,而一般的报表往往缺乏通用性,不方便用户进行个性化编辑。Java程序由于其跨平台特性,不能直接操纵Excel。因此,本文探讨一下POI视线Java程序进行Excel的读取和导入。 项目结构:用到的Excel文件:XlsMain .java 类//该类有main方法,主要负责运行程序,同时该类中也包含了用poi读取Excel(2003版)importjava.io.FileInputStream; importjava.io.IOException; importjava.io.InputStream; importjava.util.ArrayLis. 阅读全文
posted @ 2012-04-15 15:56 OrionBox 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 斐波纳契数列(Fibonacci Sequence),又称黄金分割数列。指的是这样一个数列:1、1、2、3、5、8、13、21、……这个数列从第三项开始,每一项都等于前两项之和。在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n>=2,n∈N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用。斐波那契数列的发明者,是意大利数学家列昂纳多·斐波那契(Leonardo Fibonacci)。与黄金分割的关系有趣的是:这样一个完全是自然数的数列,通项公式却是用无理数来表达的。而且当n趋向于无穷大时,后一项与前一项的 阅读全文
posted @ 2012-04-15 15:55 OrionBox 阅读(397) 评论(0) 推荐(0) 编辑
摘要: JasperReports是一个基于Java的开源报表工具,它可以在Java环境下像其它IDE报表工具一样来制作报表。JasperReports 支持PDF、HTML、XLS、CSV和XML文件输出格式。JasperReports是当前Java开发者最常用的报表工具。Pentaho是一个以工作 流为核心的、强调面向解决方案而非工具组件的BI套件,整合了多个开源项目,目标是和商业BI相抗衡。它偏向于与业务流程相结合的BI解决方案,侧重于大 中型企业应用。它允许商业分析人员或开发人员创建报表,仪表盘,分析模型,商业规则和 BI 流程。功能和特点◆ 工作流引擎:Shark and JaWE◆ 数据库 阅读全文
posted @ 2012-04-15 15:54 OrionBox 阅读(572) 评论(0) 推荐(0) 编辑
摘要: 1. PMD from http://pmd.sourceforge.net/PMD能够扫描Java 源代码,查找类似以下的潜在问题:可能的bug——try/catch/finally/switch语句中返回空值。死代码——未使用的局部变量、参数、私有方法。不理想的代码——使用String/StringBuffer。过于复杂的表达式——没有必要使用if语句、while循环可以代替for循环。重复代码——复制/粘贴的代码引发的bug。PMD集成了JDeveloper, Eclipse, JEdit, JBuilder, BlueJ, CodeGuide, NetBeans/Sun Java St 阅读全文
posted @ 2012-04-15 15:53 OrionBox 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 使用Struts2的Junit Plugin测试Action是非常的方便的,如果在开发中采用TDD模式的话推荐使用。不说废话了,直入主题,已具体实例说话!1、在原有的Struts2工程加入JUnit Plugin和它依赖的Spring包:struts2-junit-plugin-2.1.8.jarorg.springframework.core-3.0.3.RELEASE.jarorg.springframework.test-3.0.3.RELEASE.jar2、新建个Action,我这里采用的Annotation的方式,可以实现零配置。TestAction.java@Result(loca 阅读全文
posted @ 2012-04-15 15:53 OrionBox 阅读(939) 评论(0) 推荐(0) 编辑
摘要: J2EE,作为开发mission-critical的企业级应用的一整套规范的整合平台,规范多、内容广,从而给开发J2EE应用带来了很多“麻烦”。比如,为实现内容的RDBMS,我们可能的方法有JDBC、Entity Beans、JDO、O/R Mapping工具(TopLink、Hibernate)、XML-DBMS、JAXB等方法(其中一些方法不是J2EE规范所包含的)。因此,为实现J2EE各层(至少有表示层、控制层、商业逻辑层等3层)以及层与层之间的耦合,J2EE系统架构师需要考虑的问题会很多。加上,J2EE本身的快速发展,给架构、开发具有工业强度的J2EE应用带来一些难题。同时,软件开发技 阅读全文
posted @ 2012-04-15 15:52 OrionBox 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 现在许许多多的初学者和程序员,都在趋之若鹜地学习Web开发的宝典级框架:Struts2,Spring,Hibernate。似乎这些框架成为了一个人是否精通Java,是否会写J2EE程序的唯一事实标准和找工作的必备基础。然而,如果在面试的时候问这些程序员,你们为什么要学习这些框架?这些框架的本质到底是什么?似乎很少很少有人能够给我非常满意的答复。因为他们都在为了学习而学习,为了工作而学习,而不是在真正去深入了解一个框架。其实所有的人都应该思考这样的问题:为什么要学习框架?框架到底给我带来了什么?接下来,我们以登录作为一个最简单的例子,来看看不同的年代,我们是怎么写Web程序的。后来,我们放弃了在 阅读全文
posted @ 2012-04-15 15:52 OrionBox 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 对于J2EE,我们知道当开发应用时,在架构设计阶段的决定将对应用的性能和可扩展性产生深远的影响。现在当开发一个应用项目时,我们越来越多地注意到了性能和可扩展性的问题。应用性能的问题比应用功能的不丰富问题往往更为严重,前者会影响到所有用户,而后者只会影响到碰巧使用该功能的那些用户。作为应用系统的负责人,一直被要求"要少花钱多办事"----用更少的硬件,更少的网络带宽,以及更短的时间完成更多的任务。J2EE通过提供组件方式和通用的中间件服务是目前首选的最优方式。而要能够构建一个具有高性能和可扩展性的J2EE应用,需要遵循一些基本的架构策略。缓存(Caching)简单地说,缓存中 阅读全文
posted @ 2012-04-15 15:51 OrionBox 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 安全性是Web应用程序开发工作中最关键的问题之一。在基于servlet的应用程序里,保护应用程序资源的办法有两种:一是对应用程序进行配置 (web.xml),二是使用Java代码硬编码到程序中。前一种方法使用配置文件,该方法很灵活,这是因为通过使用配置文件,无需改写任何代码就可以改变安全策略,是一种常见的手段。而Struts 2是基于servlet技术的,所以Struts 2的安全策略也可以使用配置文件进行灵活的配置。配置安全策略时,有两个概念需要清楚的区分 ,用户和角色,简单的说用户为使用计算机的人,可以是个人或组织。角色是一个抽象的概念,泛指职务或者权限。例如,张三,李四,王五三个人,有职 阅读全文
posted @ 2012-04-15 15:50 OrionBox 阅读(186) 评论(0) 推荐(0) 编辑
摘要: Refactor重构和单元测试是程序员的两大法宝,他们的作用就像空气和水对于人一样,平凡,不起眼,但是意义深重。预善事,必先利器,本文就介绍怎样在Eclipse中进行重构。本文介绍了Eclipse支持的重构种类,它们的含义,以及怎样重构。本文同时也可以作为学习重构知识的快速手册。1、什么是重构?重构是指在保持程序的全部功能的基础上改变程序结构的过程。重构的类型有很多,如更改类名,改变方法名,或者提取代码到方法中。每一次重构,都要执行一系列的步骤,这些步骤要保证代码和原代码相一致。2、为什么重构很重要?手工重构时,很容易在代码中引入错误,例如拼写错误或者漏掉了重构的某一步。为了防止引入错误,在每 阅读全文
posted @ 2012-04-15 15:49 OrionBox 阅读(211) 评论(0) 推荐(0) 编辑