首页 > 编程语言 >【JavaSE】基础篇(六)类型转换与进制书写

【JavaSE】基础篇(六)类型转换与进制书写

时间:2024-07-02 20:27:46浏览次数:22  
标签:类型转换 强转 进制 数据类型 JavaSE 范围 取值 byte 运算

隐式转换:

把一个取值范围小的数值或者变量,赋值给另一个取值范围大的变量。并转换类型。
在这里插入图片描述在这里插入图片描述
取值范围小的数据,和取值范围大的数据进行运算时,小的会先提升为大的之后,再进行运算。(byte、short、char 三种数据在运算时,都会提升为int,然后再进行运算)
而Java中数据类型不一致无法进行运算。

强制转换:

  • 将数值范围大的数据或变量,给取值范围小的变量赋值,不允许直接赋值,需要加入强转。
  • 格式:目标数据类型 变量名=(目标数据类型)被强转的数据。
  • 注意:强转可能会出现精度损失。(下文介绍)

进制书写

0b-二进制,0-八进制,0x-16进制。
so:编数值尽量不要以0开头,会判成八进制。转字符串没事。(jdk7以上才可以)

二进制的原反补码

在这里插入图片描述

so强转的精度损失在这里插入图片描述

常量优化机制

Java存在常量优化机制:byte b=3+4; 在编译的时候(javac)就会将3和4这两个字面量进行运算。产生的字节码文件里是:byte b=7;
即如果查看编译完成的.class文件的内容会发现,byte b=3+4;的位置变成了byte b=7;

标签:类型转换,强转,进制,数据类型,JavaSE,范围,取值,byte,运算
From: https://blog.csdn.net/dr002/article/details/140108935

相关文章

  • CentOS 7基于开源项目制作openssh9.8p1 rpm二进制包修复安全漏洞CVE-2024-6387 ——
    2024年7月1日,官方发布openssh9.8版本,修复了安全漏洞CVE-2024-6387。此处主要基于开源项目https://github.com/boypt/openssh-rpms.git制作,之前也有写过类似的文章,这里就不再赘述。CentOS5/6/7基于开源项目制作openssh9.6p1rpm包——筑梦之路_centos6openssh9.6rpm-CSD......
  • 正整数N转换成一个二进制数2
    题目网址:https://bzoj.org/p/Z1600Description输入一个不大于32767的正整数N,将它转换成一个二进制数Input输入只有一行,包括一个整数n(n<=32767)Output输出只有一行,包含一个二进制数,数字之间以空格分开Samples输入数据1100输出数据11100100Sol:转化二进制法......
  • 天平2——三进制的货币系统
    Description:    J王国的货币非常奇怪,面值都是3的若干次方即面值为1,3,9,27,81.........国王现在发现这些货币,每种只有一张这样的钱。于是国王发现从这些钱中先任意组合,再加钱的面值相加得到一个总和的话:则面值最小的为空集,也就是说一张钱也不要面值第2小的为{1},总......
  • Linux下二进制可执行文件分析 (nm,readelf,objdump 命令使用)
    最近在调试一些问题,发现几个命令很实用,记录一下。一 背景    也许大家都遇到过这种场景,就是有二进制代码,比如深度分析下此文件到底是什么格式的图片等,这篇文章就记录我分析下二进制可执行文件的过程,已经自己读写二进制文件的一些坑。分析的二进制执行文件为linux下......
  • 数据分析神器Pandas快速入门3类型转换
    序列类型转换3.1自动转换在pandas1.0中,引入了一种新的转换方法.convert_dtypes。它会尝试将Series换为支持pd.NA类型。以city_mpg系列为例,它将把类型从int64转换为Int64:>>>city_mpg.convert_dtypes()01919223310417......
  • 【JavaSE】(二)命令行/jdk编程
    jdkJavaDevelopmentKit(JDK)是一种用于开发Java应用程序的软件开发环境。它包括了Java运行时环境(JavaRuntimeEnvironment,JRE),以及一系列Java工具和Java基础类库。JDK(Java开发工具包)的组成JRE:Java的运行环境JVM:Java虚拟机,真正运行Java程序的地方。核心类库:Java自......
  • 基于二进制软件包 —安装 MySQL-8.0.28
    #!/bin/bash##********************************************************************#Author: Kevin#Date: 2024-06-23#FileName: install_mysql.sh#Description: Thetestscript#Copyright(C): 2024Allrightsreserved#****************************......
  • SpringMVC类型转换Converter使用
    Converter接口//S:表示接受的类型,T:表示目标类型publicinterfaceConverter<S,T>{/***实现类型转换的方法*/@NullableTconvert(Ssource);}自定义类型转换器/***@authorsongzixian*@create2019-07-23下午3:22*@description自定义类型转换器*/......
  • JavaSE 面向对象程序设计进阶 继承和方法重写 2024理论与内存详解
    继承面向对象三大特征:封装继承多态封装:对象代表什么,就封装对应的数据,并提供数据对应的行为,把零散的数据变成一个整体为什么要继承两个类中重复的代码(数据和方法)太多,所以要继承extend关键字类与类之间的父子关系让一个类和另一个类建立起继承关系publicclassStude......
  • MySQL-5.7.38 基于二进制包一键安装脚本
    #!/bin/bash##********************************************************************#Author: Kevin#Date: 2024-06-23#FileName: install_mysql.sh#Description: Thetestscript#Copyright(C): 2024Allrightsreserved#****************************......