java——Byte类/包装类的使用说明

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。

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

(0)

相关推荐

  • java二进制运算基础知识点详解

    一.二进制位运算 1. 按位与(&) 位运算实质是将参与运算的数字转换为二进制,而后逐位对应进行运算. 按位与运算为:两位全为1,结果为1,即1&1=1,1&0=0,0&1=0,0&0=0. 例如51 & 5 -> 00110011 & 00000101 = 00000001 -> 51 & 5 = 1 特殊用法: (1)与0相与可清零. (2)与1相与可保留原值,可从一个数中取某些位.例如需要取10101110中的低四位,101

  • 解决Java包装类比较时遇到的问题

    前言 本文主要给大家介绍了关于Java包装类在比较时遇到的一些问题的解决方法,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 例1: Integer a = 1; Integer b = 2; Integer c = 3; Integer d = 3; Integer e= 321; Integer f= 321; Long g = 3L; System.out.println(c == d); //1 System.out.println(e == f); //2 Syste

  • 详解java中的byte类型

    介绍 byte,即字节,由8位的二进制组成.在Java中,byte类型的数据是8位带符号的二进制数. 在计算机中,8位带符号二进制数的取值范围是[-128, 127],所以在Java中,byte类型的取值范围也是[-128, 127]. 取值范围分析 一直在想为什么不是 -128 到 128呢?今天分析了一下这个问题. 首先我们得明白一件事情,那就是运算规则: ####################################################################

  • Java基本类型和包装类型的区别

    包装类型可以为 null,而基本类型不可以 别小看这一点区别,它使得包装类型可以应用于 POJO 中,而基本类型则不行. POJO 是什么呢?这里稍微说明一下. POJO 的英文全称是 Plain Ordinary Java Object,翻译一下就是,简单无规则的 Java 对象,只有属性字段以及 setter 和 getter 方法,示例如下. class Writer { private Integer age; private String name; public Integer ge

  • Java基本数据类型包装类原理解析

    数据类型包装类 Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,这在实际使用时存在很多的不便,为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八个和基本数据类型对应的类统称为包装类(WrapperClass),有些地方也翻译为外覆类或数据类型类. 包装类均位于java.lang包,包装类和基本数据类型的对应关系如下表所示: 包装类的用途 对于包装类说,这些类的用途主要包含两种: a.作为和基本数据类型对应的类类型存在,方便涉及到对象的

  • java——Byte类/包装类的使用说明

    Byte类/包装类 包装类是一个常量类,可实例化 (意义:帮助对应的数据类型进行数据类型) java数据类型包括内置数据类型和引用数据类型 内置数据类型 :含6中数字类型(四个整数型,两个浮点型),一种字符类型,还有布尔类型 byte byte:数据类型占用1个字节=8bit,以二进制补码表示的整数 取值范围:默认值为0,最小值为-128(-2^7);最大值是127(2^7-1) 数据类型 关键字 内存中占用字节数 取值范围 默认值 布尔型 boolean 1 true/false FALSE

  • 带你了解Java常用类小结

    目录 Java常用类 包装类 包装类中的常量 包装类的构造方法 包装类中的常用方法 Math类 枚举 枚举定义 枚举的常见方法 总结 Java常用类 包装类 由于Java语言中的基本类型不是面向对象,并不具备对象的性质,实际使用存在很多不便.Java在java.lang包中提供了八种基本类型对应的包装类,可以方便地将它们转化为对象进行处理,并且可以调用一些方法.Java中基本类型和包装类的对应关系如下表所示: 基本数据类型名称 包装类名称 byte Byte short Short int In

  • Java基本类型包装类概述与Integer类、Character类用法分析

    本文实例讲述了Java基本类型包装类概述与Integer类.Character类用法.分享给大家供大家参考,具体如下: 基本类型包装类概述 将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据. 常用的操作之一:用于基本数据类型与字符串之间的转换. 基本类型和包装类的对应 Byte,Short,Integer,Long,Float,Double,Character,Boolean Integer类 为了让基本类型的数据进行更多的操作,Java就为每种基本类型提供了对应的包装

  • Java Object类和包装类深入解读

    目录 查看源代码方法 Object类 定义及应用 1. toString() 2. equals( ) 包装类 定义及应用 装箱和拆箱 自己实现包装类 通过包装类让Object类接收基本数据类型 包装类的对象比较 包装类和String的相互转换 查看源代码方法 在IDEA中双击 shift 键,可以搜索相关类名,查看源代码 点击Structure ,左侧用橙色床框住的部分是类的结构,结构包含所有的方法.属性.内部类的声明.结构中带绿色小锁的图标表示 public 权限,钥匙图标就是继承权限(pr

  • Java Number类原理实例解析

    这篇文章主要介绍了Java Number类原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Number类 内置数据类型:byte.int.long.double等 包装类:Integer.Long.Byte.Double.Float.Short. ​ 这种由编译器特别支持的包装称为装箱,所以当内置数据类型被当作对象使用的时候,编译器会把内置类型装箱为包装类.相似的,编译器也可以把一个对象拆箱为内置类型.Number 类属于 java.l

  • 详解Java ArrayList类

    ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素. ArrayList 继承了 AbstractList ,并实现了 List 接口. ArrayList 类位于 java.util 包中,使用前需要引入它,语法格式如下: import java.util.ArrayList; // 引入 ArrayList 类 ArrayList<E> objectName =new ArrayList<>(); // 初始化 E

  • java Wrapper类基本用法详解

    在封装中有一种特殊的类,能够把基本的数据类型进行转换来方便实际的使用.我们在之前提到的一些数据类型,最明显的特征是所有字母为小写状态,那么经过Wrapper的包装后,首字母就变成了大写.下面我们就这种特殊的封装类Wrapper的概念.转换图解.模式以及实例带来分享. 1.概念 wrapper类是在Java中创建对象引用类型的原始类型的方式.我们可以说,通过提供wrapper类,使Java在面向对象技术的本质上摆脱了困境,即使是原类型没有被保存. 2.转换图解 该类主要用于基本数据类型和字符串之间

  • Java基础之包装类

    一.java的包装类 什么是包装类 对于基本数据类型来讲,其实就是一个数字,但是当给基本数据类型添加一些属性 方法和构造器,将基本数据类型对应进行一个封装,就产生了一个新的类,这个类被称为是包装类. 那么基本数据类型在前面中讲过有byte short int long float double char boolean,也就是将这些进行封装,基本数据类型和包装类的对应关系是怎样的呢? 基本数据类型 对应的包装类 byte Byte short Short int Integer long Lon

  • JAVA基本类型包装类 BigDecimal BigInteger 的使用

    目录 1.了解包装类 2.Integer 3.Double 4.BigDecimal 5.BigInteger 1.了解包装类 Java 中预定义了八种基本数据类型,包括:byte,int,long,double,float,boolean,char,short.基本类型与对象类型最大的不同点在于,基本类型基于数值,对象类型基于引用. 例如有一个方法 f() ,它的参数分别是对象类型 和 基本类型: void f(Object obj){ //参数引用类型,保存的是内存地址 } f(123){

  • Java 详解包装类Integer与int有哪些共通和不同

    目录 1.包装类型是什么? 2.基本类型和包装类型有什么区别? 3.解释一下自动装箱和自动拆箱? 4.int 和 Integer 有什么区别? 5.两个new生成的Integer变量的对比 6.Integer变量和int变量的对比 7.非new生成的Integer变量和new Integer()生成变量的对比 8.两个非new生成的Integer对象的对比 1.包装类型是什么? Java 为每一个基本数据类型都引入了对应的包装类型,int 的包装类就是 Integer,从 Java 5 开始引入

随机推荐