设为首页
收藏本站
开启辅助访问
全部
问与答
创意
技术
酷工作
生活
交易
资源
节点
飞墙
Follow
明白贴
人人影库
报酬
登录
注册
飞社-令人惊奇的创意工作者社区-
›
首页
›
问与答
›
Java 为什么能给 char 类型赋值中文字符
FSHEX=FIND+SHARE+EXPRESS
飞社-令人惊奇的创意工作者社区- 是一个关于发现分享表达的地方
现在登录
没有账号?
立即注册
推荐主题
›
为什么中文编程没有发展下去呢
›
不太会炒股,但是每次都能回本,是不是运气
›
IP.im 准确方便的 IP 地址查询网站, UI 全
›
Java 找工作有感,行业经验大于一切
›
🎁 [内购限免] 新作品“钢琴小组件”发布啦
今日热议主题
iOS 上有啥比较好用的 RSS 阅读器嘛?
求个给孩子讲题的 ai,求推荐,不知道豆包
聊一个最近在做的 post-mortem debugging t
还有哪些场景是专业 Agent 的机会?
星际动能 2025 年招聘启事(人工智能预测业
从阿里云中国无障碍直连外网的方案有哪些?
周末闲着没事使用 immortalwrt-imagebuilde
损失几百万!苹果开发者账号被盗后,苹果不
出租房 2 千预算的电视怎么选?
7 年经验 Java 求职远程工作岗位, Web3 做
显示全部
|
最新评论
42 条回复
·
4481 次点击
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 页
下一页
返回顶部