how2j.cn


工具版本兼容问题
从{ 开始 到对应的} 结束,即一个块



{ 开始 到对应的} 结束,即一个块
public class HelloWorld { //类对应的块 public static void main(String[] args) { //主方法对应的块 System.out.println("abc"); } }
public class HelloWorld { //类对应的块
	public static void main(String[] args) { //主方法对应的块
		System.out.println("abc");
	}
}


HOW2J公众号,关注后实时获知最新的教程和优惠活动,谢谢。


问答区域    
2026-01-29 查看所有基本类型的大小,取值范围
梦想启航

关于 JAVA 基础-变量-块 的提问



把所有基本类型站位都打印出来
package demo.client;
import java.lang.reflect.Field;
@SuppressWarnings("unused")
public class BasicClass {
	   public BasicClass() {
	        System.out.println("Java 8种基本类型详细信息");
	        System.out.println("=" + "=".repeat(50));
	        
	        // 1. 使用包装类的 TYPE 字段和 SIZE 常量
	        printBasicTypeInfo("byte", Byte.TYPE, Byte.BYTES, Byte.SIZE, Byte.MIN_VALUE, Byte.MAX_VALUE);
	        printBasicTypeInfo("short", Short.TYPE, Short.BYTES, Short.SIZE, Short.MIN_VALUE, Short.MAX_VALUE);
	        printBasicTypeInfo("int", Integer.TYPE, Integer.BYTES, Integer.SIZE, Integer.MIN_VALUE, Integer.MAX_VALUE);
	        printBasicTypeInfo("long", Long.TYPE, Long.BYTES, Long.SIZE, Long.MIN_VALUE, Long.MAX_VALUE);
	        printBasicTypeInfo("float", Float.TYPE, Float.BYTES, Float.SIZE, Float.MIN_VALUE, Float.MAX_VALUE);
	        printBasicTypeInfo("double", Double.TYPE, Double.BYTES, Double.SIZE, Double.MIN_VALUE, Double.MAX_VALUE);
	        printBasicTypeInfo("char", Character.TYPE, Character.BYTES, Character.SIZE, (int) Character.MIN_VALUE, (int) Character.MAX_VALUE);
	        printBasicTypeInfo("boolean", Boolean.TYPE, 1, 1, 0, 1); // boolean 特殊处理
	        
	        System.out.println("\n" + "=".repeat(60));
	        
	        // 2. 通过实际变量查看内存占用
	        System.out.println("\n实际变量内存占用示例:");
	        demonstrateMemoryUsage();
	        
	        // 3. 查看默认值
	        System.out.println("\n基本类型的默认值:");
	        showDefaultValues();
	    }
	    
	    private static void printBasicTypeInfo(String typeName, Class<?> typeClass, int bytes, int bits, 
	                                           Number min, Number max) {
	        System.out.printf("%-8s | Class: %-9s | 字节数: %d | 位数: %2d | 最小值: %-25s | 最大值: %s%n",
	                typeName,
	                typeClass.getSimpleName(),
	                bytes,
	                bits,
	                formatValue(min, typeName),
	                formatValue(max, typeName));
	    }
	    
	    private static String formatValue(Number value, String typeName) {
	        switch (typeName) {
	            case "float":
	                return String.format("%.2f", value.floatValue());
	            case "double":
	                return String.format("%.4f", value.doubleValue());
	            case "char":
	                if (value.intValue() < 32) {
	                    return "\\u" + String.format("%04x", value.intValue()) + " (控制字符)";
	                } else {
	                    return "'" + (char) value.intValue() + "' (\\u" + 
	                           String.format("%04x", value.intValue()) + ")";
	                }
	            case "boolean":
	                return "false(0) ~ true(1)";
	            default:
	                return value.toString();
	        }
	    }
	    
