设为首页
收藏本站
开启辅助访问
全部
问与答
创意
技术
酷工作
生活
交易
资源
节点
飞墙
Follow
明白贴
报酬
登录
注册
飞社-令人惊奇的创意工作者社区-
›
首页
›
问与答
›
Java 为什么能给 char 类型赋值中文字符
FSHEX=FIND+SHARE+EXPRESS
飞社-令人惊奇的创意工作者社区- 是一个关于发现分享表达的地方
现在登录
没有账号?
立即注册
推荐主题
›
求职半个月,感觉快撑不住了,想听听大家的
›
共事了 7 年的同事今天 last day,还是会有
›
国内 TOP 大厂快满 3 年了,想裸辞自由几个
›
失业的程序员们都在干啥?
›
你能接受女朋友不要彩礼,但是和你谈之前经
今日热议主题
一款非常棒的英语学习工具
Watchtower 停止维护
有人用谷歌云 300 刀赠金的吗?在 cursor
哪些提示词可以让 AI 生成的内容味不那么重
远程岗位: cocos creator H5 游戏二次开发
请推荐编辑器&终端浅色主题配色
国产安卓怎么后台保活 fcm
开发了一个 comfyui 角色选择自定义节点,
年底了,收点 fp,
求一个首发 ios18 的 iPhone17ProMax
显示全部
|
最新评论
42 条回复
·
4667 次点击
31#
codehz
初学
2025-2-9 15:24:13
稍微偏个题 其实你 c 语言里也可以这么写,而且有实际用处(不过一般不是中文,而是四个英文字母组成的字面量,类似 enum State { stop = 'stop' }这样的用法,然后就可以在内存里见到这个字面量了,简易调试的时候很有用(不过有字节序的问题,所以现在也不常用)
32#
w568w
小成
2025-2-9 15:27:45
@w568w #29 手快发出去了。 再太长不看:char 就是 16 位整数,所以有的字符你无法赋值给 char 。int 则用于代表任意一个 Unicode 字符。Java 在 char[] 和 String 中储存字符串的方式是 UTF-16 编码。
33#
cpstar
小成
2025-2-9 15:40:51
你们不看字节码么? 这句代码经过编译器之后,就变成了 sipush 20320 ,管你是“你”还是什么,一律按照数字处理的,同理还有 boolean 只有 0 和 1 ,进行比较的时候其实就是判断等于 0 与否。本质都是一个数字,甚至观察 String 的本质,也是一堆 char ,一堆数字。
34#
sagaxu
初学
2025-2-9 15:48:30
@w568w Java 9 之后 String 内部用 byte[],编码有 LATIN1 和 UTF-16 两种
35#
w568w
小成
2025-2-9 15:52:39
@sagaxu #33 这我倒没了解过,有来源吗?我的断言是上面文档里的描述: > The Java platform uses the UTF-16 representation in char arrays and in the String and StringBuffer classes.
36#
sagaxu
初学
2025-2-9 15:55:48
@w568w https://openjdk.org/jeps/254
37#
my3157
小成
2025-2-9 16:04:08
大多数语言里面, char 都代表的是 single unicode scalar value, 而 utf8 只是编码规则, 长度是 1-4 bytes(问题中的 '我' 就会编码成 3 个 bytes), 覆盖了 BMP(基本多文种平面), 基本上够 99.99% 的各类用途, 而且 uft8 是兼容 ascii 且大小端无关的, uft16 以以上要考虑 ascii 兼容和大小端的问题
38#
zhouyin
楼主
小成
2025-2-9 16:09:59
@cpstar 这个帖子的初忠是 当前编辑器编码 utf8 输入汉字'你'时 输入了三个字节 E4BDA0 java 编译器隐士地把 utf8 字符字面量转成 utf16 4F60 等于十进制 20320
39#
zhouyin
楼主
小成
2025-2-9 16:11:06
@codehz 大佬 能不能发个具体能利用这样 enum 调试 c 的例子 不是 c 高手
40#
LanhuaMa
小成
2025-2-9 16:14:33
@theoriz #2 你有病,有病要去治,不治迟早会出事。
下一页 »
1
2
3
4
5
/ 5 页
下一页
浏览过的版块
职场话题
iPhone
宽带症候群
生活
程序员
返回顶部