Java程序如何优化??

程序优化的方法有很多,在这里只介绍几个常用的方法。在说程序优化之前,我们得了解一些程序开放过程中的问题,初学者都知道,Java程序中有类、接口、方法、属性等,当你编程一个java程序时,总是在不停的调用方法和属性,从这个类调用到那么类,又从那个类调用到这个类,调得自己都头晕了,如果你没有写注解的话,我想过几天当你再次看代码时,连你自己都看不懂了,代码如果只有几十行还好,但是如果是上千行乃至上万呢,怎么办?呵呵,这个我是深有体会的,即使你可以看得清楚,但是自己做出来的软件不是给自己用的,是给客户用的,假如你卖出去一个软件,哪天出问题了,人家还得非找到你才能解决咧,如果我们写出来的软件能够对所有程序员来说都可以很轻易看懂的话,那么你的这个软件就是比较成功的,说了这么多,无非就是想说明在编写程序的时候,要尽量怀着人性化,可拓展化的思想去编程。

程序的优化最基本的一点就是命名要标准,在java编程中,经常采用的是驼峰命名法,什么?你不知道这个?好吧,在这里简单的说一下,总的规则是用相应的英文单词来表示,尽量做到别人一看就知道这个是干嘛用的,但是要尽量不要写成和系统自带的名字类似或者一样,这样很容易混淆;首先是类和接口的命名首字母大写,如果是由多个单词组合的则每个字母的首字母都大写,如定义一个聊天客户端类:ChatClient;而方法的命名则是第一个单词首字母小写,如定义一个处理聊天信息的方法:processChat();属性的命名则是:变量的都是用相应的单词来表示,小写,如定义一个计数变量:int count=0;如果是常量的话则全部大写,如果是两个单词,则用下划线分开,如:final BUTTON_LEFT;好了基本的命名方法都知道了,只要在平时的时候注意一点应该没有什么大的问题。

我觉得有句话说得很对“一个好的软件不是写出来的,而是调试出来的”,也就是说在编写程序时要边写边打印出来调试的信息,不要到整个程序都写完后才来运行,那样的话,如果出错了,是很难找到错误所在的。但是试试想想看,如果一个程序有很多的System.out.println(“”);这些调试语句的话,看起来不爽,而且本来没有错的,但是打印调试信息时却出错了,比如:if(data==null){System.out.println(data.getData());},看出来有什么错没有,呵呵,明明data已经为null了,但是还使用这个data.getData();这肯定会报空指针异常的啦。为了解决这种问题,就引用了一个日志模块的概念,什么是日志模块呢?其实日志模块就是单独的写一个类用来处理消息。下面给个设计示例:

//日志模块的类
public class LogTools {
	// 判断是否打印信息的标志
	private static boolean isDebug = false;

	// 处理一般信息的方法
	public static void INFO(Class cs, Object msg) {
		if (!isDebug) {
			// 如果不打印消息,则返回
			return;
		} else {
			// 获得系统的时间
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			// 将时间格式话
			String time = sdf.format(new Date());
			// 打印消息
			System.out.println("消息类型:INFO 日期:" + time + "类名:"
					+ cs.getSimpleName() + " 内容:" + msg);
		}
	}

	// 处理异常的方法
	public static void Exception(Class cs, Object msg) {
		if (!isDebug) {
			return;
		} else {
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			String time = sdf.format(new Date());
			System.out.println("消息类型:ERROR 日期:" + time + "类名:"
					+ cs.getSimpleName() + " 内容:" + msg);
		}
	}

}

 

当然这只是一个简单的例子,在这个类中,如果你不想打印,想保存在文件里,这也行,只要写个方法来实现就可以了,日志模块的好处就是可以对不同的信息集中来处理,如果你想要功能更多的话,可以下载logo4这个包,调用即可。

下面让大家看两个结构图:



                                   图(1)                                                                 图(2)

 

呵呵,如果问大家哪种设计模式更好,我想大家肯定会说是图(2)的好,这是为什么呢?这就要涉及程序优化的另外中方法,低耦合,高内聚的设计思想,何谓低耦合和高内聚呢?简单的说,所谓高内聚是指一个软件模块是由相关性很强的代码组成,只负责一项任务,也就是常说的单一责任原则,一个完整的系统,模块与模块之间,尽可能的使其独立存在,也就是说,让每个模块,尽可能的独立完成某个特定的子功能。就像图(1)所示,这里面的各个类之间呈网状结构,他们直接的耦合是十分高的,这样的程序是很脆弱的,如果要改变其中的一个类,则其他的几个也必须该,这对程序的拓展带来了很大的局限性,而图(2)则是呈星状机构,这中正是“低耦合,高内聚”的思想,这意味着,如果我们想改变其中的某个类,对其他的类的影响不是很大,也容易对程序进行拓展,举几个常用的设计模式,比如说事件监听模式,数据与界面分离模式等等,这些都是比较好的设计模式,只有自己在写程序的过程中慢慢的体会才能掌握到良好的设计模式。

 

