家居装饰网站设计论文,永久免费crm客户管理系统,乌市做网站的公司,现在网站优化怎么做探究Java中基本类型和部分包装类在声明变量时不赋值的情况下java给他们的默认赋值当基本数据类型作为普通变量(八大基本类型#xff1a; byte,char,boolean,short,int,long,float,double)只有开发人员对其进行初始化#xff0c;java不会对其进行初始化#xff0c;如果不初始…探究Java中基本类型和部分包装类在声明变量时不赋值的情况下java给他们的默认赋值当基本数据类型作为普通变量(八大基本类型 byte,char,boolean,short,int,long,float,double)只有开发人员对其进行初始化java不会对其进行初始化如果不初始化基本类型变量则编译时就会报错实验的部分包装类如 Byte,Char,Boolean,Short,Integer,Long,Float,Double 等类的约束和基本类型如出一辙当基本数据类型作为类成员变量时,java会自动给这些变量初始值赋值class ElementTypes {// 作为类成员变量声明byte defaultBasicByte;char defaultBasicChar;boolean defaultBasicBoolean;short defalutBasicShort;int defaultBasicInt;long defaultBasicLong;float defaultBasicFloaat;double defaultBasicDouble;Byte defaultByte;Char defaultChar;Boolean defaultBoolean;Short defalutShort;Integer defaultInt;Long defaultLong;Float defaultFloaat;Double defaultDouble;}public class Exploration {/*** 输出基本数据类型及部分包装类成员变量被java赋予的默认值*/public static void ExploreClassFieldsDefaultValue() {ElementTypes elementTypes new ElementTypes();// 调试输出logger.debug(byte.class DefaultValue elementTypes.defaultBasicByte);logger.debug(char.class DefaultValue elementTypes.defaultBasicChar);// Console// 输出为空方格logger.debug(boolean.class DefaultValue elementTypes.defaultBasicBoolean);logger.debug(short.class DefaultValue elementTypes.defalutBasicShort);logger.debug(int.class DefaultValue elementTypes.defaultBasicInt);logger.debug(long.class DefaultValue elementTypes.defaultBasicLong);logger.debug(float.class DefaultValue elementTypes.defaultBasicFloaat);logger.debug(double.class DefaultValue elementTypes.defaultBasicDouble);logger.debug(byte.class DefaultValue elementTypes.defaultByte);logger.debug(char.class DefaultValue elementTypes.defaultChar);logger.debug(boolean.class DefaultValue elementTypes.defaultBoolean);logger.debug(short.class DefaultValue elementTypes.defalutShort);logger.debug(int.class DefaultValue elementTypes.defaultInt);logger.debug(long.class DefaultValue elementTypes.defaultLong);logger.debug(float.class DefaultValue elementTypes.defaultFloaat);logger.debug(double.class DefaultValue elementTypes.defaultDouble);}Test // 如果不用 JUnit 测试也可以选择直接 main函数public void test() throws Exception {ExploreClassFieldsDefaultValue();}}以上将基本数据类型和部分包装类声明为该类型的类属性变量在不声明初始值的前提下然后在类的静态方法中输出其指向的变量空间中的值控制台输出即可知道 java 在构造类的时候默认给这些类型变量的默认值2020-11-21 21:34:35.773 [main] DEBUG localCollection.Exploration - byte DefaultValue 02020-11-21 21:34:35.773 [main] DEBUG localCollection.Exploration - char DefaultValue2020-11-21 21:34:35.774 [main] DEBUG localCollection.Exploration - boolean DefaultValue false2020-11-21 21:34:35.774 [main] DEBUG localCollection.Exploration - short DefaultValue 02020-11-21 21:34:35.774 [main] DEBUG localCollection.Exploration - int DefaultValue 02020-11-21 21:34:35.774 [main] DEBUG localCollection.Exploration - long DefaultValue 02020-11-21 21:34:35.774 [main] DEBUG localCollection.Exploration - float DefaultValue 0.02020-11-21 21:34:35.774 [main] DEBUG localCollection.Exploration - double DefaultValue 0.02020-11-22 08:25:26.304 [main] DEBUG localCollection.Exploration - class java.lang.Byte DefaultValue null2020-11-22 08:25:26.304 [main] DEBUG localCollection.Exploration - class java.lang.Character DefaultValue null2020-11-22 08:25:26.304 [main] DEBUG localCollection.Exploration - class java.lang.Boolean DefaultValue null2020-11-22 08:25:26.304 [main] DEBUG localCollection.Exploration - class java.lang.Short DefaultValue null2020-11-22 08:25:26.304 [main] DEBUG localCollection.Exploration - class java.lang.Integer DefaultValue null2020-11-22 08:25:26.304 [main] DEBUG localCollection.Exploration - class java.lang.Long DefaultValue null2020-11-22 08:25:26.304 [main] DEBUG localCollection.Exploration - class java.lang.Float DefaultValue null2020-11-22 08:25:26.304 [main] DEBUG localCollection.Exploration - class java.lang.Double DefaultValue null2020-11-22 08:25:26.304 [main] DEBUG localCollection.Exploration - class java.lang.String DefaultValue null以上第二行 char 类型对应的默认值 在控制台是输出了一个“空白方格”???首先搞清楚 char 类型在 java 中是 16位的使用的是 Unicode 编码方式其中 Unicode 编码前 0~127 是 8 位的 ASCII 值而 ASCII 值中又分为 控制字符和可显示字符使用java 方法进行尝试输出public static void examineCharWithASCII() {char a 0x00;// 十六进制数 0x00对应的ASCII码是控制字符空字符(Null)char c 0x20;// 十六进制数 0x00对应的ASCII码是控制字符EM连接介质中断char b 0x19;// 十六进制数 0x00对应的ASCII码是可显示字符(空格)(sp)char d 0x21;// 十六进制数 0x00 对应的ASCII码是可显示字符!char u0 \u0000;// 使用 Unicode 编码方式进行初始化logger.debug(\u0000 to char.class u0);logger.debug(0x00 to char.class a);logger.debug(0x19 to char.class b);logger.debug(0x20 to char.class c);logger.debug(0x21 to char.class d);}输出结果输出结果的内容复制效果(实际上是要分行复制的,null(什么都没有)真的很影响整段复制粘贴)2020-11-22 08:28:28.780 [main] DEBUG localCollection.Exploration - to char2020-11-22 07:49:37.715 [main] DEBUG localCollection.Exploration - 0x00 to char2020-11-22 07:49:37.715 [main] DEBUG localCollection.Exploration - 0x19 to char2020-11-22 07:49:37.715 [main] DEBUG localCollection.Exploration - 0x20 to char2020-11-22 07:49:37.715 [main] DEBUG localCollection.Exploration - 0x21 to char!\u0000 在 unicode 中就是 NUL 控制字符0x00 和 0x19 这两个十六进制数对应的控制字符不可显示(实际上就是不能正常显示)在控制台就会显示方格(除了null控制字符是真的什么都没有其他的控制字符输出的方格复制进纯文本编辑器还是可以看到对应的0x19)其它啊控制字符类似效果0x20 和 0x21 分别是空白可显示字符和!可显示字符所以一个打印的是空白(可被选中的空格)和感叹号,其他可显示字符与其效果类似文档当前版本 v1.0版本号修改内容备注时间1.0生成初始内容新建文档1.1添加调试截图暂无2020年12月4日 14点24分