javaSystem.out.println()输出byte[]和char[]异常的问题
javaSystem.out.println()输出byte[]和char[]异常的问题
今天 突然有人问我他写的byte[]和char[],在用System.out.println()输出的时候所得的值有问题?
细思恐惧啊 我之前怎么没发现。。。。。。。。。。。。。。。。
废话不多说 代码如下
/**
* @Author:
* @Date: 2019/1/9/00099:23
* @Version 1.0
*/
public class arrayTest {
public static void main(String[] args) {
//创建一个byte数组
byte[] b = {'a'};
//创建一个char数组
char[] c = {'a'};
//用System.out.println输出byte数组
System.out.println(b);//控制台输出 [B@7adf9f5f
//用System.out.println输出char数组
System.out.println(c);//控制台输出 a
}
}
由代码可以看出,使用System.out.println()byte数组和输出char数组所产生的不同,
输出byte数组 输出的是内存地址
输出char数组 输出的是数组的元素
原因是什么嘞·············????接着往下看。
查资料发现,System.out.println()是printStream类的成员方法,此方法只提供了以下几种数据类型的输出重载函数:
--------------------------------------------------------------------------------------------------------------------
println() void 没有返回值 通过写入分隔符字符串来终止当前行
println(boolean x) void 没有返回值 打印一个布尔值,然后终止该行
println(char x) void 没有返回值 打印一个字符,然后终止该行
println(char[] x) void 没有返回值 打印一个字符数组,然后终止该行
println(double x) void 没有返回值 打印双精度浮点数,然后终止该行
println(float x) void 没有返回值 打印单精度浮点数,然后终止该行
println(int x) void 没有返回值 打印一个整数,然后终止该行
println(long x) void 没有返回值 打印long整数,然后终止该行
println(Object x) void 没有返回值 打印一个对象,然后终止该行
println(String x) void 没有返回值 打印一个字符串,然后终止该行
-----------------------------------------------------------------------------------------------------------------------
由以上可以看出 我们在输出boolean、char、char[]、double、float、int、long、String 类型的数据,
会输出相应的值,对于Object的输出,System.out.println()会先调用其toString方法,然后会将该对象的toString方法的返回值输出,
由于System.out.println()没有对int[]、String[]、byte[]、Object[]、输出函数重载,所有在使用该方法输出这些数据类型时,该方法会将其中的参数
做数组首元素来对待,也就是说System.out.println(b);等价于System.out.println(b[0]);然后调用首元素的toString方法,并将其输出。
---------------------------------- end ----------------------------------
javaSystem.out.println()输出byte[]和char[]异常的问题的更多相关文章
- byte与char的区别
byte 是字节数据类型 ,是有符号型的,占1 个字节:大小范围为-128—127 .char 是字符数据类型 ,是无符号型的,占2字节(Unicode码 ):大小范围 是0—65535 :char ...
- java乱码详解(java中byte与char的转换)
转自:http://hi.baidu.com/%C6%F3%D2%B5%BC%D2%D4%B0/blog/item/825a4858d6248e8b810a181a.html java byte与 ...
- Java数据类型之byte、char
Java 有8中基本数据类型,分别是byte.int.long.char.float.double.boolean. 1.byte.char的简单介绍 有时候总是搞不清byte.char,所以就现在好 ...
- Java之byte、char和String类型相互转换
package basictype; /** * byte.char和String类型相互转换 */ public class CHJavaType { public static void main ...
- Java中基本数据类型byte,short,char,int,long,float,double 取值范围
部分内容转自:java 彻底理解 byte char short int float long double 首先说byte: 这段是摘自jdk中 Byte.java中的源代码: /** * A co ...
- C# byte[]与char[]、string与char[]、byte[] 与 string 互转
1. byte array -> char array Byte[] b=new byte[5]{0x01,0x02,0x03,0x04,0x05}; Char[] c=Encoding.AS ...
- C# byte 和 char 转化
C# byte 和 char 可以认为是等价的.但是在文本显示的时候有差异. c# 使用的是unicode字符集,应该和为ascii相互转换 只能转换到字符的unicode编码,或者由unico ...
- Java 中byte 与 char 的相互转换 Java基础 但是很重要
char转化为byte: public static byte[] charToByte(char c) { byte[] b = new byte[2]; b[0] = ...
- bit,byte,char,位,字节,字符 的区别
bit,byte,char,位,字节,字符 的区别 原创文章,未经作者允许,禁止转载!!!
随机推荐
- vue模拟后台数据,请求本地数据的配置(旧版本dev-server.js,新版本webpack.dev.conf.js)
最近学习一个vue-cli的项目,需要与后台进行数据交互,这里使用本地json数据来模仿后台数据交互流程.然而发现build文件夹下没有dev-server.js文件了,因为新版本的vue-webpa ...
- PHP 生成随机数组
/** 生成指定个数,以及最小最大值随机数组(包括最大值) * @parem $min 随机数组最小值 * @parem $max 随机数组最大值 * @parem $num 随机数组个数,默认max ...
- [JLOI2015]管道连接(斯坦纳树)
[Luogu3264] 原题解 多个频道,每个频道的关键点要求相互联通 详见代码,非常巧妙 #include<cstdio> #include<iostream> #inclu ...
- P2257 YY的GCD (莫比乌斯反演)
[题目链接] https://www.luogu.org/problemnew/show/P2257 // luogu-judger-enable-o2 /* -------------------- ...
- LeetCode记录之27——Remove Element
这道题跟26题很类似,并且有官方的答案.看了官方的答案之后发现写得特别巧,自己做的题太少思路太窄.有意思的是我的算法的时间复杂度是O(N^2),官方的是O(N),我的实际运行时间还少了2ms. ive ...
- js 中文汉字转Unicode、Unicode转中文汉字、ASCII转换Unicode、Unicode转换ASCII、中文转换&#XXX函数代码
最近看不少在线工具里面都有一些编码转换的代码,很多情况下我们都用得到,这里脚本之家小编就跟大家分享一下这些资料 Unicode介绍 Unicode(统一码.万国码.单一码)是一种在计算机上使用的字符编 ...
- docker 镜像编译
docker为我们提供了,包含源码的镜像, 可以要从docker hub上下载镜像来编译docker源码. 1. docker pull docker-dev:v1.2.0,其他版本就到docker ...
- jQuery随笔-自定义属性获取+tooltip
1.Jquery自定义属性获取 1) 通过自定义属性值获取document console.log($('[data-id='+item_id+']',listWrap)); $('[data-id= ...
- PIE SDK位深转换
1.算法功能简介 位深转换功能是一种用于更改一个给定输入文件数据范围的灵活方法.可以完全控制输入和输出直方图,以及输出数据类型(字节型.整型.浮点型等). PIE支持算法功能的执行,下面对位深转换 ...
- ansible 命令详解{图片详解}
本文内容来至于http://www.zsythink.net 文件操作模块 命令操作模块 cron 包管理模块