DPARSF高级版 vs 基础版怎么选?没有T1数据也能做fMRI分析吗? 本文深度对比了DPARSF高级版与基础版在fMRI分析中的核心差异与适用场景,特别针对无T1数据的情况提供了实战解决方案。高级版依赖T1像实现高精度配准,适合需要精确解剖定位的研究;基础版则无需T1数据,适用于功能连接等相对空间要求不高的分析。文章还提供了版本选择决策树和常见问题解决方案,帮助研究者根据实际需求做出最优选择。 阅读详情

相关推荐

从按键开机到I2C隔离:手把手拆解一个智能硬件项目里的MOS管实战配置

本文详细解析了智能硬件项目中MOS管的实战配置,从按键开机电路到I2C总线隔离,全面覆盖电源管理和信号隔离的关键技术。通过PMOS+NMOS组合方案实现可靠的开机功能,并采用双NMOS方案优化I2C通信隔离,提升系统稳定性和信号质量。

weixin_28691741的博客 326

java开发——程序性能的优化方法

jvm(Java Virtual Machine),java虚拟机Java虚拟机是一个想象中的机器,在实际的计算机上通过软件模拟来实现。Java虚拟机有自己想象中的硬件,如处理器、堆栈、寄存器等,还具有相应的指令系统。jvm的内存模型:堆的垃圾回收分区:

weixin_52115456的博客 2590

Unity 游戏实例开发集合 之 Car Racing 2D (2D赛车) 休闲小游戏快速实现

Unity 游戏实例开发集合 之 Car Racing 2D (2D赛车) 休闲小游戏快速实现 目录 Unity 游戏实例开发集合 之 Car Racing 2D (2D赛车) 休闲小游戏快速实现 一、简单介绍 二、Car Racing 2D (2D赛车) 游戏内容与操作 三、相关说明 四、游戏代码框架 五、知识点 六、游戏效果预览 七、实现步骤 八、工程源码地址 九、延伸扩展 一、简单介绍 Unity 游戏实例开发集合,使用简单易懂的方式,讲解常见游戏的开发实现过程,方便

仙魁XAN 7704

java 程序性能优化-.让你的Java程序更快、更稳定

网站 更多书籍点击进入>> CiCi岛 下载 电子版仅供预览及学习交流使用,下载后请24小时内删除,支持正版,喜欢的请购买正版书籍 电子书下载(皮皮云盘-点击“普通下载”) 购买正版 封页 编辑推荐 Java程序员进阶必读经典,累计6次印刷,荣获51CTO读书频道“*受读者喜爱的原创IT技术图书奖” 数千读者好评,上万读者的选择,数万Java爱好者和程序员受益匪浅! 一个优秀的程...

CiCi岛的专栏 2985

从网格划分到结果解读:一次完整的子弹侵彻LS-DYNA仿真避坑指南

本文详细解析了子弹侵彻LS-DYNA仿真中的关键技术与避坑指南,涵盖网格优化、对称边界条件设置、沙漏控制参数调整及结果可信度验证。通过HyperMesh网格划分和LS-DYNA高级参数配置,帮助工程师提升仿真精度与效率,确保计算结果物理可信。

weixin_29816689的博客 407

Win11+VSCode+TeXLive:学术党必备的LaTeX环境配置避坑指南(2024最新版)

本文详细介绍了如何在Windows 11系统下,通过VSCode编辑器与TeXLive发行版配置高效的LaTeX学术写作环境。针对国内用户常见的镜像下载慢、插件配置复杂等问题,提供了优化方案和避坑指南,帮助科研人员和学生快速搭建流畅的学术写作工作流。

plum99的博客 623

Java 程序该怎么优化?(实战篇)

面试官:出现了性能问题,该怎么去排查呢?程序猿:接口响应那么慢,时间都花到哪里去了?运维喵:为什么你的应用跑着跑着,CPU 就接近 100%?分享一些真...

一猿小讲 1719

Pdu Router(PduR)模块

1. PduR路由基本功能 2. PduR总线网关功能 3. PduR缓存机制 4. 总结

weixin_43759043的博客 3850

Java 程序该怎么优化?(技巧篇)

