Java字符和字符串

在Java中,字符和字符串是两个不同的类型。

字符类型

字符类型char是基本数据类型,它是character的缩写。一个char保存一个Unicode字符:
在这里插入图片描述
因为Java在内存中总是使用Unicode表示字符,所以,一个英文字符和一个中文字符都用一个char类型表示,它们都占用两个字节。要显示一个字符的Unicode编码,只需将char类型直接赋值给int类型即可:
在这里插入图片描述
还可以直接用转义字符\u+Unicode编码来表示一个字符:
在这里插入图片描述
字符串类型

和char类型不同,字符串类型String是引用类型,我们用双引号"…“表示字符串。一个字符串可以存储0个到任意个字符:
在这里插入图片描述
因为字符串使用双引号”…"表示开始和结束,那如果字符串本身恰好包含一个"字符怎么表示?例如,“abc"xyz”,编译器就无法判断中间的引号究竟是字符串的一部分还是表示字符串结束。这个时候,我们需要借助转义字符\:
在这里插入图片描述
因为\是转义字符,所以,两个\表示一个\字符:
在这里插入图片描述
常见的转义字符包括:

  • " 表示字符"
  • \’ 表示字符’
  • \ 表示字符\
  • \n 表示换行符
  • \r 表示回车符
  • \t 表示Tab
  • \u### 表示一个Unicode编码的字符

例如:
在这里插入图片描述
字符串连接

Java的编译器对字符串做了特殊照顾,可以使用+连接任意字符串和其他数据类型,这样极大地方便了字符串的处理。例如:
在这里插入图片描述

如果用+连接字符串和其他数据类型,会将其他数据类型先自动转型为字符串,再连接:
在这里插入图片描述

Java的字符串除了是一个引用类型外,还有个重要特点,就是字符串不可变。考察以下代码:
在这里插入图片描述

观察执行结果,难道字符串s变了吗?其实变的不是字符串,而是变量s的“指向”。

执行String s = “hello"时,JVM虚拟机先创建字符串"hello”,然后,把字符串变量s指向它:
在这里插入图片描述
紧接着,执行s =“world"时,JVM虚拟机先创建字符串"world”,然后,把字符串变量s指向它:
在这里插入图片描述
原来的字符串 "hello"还在,只是我们无法通过变量s访问它而已。因此,字符串的不可变是指字符串内容不可变。

空值null

引用类型的变量可以指向一个空值null,它表示不存在,即该变量不指向任何对象。例如:
在这里插入图片描述
注意要区分空值null和空字符串"",空字符串是一个有效的字符串对象,它不等于null。

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值