字符串常量

String字符串性能优化的几种方案

此生再无相见时 提交于 2020-02-04 14:53:24
String字符串是系统里最常用的类型之一,在系统中占据了很大的内存,因此,高效地使用字符串,对系统的性能有较好的提升。 针对字符串的优化,我在工作与学习过程总结了以下三种方案作分享: 一.优化构建的超大字符串   验证环境:jdk1.8   反编译工具:jad 1.下载反编译工具jad,百度云盘下载: 链接:https://pan.baidu.com/s/1TK1_N769NqtDtLn28jR-Xg 提取码:ilil 2.验证 先执行一段例子1代码: 1 public class test3 { 2 public static void main(String[] args) { 3 String str="ab"+"cd"+"ef"+"123"; 4 } 5 } 执行完成后,用反编译工具jad进行反编译:jad -o -a -s d.java test.class 反编译后的代码: 1 // Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov. 2 // Jad home page: http://www.kpdus.com/jad.html 3 // Decompiler options: packimports(3) annotate 4 // Source File Name: test.java 5

java字符串常量池知识

大兔子大兔子 提交于 2020-02-04 02:01:37
从一个博客上看到的6个题,先看看吧,如果都会了,这部分的知识就掌握的不错啦!输出结果在代码注释后面: test1: package StringTest; public class test1 { public static void main(String[] args){ String a = " a1 " ; String b = " a " + 1 ; System.out.println(a == b); } // true } test2: package StringTest; public class test2 { public static void main(String[] args){ String a = " ab " ; String bb = " b " ; String b = " a " + bb; // 编译器不能确定为常量 System.out.println(a == b); } // false } test3: package StringTest; public class test3 { public static void main(String[] args){ String a = " ab " ; final String bb = " b " ; String b = " a " + bb; // bb加final后是常量

java中String常量的存储原理

半世苍凉 提交于 2020-02-04 02:00:41
从一个博客上看到的6个题,先看看吧,如果都会了,这部分的知识就掌握的不错啦!输出结果在代码注释后面: test1: package StringTest; public class test1 { public static void main(String[] args){ String a = "a1";//“a1”在编译的时候就能确定,所以编译的时候,a1被放进了常量池中,同时a指向常量池中的a1对象 String b = "a"+ 1;//a和1这两个常量都能在编译时确定,所以他们相加的结果也能确定,因此编译器检查常量池中是否有值为a1的String对象,发现有了,因此b也指向常量池中的a1对象 System.out.println(a==b);//==判断的是a和b是否指向同一个对象,也就是同一块内存区域 }//true } test2: package StringTest; public class test2 { public static void main(String[] args){ String a = "ab"; String bb = "b"; String b = "a"+ bb; //编译器不能确定为常量 System.out.println(a==b); }//false } test3: package StringTest; public

java中String常量的存储原理

别说谁变了你拦得住时间么 提交于 2020-02-04 01:59:48
java中String常量的存储原理 从一个博客上看到的6个题,先看看吧,如果都会了,这部分的知识就掌握的不错啦!输出结果在代码注释后面: test1: package StringTest; public class test1 { public static void main(String[] args){ String a = " a1 " ;//“a1”在编译的时候就能确定,所以编译的时候,a1被放进了常量池中,同时a指向常量池中的a1对象 String b = " a " + 1 ;//a和1这两个常量都能在编译时确定,所以他们相加的结果也能确定,因此编译器检查常量池中是否有值为a1的String对象,发现有了,因此b也指向常量池中的a1对象 System.out.println(a == b);//==判断的是a和b是否指向同一个对象,也就是同一块内存区域 } // true } test2: package StringTest; public class test2 { public static void main(String[] args){ String a = " ab " ; String bb = " b " ; String b = " a " + bb; // 编译器不能确定为常量 System.out.println(a == b); } //

PHP基础语法

我怕爱的太早我们不能终老 提交于 2020-02-03 00:49:04
一、变量 1.1 变量名称 PHP中的变量是由一个“$”后面跟变量名来表示,变量名是区分大小写的。 一个有效的变量名由字母或者下划线开头,后面跟上任意数量的字母、数字,或者下划线。 1.2 给变量赋值 1.3 引用赋值 将“&”符号加到将要赋值变量前 1.4 变量的数据类型 $a=1 //$a是整形 $a=1.1 //$a是浮点型 $a="a" //$a现在是字符串型,PHP解析器会自动决定变量的类型 1.5 可变变量 <?php $a='hello'; $$a='world'; echo $a; //输出hello echo $$a; //输出world echo $hello; //输出world ?> 二、常量 2.1 声明常量 可以用define()声明常量 define('NAME','php'); //常量名是一个大写的字符串 echo NAME; //输出php 也可以用const关键字定义常量 const NAME='php'; echo NAME; //输出php 2.2 常量与变量的不同 #常量前没有“💲”符号; #常量只能用define()函数和const关键字定义,不能通过赋值语句; #常量一经定义就不能被重新定义或者取消定义 #常量的值只能是标量 2.3 用defined()函数检测常量是否存在 2.4 内置常量

php学习day4---常量与数据类型

↘锁芯ラ 提交于 2020-02-03 00:44:01
今天我学习了php有关常量的知识和数据类型的知识 下面是今天的学习内容: 一、常量   1.常量定义   常量是一个其中存储的数据不会也不应该改变的 “标识符”。通常情况下,常量的定义有两种方法: //第一种方法 //define(“常量名”,“常量值”); define("HH","123"); //第二种方法 //const 常量名=常量值; const HH = 123;   常量的取值方法:两种方法 //直接使用名字,或者通过constant()函数取值 //直接使用其名 echo HH; // HH = 123 //使用constant(“常量名”)函数,注意:常亮名是个字符串 echo constant("HH"); // HH=123   常量有以下几个特点:     1.常量无需$来使用。     2.常量的值不可以改变也不能销毁。     3.具有超全局作用域。     4.常量只能储存标量。   在一个项目中,是由多个人员来共同开发,那么如何判断一个常量是否存在或被别人定义呢? 在这里,我们给出以函数,这个函数就是专门判断常量是不是存在的:        defined(“常量”)     如果存在,返回true,不存在,则返回false   在php当中如果使用一个未定义的常量会报错,但是仍然会将该常量当有值。   预定于常量  

php : 基础(2)

眉间皱痕 提交于 2020-02-03 00:34:59
常量 常量是相对于变量来说的:是一个其中存储的数据不会也不应该改变的“标识符”。 常量的使用,就2个方面:定义,取值。 常量的定义 //常量定义语法1: //define("常量名", 常量值); define("PI", 3.14); define("SCHOOL", "传智播客"); //定义形式2: //const 常量名 = 常量值; const CC1 = 1234; const CC2 = 'abcd'; 常量的使用——取值 也有两种形式:直接使用名字,或通过constant()函数取得其值; //使用形式1:直接使用其名字 echo "<br />常量PI的值是:" . PI; //注意,不能写在引号中 echo "<br />常量SCHOOL为:" . SCHOOL; $s1 = PI * 3 * 3; //求半径为3的圆面积 //使用形式2:使用函数constant()获得一个常量的值: //形式: constant("常量名");//注意:常量名是一个字符串 $s2 = constant("PI") * 3 * 3; echo "<br />s1= $s1, s2 = $s2"; echo "<br />" . SCHOOL . constant("CC1") . constant("CC2"); //取得常量值的灵活性语法: $i = 1; $c1 = "CC

Java工具类之String类

只谈情不闲聊 提交于 2020-01-30 04:10:32
String类:引用数据类型 字符串—将一堆字符串起来的串 1,在java.lang包下,不用导入 默认继承Object类,没有任何继承关系 实现了三个接口:Serializable , CharSequence , Comparable < String > 2,找寻构造方法创建对象 String s1 = “abc”;直接将字符串常量赋值给String类型 (值存储在字符串常量池中)是以对象存储的 String s3 = new String (); //通过无参数构造方法创建空的String对象,这个用处不大,一般用带参数的构造方法创建对象 String s2 = new String ( "abc" ) ; //通过String(“”)构造方法创建对象 String str = new String ( byte [ ] byte ) ; //将数组中的每一个元素转化成对应的char值,再组合成String字符串 -- -- byte [ ] value = new byte [ ] { 65 , 97 , 48 } ; String str = new String ( value ) ; //将三个数字对应的unicode码输出 System . out . println ( str ) ; String str = new String ( char [ ]

Java之字符串的比较相关方法

久未见 提交于 2020-01-29 02:40:34
在字符串对象比较当中,== 是进行对象的地址值比较,如果需要字符串的内容相比较,可以使用两个方法: 1.public boolean equals(Object obj):参数可以是任何对象,只有参数是一个字符串并且内容相同的才会给true,否则返回false。 注意事项: ①任何对象都能用Object进行接收 ②equals方法具有对称性,也就是a.equals(b)和b.equals(a)效果一样 ③如果比较双方一个常量一个变量,推荐将常量字符串写在前面。 例:"abc".equals(str) 2.public boolean equalsIgnoreCase(String str):忽略比较内容的大小写。 例:"kangkang".equalsIgnoreCase("KANGKANG") //true 觉得有用的小伙伴请点赞、评论或收藏一下多支持支持博主小弟,跪安~~ 来源: CSDN 作者: 一名小白的进阶之路 链接: https://blog.csdn.net/qq_40275740/article/details/103983222

JAVA中String.intern方法(JDK1.7及以上版本)

给你一囗甜甜゛ 提交于 2020-01-23 05:11:59
intern源码如下: /** * Returns a canonical representation for the string object. * <p> * A pool of strings, initially empty, is maintained privately by the * class {@code String}. * <p> * When the intern method is invoked, if the pool already contains a * string equal to this {@code String} object as determined by * the {@link #equals(Object)} method, then the string from the pool is * returned. Otherwise, this {@code String} object is added to the * pool and a reference to this {@code String} object is returned. * <p> * It follows that for any two strings {@code s} and {@code t}, * {@code s.intern