承接上文Java性能优化(一)https://www.cnblogs.com/guo-xu/p/11019267.html

4)尽量确定StringBuffer的容量

  在说和这个标题相关之前,先说一下Java中StringBuffer的地位及适用场景。

  StringBuffer和StringBuilder和String这三种的存在是有点相似的,所以我们平常使用的时候不会在意这三种的区别,而是单纯的使用String,哪怕我修改100次这个变量。。。StringBuffer与StringBuilder相对于String有一个共同点,就是能够被多次修改但并不创建新的变量。这就使得在需要频繁修改对象的时候使用这两个比使用String更节省内存。

  StringBuffer和StringBuilder的最大的不同之处在于StringBuilder的方法不是线程安全的(不能同步访问)。

  StringBuilder相对于StringBuffer有速度优势,所以大部分时间内使用StringBuilder,但是在应用程序要求线程安全的情况下,则必须使用StringBuffer类。

  言归正传,前面说到,StringBuffer在变量被频繁修改的场合下适合使用,但是如果在定义StringBuffer类对象的时候不指定它的长度,则它会分配一个默认的长度(16),这也就导致了当定义的变量更改为长度大于16的时候还是会创建新的变量,虽然系统会自动实现变量数据的迁移以及旧变量的销毁,但是,执行的过程还是比较消耗内存的,所以在使用的时候还是要根据情况手动事先给这个变量分配一个合适的长度。

5)在java+Oracle的应用系统开发中,java中内嵌的SQL语言应尽量使用大写形式,以减少Oracle解析器的解析负担

  这一点恐怕很多人并没有在意,因为我们都知道,在所有的SQL中,是不分大小写的,所以在写SQL语句的时候都会按照平常的小写来书写语句,之前使用Navicat管理mysql的时候经常会用到Navicat的一键生成SQL语句的功能,然后会发现,它生成的SQL语句全部都是大写,之前也考虑过这个问题,也专门去网上搜索过一些相关的知识,不过网上都没有真正有价值的说法,唯一我觉得还稍微可以的就是说要把SQL语句中的关键字大写,其他的保持小写,这样是为了更好的分辨出关键字和其他语句,使SQL的层次更加清晰。

  不过Oracle和其他的SQL不同,用过Oracle的都知道,即使我在创建的时候创建的是varchar2类型的name列,等到表格里面查看时还是会自动变成NAME,也就是说,Oracle处理字符串的时候一律按照大写处理,这也就映射了我们的这个标题,在使用java操作Oracle的时候,尽量使用大写,这样在进入到数据库操作的步骤时,就可以省去Oracle将SQL转换为大写然后执行的步骤,也算是稍微提升了一点性能。

以上几点是我根据云时代架构中的文章总结的关于Java性能优化方面的几点小知识,虽然以现在的设备条件我们不这样做的话并不会产生很大的影响,但是作为一个对Java比较感兴趣的人同时工作时候也希望走这条路的我来说,还是会在这方面多花费一点时间研究研究,毕竟也是想当Java工程师的人嘛【滑稽脸】

