关于新手用java写题目,遇到的字符和字符串问题

我看到一遍很好的博客:

  https://blog.csdn.net/qq_37267015/article/details/78738512

1.首先了,java之中,没有像C语言那样的getchar(),即java不能读入一个字符,必须把它看作一个字符串,用next()读入。
2 . 不可变对象:有String类型的,即创建对象之后,对象是不可改变的。可以这样认为:如果一个对象,在它创建完成之后,不能再改变它的状态,那么这个对象就是不可变的。不能改变转台的意思是,不能改变对象内的成员变量,包括基本数据类型的值不能改变,引用类型的变量不能指向其他的对象,引用类型指向的对象的状态也不能改变。
     字符串常量池是java堆内存中一个特殊的存储区域,当创建一个String对象,假如此字符串值已经存在于常量池中,则不会创建一个新的对象,而是引用已经存在的对象。
   代码如下:
  String s1 = "ABC";
  String s2 = "ABC";
     在java中内存分为堆内存和栈内存,堆内存存放的是对象,栈内存存储对象的引用,字符串"ABC"存放在堆内存中,而s1,s2作为对象的引用则存放在栈内存中。
  1. public final class String
  2. implements java.io.Serializable, Comparable<String>, CharSequence
  3. {
  4.  
  5. private final char value[];
  6.  
  7.  
  8. private final int offset;
  9.  
  10.  
  11. private final int count;
  12.  
  13. private int hash;
    列如:String string = "abcdefg";
    string.charAt(2) = 'l';这个是错误的。
posted @ 2018-09-08 20:45  给我一个团队,干翻TX  阅读(203)  评论(0编辑  收藏  举报