首页 > 编程语言 >JVM之编写高效优雅 Java 程序

JVM之编写高效优雅 Java 程序

时间:2024-06-15 14:43:48浏览次数:20  
标签:Java 优雅 参数 JVM 使用 最小化 编写

面向对象
01、构造器参数太多怎么办?
如果参数很多,会导致构造方法非常多,拓展性差,代码难编写,且难以看懂。
用 JavaBeans 模式, get 和 set 一行构造编程多行代码实现,需要使用额外机制确保一致性和线程安全。
用 builder 模式,
1、5 个或者 5 个以上的成员变量
2、参数不多,但是在未来,参数会增加

02、不需要实例化的类应该构造器私有

03、不要创建不必要的对象

04、避免使用终结方法
finalizer

05、使类和成员的可访问性最小化

06、使可变性最小化

07、复合优先于继承

08、接口优于抽象类

09、可变参数要谨慎使用

10、返回零长度的数组或集合,不要返回 nul

11、优先使用标准的异常

12、用枚举代替 int 常

13、将局部变量的作用域最小化

14、精确计算,避免使用 float 和 double

15、当心字符串连接的性能

16、控制方法的大小

标签:Java,优雅,参数,JVM,使用,最小化,编写
From: https://www.cnblogs.com/velloLei/p/18249278

相关文章

  • JVM类加载机制
    类加载机制概述类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)和卸载(Unloading)7个阶段。其中验证、准备、解析3个部分统称为连接(Link)。初始化的单例......
  • jvm调优工具和调优策略
    JDK为我们提供的jvm工具命令行工具jps、jstat、jinfo、jmap、jhat、jstack可视化工具JMX、Jconsole、visualvm生产服务器推荐开启-XX:-HeapDumpOnOutOfMemoryError默认关闭,建议开启,在java.lang.OutOfMemoryError异常出现时,输出一个dump.core文件,记录当时的堆内存快......
  • JVM垃圾回收算法和垃圾回收器
    垃圾回收算法复制算法(Copying)将可用内存按容量划分为大小相等的两块,每次只使用其中的一块。当这一块的内存用完了,就将还存活着的对象复制到另外一块上面,然后再把已使用过的内存空间一次清理掉。这样使得每次都是对整个半区进行内存回收,内存分配时也就不用考虑内存碎片等复杂情......
  • JVM中的对象
    虚拟机中的对象对象的分配虚拟机遇到一条new指令时:根据new的参数是否能在常量池中定位到一个类的符号引用,如果没有,说明还未定义该类,抛出ClassNotFoundException1)检查加载先执行相应的类加载过程。如果没有,则进行类加载2)分配内存根据方法区的信息确定为该类分配的内存空......
  • JVM垃圾回收策略机制和算法
    判断对象的存活引用计数法给对象添加一个引用计数器,当对象增加一个引用时计数器加1,引用失效时计数器减1。引用计数为0的对象可被回收。(Python在用,但主流虚拟机没有使用)优点:快,方便,实现简单。缺陷:对象相互引用时(A.instance=B同时B.instance=A),很难判断对象是否该回收。......
  • Java--多维数组
    1.多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组2.二维数组    下列数组啊可看成一个两行五列的数组inta[][]=newint[2][5];3.输出二维数组的第一个数组中具体元素,通过调用打印函数printArray,以次输出第一个数组......
  • Java-云原生优化指南-早期发布--全-
    Java云原生优化指南(早期发布)(全)原文:zh.annas-archive.org/md5/df95e958a0ce92b3b5aecdf89067205b译者:飞龙协议:CCBY-NC-SA4.0第一章:优化与性能定义优化Java(或任何其他类型的代码)的性能通常被视为黑魔法。关于性能分析有一种神秘感——它通常被视为一种由“独行侠黑客,思考......
  • java第二十三课 —— 继承
    面向对象的三大特征继承继承可以解决代码复用,让我们的编程更加靠近人类思维,当多个类存在相同的属性(变量)和方法时,可以从这些类中抽象出父类,在父类中定义这些相同的属性和方法,所有的子类不需要重新定义这些属性和方法,只需要通过extends来声明继承父类即可。继承的示意图......
  • JavaScript实现发布与订阅
    1、代码classEventBus{constructor(){this.events={};}on(event,handler){if(!this.events[event]){this.events[event]=[];}this.events[event].push(handler);}emit(event,data){if(this.events[event]){this.eve......
  • Java Web学习笔记55——DQL基本查询
    DQL:DQL英文全称DataQueryLanguage(数据查询语言),用来查询数据库表中的数据。关键字:SELECT。SELECT是最为常见,最为重要的操作。查询在一个系统中,能占据90%的以上。查询也是最为复杂的一个操作。 查询五子句。准备数据: --DQL-基本查询--1.查询指定字......