Byte类/包装类

包装类是一个常量类,可实例化 (意义:帮助对应的数据类型进行数据类型)

java数据类型包括内置数据类型和引用数据类型

内置数据类型 :含6中数字类型(四个整数型,两个浮点型),一种字符类型,还有布尔类型

byte

byte:数据类型占用1个字节=8bit,以二进制补码表示的整数

取值范围:默认值为0,最小值为-128(-2^7);最大值是127(2^7-1)

数据类型

关键字

内存中占用字节数

取值范围

默认值

布尔型

boolean

1

true/false

FALSE

字节型

byte

1

-128~127

0

短整型

short

2

-2^15~2^15-1

0

整型

int

4

-2^31~2^31-1

0

长整型

long

8

-2^63~2^63-1

0

字符型

char

2

0~2^16-1

'\u000'

单精度浮点型

float

4

1.4013E-45~3.4028E+38

0.0F

双精度浮点型

double

8

4.9E-324~1.7977E+308

0.0D

用途:byte类型用在大型数组中节约空间,主要代替整数,因byte变量占用内存的空间只有int类型的1/4;不足是这个数取值范围大,byte不能全部替代

常用方法

A.构造方法

public Byte(byte value)

public Byte(String s)

B.普通方法+类方法(对数据类型做转换)

piublic byte byteValue()

public short shortValue()

public int intVlaue()

public long longValue()

public float floatValue()

public double doubleValue()

public String toString()

public static String toString(byte b)

包装类和基本数据类型的对象关系

注:常量类是否可以被实例化主要看构造方法

package com.youceedu.test.wrapper;

public class TestByte {

public static void main(String[] args) {

// TODO Auto-generated method stub

byte a = 9;

byte b = -7;

String result = Byte.toString(a);

Byte c = new Byte((byte) 9);

System.out.println(c.floatValue());

System.out.println(result+b);

}

}

补充:java的byte数据类型总结||二进制的原码、反码和补码

二进制的原码、反码和补码

原码就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。

反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。

补码表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。

正数

首位表示符号位,原码、反码和补码都是本身。

负数

如何计算负数在计算机中的二进制(即它的补码)?

首先对负数的绝对值取反,然后+1得到负数的补码。

例如:byte a=-5

-5的绝对值=5 5的二进制表示是 0000 0101 取反得到 1111 1010 +1运算得到 1111 1011 ,那么1111 1011就是-5的补码。

也可以这样,用原码计算

例如:byte a=-5 原码表示 1000 0101

计算其反码为 1111 1010

计算其补码为 1111 1011

所以 -5在计算机中表示为1111 1011

byte

byte的取值范围为什么是-128~127

byte 表示一个字节,8bit,其中最高位是符号位。因此,最大值为 0111 1111,即127;最小值是负数为 1000 0000(规定)【其他数据类型的最大最小值也可以这样以此类推】。在计算机中二进制都是以补码的形式表示的,我们也可以这样来理解,为什么最小是-128

最小负数补码表示为:1000 0000

由补码计算原码:

1000 0000 作-1 运算 得到 0111 1111,取反 1000 0000 因为负数的补码是其绝对值取反,即10000000为最小负数的绝对值,而10000000的十进制表示是128,所以最小负数是-128

byte与ASCII

标准ASCII 码也叫基础ASCII码,使用7 位二进制数(剩下的1位二进制为0)来表示所有的大写和小写字母,数字0 到9、标点符号, 以及在美式英语中使用的特殊控制字符。

ASCII码表示的范围是0~127 刚好byte类型可以覆盖到。因此byte类型和ASCII可以互相转换。可以根据ASCII对照表进行查看http://tool.oschina.net/commons?type=4

当byte类型的变量的值实时是在''单引号里面的时候,该byte变量的值表示的是ASCII码,可以通过ASCII对照表查看其真实的数值。

比如:

public class ByteTest {

public static void main(String args[]) {

byte a = 'a';

byte b = 'B';

byte c = '4';

System.out.println("a=" + a);

System.out.println("b=" + b);

System.out.println("c=" + c);

}

}

输出:

a=97

b=66

c=52

byte&0xff的作用

byte->int 因为byte是8位,而int是32位,当byte类型转换为int类型的时候,会自动用符号位补足高位。例如 -5 1111 1011 转为int 类型会表示为 1111 1111 1111 1111 1111 1111 1111 1011 其表示的十进制的数值不变。

有的时候,我们只想保留二进制的补码形式,我们可以用byte&0xff。0xff是十六进制,默认是int类型,其二进制表示为 0000 0000 0000 0000 0000 0000 1111 1111 将byte类型的数值跟0xff作&操作,可以将高24位变为0,保留低8位。当然对应的十进制数也发生了变化。(相当于将byte变成无符号int类型)

例如:byte a=-5 ((int)-5)&0xff

