`

java一些编程技巧

    博客分类:
  • java
阅读更多

0.对象的生命周期
  boolean offerInSearchWeb = false; //变量定义在不得不声明定义的时候才声明
  List<String> offerIdList = offerIds;
  if (offerIdList != null) {// p4p中u30340 offer
   。。。。。。
  }
  if (offerInp4p) {
   return map;
  } else {
            。。。。。。
       offerInSearchWeb = true;  //offerInSearchWeb 只在这里使用,声明可以放到这里,
       break;
                         }

1.异常
public interface CreditService {
    public boolean getCreditFlag(String memberId) throws Exception;
}

实现类
。。。。。。
    @Override
    public boolean getCreditFlag(String memberId) throws Exception{
        。。。。。。
        try {
            。。。。。。
        } catch (JSONException jsonException) {
            logger.error("Not valid ", jsonException);
            throw jsonException;

}

在接口定义中要指定抛出的具体的异常,如果为了让上级调用统一处理就应该向上转型转化为Exception。
public interface CreditService {
    public boolean getCreditFlag(String memberId) throws jsonException;
}

抛出的异常没有详细指定抛出的具体异常类型
        try {
            String urlEncodeCn = URLEncoder.encode(url, "GBK");
            return urlEncodeCn;
        } catch (Exception e) {
            return url;
        }

不正确的使用方法:
如果是抛出异常的话
logger.error(e.getMessage());
logger.error("parse mlr categoryInfo error" + e.getMessage());
logger.error("process file fail:" + srcFile, e);

正确的使用方法:
logger.error("getOfferInfoFromBOPS - generate secureKey got exception for " + e.getMessage(), e);

2.内部类

 静态内部类
 Collections.sort(attributeValueList, new AttriValueComparator());
   。。。。。。
   private static class AttriValueComparator implements Comparator<Object>,Serializable {
        private static final long serialVersionUID = 1L;
        @Override
        public int compare(Object attriValue1, Object attriValue2) {
                   。。。。。。
        }
    }

如果该静态类只调用一次,却只集成一个接口,可以写成  可以使代码更清晰紧凑
  Collections.sort(attributeValueList, new Comparator<Object>() {
                            private static final long serialVersionUID = 1L;
                            @Override
                            public int compare(Object attriValue1, Object attriValue2) {
                                                          。。。。。。
                            }
                        });

3.集合类使用和泛型使用
3.1
  List<Sattribute> temp = new ArrayList<Sattribute>();
for(int i = 0;i < temp.size(); i++){
            Sattribute attri = new Sattribute();
            attri.setId(((Sattribute)temp.get(i)).getId());  //不需要强制转换了

不需要用到编号的时候用下面这种循环,更简洁,性能更好//1、代码上更加简洁。//2、不用考虑边界。//3、不用显示转换类型,定义的时候已经处理。
 for(Sattribute sa: temp){
   Sattribute attri = new Sattribute();
   attri.setId(sa.getId());    
}

3.2
 for (Iterator itor = offerMolelList.iterator(); itor.hasNext();) {  /指定Iterator的类型
    OfferModel offerModel = (OfferModel) itor.next();
改为
 for (Iterator<OfferModel> itor = offerMolelList.iterator(); itor.hasNext();) {  /指定Iterator的类型
    OfferModel offerModel =  itor.next();

3.3
      从list删除另外一个list的所有元素,不要重复劳动
private List<String> getP4pNotBuyWords(List<String> suggestWordsList,List<String> buyedWordsList) {
改为直接使用list的方法  
 removeAll

4.IO
            InputStream is = httpUrlConn.getInputStream();  
            br = new BufferedReader(new InputStreamReader(is));    //指定编码,不要用系统默认编码

 

分享到:
评论

相关推荐

    java编程技巧典型案例解析

    Java编程技巧典型案例解析 在Java编程领域,掌握高效、实用的编程技巧对于提升代码质量、优化性能以及提高开发效率至关重要。本资料集旨在通过一系列典型示例,深入剖析Java编程中的常见问题及其解决策略,帮助...

    JAVA编程技巧完美版

    JAVA编程技巧完美版 李万鸿 JAVA语言博大精深,编java程序需要技巧,尤其是SSH2架构的项目,需要高超的编程艺术和深广的智慧。编程和调试需要全面考虑问题,要从系统的各个方面进行考虑,多角度分析问题,这样才能...

    Java编程技巧典型案例解析

    《Java编程技巧典型案例解析》一书聚焦于这些关键技巧,通过24个精心挑选的源代码案例,深入浅出地展示了Java编程中的精华所在。以下是根据标题、描述以及压缩包子文件的文件名称列表,提炼出的一些核心Java编程知识...

    《java 并发编程实战高清PDF版》

    《Java并发编程实战》是一本深入探讨Java平台并发编程的权威指南。这本书旨在帮助开发者理解和掌握在Java环境中创建高效、可扩展且可靠的多线程应用程序的关键技术和实践。它涵盖了从基本概念到高级主题的广泛内容,...

    Java编程精选集锦_(电脑编程技巧与维护)

    这本书旨在提升程序员在电脑编程技巧与维护方面的专业能力,特别是针对Java这门广泛应用于企业级开发、互联网应用以及移动应用开发的强大语言。 Java作为一款面向对象的编程语言,以其跨平台、高效、安全的特性深受...

    新手学Java7编程(第5版)

    新手学Java7编程(第5版)由程序设计畅销书作者herbertschildt撰写,将内容彻底更新至javase 7。首先从基础讲起,介绍了如何编译和运行java程序,然后讨论了... 代码注释:示例代码中的注释描述了正在阐述的编程技巧

    Java并发编程实战华章专业开发者书库 (Tim Peierls 等 美Brian Goetz).pdf

    《Java并发编程实战》是一本深入探讨Java平台并发编程的权威指南,由Tim ...在多核处理器的时代,掌握并发编程技巧是每个Java开发者的必备能力,而《Java并发编程实战》无疑为此提供了一个全面而深入的学习资源。

    Java编程技巧典型案例解析:7-900181-97-0.iso

    Java编程技巧典型案例解析:7-900181-97-0.iso 随书光盘,欢迎大家下载

    Java 并发编程实战.pdf

    根据提供的信息,“Java 并发编程实战.pdf”这本书聚焦于Java并发编程的实践与应用,旨在帮助读者深入了解并掌握Java中的多线程技术及其在实际项目中的应用技巧。虽然部分内容未能提供具体章节或实例,但从标题及...

    java网络编程第四版pdf

    它不仅涵盖了网络编程的基础知识,也深入到高级特性和实践技巧,对于想要提升网络编程能力的Java程序员来说,是一本不可多得的参考书。通过阅读和实践书中的例子,读者不仅可以掌握理论知识,还能积累实际开发经验,...

    Java 8编程入门官方教程

    本书主要面向初学者,旨在帮助读者快速掌握Java 8的基础知识和编程技巧,并能够运用这些知识进行实际开发工作。 #### 二、Java 8简介 Java 8是Java平台的一个重要版本,它于2014年3月发布。相比之前的版本,Java 8...

    java 并发编程的艺术pdf清晰完整版 源码

    通过阅读《Java并发编程的艺术》这本书,开发者不仅可以掌握Java并发编程的基础知识,还能了解到一些高级特性和技巧,从而在实际开发中游刃有余。同时,附带的源码将有助于加深理解,提供实际操作的机会。

    Java经典编程300例.zip

    《Java经典编程300例》是一本深受Java开发者喜爱的实战型教程,它通过300个精心挑选的编程实例,深入浅出地讲解了Java语言的核心概念、语法特性和编程技巧。这本书旨在帮助读者从实践中掌握Java编程,提升编程能力,...

    Java程序编程技巧

    Java编程技巧,学习Java必备的资料!

    java并发编程实战(英文版)

    本书不仅适合已经有一定Java编程经验的开发人员阅读,也适用于希望深入了解并发编程基础的新手。它从最基本的并发概念讲起,如进程与线程的区别、线程生命周期、线程调度策略等,并逐步深入到锁机制、死锁避免、原子...

    Java并发编程书籍高清版

    通过阅读这些书籍,开发者可以深入理解Java并发编程的底层机制,掌握有效的并发编程技巧,提高程序的运行效率,同时避免并发编程中常见的陷阱和问题。无论是初学者还是经验丰富的开发者,都能从中受益匪浅。

    《Java网络编程实例:Java网络编程实例》

    Java网络编程是开发分布式应用程序的关键技术,它使得Java程序能够与其他设备、系统和服务进行通信。...读者可以通过运行这些例子,亲身体验网络编程的过程,从而更好地掌握Java网络编程的技巧和最佳实践。

    Java并发编程从入门到精通(pdf)(附源码)

    通过这些内容的学习,读者可以掌握高效并发编程技巧,减少线程间的交互,提高程序的并行度。 Java内存模型(JMM)是并发编程中的核心概念,书中会详细解析其工作原理,包括volatile、final关键字的作用,以及 ...

    JAVA数据库编程技巧.rar

    在Java编程领域,数据库编程是不可或缺的一部分,尤其是在开发企业级应用时。本资源"JAVA数据库编程技巧.rar"可能包含了关于如何高效、灵活地在Java环境中与数据库进行交互的指南和实例。下面我们将深入探讨Java...

    java3d编程教程

    教程中提到了Java 3D编程的入门,这说明即使读者没有三维图形或Java 3D的知识背景,也可以从本教程中学习,但若拥有Java编程语言的基本理解会更有帮助。在三维编程方面,编程可能因为涉及大量专业术语和数学内容而...

Global site tag (gtag.js) - Google Analytics