Java中String类基础知识及应用

Java中String类基础知识及应用,第1张

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  
 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5695526.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存