java字符常量与字符串常量的区别

形式上:字符常量是单引号引起的一个字符例:‘a’
字符串常量是双引号引起的若干个字符"helloworld"
含义上:字符常量相当于一个整形值(ASC||值),可以参加表达式运算,直接拿变量使用
字符串常量代表一个地址值(该字符在内存中存放的位置)
占内存大小:
字符常量只占一个字节
字符串常量占若干个字节
字符型常量使用char型变量来存储
字符串用char型的数组来存储

类型字符类型为char,字符串类型为string
两者都是常量,区别于使用方法的不同

时间: 2024-10-19 03:47:12

java字符常量与字符串常量的区别的相关文章

Java中的字符串常量池

最近做到一个题目: 问题:String str = new String("abc"),"abc"在内存中是怎么分配的?    答案是:堆,字符串常量区. 题目考查的为Java中的字符串常量池和JVM运行时数据区的相关概念."abc"为字面量对象,其存储在堆内存中.而字符串常量池则存储的是字符串对象的一个引用. Java中的字符串常量池 Java中字符串对象创建有两种形式,一种为字面量形式,如String str = "droid&qu

转载:Java中的字符串常量池详细介绍

引用自:http://blog.csdn.net/langhong8/article/details/50938041 这篇文章主要介绍了Java中的字符串常量池详细介绍,JVM为了减少字符串对象的重复创建,其维护了一个特殊的内存,这段内存被成为字符串常量池或者字符串字面量池,需要的朋友可以参考下 Java中字符串对象创建有两种形式,一种为字面量形式,如String str = "droid";,另一种就是使用new这种标准的构造对象的方法,如String str = new Stri

Java字符串常量池是什么?为什么要有这种常量池?

简单介绍 Java中的字符串常量池(String Pool)是存储在Java堆内存中的字符串池.我们知道String是java中比较特殊的类,我们可以使用new运算符创建String对象,也可以用双引号("")创建字串对象. Java中的字符串常量池 下图,清楚地解释了如何在Java堆内存中维护字符串常量池,以及当我们使用不同的方式创建字符串时在堆内存中如何存放. 之所以有字符串常量池,是因为String在Java中是不可变(immutable)的,它是String interning

字符常量、字符串

字符常量和字符串 's'和"s"是不同的. 's'是字符常量,它代表了一个整数,对应的是在机器字符表中的值. s='a'; //a的值为97 s='5'; //a的值为53 s=('5'-'0'); //a的值为5 "s"是字符串常量,他是以'\0'结尾的字符序列.从技术角度看,字符串常量就是字符数组.数组的最后一个元素是'\0',表示字符串结束. 声明定义字符常量.字符串常量 char s; //声明了一个字符串常量 char s[10]; //声明了一个长度为1

【C】字符串常量和字符数组

此次博客是转载某位博主的文章,不过现在找不到了,所以先声明一下. 先贴一段代码: #include <stdio.h> int main(int argc, const char** argv) { char str_1[6] = "Crazy1"; char* str_2 = "Crazy2"; if (str_1 == "Crazy1") { printf("%s\n", "字符数组OK")

Java中用字符串常量赋值和使用new构造String对象的区别

String str1 = "ABC"; String str2 = new String("ABC"); String str1 = "ABC";可能创建一个或者不创建对象,如果"ABC"这个字符串在java String池里不存在,会在java String池里创建一个创建一个String对象("ABC"),然后str1指向这个内存地址,无论以后用这种方式创建多少个值为"ABC"的字

【基础】Java 8 中的常量池、字符串池、包装类对象池

1 - 引言 2 - 常量池 2.1 你真的懂 Java的“字面量”和“常量”吗? 2.2 常量和静态/运行时常量池有什么关系?什么是常量池? 2.3 字节码下的常量池以及常量池的加载机制 2.4 是不是所有的数字字面量都会被存到常量池中?3 - 包装类对象池 $\ne$JVM 常量池4 - 字符串池 4.1 字符串池的实现——StringTable 4.2 字符串池存的是实例还是引用?5 - 补充 5.1 永久代为何被 HotSpot VM 废弃? 5.2 为什么 Java 要分常量.简单类型

Java中字符串常量池的陷阱

public class TestCase { static String ab = "ab"; static String getA() { return "a"; } static String getAB() { return "ab"; } public static void main(String[] args) { // 1 String _ab = new String("ab"); System.out.pr

浅谈JAVA中字符串常量的储存位置

在讲述这些之前我们需要一些预备知识: java中的内存被分成以下部分: 1.栈区:由编译器自动分配释放,具体方法执行结束后,系统自动释放JVM内存资源. 其作用有保存局部变量的值,包括:1.用来保存基本数据类型的值:2.保存类的实例,即堆区对象的引用(指针).也可以用来保存加载方法时的帧. 2.堆区:一般由程序员分配释放,JVM不定时查看这个对象,如果没有引用指向这个对象就回收. 其作用为用来存放动态产生的数据,比如new出来的对象.注意创建出来的对象只包含属于各自的成员变量,并不包括成员方法.