搬砖者:为什么程序总是那么慢?它现在到底在干什么?时间都花到哪里去了?面试官:简单谈谈 Java 程序性能优化?1.字符串处理优化,乃优化之源。研发过程...

一猿小讲 1789

华为 MetaERP 总账模块依托 “交易即核算” 的事件驱动架构,与 Oracle EBS 相比,更强调业务事件自动触发财务动作、实时数据同步和智能规则引擎,实现业务与财务的深度融合

华为MetaERP总账模块采用"交易即核算"架构,相比Oracle EBS实现了三大突破:1)业务事件自动触发财务动作,如采购收货自动生成暂估凭证;2)业务财务数据实时同步,支持即时分析;3)内置智能规则引擎,实现自动匹配、核销和结转。该模块覆盖采购、销售、资产、薪酬等全业务场景,支持多维核算和关联交易自动抵消,显著提升核算效率与准确性。其中采购暂估、销售结转等场景实现全自动化处理,较EBS减少80%手工操作。

金牌架构师 227

基于BP神经网络PID控制的电机转速控制器设计复现

摘要:本文提出了一种基于BP神经网络PID控制的永磁同步电机转速控制方法,通过MATLAB/Simulink平台实现了算法复现。系统采用三层BP神经网络在线调整PID参数,包含输入层(误差、误差变化率、误差积分)、5节点隐含层和输出层(Kp、Ki、Kd)。仿真结果表明,相比传统PID控制,该方案具有更快的响应速度(上升时间减少约40%)、更小的超调量(降低约60%)和更强的抗干扰能力,在电动汽车电机驱动等复杂工况下表现优异。文中详细给出了PMSM数学模型建立、BP网络设计、权值更新算法及Simulink仿真

max500600的博客 308

