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[]异常的问题的更多相关文章

  1. byte与char的区别

     byte 是字节数据类型 ,是有符号型的,占1 个字节:大小范围为-128—127 .char 是字符数据类型 ,是无符号型的,占2字节(Unicode码 ):大小范围 是0—65535 :char ...

  2. java乱码详解(java中byte与char的转换)

    转自:http://hi.baidu.com/%C6%F3%D2%B5%BC%D2%D4%B0/blog/item/825a4858d6248e8b810a181a.html   java byte与 ...

  3. Java数据类型之byte、char

    Java 有8中基本数据类型,分别是byte.int.long.char.float.double.boolean. 1.byte.char的简单介绍 有时候总是搞不清byte.char,所以就现在好 ...

  4. Java之byte、char和String类型相互转换

    package basictype; /** * byte.char和String类型相互转换 */ public class CHJavaType { public static void main ...

  5. Java中基本数据类型byte,short,char,int,long,float,double 取值范围

    部分内容转自:java 彻底理解 byte char short int float long double 首先说byte: 这段是摘自jdk中 Byte.java中的源代码: /** * A co ...

  6. 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 ...

  7. C# byte 和 char 转化

    C#  byte 和 char 可以认为是等价的.但是在文本显示的时候有差异.   c# 使用的是unicode字符集,应该和为ascii相互转换 只能转换到字符的unicode编码,或者由unico ...

  8. Java 中byte 与 char 的相互转换 Java基础 但是很重要

    char转化为byte: public static byte[] charToByte(char c) {        byte[] b = new byte[2];        b[0] = ...

  9. bit,byte,char,位,字节,字符 的区别

    bit,byte,char,位,字节,字符 的区别 原创文章,未经作者允许,禁止转载!!!

随机推荐

  1. React学习笔记一

    我是通过script src的方式引入的react的相关文件,本次学习顺序按照<React快速上手开发>一书的顺序学习的, 本篇博客笔记地址:http://note.youdao.com/ ...

  2. Python获取网页Html文本

    Python爬虫基础 1.获取网页文本 通过urllib2包,根据url获取网页的html文本内容并返回 #coding:utf-8 import requests, json, time, re, ...

  3. 老男孩Day17作业:后台管理平台编辑表格

    一.作业需求: 后台管理平台 ,编辑表格: 1. 非编辑模式: 可对每行进行选择: 反选: 取消选择 2. 编辑模式: 进入编辑模式时如果行被选中,则被选中的行万变为可编辑状态,未选中的不改变 退出编 ...

  4. ionic4 添加自定义字体图标

    在angular.json中的style中引入css文件: 然后在variables.scss中添加内容:

  5. python学习之路---day20--面向对象--多继承和super() 函数

    一:python多继承 python多继承中,当一个类继承了多个父类时候,这个类拥有多个父类的所欲非私有的属性 l例子: class A: pass class B(A): pass class C( ...

  6. Apache 去掉 www

    1 用phpstudy的网友打开“其他选项菜单”- “配置文件”-httpd-conf.找到 #LoadModule rewrite_module modules/mod_rewrite.so 把这一 ...

  7. Windows10 下安装 MySQL Workbench + Thinkphp

    昨天,搭建了最基本的 W + I + M + P 环境,今天把 workbench 装上,毕竟效率是第一位的,还不是吾装的时候. MySQL.org 下载最新的 workbench,一路安装倒是没有任 ...

  8. hdu 2570 贪心

    贪心的经典题型 该死的精度问题,WA了好几次,以后能用乘的绝不用除!! #include<iostream> #include<algorithm> #include<c ...

  9. ansys 有限元自学手册

    李兵.人邮2013.4 实体模型 –> 修正后划分 有限元网格 offset WP 偏移工作平面       模型的建立 将cT轮廓曲线 提取出来输入三维造型软件进行建模的方法,这种方法由于要对 ...

  10. aoj0118

    一.题意:有三种水果分别用,'@','*','#'三种符号表示,上下左右相连的同种水果被看做是一个区域,问一共有多少个区域 二.思路:用dfs去标记相连区域,然后遍历每个没有被标记的位置进行dfs 三 ...