1111 1111 1111 1111 1111 1111 1111 1011

&

0000 0000 0000 0000 0000 0000 1111 1111

= 0000 0000 0000 0000 0000 0000 1111 1011

int强转换为byte

例如:

int a=234 byte b=(byte)a -->得到b=-22 因为234已经超出了byte类型的表示范围,强转会直接丢弃高位,保留低8位。

int类型的234的二进制表示为:1110 1010【高24位全是0】 强转为byte类型,舍弃高24位得到1110 1010 ,第一位为符号位1,得到一个负数-22。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

java byte声明_java——Byte类/包装类的使用说明相关推荐

  1. java byte 遍历_java byte数组 相关知识点

    下面是Java.util.Random()方法摘要 1.protected int next(int bits):生成下一个伪随机数. 2.boolean nextBoolean():返回下一个伪随机 ...

  2. java file 工具_JAVA文件类工具

    FileUtil package cn.jiangzeyin.util.file; import org.springframework.util.Assert; import java.io.*; ...

  3. java inputstream子类_Java InputStream 类

    Java InputStream 类 在本教程中,我们将通过一个示例来学习Java InputStream类及其方法. java.io包的InputStream类是一个抽象超类,它表示字节的输入流. ...

  4. java异常判断_Java异常类

    异常指不期而至的各种状况,如:文件找不到.网络连接失败.非法参数等.异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程.Java通 过API中Throwable类的众多子类描述各种不同的异常. ...

  5. java 匿名继承_Java匿名类

    匿名类,正如名字一样在java中没有名字标识的类,当然了编译后还是会安排一个名字的. 下面是一个关于匿名类的简单例子: public static void main(String[] args) t ...

  6. java printwriter实例_Java PrintWriter 类

    Java PrintWriter 类 在本教程中,我们将通过示例来学习Java PrintWriter及其print()和printf()方法. java.io包的PrintWriter类可用于以通常 ...

  7. java filewriter 编码_Java FileWriter 类

    Java FileWriter 类 在本教程中,我们将借助示例学习Java FileWriter及其方法. java.io包的FileWriter类可用于将数据(以字符为单位)写入文件. 它继承了Ou ...

  8. java常用类的特征_Java常用类-包装类

    一. 包装类的使用 java提供了8种基本数据类型对应的包装类,使得基本数据类型的变量具有类的特征 需要掌握的:基本数据类型.包装类.String三者之间的相互转换 基本数据类型 <------ ...

  9. java创建byte数组_java byte[]生成

    1. ByteArrayOutputStream extends OutputStream 提供了一个byte数组,和记录写入数组值个数的类. a.实现了write(int)这个抽象函数,这里默认只写 ...

最新文章

  1. Oracle TNS 不能启动
  2. 软件推荐-有道超级计算器
  3. asp.net 动态添加JavaScript方法
  4. 前端复习之JavaScript基础
  5. 详解ISA2006的三种客户端模式
  6. opencv库skimage 实现Canny边缘探测算法
  7. 低秩矩阵完备_矩阵之芯 SVD: 基本应用以及与其他分解的关系
  8. ajax传单参数接受不了,Choropleth传单ajax
  9. 毕设-基于JavaWeb在线学习平台
  10. hello.java_helloworld怎么写java
  11. 麦弗逊悬架硬点布置 根据设计输入,布置麦弗逊悬架硬点坐标,匹配转向拉杆断开点,匹配车轮外倾角和前束值,从而获得硬点初版坐标
  12. 需求预测——Predicting origin-destination ride-sourcing demand with a spatio-temporal encoder-decoder
  13. 稳压器功能一览[转]
  14. Kinetics400/600/700数据集免费下载
  15. 为什么加密货币投资者正在放弃他们的美国公民身份
  16. 大数据测试指标(二)
  17. PCL:compute3DCentroid ❤️ 计算点云质心
  18. OpenSea钓鱼攻击事件得到的启发警惕
  19. oracle 导出数据脚本
  20. 浅谈UWB室内定位(一)

热门文章

  1. 联想小新pro14-5800U外接显示器无法显示解决
  2. Win10下Mysql重装忘记密码处理办法
  3. 4亿数据批量操作插入,为什么不用Mybatis,而是选择原生JDBC?(文中有各类批量操作效率对比和总结)
  4. HDFS RBF的资源隔离设计
  5. 终端零售行业“触网”的选择——“淘宝”还是“微信”
  6. RBAC权限管理(详细)
  7. 我与机器斗争过但失败了:与深蓝“人机大战”20年,卡斯帕罗夫TED演讲
  8. 5招教你轻松记忆初级会计实务分录!
  9. SIGGRAPH 2008 Papers(Updated)
  10. java中KeyEvent方法在控制台,停止OSX音调符号为所有用户禁用Java中的键绑定?