Short 和Character 除了处理之外还有什么区别?

2023-11-25

据我所知:

  • “bytewise”,看起来它们是相同的(它们都是 2 个字节长);
  • Character然而,有更多的处理(静态.isLetter()方法等)。

虽然我的问题听起来很愚蠢,但它们是:

  • 除非我的第一个假设是错误的,否则为什么会有原始类型char and short因为它们具有相同的“内部长度”,并且无论如何,Java 中没有无符号原始类型?
  • Short is final,如果不是的话,可以Character已延长Short?

EDIT:给出答案,我错了:有isJava 中的一种无符号原始类型,那就是……char.

EDIT 2:@PatriciaShanahan 中也提到了这一点算术操作,一个char行为类似于无符号 16 位整数,就像short。这包括左移,即符号位is随身携带,就像short.


本质的区别在于short已签署,char是未签名的。

public class CharVsShort {
  public static void main(String[] args) throws Exception {
    short ffShort = (short)0xFFFF;
    char ffChar = (char)0xFFFF;

    System.out.println("all-1s-short = " + (int)ffShort);
    System.out.println("all-1s-char  = " + (int)ffChar);
  }
}

prints

all-1s-short = -1
all-1s-char  = 65535

The Java 语言规范第 4.2 节指出

积分类型有byte, short, int, and long,其值为8位、16位、32位和64位signed分别是二进制补码整数,以及char,其值为 16 位unsigned表示 UTF-16 代码单元的整数

