好用的java优化技巧
使用+连接一个语句中的String
当你用Java实现你的个应用程序时,可能有人告诉过你不应该用+来连接String。如果你是在应用程序逻辑中连接字符串,这是正确的。字符串是不可变的,每个字符串的连接结果都存储在一个新的String对象中。这需要额外的内存,会减慢你的应用程序,特别是如果你在一个循环内连接多个字符串的话。
在这些情况下,你应该遵循技巧5并使用StringBuilder。
但是,如果你只是将字符串分成多行来改善代码的可读,那情况就不一样了。
Query q=em.createQuery(“SELECT a.id,a.firstName,a.lastName”
+“FROM Author a”
+“WHERE a.id=:id”);
在这些情况下,你应该用一个简单的+来连接你的字符串。Java编译器会对此优化并在编译时执行连接。所以,在运行时,你的代码将只使用1个String,不需要连接。
尽可能使用基元
避免任何开销并提高应用程序能的另一个简便而的方法是使用基本类型而不是其包装类。所以,好使用int来代替Integer,使用double来代替Double。这允许JVM将值存储在堆栈而不是堆中以减少内存消耗,并作出更有效的处理。
图片8.试着避免BigInteger和BigDecimal
既然我们在讨论数据类型,那么我们也浏览一下BigInteger和BigDecimal吧。尤其是后者因其而受到大家的欢迎。但是这是有代价的。
BigInteger和BigDecimal比简单的long或double需要更多的内存,并且会显著减慢所有计算。所以,你如果需要额外的精度,或者数字将超过long的范围,那么好三思而后行。这可能是你需要更改以解决能问题的方法,特别是在实现数学算法的时候。金融系统中正确的金额计算及存储方式,这个你了解下。
首先检查当前日志级别
这个建议应该是显而易见的,但不幸的是,很多程序员在写代码的时候都会大多会忽略它。在你创建调试消息之前,始终应该首先检查当前日志级别。否则,你可能会创建一个之后会被忽略的日志消息字符串。
这里有两个反面例子。
//don’t do this
log.debug(“User[”+userName+“]called method X with[”+i+“]”);
//or this
log.debug(String.format(“User[%s]called method X with[%d]”,userName,i));
在上面两种情况中,你都将执行创建日志消息所有必需的步骤,在不知道日志框架是否将使用日志消息的前提下。因此在创建调试消息之前,好先检查当前的日志级别。
- CAD培训班学费要多少[图]
- 电商美工培训班多少钱[图]
- 室内设计培训班学什么内容[图]
- 重庆天琥教育地址在哪里[图]
- 重庆天琥教育培训靠谱吗[图]
- 包装设计分类有哪些-包装设计有哪些种类[图]
- 平面设计要求-平面设计师需要具备什么条件[图]
- 装修怎么找设计师-如何找好的装修设计师[图]
- 室内设计专业怎么学-室内设计专业需要学什么[图]
- 报班学广告设计要多久-报班学设计一般多少钱[图]