当前位置: 首页 > news >正文

网站怎么添加域名职校计算机专业主要学什么

网站怎么添加域名,职校计算机专业主要学什么,建设外贸网站哪家好,wordpress模板推荐功能概述 字符串是Java编程中常用的数据类型#xff0c;本文对String部分常见功能做了对应实践以及分析。 功能实践 场景1#xff1a;字符串比较 用例代码 Test public void test_string_compare() {String s1 abc;String s2 s1;String s5 abc本文对String部分常见功能做了对应实践以及分析。 功能实践 场景1字符串比较 用例代码 Test public void test_string_compare() {String s1 abc;String s2 s1;String s5 abc;String s3 new String(abc);String s4 new String(abc);System.out.println(s1 s5: (s1 s5));System.out.println(s1 s2: (s1 s2));System.out.println(s1.equals(s2): s1.equals(s2));System.out.println(s3 s4: (s3 s4));System.out.println(s1.equals(s4): s1.equals(s4));System.out.println(s3.equals(s4): s3.equals(s4)); }运行结果 s1 s5: true s1 s2: true s1.equals(s2): true s3 s4: false s1.equals(s4): true s3.equals(s4): true结果分析 “” 比较基本类型时判断值是否相等比较对象类型时判断是否指向同一内存地址。equals是比较两个对象是否一样即所有成员的值是否相同。字符串如abc是放在常量池中的在内存中只存在一份副本所以s1 s5同一个字符串只有一个内存地址会在常量池中检查是否存在已有的字符串存在时返回原有字符串的内存地址就不会新建新的内存地址了。s3、s4指向的对象都是通过new创建的新对象内存地址不一样所以比较为false。 场景2字符串intern方法使用 用例代码 Test public void test_intern_v1() {// 未使用intern时String s1 new String(aaa777);String s2 aaa777;System.out.println(s1 s2);// 使用intern时String s3 new String(aaa777);s3 s3.intern();String s4 aaa777;System.out.println(s3 s4); }运行结果 false true结果分析 s1是指向堆中对象的引用s2是指向常量池中字符串的引用所以两者的内存地址不一样。intern()会查找常量池中是否存在aaa777的引用若存在返回否则把String对象添加到池中再返回在池中的引用。 场景3String、StringBuffer、StringBuilder性能比较 用例代码 Test public void test_String_StringBuffer_StringBuilder_efficiency() {testString();testStringBuffer();testStringBuilder(); }private void testString() {String s Hello;String s1 World;long start System.currentTimeMillis();for (int i 0; i 10000; i) {s s s1;}long end System.currentTimeMillis();long runtime (end - start);System.out.println(testString runtime: runtime); }private void testStringBuilder() {StringBuilder s new StringBuilder(Hello);String s1 World;long start System.currentTimeMillis();for (int i 0; i 10000; i) {s.append(s1);}long end System.currentTimeMillis();long runtime (end - start);System.out.println(testStringBuilder runtime: runtime); }private void testStringBuffer() {StringBuffer s new StringBuffer(Hello);String s1 World;long start System.currentTimeMillis();for (int i 0; i 10000; i) {s.append(s1);}long end System.currentTimeMillis();long runtime (end - start);System.out.println(testStringBuffer runtime: runtime); }运行结果 testString runtime:646 testStringBuffer runtime:1 testStringBuilder runtime:0结果分析 在执行方面来看StringBuilder最高、StringBuffer次之、String最低。 场景4StringTokenizer字符串分割 用例代码 Test public void test_StringTokenizer() {StringTokenizer st2 new StringTokenizer(HelloWorld!,); //指定自定义分隔符while (st2.hasMoreTokens()) {System.out.println(st2.nextToken());} }运行结果 Hello World !结果分析 StringTokenizer可按指定分隔符第字符串进行分隔。 场景5字符串与字符数组比较 用例代码 Test public void test_string_with_char_array_compare() {String s hello;String t hello;char c[] {h,e,l,l,o};System.out.println(s.equals(t));System.out.println(t.equals(c));System.out.println(s t);System.out.println(t.equals(new String(hello)));String s1 he llo;System.out.println(s s1); }运行结果 true false true true true结果分析 s.equals(t)值为true因为hello会存在堆中的字符串常量池中并且按照享元模式判断字符串是否存在不存在才创建所以s、t是同一个字符串引用t.equals©值为false按照String重写的equals方法会判断入参是否为String类型若不是则返回falses t值为true比较的是引用因为s、t是同一个引用所以相等t.equals(new String(“hello”))值为true因为String的比较逻辑会去字符串中的字符数组来比较字符都相等则返回trues s1值为true因为he “llo在编译器就会转化hello”存在常量区因为s已经放在常量池中与s1不会创建新的字符串s与s1是同一个字符串引用 功能总结 String常量池采用了享元模式Flyweight即会共享字符串判断字符串是否存在若存在则使用否则新创建。常量池它是一个由数组组成的表用来存储程序中使用的各种常量包括Class、String、Integer等各种基本的Java数据类型 intern()方法分析intern助理、实习生 intern方法主要把字符串放入字符串常量池中。有两种情况会将字符串放在常量池中 直接使用双引号声明的String对象会直接存储在常量池中如String s1 “aa” 。通过调用String提供的intern方法把字符串放在常量池中会检查字符串在常量池中是否存在存在则不处理若不存在则放入字符串常量池中。 Returns a canonical representation for the string object. jdk中的描述 根据jdk中描述intern()会返回字符串对象的规范标识即会从常量池中查找指定字符串若能找到则返回对应引用否则把String对象添加到池中再返回在池中的引用。 注明 a字符串放入字符串常量池需要满足上面所说的两种情况。b并不是调用了intern就会将字符串放入字符串常量池中会先检查字符串是否存在若存在则不处理。若不存在要看字符串在堆中是否已存在已存在只存对象引用减少对象的创建 c字符串常量池在jdk1.7后就从Perm区迁移到堆中这样对于字符串常量池中可以存对象引用减少了对象的创建就大大减少了字符串所占的空间了。 String、StringBuilder、StringBuffer使用总结 如果要操作的数据量比较小优先使用String类量多的话String本质是使用StringBuilder处理的会产生许多临时对象触发垃圾回收影响性能如果是单线程下处理大量数据优先使用StringBuilder类StringBuilder是线程不安全的单线程下可以使用减少线程同步的开销如果是多线程下处理大量数据优先使用StringBuffer类因为是线程安全的
http://www.hkea.cn/news/14480253/

