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

上海心橙科技网站建设网站设计报价表

上海心橙科技网站建设,网站设计报价表,互联网网站建设价格,优化方案2022目录 不可变字符串字符串常量池 String类的继承关系String类的底层实现创建String对象字符串拼接常见面试题 String的常用方法字符串是否相等获取子串返回字符串的长度字符串的比较返回给定值的索引转换大小写返回给定索引的字符字符串替换把字符串转换为字符数组去字符串空白字… 目录 不可变字符串字符串常量池 String类的继承关系String类的底层实现创建String对象字符串拼接常见面试题 String的常用方法字符串是否相等获取子串返回字符串的长度字符串的比较返回给定值的索引转换大小写返回给定索引的字符字符串替换把字符串转换为字符数组去字符串空白字符串连接格式化字符串输出 String类表示字符串类型String是java标准类库的预定义类它是java的引用类型。 在java.lang包下可以直接使用。 String类有final修饰是最终类不能被继承。 不可变字符串 String类是不可变类这表明String对象包含的字符序列一旦创建就无法更改(没有setter方法)。不可变指的是对象不可变但是String类型的引用变量可以指向不同的字符串对象。 字符串常量池 一旦使用带双引号的字符串就会在字符串常量池存储该字符串。这就相当于创建了一个字符串对象。比如String s1 “abc”字符串abc就会被存储到字符串常量池中。 如果再次需要使用已经创建过的字符串就直接让字符串的引用变量指向常量池中的字符串。 比如String s2 “abc”; 因为前面已经在字符串常量池中创建了字符串abc所以系统会让s2直接指向该字符串也就是s1和s2指向同一个字符串对象abc。 如果是用构造方法创建字符串对象比如String s3 new String(“abc”); 此时会在堆内存新开辟一个空间存储这个String对象对象内部的成员变量会记录常量池中abc字符串的地址。但是对象本身的地址是堆内存中新开辟的新地址。 如果是通过构造器创建的String对象想获取存储的字符串的常量池地址可以使用intern实例方法 public String intern(); 该方法可以获取字符串对象存储的字符序列的常量池地址。如果常量池没有改字符串对象存储的字符序列就在常量池中创建该字符序列。 字符串常量池的位置在java7及其之后都是在堆内存中java6及其以前字符串常量池在方法区。 String类的继承关系 String类实现了三个接口Serializable、Comparable、CharSequence接口。 String类的底层实现 子以前String类的底层是char数组每个字符占2个字节。 从java9开始String、StringBuffer和StringBuilder都是采用byte[]数组再加一个byte类型的code实例变量(用于标识编码类型)实现。因此每个字符只占1个字节。 创建String对象 String类是唯一一个有单独创建方式的类它可以直接用双引号括起来的字符串来创建对象实例。比如abc这就相当于创建了一个String类的对象。 除此之外String类也可以像普通类一样用构造器创建对象。 介绍几个常见的构造器 String()构造一个空字符串的String对象。String(String original)创建一个和参数的字符串值相同的副本。String(char[] value)通过复制字符数组里的字符序列创建一个字符串。public String(char[] value, int offset, int count)通过复制字符数组里的子字符序列创建一个新的字符串。public String(byte[] bytes): 通过平台默认字符集将bytes数组的元素序列转换为字符串。String(byte[] bytes, int offset, int length) 通过平台默认字符集将bytes数组的子元素序列转换为对应的字符串。 字符串拼接 java的运算符还可以做字符串的拼接。 比如String s1 “abc” “edf”; 这样s1的值为abcdef。 再比如String s2 “007” 123; 这样s2的值为007123。注意如果其中一个操作数是字符串另一个操作数是任何类型都会被转换为字符串类型比如这里123是int类型会转换为字符串类型123再做拼接。 常见面试题 String s1 abc; String s2 a b c; System.out.println(s1 s2); // 结果为trueString s3 bc; String s4 a s3; System.out.println(s1 s4); // 结果为false这是因为java有常量优化机制如果等号右边的表达式全是常量那么编译阶段右边的结果就会被计算出来。如果右边的结果在左边变量数据类型的范围内就直接为其赋值否则赋值失败。 所以s2的值在编译阶段就已经确定了为abc第二行代码相当于String s2 “abc”所以s2会和s1一起指向字符串常量池中的abc所以结果为true。 注意String s2 “a” “b” “c”; 实际上是创建了1个字符串对象abc在编译阶段时三个单独的字符串就已经被合并为abc了只有abc会被存储到常量池中。 当右边表达式存在变量时编译期间不会存在常量优化机制。 对于String s4 “a” s3; 因为s3是一个变量。所以连接等号右边需要利用StringBuilder类之后再调用它的toString方法返回一个String对象这个对象有单独的地址所以结果不等于abc。 String的常用方法 字符串是否相等 1.public boolean equals(Object anObject); 将该字符串与指定对象比较如果二者包含的字符序列相等则返回true否则返回 false。 String类重写了Object类的equals方法只看两个String对象存储的字符系列的值是否相等。 推荐写法String s1 “hello”; “hello”.equals(s1); 不推荐写法String s1 “hello”; s1.equals(“hello”); 这是因为s1的值如果是null会产生异常用字符串字面量做主调可以避免这种异常。 要避免用运算符比较两个字符串对象是否相等等号运算符只是比较2个字符串引用变量指向的地址而不是比较字符序列的值。 2.public boolean equalsIgnoreCase(String anotherString); 如果希望比较字符序列时不考虑大小写就用这个方法。 获取子串 public String substring(int beginIndex); 获取从beginIndex位置开始到整个字符串结束的子字符串(包括beginIndex)。 public String substring(int beginIndex, int endIndex); 获取从beginIndex位置开始到endIndex位置的子字符串(包括beginIndex不包括endIndex)。 返回字符串的长度 public int length(); 返回该字符串对象的字符序列长度准确说是Unicode代码单元的长度。 字符串的比较 public int compareTo(String anotherString); 按字典顺序比较两个字符串返回正值、零、负值。 返回给定值的索引 public int indexOf(int ch); 返回给定值在字符串中第一次出现的索引 public int indexOf(int ch, int fromIndex); 返回给定值在字符串中第一次出现的索引但是搜索的位置从索引fromIndex(包含fromIndex)开始 public int indexOf(String str); 返回给定子串在字符串中第一次出现的索引 public int indexOf(String str, int fromIndex); 返回给定子串在字符串中第一次出现的索引但是搜索的位置从索引fromIndex(包含fromIndex)开始 public int lastIndexOf(int ch); 返回给定值在字符串中最后一次出现的索引 public int lastIndexOf(int ch, int fromIndex); 返回给定值在字符串中最后一次出现的索引但是搜索的位置从索引fromIndex开始往左边搜索 public int lastIndexOf(String str); 返回给定子串在字符串中最后一次出现的索引 public int lastIndexOf(String str, int fromIndex); 返回给定子串在字符串中最后一次出现的索引但是搜索的位置从索引fromIndex开始往左边搜索 如果没找到指定值这些方法都会返回-1。 转换大小写 public String toUpperCase(); 生成一个新的字符串新字符串把字符串的所有字母转换为大写格式 public String toUpperCase(); 生成一个新的字符串新字符串把字符串的所有字母转换为小写格式 返回给定索引的字符 public char charAt(int index); 返回字符串里参数指定索引对应的字符 字符串替换 replace(CharSequence target, CharSequence replacement); 将字符串中包含的target子串全部替换为replacement字符串替换是从左往右依次替换。 把字符串转换为字符数组 public char[] toCharArray(); 把字符串转换为新生成的对应字符数组。 去字符串空白 public String trim(); 返回一个新的字符串去掉原字符串开头和结尾的空白 字符串连接 public String concat(String str); 将指定字符串链接到字符串的结尾并返回连接后的字符串 格式化字符串输出 public static String format(String format, Object… args); 使用指定的字符串和参数返回一个格式化后的新字符串。 它和C语言的printf是一样的用法。
http://wiki.neutronadmin.com/news/129219/