	    private static void demonstrateMemoryUsage() {
	        byte b = 100;
	        short s = 1000;
	        int i = 100000;
	        long l = 10000000000L;
	        float f = 3.14f;
	        double d = 3.1415926535;
	        char c = 'A';
	        boolean bool = true;
	        
	        // 通过 JOL (Java Object Layout) 风格的输出
	        System.out.println("变量声明示例:");
	        System.out.println("  byte b = " + b + ";     // 占用 1 字节");
	        System.out.println("  short s = " + s + ";    // 占用 2 字节");
	        System.out.println("  int i = " + i + ";  // 占用 4 字节");
	        System.out.println("  long l = " + l + "L; // 占用 8 字节");
	        System.out.println("  float f = " + f + "f;   // 占用 4 字节");
	        System.out.println("  double d = " + d + "; // 占用 8 字节");
	        System.out.println("  char c = '" + c + "';      // 占用 2 字节 (Unicode)");
	        System.out.println("  boolean bool = " + bool + "; // 占用 1 位 (但JVM通常用1字节)");
	    }
	    
	    private static void showDefaultValues() {
	        // 注意:这些是实例变量的默认值,局部变量必须手动初始化
	        class DefaultValues {
	            byte b;
	            short s;
	            int i;
	            long l;
	            float f;
	            double d;
	            char c;
	            boolean bool;
	        }
	        
	        DefaultValues dv = new DefaultValues();
	        System.out.println("  byte 默认值: " + dv.b);
	        System.out.println("  short 默认值: " + dv.s);
	        System.out.println("  int 默认值: " + dv.i);
	        System.out.println("  long 默认值: " + dv.l);
	        System.out.println("  float 默认值: " + dv.f);
	        System.out.println("  double 默认值: " + dv.d);
	        System.out.println("  char 默认值: " + (int) dv.c + " (Unicode: \\u" + 
	                         String.format("%04x", (int) dv.c) + ")");
	        System.out.println("  boolean 默认值: " + dv.bool);
	    }
	    
	    // 额外:查看基本类型的包装类信息
	    public static void printWrapperInfo() {
	        System.out.println("\n对应的包装类:");
	        System.out.println("基本类型 | 包装类    | 自动装箱/拆箱");
	        System.out.println("--------|-----------|--------------");
	        System.out.println("byte    | Byte      | Byte.valueOf(b) / byteValue()");
	        System.out.println("short   | Short     | Short.valueOf(s) / shortValue()");
	        System.out.println("int     | Integer   | Integer.valueOf(i) / intValue()");
	        System.out.println("long    | Long      | Long.valueOf(l) / longValue()");
	        System.out.println("float   | Float     | Float.valueOf(f) / floatValue()");
	        System.out.println("double  | Double    | Double.valueOf(d) / doubleValue()");
	        System.out.println("char    | Character | Character.valueOf(c) / charValue()");
	        System.out.println("boolean | Boolean   | Boolean.valueOf(bool) / booleanValue()");
	    }
}

							





回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到





2022-08-29
Josuke2pp

关于 JAVA 基础-变量-块 的提问
+1




1 个答案

梦想启航
答案时间:2026-01-29
public static void main(String[] args){ new BasicClas(); }



回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到




2019-09-26 JAVA 基础-变量-块 -块
2019-08-22 主方法和主方法外的块执行顺序?
2019-07-02 如果有了子父类的情况呢


提问太多,页面渲染太慢,为了加快渲染速度,本页最多只显示几条提问。还有 7 条以前的提问,请 点击查看

提问之前请登陆
提问已经提交成功,正在审核。 请于 我的提问 处查看提问记录,谢谢
关于 JAVA 基础-变量-块 的提问

尽量提供截图代码异常信息,有助于分析和解决问题。 也可进本站QQ群交流: 578362961
提问尽量提供完整的代码,环境描述,越是有利于问题的重现,您的问题越能更快得到解答。
对教程中代码有疑问,请提供是哪个步骤,哪一行有疑问,这样便于快速定位问题,提高问题得到解答的速度
在已经存在的几千个提问里,有相当大的比例,是因为使用了和站长不同版本的开发环境导致的,比如 jdk, eclpise, idea, mysql,tomcat 等等软件的版本不一致。
请使用和站长一样的版本,可以节约自己大量的学习时间。 站长把教学中用的软件版本整理了,都统一放在了这里, 方便大家下载: https://how2j.cn/k/helloworld/helloworld-version/1718.html

上传截图