(我的大胆)。它还明确给出类型的范围为

  • byte,从 -128 到 127(含)
  • short,从 -32768 到 32767(含)
  • int,从 -2147483648 到 2147483647,包含在内
  • long,从 -9223372036854775808 到 9223372036854775807,包含在内
  • char,从 '\u0000' 到 '\uffff'(含),即从 0 到 65535
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Short 和Character 除了处理之外还有什么区别? 的相关文章

  • 如何编写 Maven 构建脚本来执行 Java

    如何在构建过程中或构建刚刚完成后执行 Java 程序 可以直接从 pom 中执行此操作吗 mvn exec java Dexec mainClass org sonatype mavenbook weather Main EDIT 假设我想
  • 使用itext java库复制时pdf文件大小大大增加

    我正在尝试使用 Java 中的 itextpdf 库将现有的 pdf 文件复制到一些新文件中 我使用的是 itextpdf 5 5 10 版本 我在两种方式上都面临着不同的问题 PDFStamper 和 PdfCopy 当我使用 PDFSt
  • java 拖放

    我尝试熟悉java中的拖放 但我发现的所有教程都是 让我生气 我想要的只是从 JList 包含在名为 UserPanel 的自制 JPanel 中 拖动 PublicUserLabel 并将其放入从 JTabbedPanel 继承的自制类中
  • JAX-WS 入门 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有人可以推荐一些关于 JAX WS 入门的好教程吗 使用各种工具 如 wsgen 等 您可以从这里开始 通过 Java SE 6 平台介绍
  • 无法在 Intellij 中运行主类[重复]

    这个问题在这里已经有答案了 我有以下项目结构 ProjectRoot src Main examples libs My src文件夹被标记为sources在 Intellij 中 现在 当我想运行 Main 类时 出现以下错误 Excep
  • 当前平台不支持桌面 API

    我遇到过这个错误 java lang UnsupportedOperationException 当前平台不支持桌面 API 我将从我的 java 应用程序中打开一个文件 我用这个方法 Desktop getDesktop open new
  • 使用 https 的 Web 服务身份验证给出错误

    我编写了一个简单的 Web 服务 并使用摘要和 HTTPS 身份验证来保护它 我已经使用 Java 中的 keytool 生成了我的证书 当我通过创建 war 文件在 Tomcat 中部署 Web 服务时 axis 的欢迎页面正确显示 但是
  • 当我们使用赋值而不是比较时,如何评估 if/while 条件?

    我在学习 Java 的 OCA OCP 时发现了这个令人惊讶的事情 下面是第一段代码 其中 if 测试条件 部分 让我惊讶 public class BooleanIf public static void main String args
  • 用于制作代码编辑器的 JavaFX 相当于 JSyntaxPane 的什么?

    以前在 Swing 中 我使用过JSyntaxPane用于制作一个小型 Java 源代码编辑器 为了练习 我决定用 JavaFX 重做整个项目并添加对更多语言的支持 最好是尽可能多 不过好像没有什么类似的JSyntaxPane 一些研究让我
  • java绕中心旋转矩形

    我想围绕其中心点旋转一个矩形 它应该保留在应该绘制的位置并在该空间中旋转 这是我的代码 AffineTransform transform new AffineTransform transform rotate Math toRadian
  • 如何在 JmsMessagingTemplate.sendAndReceive 上设置等待超时

    我在 MVC 控制器中使用 JmsMessagingTemplate 的 sendAndReceive 但如果没有发送回复消息 它似乎会永远等待回复 该文档指出 返回 回复 如果无法接收消息 例如由于超时 则可能为 null 然而 我只是不
  • javadoc 子集/java 库组织

    我自己从来没有运行过javadoc 无论是在命令行还是ant 的 javadoc 任务 http ant apache org manual Tasks javadoc html 我将使用 ant 我需要为我编写的库生成 javadoc 问
  • Spring Security 角色层次结构不适用于 Thymeleaf sec:authorize

    我正在使用 Spring Security 3 2 5 RELEASE 和 ThymeLeaf 2 1 4 RELEASE 我已经在安全上下文中定义了角色层次结构 在我的视图层中我正在使用sec authorize属性来定义菜单项 我希望看
  • 获取接收者的设备令牌以在 Firebase 中发送通知

    所以我正在学习如何使用 firebase 发送设备到设备的通知 我看到了这个answer https stackoverflow com a 42548586 5237289发送通知 看起来很简单 现在 我知道要获取发件人的令牌 它应该如下
  • 在 Eclipse RCP 应用程序中禁用插件贡献

    我经常遇到这个问题 但尚未找到解决方案 每当我编写一个新的基于 Eclipse RCP 的应用程序并包含来自 Eclipse 平台的插件时 我都会 继承 其中一些插件的 UI 贡献 大多数贡献 菜单项 键盘快捷键 属性页 都很有用 但有时我
  • Spring MVC:通用 DAO 和服务类

    我正在 Spring MVC 中编写网页 我使用 Generic DAO 编写了所有 DAO 现在我想重写我的服务类 我该如何写 通用服务 我的 DAO 如下 DAO package net example com dao import j
  • ebean 映射到 BYTEA 的数据类型是什么?

    我有一个游戏 2 0 2 需要在数据库中存储一些文件的应用程序 我们使用 Ebean 作为 ORM 我相信我的数据库中需要一个 BYTEA 列来存储该文件 但我不确定在我的模型中使用什么数据类型 我应该使用某种Blob 或者只是一个byte
  • 用于生成 ISO 文件的 Maven 插件

    有没有可以生成ISO镜像的maven插件 我需要获取一些模块的输出 主要是包含 jar 的 zip 文件 并将它们组合成一个 ISO 映像 Thanks 现在有一个 ISO9660 maven 插件可以完成这项工作 https github
  • 假布尔值=真?

    我在一本书中找到了这段代码 并在 Netbeans 中执行了它 boolean b false if b true System out println true else System out println false 我只是不明白为什
  • Graphics2D setfont() 严重减慢了 java 应用程序的启动速度

    我正在用java制作一个游戏 它每秒刷新60次 每次执行循环时 我都会使用 g2d 来绘制图像和字符串 如果我这样做的话一切都会很好g2d setFont new Font Arial Font PLAIN 8 和抽绳 这将是正常的 但如果

