Java字符串性能优化

对字符串的性能进行优化,找出一种方法能够以最快的时间创建赋值字符串。

我们使用String intern() 的方法来优化字符串。

完整代码

public class Optimization {public static void main(String[] args){String variables[] = new String[50000];      for( int i=0;i <50000;i++){variables[i] = "s"+i;}long startTime0 = System.currentTimeMillis();for(int i=0;i<50000;i++){variables[i] = "hello";}long endTime0 = System.currentTimeMillis();System.out.println("直接使用字符串: "+ (endTime0 - startTime0)  + " ms" );long startTime1 = System.currentTimeMillis();for(int i=0;i<50000;i++){variables[i] = new String("hello");}long endTime1 = System.currentTimeMillis();System.out.println("使用 new 关键字:" + (endTime1 - startTime1) + " ms");long startTime2 = System.currentTimeMillis();for(int i=0;i<50000;i++){variables[i] = new String("hello");variables[i] = variables[i].intern();          }long endTime2 = System.currentTimeMillis();System.out.println("使用字符串对象的 intern() 方法: " + (endTime2 - startTime2)+ " ms");}
}

结果输出

直接使用字符串: 3 ms
使用 new 关键字:5 ms
使用字符串对象的 intern() 方法: 10 ms

由于初始值的不同,所以对比的时间不具有对比性,我们应该在同等的条件下计算花费的时间。

完整代码

public class StringOptimization {public static void main(String[] args) {String variables[] = new String[50000];long startTime0 = System.currentTimeMillis();for (int i = 0; i < 50000; i++) {variables[i] = "hello";}long endTime0 = System.currentTimeMillis();System.out.println("使用字面量直接赋值字符串,花费时间:" + (endTime0 - startTime0) + "毫秒");String variables1[] = new String[50000];long startTime1 = System.currentTimeMillis();for (int i = 0; i < 50000; i++) {variables1[i] = new String("hello");}long endTime1 = System.currentTimeMillis();System.out.println("使用字符串对象花费时间:" + (endTime1 - startTime1) + "毫秒");String variables2[] = new String[50000];long startTime2 = System.currentTimeMillis();for (int i = 0; i < 50000; i++) {variables2[i] = new String("hello");variables2[i] = variables2[i].intern();}long endTime2 = System.currentTimeMillis();System.out.println("使用字符串对象intern()方法花费时间:" + (endTime2 - startTime2) + "毫秒");}
}

结果输出

使用字面量直接赋值字符串,花费时间:1毫秒
使用字符串对象花费时间:3毫秒
使用字符串对象intern()方法花费时间:8毫秒

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/564022.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java 数组排序及元素查找

对Java数组进行排序输出并查找任意元素所在位置下表索引值。 我们使用sort()方法对Java数组进行排序&#xff0c;使用binarySearch()方法来查找数组中的任意一个元素&#xff0c;定义一个printArray()方法来打印数组。 完整代码 import java.util.Arrays;public class MainC…

Java 数组插入元素

在我们已经创建好的Java数组里面插入元素。 我们自定义任意一个数组&#xff0c;使用sort()方法对数组进行排序&#xff0c;使用insertElement()方法向数组插入元素&#xff0c;我们还定义了一个printArray()方法来打印输出。 数组插入元素步骤 1 . 对原有数组进行排序。 2…

Java 数组输出

