如何打印java数据类型的类型、大小和范围?特别是那些有修饰语的?
目前我可以打印出a;;的字体大小和范围;;基本java数据类型(Bolean除外),使用以下方法如何打印java数据类型的类型、大小和范围?特别是那些有修饰语的?,java,types,modifier,Java,Types,Modifier,目前我可以打印出a;;的字体大小和范围;;基本java数据类型(Bolean除外),使用以下方法 public class sizJ { public static void display(Class<?> type, int size, Number min, Number max) { System.out.printf("%-6s %-2s %-20s %s\n", type, size, min, max); } publ
public class sizJ {
public static void display(Class<?> type, int size, Number min, Number max) {
System.out.printf("%-6s %-2s %-20s %s\n", type, size, min, max);
}
public static void main(String[] args) {
System.out.printf("%s %-2s %-20s %s\n","type","size","min","max");
display(Byte.TYPE, Byte.SIZE, Byte.MIN_VALUE, Byte.MAX_VALUE);
display(Character.TYPE, Character.SIZE, (int) Character.MIN_VALUE, (int) Character.MAX_VALUE);
display(Integer.TYPE, Integer.SIZE, Integer.MIN_VALUE, Integer.MAX_VALUE);
display(Float.TYPE, Float.SIZE, Float.MIN_VALUE, Float.MAX_VALUE);
display(Double.TYPE, Double.SIZE, Double.MIN_VALUE, Double.MAX_VALUE);
display(Long.TYPE, Long.SIZE, Long.MIN_VALUE, Long.MAX_VALUE);
display(Double.TYPE, Double.SIZE, Double.MIN_VALUE, Double.MAX_VALUE);
display(SignedDouble.TYPE, Double.SIZE, Double.MIN_VALUE, Double.MAX_VALUE);
}
公共类sizJ{
公共静态无效显示(类类型、整数大小、最小数、最大数){
System.out.printf(“%-6s%-2s%-20s%s\n”,类型、大小、最小值、最大值);
}
公共静态void main(字符串[]args){
System.out.printf(“%s%-2s%-20s%s\n”、“类型”、“大小”、“最小值”、“最大值”);
显示(Byte.TYPE、Byte.SIZE、Byte.MIN\u值、Byte.MAX\u值);
显示(Character.TYPE,Character.SIZE,(int)Character.MIN_值,(int)Character.MAX_值);
显示(Integer.TYPE、Integer.SIZE、Integer.MIN\u值、Integer.MAX\u值);
显示(Float.TYPE、Float.SIZE、Float.MIN\u值、Float.MAX\u值);
显示(Double.TYPE、Double.SIZE、Double.MIN\u值、Double.MAX\u值);
显示(Long.TYPE、Long.SIZE、Long.MIN\u值、Long.MAX\u值);
显示(Double.TYPE、Double.SIZE、Double.MIN\u值、Double.MAX\u值);
显示(SignedDouble.TYPE、Double.SIZE、Double.MIN\u值、Double.MAX\u值);
}
}
从论坛复制的代码
问题是如何打印相同的字符,比如有符号长字符、有符号字符或无符号整数
请帮忙。这里有很多事情需要澄清…:
无符号
关键字,没有无符号类型,当然也没有相应的类型大小boolean
,byte
,char
,double
,float
,int
,long
,short
public
,final
,static
)只影响原语的可见性和访问语义,而不影响其基本属性,如大小或范围sizeof
操作符没有等价物,因为您不需要像在C中那样使用它来分配内存。如果您确实需要知道对象的内存占用,请查看Java没有sizeof运算符来查找基本数据类型的大小,但除Boolean外,所有Java基本数据包装器都提供了一个以位为单位的大小常量,该常量可以除以8来获得以字节为单位的数据类型的大小
class SizePrimitiveTypes
{
public static void main (String[] args)
{
System.out.println("Size of byte: " + (Byte.SIZE/8) + " bytes.");
System.out.println("Size of short: " + (Short.SIZE/8) + " bytes.");
System.out.println("Size of int: " + (Integer.SIZE/8) + " bytes.");
System.out.println("Size of long: " + (Long.SIZE/8) + " bytes.");
System.out.println("Size of char: " + (Character.SIZE/8) + " bytes.");
System.out.println("Size of float: " + (Float.SIZE/8) + " bytes.");
System.out.println("Size of double: " + (Double.SIZE/8) + " bytes.");
}
}
我会说只打印出一个随机值(因为无符号类型是Java不知道的)。顺便说一句,我在你的代码中发现了一个
SignedDouble.TYPE
:这是你的enum
吗?:-)