栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java中String类基础知识及应用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java中String类基础知识及应用

String类被称为不可变字符串类型,它的对象在创建后不能被修改

可以图中得知输出结果为 传智教育中心,好似和前面所提的不能修改不符,下面将叙述原因。

首先要明确 " " 符号给出的字符串,都存储在字符串常量池中,字符串常量池在堆内存中。

从上图我们可以得知“传智”,“教育”,“中心”三个字符串都在字符串常量池中,但是“传智教育中心”,就不在字符串常量池中因为,“传智教育中心”并不是以“ ”的方式创造的。

name的值是由栈内存中的main方法中的地址确定的,我们对于name的修改只能修改它所指向的字符串的地址值,实际上并不能将String定义的值改变,只能重新开辟一个新的空间并指向这个字符串。

以""方式给出的字符串对象,在字符串常量池中存储,而且相同内容只会存储一份。(这样设计的目的是节省内存)以构造器new对象,每new一个都会产生一个新的对象,放在堆内存中,并且不放在字符串常量池中。

通过""定义字符串常量内存原理

 从上图可以得知在s1和s2进行比较时比较的是两个字符串的地址,而不是"abc"值。

 上图我们可看到由于new构造器所产生的“abc”并不存在于字符串常量池中,所以构造的两个“abc”

并不是同一个,所以s1和s2存储的地址并不一样。

String类常见面试题

 String常用API

 这段代码模拟用户登录,但是在判断用户登录名和密码是否正确时,即使输入了正确的用户名和密码,也会显示错误,原因在==运算符上,因为okName==name;实际比较的是两边的地址,所以显示用户名或者密码错误。为了解决这个问题我们可以使用equals方法。

 

 使用equals方法,就可以正常的运行。

在验证码的判断上我们可以应用 equalsIgnoreCase方法,这样在输入时可以随意输入大小写都可以成功判断。

package com.String;

public class StringAPI {
    public static void main(String[] args) {
        //1.获得字符串长度public int length()
        String name ="helloworld";
        System.out.println(name.length());
        //2.获取某个索引位置处的字符public char charAt(int index)
        System.out.println(name.charAt(1));
          //2.1遍历每个字符串的每个字符
          for (int i = 0; i  
 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/695382.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号