`

java 程序优化笔记

阅读更多
1.一个类的代码行数<=2000;
2.包名小写ASCII,一般为公司域名的倒序;
3.类名以大写字母开头;变量定义为Public、Protected、Private;方法和方法间插入空白行;
4.return没必要加();Switch必有default;if最好加{};
5.参数列表中逗号后插入空格,强制类型也是;
6.尽量避免单字符变量名,除非临时变量;常量大写字母,单词间加“_”;
7.不要声明类中变量为Public,除非实在没有办法;
8.尽量使用()来界定表达式的结合顺序;
9.栈内存:常量/静态;堆内存:其他;
10.代码优化:
for(){
Object obj=new Object();
sys(obj);
}
Object obj=null;
for(){
obj=new Object();
sys(obj);
}
11.初始化继承类时,会同时构造父类,尽量不在类的构造器中创新、初始化大量的对象或执行某种复杂耗时的逻辑运算;
12.在应用对象后主动清楚对象的引用,可以加速JVM对垃圾内存的回收;
13.对于固定无更改的函数可用final来缩短时间;
14.拷贝数组采用System.arrayCopy()效率高;
15.采用0值作为判断条件更好->for语句;
16.尽量一个try...catch解决问题;
17.若for语句内有if语句且数目多,最好移到外面。
for(int i=0;i<10000;i++){
if(isTrue){
doThis();
}else{
doThat();
}
}
if(isTrue){
for(){
doThis();
}
}else{
for(){
doThat();
}
}
18.对于数目已知的ArrayList最好用ensureCapacity进行限制;
19.进行List元素插入用LinkedList;进行查找已存在元素用ArrayList;
   List list=new ArrayList();
   List list=new LinkedList();
20.采用StringBuilder处理字符串串联操作;
21.字符串的长度先计算,不要每次都循环进行length();
22.取字符串里的字符,最好先通过tocharArray()方法获取字符数组;
23.字符串->Double效率低于数字->Double
24.直接写入数据ReadWrite效率要低于ReadWriteBuffer
25.最好不要采用预编译或者不预编译,直接采用操作符格式化数据效率高
26.极力避免多次进行对文件的读取,比如文件长度等
27.JNI技术是为了将其他语言转化到java来
28.JNI使用要点:1.使用C语言中的方法前加native;2.导入C的包头;3.C语言编写注意数据的接收的不同
29.如果没有显式的编写不带参数的类的构造函数,系统默认有。但如果写了,就不允许A a=new A();这种形式了
30.子类在初始化时,会递归的调用父类的构造函数
31.对静态变量的赋值在构造函数中应避免重复赋值
32.不要在类的构造函数中创建类的实例
33.接口可以多重继承,使用的是extends而不是implements;
34.当声明类不是Pulic时,该类不能被除该类所在包的以外的其他类继承
35.类的继承层次不宜太深;
36.接口与抽象类的不同:1、接口中所有属性和方法都必须为Public类型;2、接口所有属性必须是常量;3、接口中的方法不能有方法体;4、接口只能被类实现或者被接口多重继承,抽象类只能被类单继承5、接口不能作为主应用程序独立运行,抽象类在特定下可以
37.内部类一般用非Public的具体类代替,设计中尽量使用接口(Interface)
38.Servlet的方法init、service、destroy等方法对应了JSP中的jspInit、jspServer、jspDestory方法。
39.Tomcat应设定最大和最小线程池
40.消息bean、实体bean、会话bean
41.JMS:点对点PTP和发布/订阅Pub/Sub
42.JDBC驱动:JDBC-ODBC网桥、JDBC-Native、JDBC-Net和纯java驱动
43.优化JDBC链接的性能:1、设置合适的预取行值、2、采用连接池技术3、合理应用事务4、选择合适的事务隔离层与及时关闭链接对象
44.Statement(不带参数)+PreparedStatement(参数 IN)+CallableStatement(参数IN OUT)
45.ResutlSet的get方法与字段必须一致,比如将String转成int会消耗很多时间
46.按需select,不要动不动就*
47.创建模式:抽象工厂(Abstract Factory)、单件(Singleton)、原型(Prototype)、构建者(Builder)
48.结构模式:适配器(Adapter)、门面(Facade)、桥接(Bridge)、组合(Composite)、装饰器(Decorator)、共享元(Flyweight)、代理(Proxy)
49.JNDI技术主要可以查找网络以下资源:EJBHome对象、DataSource对象、JMS ConnectionFactory对象、JMS 主题/队列
50.消息门面模式+返回值打包亦可以优化性能
51.采用返回值打包模式,返回的对象必须是可序列化的(可采用Serializable和其他方法把变量转化成可序列化的对象)
52.多进程技术因为每个进程独有自己独立的运行空间,每个进程度需要复制父进程的所有资源,成本昂贵
53.由于添加了必要的同步操作,可能出现客户端得不到及时响应,关于初始化线程池的最大容量,应该根据实际的客观情况,通常情况下的原则是将连接池的最大容量设置为可能出现的最大并发数量的近似值。
54.泛型是JDK5中最具代表性的新特性之一,可以预先设定集合对象所存储的对象类型。
List<String> myList=new ArrayList<String>()而不要用强制转换去获取集合的对象
55.for(String arg:args)
56.弱引用可用于内存泄露的问题,声明为弱引用,虚拟机会优先对该对象进行回收
57.WeakHashMap是解决Java编程中集合对象引起内存泄露的最为有效的类
58.应用会因为对象没有实现Serializable接口而抛出NotSerializableException异常
59.在对集合和数组进行遍历时,最好使用for-each结构,可以保证所有的类型安全且删除了混乱。
60.优美编程:
   public class Frequency{
      public static void main(String [] args){
       Map<String,Integer> m=new TreeMap<String.Integer>();
       for(String word:args){
          Integer freq=m.get(word);
          m.put(word,(freq==null?1:freq+1));
     }
}
1
0
分享到:
评论

相关推荐

    Java程序性能优化读书笔记脑图

    Java程序性能优化 笔记 脑图

    java代码优化笔记

    在进行Java代码优化时,有多个方面需要考虑,本文档提供的是一系列详细的优化建议,涵盖了异常处理、资源管理、数据结构使用、性能提升等多个角度。首先,异常处理是代码优化的重要环节。不应该对所有异常都使用通用...

    狂神说JAVA的所有笔记.zip

    同时,可能会涵盖JVM(Java虚拟机)的工作原理,包括内存管理、类加载机制、性能优化等方面,这对于理解和优化JAVA程序的运行效率极其重要。 最后,笔记还可能包含了实际项目开发中的经验分享,如MVC框架Spring的...

    java学习笔记markdown

    这些基础知识是理解和编写任何Java程序的基石。 2. **面向对象编程**:深入讲解Java的面向对象特性,包括类、对象、封装、继承、多态等概念。这部分内容是Java的核心,有助于理解如何构建可维护和可扩展的软件系统...

    韩顺平编写的java学习笔记(全)

    - **Java程序运行**: Java程序需要在Java虚拟机(JVM)上运行。这意味着只要系统安装了合适的JVM,Java程序就可以在这个平台上运行。 #### 开发流程简述 1. **编写源文件**:使用`.java`扩展名保存源代码。 2. **...

    java笔记 java笔记

    Java的设计理念是“一次编写,到处运行”,这意味着编写的Java程序可以在任何安装了Java虚拟机(JVM)的设备上运行。 #### 1.1 Java的特点 - **面向对象**:Java是一种纯粹的面向对象的语言,几乎所有的数据都是以...

    java全套培训笔记

    笔记可能包含JUnit的使用,它是Java的单元测试框架,以及如何使用IDE(如Eclipse、IntelliJ IDEA)进行调试和性能优化。 最后,笔记可能还会介绍如何进行有效的代码管理和版本控制,如Git的使用,以及持续集成/持续...

    Java 学习笔记Java学习笔记

    8. 数据库操作:Java JDBC(Java Database Connectivity)允许Java程序与各种数据库交互。它提供DriverManager、Connection、Statement、PreparedStatement和ResultSet等接口和类。 9. Swing GUI:Swing是Java的...

    李兴华java笔记

    8. **JVM原理**:理解JVM(Java虚拟机)的工作原理有助于优化程序性能。笔记会涉及类加载机制、内存模型、垃圾回收等JVM核心概念。 9. **设计模式**:笔记会介绍常见的23种设计模式,如单例模式、工厂模式、装饰器...

    张龙JAVA圣思园笔记

    JVM是Java程序的运行环境,理解其工作原理对于优化代码至关重要。笔记可能涵盖了JVM内存模型(堆、栈、方法区、本地方法栈、程序计数器),垃圾收集(GC)机制,类加载过程,以及如何通过JVM参数进行性能调优。 ...

    Java基础尚硅谷宋红康学习笔记

    【Java基础】 Java是一种广泛使用的面向对象...这些是Java基础知识和高级技术的主要组成部分,掌握它们能够帮助开发者构建稳定、高效、可维护的Java应用程序。通过深入学习和实践,你可以不断提升自己的Java编程能力。

    阿里巴巴Java性能调优实战(2021-2022华山版)+Java架构核心宝典+性能优化手册100技巧.rar

    但是在项目的开始阶段,没有必要过早地介入性能优化,只需在编码的时候保证其优秀、高效,以及良好的程序设计。 在完成项目后,就可以进行系统测试了,可以将以下性能指标,作为性能调优的标准,响应时间、吞吐量、...

    韩顺平老师java视频课堂笔记

    3. **异常处理**:Java异常处理机制是程序健壮性的关键,笔记中会有异常的分类、抛出和捕获机制,以及自定义异常的实践示例。 4. **集合框架**:Java集合框架是存储和管理对象的重要工具,包括List、Set、Map等接口...

    Java语言基础笔记

    例如,每个Java程序都从`public class`开始,这是程序执行的入口点。 接着,我们探讨Java的数据类型。Java有两大类数据类型:基本类型(如int、float、boolean)和引用类型(如类、接口和数组)。基本类型直接存储...

    java精华学习笔记

    - **流程控制语句**: if条件语句、for循环、while循环和switch-case语句用于控制程序的执行流程。 2. **面向对象编程** - **类与对象**: 类是创建对象的模板,对象则是类的实例。理解类的定义、属性(字段)和...

    Java学习笔记(源码)

    13. **JVM原理**:理解Java虚拟机的工作方式,包括类加载、内存管理和垃圾回收机制,有助于优化程序性能。 14. **Java 8及更高版本的新特性**:例如lambda表达式、Stream API、Optional类等,这些新特性使Java编程...

    java校招学习笔记

    1. **Java语法**:变量、数据类型(基本类型和引用类型)、运算符、流程控制(条件语句和循环语句)、方法、类和对象的概念。 2. **面向对象编程**:封装、继承、多态三大特性,以及抽象类、接口和实现的深入理解。...

    JAVA学习笔记 林信良

    书中还详细阐述了异常处理,这是Java程序健壮性的重要组成部分。读者将学习如何使用try-catch-finally结构捕获和处理异常,以及如何自定义异常。 此外,《JAVA学习笔记》还涵盖了集合框架,包括ArrayList、...

    java超强学习笔记

    这部分是学习任何编程语言的起点,对于理解Java程序的运行机制至关重要。 2. **面向对象编程**:Java的核心特性之一就是面向对象,笔记可能会讲解类、对象、封装、继承、多态等概念,以及如何通过这些概念来设计和...

    Java随堂笔记

    这份“Java随堂笔记”正是为了帮助初学者以及希望巩固Java知识的开发者而编写的。笔记内容涵盖了Java的基础到进阶知识,特别是那些在企业开发中不可或缺的部分。 1. **Java基础** - **数据类型**:包括基本数据...

Global site tag (gtag.js) - Google Analytics