获取数组里面的内容并输出显示。 使用循环输出数组 public class Welcome {public static void main(String[] args){String[] runoobs new String[3];runoobs[0] "百度";runoobs[1] "谷歌";runoobs[2] "火狐";for (int i 0; i < runo…

Java 数组获取最大值和最小值

在已经定义的数组元素中获取所有元素中的最大值和最小值并输出显示。 通过Collections类的Collections.max()和Collections.min()查找数组中的最大值和最小值。 完整代码 import java.util.Arrays; import java.util.Collections;public class Main {public static void mai…

Java数组合并

将两个数组的元素合并输出显示。 通过List类的Arrays.toString()方法和List类的list.Addall(array1.asList(array2))方法将两个数组合并。 完整代码 import java.util.ArrayList; import java.util.Arrays; import java.util.List;public class Main {public static void ma…

Python 代码注释

首先我们可能会有这样的疑问&#xff0c;什么是代码注释&#xff1f;为什么要给代码注释&#xff1f; 什么是代码注释&#xff1f; 代码注释就是给一段代码加上解释说明&#xff0c;解释这段代码的作用或者实现的功能。 为什么要给代码注释&#xff1f; 解决别人看代码看不…

Python 中文编码

我们在平时学习或者工作的时候经常会遇到乱码的问题&#xff0c;还有的是英文输出正确&#xff0c;但是汉字输出就显示成了乱码。 为什么会出现乱码 &#xff1f; 编码和解码一一对应&#xff0c;把对应的数据编码&#xff0c;只有通过正确的方式解码才能得到对应的数据&…

Python3 语法

标识符 1 . 第一个字符必须是字母表中字母或下划线 _ 。 2 . 标识符的其他的部分由字母、数字和下划线组成。 3 . 标识符对大小写敏感。 4 . 在 Python 3 中&#xff0c;非 ASCII 标识符也是允许的了。 行与缩进 python最具特色的就是使用缩进来表示代码块&#xff0c;不…

数组差集

求两个数组的差集 使用removeAll()房啊来计算两个数组的差集 完整代码 import java.util.ArrayList;public class Main {public static void main(String[] args) {ArrayList objArray new ArrayList();ArrayList objArray2 new ArrayList();objArray2.add(0,"commo…

数组交集

求两个数组的交集。 使用retainAll()方法来计算两个数组的交集。 完整代码 import java.util.ArrayList;public class Main {public static void main(String[] args) {ArrayList objArray new ArrayList();ArrayList objArray2 new ArrayList();objArray2.add(0,"c…

数组并集

求两个数组的并集。 使用union()方法来计算两个数组的并集。 完整代码 import java.util.Arrays; import java.util.HashSet; import java.util.Set;public class Main {public static void main(String[] args) throws Exception {String[] arr1 { "1", "2…

Java 格式化时间

使用SimpleDateFormat类的format(date)方法格式化当前时间。 完整代码 import java.text.SimpleDateFormat; import java.util.Date;public class Main{public static void main(String[] args){Date date new Date();String strDateFormat "yyyy-MM-dd HH:mm:ss"…

Java 获取当前时间

Java获取当前的时间并显示在控制台。 使用Date类以及SimpleDateFormat类的format(date)方法输出显示当前时间。 结构输出 import java.text.SimpleDateFormat; import java.util.Date;public class Main{public static void main(String[] args){SimpleDateFormat sdf new …

Java 获取年份-月份

使用Java获取当前年份-月份及当前是一周一月一年的第几天。 使用Calendar类来输出年份&#xff0c;月份等。 完整代码 package com.zsh;import java.util.Calendar;public class Main {public static void main(String[] args) {//获取当前如下所示的时间及天数Calendar cal…

Java 时间戳转换成时间

使用java将时间戳转换成时间 。 使用SimpleDateFormat类的format()方法将时间戳转换成时间 。 日期和时间模式&#xff08;区别大小写&#xff0c;含义不同&#xff09; 符号含义yyyy年MM月dd日hh1~12小时制&#xff08;1-12&#xff09;HH24小时制&#xff08;0-23&#xf…

IDEA创建.properties文件

在idea当中新建一个properties时&#xff0c;就是新建一个ResourceBundle类型的文件 详细步骤 1 . 鼠标右击要创建properties文件的包&#xff0c;选择NEW – > Resource Bundle。 2 . 输入要创建的properties的文件名称。 3 . properties文件创建完成。

Sublime Text中文乱码

我们在使用Sublime Text打开java代码的时候中文内容显示的是乱码&#xff0c;那么我们该如何解决的呢&#xff1f; 一&#xff1a; 安装包管理器 按Ctrl~快捷键或者通过View->Show Console菜单打开命令行&#xff0c;粘贴如下代码 import urllib.request,os; pf Package…

Sublime Text报错please wait a bit whilePyV8 binary is being downloaded

Sublime Text在安装插件的时候&#xff0c;尤其是Emmet的时候&#xff0c;往往会报一个错误–please wait a bit whilePyV8 binary is being downloaded&#xff0c;这是说PyV8错误&#xff0c;那么我们如何解决这个错误的呢&#xff1f;只需要手动下载一个PyV8就好了。 1 . 下…

Java 数组扩容

数组扩容是指扩大数组容量添加元素。 在数组初始化后对数组进行扩容。 完整代码 public class Main {public static void main(String[] args) {String[] names new String[] { "A", "B", "C" };String[] extended new String[5];extended[…

Sublime Text3终极宝典

众所周知Sublime Text3是一款特别高效快捷的开发工具&#xff0c;深受开发人员的喜爱&#xff0c;那么作为程序员的我们一定要对Sublime Text3的快捷键有深入的理解和掌握。只有这样我们才能快速高效的进行编程开发。 Sublime Text3快捷键详细介绍 选择类 快捷键作用CtrlD选…