Java程序性能和速度优化实例

          Java程序性能和速度优化实例   David Lee 例一:应用具有I/O Buffer功能Classimport java.io.*;  public class IoTest {public static void main(String args[]) { 

iBreathe的专栏 1209

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Java 程序该怎么优化?(工具篇)

程序员:为什么程序总是那么慢?时间都花到哪里去了?面试官:若你写的 Java 程序,出现了性能问题,该怎么去排查呢?工欲善其事必先利其器,为你呈上一箩筐...

一猿小讲 1153

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Java程序性能优化,如何让你的Java程序更快、更稳定

Java是目前应用最为广泛的软件开发平台之一,随着Java以及Java社区的不断壮大,Java早已不再是简简单单的一门计算机语言了,它更是一个平台、一种文化、一个社区。 作为一个平台,JVM虚拟机扮演着举重轻重的作用,除了Java语言,任何一种能够被编译成字节码的计算机语言都属于Java这个平台。Groovy、Scala、JRuby等都是Java平台的一个部分,他们依赖JVM虚拟机,同时Java平台也因为它们变得更加丰富多彩。 作为一种文化,Java几乎成为了“开源”的代名词,在Java程序中,有着数不清的

808

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Java虚拟机对程序的自动优化

一款优秀的Java程序除了体现在代码编写之外,还体现在编译器和虚拟机的优化上,编译器在编译Java代码时,会自动的对代码的运行逻辑进行一定的处理,当将Class文件加载到虚拟机时,虚拟机也会在类加载和运行的各个阶段对程序进行一定的优化,最后的效果就反应在了用户体验上。

Techck's blog 1069

java程序优化一些实践

Java程序优化的一些最佳实践 发表于2013-05-02 09:37| 12491次阅读| 来源IBM开发者社区| 56 条评论| 作者IBM开发者社区 Java性能优化数据库多线程 摘要:本文介绍了Java代码优化的过程,总结了优化Java程序的一些最佳实践,分析了进行优化的方法并解释了性能提升的原因。多角度分析导致性能低的原因并逐个进行优化使得程序性能得到极大提

当你在等以后,你就已经失去了永远 567

Java性能优化:让你的程序飞起来!

无论是开发高并发的Web应用,还是处理海量数据,性能优化都是Java程序员必须掌握的技能。通过优化代码、调整JVM参数以及使用性能分析工具,我们可以显著提升程序的运行效率。

代码不止,探索不息 1535

java并行程序优化_java程序性能优化

/一、java性能调优概述Amdahl定律:加速比与系统并行度和处理器数量的关系。Speedup≤\frac{1}{F+\frac{1-F}{N}}设加速比为Speedup,系统内必须串行化的程序比重为F,CPU处理器数量为N性能调优的层次:1.设计调优2.代码调优3.JVM调优4.数据库调优5.操作系统调优二、设计优化1.善用设计模式2.常用优化组件和方法2.1缓冲buffer2.2缓存cach...

weixin_33680199的博客 546

java程序优化

使用高效的数据结构:根据数据的访问模式和大小选择最适合的数据结构,比如ArrayList与LinkedList的选择依赖于你是否经常进行随机访问或频繁地在列表两端插入/删除元素。内存管理:调整JVM的堆内存大小(-Xms和-Xmx参数),以及年轻代和老年代的比例,以减少GC(垃圾回收)的频率和持续时间。同步与锁:最小化锁的使用范围,考虑使用更细粒度的锁或读写锁等高级同步机制。优化SQL查询:确保数据库查询是高效的,避免全表扫描,使用索引等。清理和重构代码,移除无用的代码和库,保持代码的简洁和高效。

weixin_57763462的博客 490

1024,程序员福利是这些??

大家好,我是亚索! 昨天是1024,祝大家程序员节节日快乐,快乐永远OOM,烦恼永远NPE(别说你不知道这两个词啥意思哈????)! 昨天过节,亚索一狠心一剁手又买了几本Java相关的书,因为无论是秋招结束还是真的步入工作了(没准还有春招呢????),不断学习,打好基础,温故而知新,亚索觉得都应该是一个技术人需要长期坚守的吧。 今天简单给大家介绍一下亚索知道的一些Java相关的较好的书籍,这些书籍无论是在准备面试还是在Java工作入门方面,都是有较大帮助的。 等等,你以为亚索忘了封面的事儿嘛,没

m0_49227304的博客 913

怎样优化java项目_Java 程序该怎么优化?技巧篇

搬砖者:为什么程序总是那么慢?它现在到底在干什么?时间都花到哪里去了?面试官:简单谈谈 Java 程序性能优化?01字符串处理优化,乃优化之源研发过程中,String 的 API 用的应该是最多,创建 String 对象,以及字符串分割处理那是常有的事儿。1.1. 字符串分割,谁更胜一筹?字符串分割,常用的方式有哪些?哪种方式好一些?方式一,经常用 String 提供的 split() 方法来满足...

weixin_35018103的博客 2138

如何优化JAVA程序开发,提高JAVA性能

通过使用一些辅助性工具来找到程序中的瓶颈,然后就可以对瓶颈部分的代码进行优化。一般有两种方案:即优化代码或更改设计方法。我们一般会选择后者,因为不去调用以下代码要比调用一些优化的代码更能提高程序的性能。而一个设计良好的程序能够精简代码,从而提高性能。下面将提供一些在JAVA程序的设计和编码中,为了能够提高JAVA程序的性能,而经常采用的一些方法和技巧。1.对象的生成和大小的调整。JAVA程序设计中

losky的专栏 852

Java程序的性能优化StringBuffer与Vector

Java程序的性能优化StringBuffer与Vector作者:佚名 来源:IT部落 2005-4-13 ? Java使得复杂应用的开发变得相对简单。毫无疑问,它的这种易用性对Java的大范围流行功不可没。然而,这种易用性实际上是一把双刃剑。一个设计良好的Java程序,性能表现往往不如一个同样设计良好的C++程序。在Java程序中,性能问题的大部分原因并不在于Java语言,而是在于程序本身。养成

hwalan博客 1508

调整了一下JVM内存,程序快了700%,Java程序优化笔记

Java程序性能优化是一个永远逃不开的话题,优化无处不在!一个偶然间,小编得到了一份Java程序性能优化的笔记,小编读完这份笔记后大为惊叹,实在是写的太好了,不忍独乐乐,于是把这份笔记免费分享出来,供大家参阅,共同学习,共同成长! 这份笔记涵盖了:Java性能调优概述、设计优化、Java程序优化、并行程序开发及优化、JVM调优、Java性能调优工具! 由于文章篇幅的限制,接下来小编只能为大家展示完整目录和部分内容,完整版的免费获得方式放在了文末!(具体的调优方式全部都在笔记之中) Java性能调优概述 性

weixin_47066028的博客 375

Java性能优化:程序优化

现在计算机的处理性能越来越好,加上JDK升级对一些代码的优化,在代码层针对一些细节进行调整可能看不到性能的明显提升, 但是我觉得在开发中注意这些,更多的是可以保持一种性能优先的意识,对一些敲代码时间比较短的同学挺有意义的。 一 循环条件下,循环体和判断条件中,都要避免对使用复杂表达式,减少对变量的重复计算 1.在循环中应该避免使用复杂的表达式。 在循环中,循环条件会被反复计

shaofei63的专栏 339
上一篇: java多线程及其相关知识点
下一篇: 数据库设计的三范式
Champion_netjava
博客等级 码龄16年 10粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值