随机推荐

  • 使用 unique_ptr 进行前向声明[重复]

    这个问题在这里已经有答案了 我发现将类的前向声明与std unique ptr如下面的代码所示 它可以使用 GCC 进行编译和工作 但整个事情看起来有点奇怪 我想知道这是否是标准行为 即标准所要求的 由于当我声明时 B 不是完整类型uniq
  • Android使用支持库来支持SearchView

    这是我的代码 if Build VERSION SDK INT gt Build VERSION CODES HONEYCOMB MenuItem searchItem menu findItem R id searchMenuItem S
  • @WebServlet 注释 web.xml 欢迎文件

    我想设置 JSP JavaBeans 项目的欢迎文件 我有一个名为 Controller java 的 servlet 带有以下 WebServlet 注释 WebServlet name Controller urlPatterns lo
  • SetValue 64位机器注册表

    我想在下面的注册表路径中设置 NoModify 的值 HKEY LOCAL MACHINE SOFTWARE Microsoft Windows CurrentVersion Uninstall XXXX 我使用下面的代码 它仅适用于 X8
  • Android Studio 与 Google Play:缺少 Google Play 服务

    我使用的是 Ubuntu 14 Android Studio 0 8 6 我正在使用 Genymotion 运行应用程序 我得到的响应是 W GooglePlayServicesUtil Google Play services is mi
  • 异步 HttpModule MVC

    我有一个包含以下代码的同步 HttpModule
  • Python:无法在 Matplotlib 中渲染 Tex

    我最近将笔记本电脑升级到 Snow Leopard 将 TeX 更新到版本 3 1415926 TeX Live 2011 MacPorts 2011 5 并安装了 Python 2 7 3 所有这些安装完成后 我运行了 macport s
  • Node.js 将响应对象句柄传递给子进程

    我有一个http服务器和一个分叉的子进程 我希望父级接收请求并使用以下方式传递给分叉进程worker send 并且工作人员应该能够使用相同的响应对象处理响应并将其发送回请求者 我尝试在第二个参数中发送响应对象worker send 但它给
  • ASP.NET MVC。检查用户是否获得 JavaScript 授权

    我正在使用 ASP NET MVC Framework 3 和表单身份验证 我知道 如何在服务器端检查用户是否有权执行某些操作 使用 Authorize 并且我知道如何在操作或视图中检查这一点 使用User Identity IsAuthe
  • C++ 是否对 POD typedef 进行值初始化?

    C 是否对简单对象进行值初始化POD类型定义 Assuming typedef T Ptr does Ptr 进行值初始化并保证相等 T 0 e g Ptr p Ptr return Ptr 确实如此 对于一个类型T T 值初始化类型的 对
  • 创建名为“entityManagerFactory”的 bean 时出错 调用 init 方法失败

    我正在使用 Spring 和 Hibernate 开发一个完整的堆栈 Web 应用程序 尝试运行一些测试代码 但我不断收到此错误 这是完整的堆栈跟踪 java lang IllegalStateException Failed to loa
  • 如何在布局中间插入 QWidget?

    我正在使用 Qt 框架来构建我的图形用户界面 我用一个QGrid布局整齐地放置我的 QWidget 图形用户界面如下所示 我的应用程序定期在运行时向 GUI 添加新的小部件 这些新的小部件通常不会添加在 QLayout 的末尾 而是添加在中
  • Android Jetpack Compose 中第二次更改后,观察 LiveData 不会触发

    我正在使用 viewModel 将数据传递到我的撰写视图 问题是我想通过在 viewModel 中的模型内归档来处理展开和折叠视图 因此 如果某些 UI 单击 Expand 方法 我将调用 viewModel 和 doExpand 方法 如
  • 如何使用 Django Admin 中的 FileField 小部件将文件上传到 BinaryField?

    我想创建一个模型Changelog并使其可从管理页面进行编辑 这是它的定义方式models py class Changelog models Model id models AutoField primary key True auto
  • 想要在 AVD 上的 SD 卡中创建文件夹

    我想在SD卡中创建文件夹 我在 android 终端中使用以下命令 CD卡 目录音乐 mkdir 音乐失败 权限被拒绝 尝试下面的代码 它工作正常 you need to run emulator before run the below
  • Windows Phone 7 - CameraTask 不工作

    我的 WP7 应用程序使用 CameraCaptureTask 拍照 然后将其显示在我的屏幕上 该任务在模拟器上运行良好 但是当我将其部署到设备上时它停止工作 在调试时 我发现 CameraCaptureTaskObject Show 被调
  • 如何从Iframe获取父窗口的URL?

    我知道这是一个安全问题 但是HTML5有什么办法吗 因为我看到下面的代码打开了一个窗口 其中父母的 URL 在推文框中 在 iframe 中试试这个 它将提醒父窗口的位置 URL alert document referrer
  • 如何使用swift在IOS中实现marquee标签

    如何实施跑马灯标签在 iOS 中 我在 Objective C 中找到了示例 但我使用的是 Swift 用于在 swift 中创建选取框 在项目中添加下面的类https github com cbpowell MarqueeLabel 为此
  • 如何在闪亮的数据表中保存排序?

    我在页面上有表格 可以在列中排序 在我使用反应表重新加载数据后 不再排序 这里是 server R 代码 library shiny shinyServer function input output Return the requeste
  • Short 和Character 除了处理之外还有什么区别?

    据我所知 bytewise 看起来它们是相同的 它们都是 2 个字节长 Character然而 有更多的处理 静态 isLetter 方法等 虽然我的问题听起来很愚蠢 但它们是 除非我的第一个假设是错误的 否则为什么会有原始类型char a