相关文章:

  • 云阳营销型网站建设网络推广竞价开户
  • 网站建设行吗ps做网站页面先后顺序
  • 社区网站制作教程我的世界有什么做的视频网站
  • 成都行业网站怎么看一个网站是不是外包做的
  • 网站怎么做代码优化python在线编程器
  • 南京网站做的好的公司贵州省住房和城乡建设厅网网站首页
  • 北京网站设计公司新鸿儒山西网站建设费用
  • 西安手机商城网站建设提交网站收录
  • 手机app界面设计网站wordpress主题网址导航葬爱
  • 宁河网站建设品牌网站建设大概费用
  • 网站制作公司兴田德润简介网站订票策划方案
  • html怎么弄成网站wordpress钉钉登陆
  • 伊利集团网站建设怎么样呢wordpress建淘宝客
  • 兰州网站的优化企业微信用途
  • 证券公司网站建设方案互联网项目推广是什么
  • 北京做网站制作公司网站被360拦截怎么办
  • 中山网站建设文化价位成全视频免费高清观看在线电视剧
  • 漯河网站建设e阜阳 做网站
  • 有什么网站可以做代理的loop wordpress
  • 搜狗网站做滤芯怎么样重庆建设工程信息网站
  • 柳州做网站的个人网站导航模版
  • 苏州网站制作网站建设做一个中型网站需要多少钱
  • 贵州网站优化宠物网站模板下载
  • 建设网站网页打不开写一个网站需要什么技术
  • 中国建设银行信用卡官方网站wordpress 高级字段
  • 重庆快速网站推广做英文版网站
  • 曾经做网站网站代理wordpress后端响应慢
  • 做推送的网站有哪些html5 网站开发 适配
  • 福州建设网站linux增加网站
  • 海外社交网站开发百度学术官网入口网页版