相关文章:

  • 何苦做游戏网站公司名字大全列表
  • 建设工程质量检测网站多用户自助建站系统源码
  • 全球访问量最大的网站自建网站系统
  • 河北住房和城乡建设局网站首页法语网站建设
  • 网站租房做公寓企业信息管理系统源码
  • 佛山市研发网站建设哪家好温州百度关键词搜索
  • 百度权重是怎么来的搜索引擎优化的内容包括
  • 国内炫酷网站设计成免费crm是什么
  • 工程设计东莞网站建设技术支持自适应wordpress模板
  • 电子商务网站建设移动电商开发网页设计专业服务公司
  • 网站创意模板网站页面由什么构成
  • wordpress大型站点做国际贸易都用什么网站
  • 关于申请建设网站申请报告药监局网站建设方案
  • 个人代运营一般怎么收费合肥网站建设 乐云seo
  • 江苏艺居建设有限公司网站郑州工装定制厂家哪家好
  • 网站开发前端与后端区别揭阳网站制作费用
  • 博物馆门户网站建设网站数据怎么做论文注释
  • 外贸网站建设及优化ppt模块廊坊首页霸屏排名优化
  • 关于自己公司的网站怎么做适合新手的跨境电商平台
  • 有什么正网站做兼职的重庆市招标投标综合网
  • 淄博网站推广那家好重庆网站建设费用
  • 怎样做google网站优化设计七年级下册语文答案
  • 无棣住房建设局网站wordpress数据库显示
  • 母婴类网站怎么建设做羞羞事视频网站
  • 电子商务网站建设与管理习题答案建设公司网站模版
  • 二手车网站制作贵吗wordpress注册页面文字
  • 下载网站后怎么做的牛商网网站建设
  • 如何增加网站外链做公众号关注网站
  • 网站对联代码div策划会展网站建设
  • 比较酷炫的企业网站wordpress 根目录是