云时代架构阅读笔记二——Java性能优化(二)的更多相关文章

  1. 云时代架构阅读笔记一——Java性能优化(一)

    Java语言学习了这么长时间之后,自己对于Java编程的一些细节还是稍微有点总结,正好根据云时代架构中<Java高级开发必会的50个性能优化的细节(珍藏版)>来叙述一些我和里面的点比较相符 ...

  2. 云时代架构阅读笔记六——Java内存模型详解(二)

    承接上文:云时代架构阅读笔记五——Java内存模型详解(一) 原子性.可见性.有序性 Java内存模型围绕着并发过程中如何处理原子性.可见性和有序性这三个特征来建立的,来逐个看一下: 1.原子性(At ...

  3. 云时代架构阅读笔记七——Java多线程中如何使用synchronized关键字

    关于线程的同步,可以使用synchronized关键字,或者是使用JDK 5中提供的java.util.concurrent.lock包中的Lock对象.本文探讨synchronized关键字. sy ...

  4. 云时代架构阅读笔记五——Java内存模型详解(一)

    什么是Java内存模型 Java虚拟机规范中试图定义一种Java内存模型(Java Memory Model,JMM)来屏蔽掉各种硬件和操作系统的访问差异,以实现让Java程序在各种平台下都能达到一致 ...

  5. 云时代架构阅读笔记十一——数据库SQL优化

    网上关于SQL优化的教程很多,但是比较杂乱.近日有空整理了一下,写出来跟大家分享一下,其中有错误和不足的地方,还请大家纠正补充. 1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 ...

  6. 云时代架构阅读笔记十五——之前碰到的Java面试题

    1.一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 可以有多个类,但只能有一个public的类,并且public的类名必须与文件名相一致. 2.Java有 ...

  7. 云时代架构阅读笔记十六——Hystrix理解

    背景 分布式系统环境下,服务间类似依赖非常常见,一个业务调用通常依赖多个基础服务.如下图,对于同步调用,当库存服务不可用时,商品服务请求线程被阻塞,当有大批量请求调用库存服务时,最终可能导致整个商品服 ...

  8. 云时代架构阅读笔记十四——我对Hash算法的理解

    Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值.这种转换是一种压缩映射,也就是 ...

  9. 云时代架构阅读笔记九——web应用存在的问题及解决办法

    web应用通常存在的10大安全问题 1.SQL注入 拼接的SQL字符串改变了设计者原来的意图,执行了如泄露.改变数据等操作,甚至控制数据库服务器, SQL Injection与Command Inje ...

随机推荐

  1. Entity Framework Migrations 数据迁移

    在使用Entity Framework 过程中,经常会遇到需要变更model 的状况,此时可以使用Migrations ,将每次变更记录以便后续更换机器或是运行在生产环境,持久层可保持一致. 在Pac ...

  2. 114、Java中String类之字符串文本复杂二次拆分

    01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...

  3. linux编译C

    1. 编译单个源文件 为了进行测试,你可以创建"Hello World"程序: #include #include int main(int argc, char **argv) ...

  4. Vue下URL地址栏参数改变却不能刷新界面

    在完成毕业设计(基于Vue的信息资讯展示与管理平台)的过程中,处理如下图所示的 点击左侧栏目列表跳转到对应文章列表 的问题时,初次点击可以跳转到对应的页面,但是当第二次点击时,虽然地址栏的参数改变了, ...

  5. 【剑指Offer面试编程题】题目1369:字符串的排列--九度OJ

    题目描述: 输入一个字符串,按字典序打印出该字符串中字符的所有排列.例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba. 输入: 每个 ...

  6. java课堂第一次随机测试和课件课后动手动脑问题解决(2019-9-16 )

    一.课堂测试 1.课堂测试:花二十分钟写一个能自动生成30道小学四则运算题目的 “软件” 要求 (1)减法结果不能为负数 (2)乘法结果不得超过一百,除法结果必须为整数 (3)题目避免重复: (4)可 ...

  7. ubuntu 用管理员身份进入系统

    我们需要以管理员的身份进入系统,才能在系统中畅通无阻     以管理员的身份进入系统,往下看: Ubuntu安装好后,root初始密码(默认密码)不知道,需要设置. 1.先用安装Ubuntu的时候创建 ...

  8. 新闻网大数据实时分析可视化系统项目——14、Spark2.X环境准备、编译部署及运行

    1.Spark概述 Spark 是一个用来实现快速而通用的集群计算的平台. 在速度方面, Spark 扩展了广泛使用的 MapReduce 计算模型,而且高效地支持更多计算模式,包括交互式查询和流处理 ...

  9. Android之Context和Activity互相转换

    1.context转换为activity Activity activity = (Activity) context; 2.从activity得到context 在activity的方法中用cont ...

  10. centos6忘记root密码

    Centos6 1.在开机时不要自动进入系统,按任意键进入GRUB引导菜单 2.按E键进入编辑模式 3.选中kernel选项继续按E键 4.在结尾处添加single关键字后按ENTER保存退出 5.之 ...