写程序时,误把byte写作Byte,调试了许久,便将二者的区别及用法详细理解一遍
1:byte标题和Byte详解
byte是java的基本数据类型,存储整型数据,占据1个字节(8 bits),能够存储的数据范围是-128~+127。
Byte是java.lang中的一个类,目的是为基本数据类型byte进行封装。
2:二者关系:
Byte是byte的包装类,就如同Integer和int的关系,
一般情况包装类用于泛型或提供静态方法,用于基本类型或字符串之间转换,建议尽量不要用包装类和基本类型之间运算,因为这样运算效率会很差的
3:封装的好处
封装有几种好处,比如:
3.1. Byte可以将对象的引用传递,使得多个function共同操作一个byte类型的数据,而byte基本数据类型是赋值之后要在stack(栈区域)进行存储的;
3.2. 在java中包装类,比较多的用途是用在于各种数据类型的转化中。
比如,现在byte要转为String
byte a=0;
String result=Integer.toString(a);
3.3使用泛型时
List<Integer> nums;
这里<>需要类。如果你用int。它会报错的
//创建Node,待数据和权值
class Node1 implements Comparable<Node1> {
Byte data;//存放
int weight;//权值,表示字符出现的次数
Node1 left;
Node1 right;
public Node1(Byte data, int weight) {
this.data = data;
this.weight = weight;
}
@Override
public int compareTo(Node1 o) {
//从小到大排
return this.weight - o.weight;
}
@Override
public String toString() {
return "Node1{" +
"data=" + data +
", weight=" + weight +
'}';
}
//前序遍历
public void preOrder() {
System.out.println(this);
if (this.left != null) {
this.left.preOrder();
}
if (this.right != null) {
this.right.preOrder();
}
}
}
这里如果用byte就无法赋值为null