
发表日期: 2021-03-26 09:21:57 浏览次数:113
湘西网站推广【湘西办理400电话】湘西SEO优化、湘西微信公众号APP客户端小程序开发、湘西网站托管、湘西APP开发
湘西土家族苗族自治州,是湖南省下辖自治州(地级行政区),首府驻吉首市。位于湖南省西北部,介于东经109°10′~110°22.5′,北纬27°44.5′~29°38′之间,地处湘、鄂、黔、渝四省市交界处。
1952年8月成立湘西苗族自治区,1955年改为湘西苗族自治州,1957年9月成立湘西土家族苗族自治州。管辖7县1市,面积15462平方公里。湘西州属亚热带季风湿润气候,具有明显的大陆性气候特征。
2018年,全州常住人口264.95万人。其中城镇人口123.3万人,农村人口141.65万人。以土家族、苗族为主的少数民族占77.21%。2018年,湘西州实现生产总值605.05亿元,增长6%。
湘西州历史悠久,文化灿烂,辖区内有首批国家历史文化名城凤凰县,2015年入选首批国家全域旅游示范区,州内人文古迹众多,老司城及其周边有大量的自然及人文景观遗迹。湘西也是武陵文化的发源地之一。同时享受国家西部大开发计划政策,是单列的三个地级行政区享受相关政策的地区之一 [1] 。
2018年10月,获得“2018年国家森林城市”荣誉称号。 [2] 2021年1月29日,入选湖南省人民政府公布的2020年度真抓实干成效明显的地区名单。
很多计算机语言都提供了两种字符串,即不可变字符串和可变字符串,它们区别在于当字符串进行拼接等修改操作时,不可变字符串会创建新的字符串对象,而可变字符串不会创建新对象。
Java中不可变字符串类是String,属于java.lang包,它也是Java非常重要的类。
提示 java.lang包中提供了很多Java基础类,包括Object、Class、String和Math等基本类。在使用java.lang包中的类时不需要引入(import)该包,因为它是由解释器自动引入的。当然引入java.lang包程序也不会有编译错误。
创建String对象可以通过构造方法实现,常用的构造方法:
String():使用空字符串创建并初始化一个新的String对象。
String(String original):使用另外一个字符串创建并初始化一个新的 String 对象。
String(StringBuffer buffer):使用可变字符串对象(StringBuffer)创建并初始化一个新的 String 对象。
String(StringBuilder builder):使用可变字符串对象(StringBuilder)创建并初始化一个新的 String 对象。
String(byte[] bytes):使用平台的默认字符集解码指定的byte数组,通过byte数组创建并初始化一个新的 String 对象。
String(char[] value):通过字符数组创建并初始化一个新的 String 对象。
String(char[] value, int offset, int count):通过字符数组的子数组创建并初始化一个新的 String 对象;offset参数是子数组第一个字符的索引,count参数指定子数组的长度。
创建字符串对象示例代码如下:
// 创建字符串对象String s1 = new String();String s2 = new String("Hello World");String s3 = new String("\u0048\u0065\u006c\u006c\u006f\u0020\u0057\u006f\u0072\u006c\u0064");System.out.println("s2 = " + s2);System.out.println("s3 = " + s3);char chars[] = { 'a', 'b', 'c', 'd', 'e' };// 通过字符数组创建字符串对象String s4 = new String(chars);// 通过子字符数组创建字符串对象String s5 = new String(chars, 1, 4);System.out.println("s4 = " + s4);System.out.println("s5 = " + s5);byte bytes[] = { 97, 98, 99 };// 通过byte数组创建字符串对象String s6 = new String(bytes);System.out.println("s6 = " + s6);System.out.println("s6字符串长度 = " + s6.length());复制代码输出结果:
s2 = Hello Worlds3 = Hello Worlds4 = abcde s5 = bcde s6 = abc s6字符串长度 = 3复制代码
上述代码中s2和s3都是表示Hello World字符串,获得字符串长度方法是length(),其他代码比较简单,这里不再赘述。
在前面的学习过程中细心的读者可能会发现,前面的示例代码中获得字符串对象时都是直接使用字符串常量,但Java中对象是使用new关键字创建,字符串对象也可以使用new关键字创建,代码如下:
String s9 = "Hello"; //字符串常量String s7 = new String("Hello"); //使用new关键字创建复制代码使用new关键字与字符串常量都能获得字符串对象,但它们之间有一些区别。先看下面代码运行结果:
String s7 = new String("Hello"); ①String s8 = new String("Hello"); ②String s9 = "Hello"; ③String s10 = "Hello"; ④System.out.printf("s7 == s8 : %b%n", s7 == s8);System.out.printf("s9 == s10: %b%n", s9 == s10);System.out.printf("s7 == s9 : %b%n", s7 == s9);System.out.printf("s8 == s9 : %b%n", s8 == s9);复制代码输出结果:
s7 == s8 : falses9 == s10: trues7 == s9 : falses8 == s9 : false复制代码
==运算符比较的是两个引用是否指向相同的对象,从上面的运行结果可见,s7和s8指的是不同对象,s9和s10指向的是相同对象。
这是为什么?Java中的不可变字符串String常量,采用字符串池(String Pool)管理技术,字符串池是一种字符串驻留技术。采用字符串常量赋值时(见代码第③行),如图9-5所示,会字符串池中查找"Hello"字符串常量,如果已经存在把引用赋值给s9,否则创建"Hello"字符串对象,并放到池中。根据此原理,可以推定s10与s9是相同的引用,指向同一个对象。但此原理并不适用于new所创建的字符串对象,代码运行到第①行后,会创建"Hello"字符串对象,而它并没有放到字符串池中。代码第②行又创建了一个新的"Hello"字符串对象,s7和s8是不同的引用,指向不同的对象。

图9-5 字符串池
湘西网站推广【湘西办理400电话】湘西SEO优化、湘西微信公众号APP客户端小程序开发、湘西网站托管、湘西APP开发
服务热线
顶部
备案号: 苏ICP备11067224号
CopyRight © 2011 书生商友信息科技 All Right Reserved
24小时服务热线:400-111-6878 E-MAIL:1120768800@qq.com QQ:1120768800
网址: http://www.768800.com 网站建设:上往建站
关键词: 网站建设| 域名邮箱| 服务器空间| 网站推广| 上往建站| 网站制作| 网站设计| 域名注册| 网络营销| 网站维护|
企业邮箱| 虚拟主机| 网络建站| 网站服务| 网页设计| 网店美工设计| 网站定制| 企业建站| 网站设计制作| 网页制作公司|
400电话办理| 书生商友软件| 葬花网| 调温纤维| 海洋馆运营维护| 北京保安公司| 殡仪馆服务| 殡葬服务| 苏州殡葬一条龙| 朝阳殡葬| 苏州殡葬服务|
欢迎您免费咨询,请填写以下信息,我们收到后会尽快与您联系
服务热线:400-111-6878