介绍 一直以来只知道Java有clone方法,该方法属于Object的,对于什么是浅克隆与深克隆就比较模糊了,现在就来补充学习一下. 概念 浅拷贝(浅克隆)复制出来的对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象. 深拷贝(深克隆)复制出来的所有变量都含有与原来的对象相同的值,那些引用其他对象的变量将指向复制出来的新对象,而不再是原有的那些被引用的对象.换言之,深复制把要复制的对象所引用的对象都复制了一遍. 实现 Student.java public cl…
Android应用程序开发是以Java语言为基础的,所以需要有扎实的Java基础知识.首先熟悉java基本语法,然后熟悉设计模式等. a) Java基础语法:看下面的<Java知识点列表> b)设计模式:由于在Android系统的框架层当中,使用了大量的设计模式,如果没有这个方面的知识,对于Android的理解就会大打折扣.设计模式 的种类非常之多(设计模式大概有28种,具体请看设计模式系列 ),一个一个的全部掌握,是不现实的,必须首先掌握面向对象的基础设计原则,有 了这些基础原则的支持,理解…
一.何为克隆 在Java的体系中,数据类型分为基本数据类型和引用数据类型. 基本数据类型包括byte,short,int,long,float,double,boolean,char 8种,其克隆可通过赋值运算实现,比如 int a = 1; int b = a; 引用类型的克隆的实现方式有以下两种: 1)实现Cloneable接口,重写clone() 方法,修改clone() 方法的修饰符为public.其分为浅克隆和深克隆. 2)  实现Serializable接口,对实例进行序列化,通过二…
前言 克隆,即复制一个对象,该对象的属性与被复制的对象一致,如果不使用Object类中的clone方法实现克隆,可以自己new出一个对象,并对相应的属性进行数据,这样也能实现克隆的目的. 但当对象属性较多时,这样的克隆方式会比较麻烦,所以Object类中实现了clone方法,用于克隆对象. Java中的克隆分为浅克隆与深克隆 一.实现克隆的方式 1.对象的类需要实现Cloneable接口 2.重写Object类中的clone()方法 3.根据重写的clone()方法得到想要的克隆结果,例如浅克隆…
前言 克隆,即复制一个对象,该对象的属性与被复制的对象一致,如果不使用Object类中的clone方法实现克隆,可以自己new出一个对象,并对相应的属性进行数据,这样也能实现克隆的目的. 但当对象属性较多时,这样的克隆方式会比较麻烦,所以Object类中实现了clone方法,用于克隆对象. Java中的克隆分为浅克隆与深克隆 一.实现克隆的方式 1.对象的类需要实现Cloneable接口 2.重写Object类中的clone()方法 3.根据重写的clone()方法得到想要的克隆结果,例如浅克隆…
本篇博客内容: 一.浅克隆(ShallowClone)和深克隆(DeepClone) 二.序列化和反序列化实现深克隆 三.封装序列化和反序列化操作 ObjectOutputStream + 内存流ByteArrayOutputStream 四.对象持久化到文件或从文件中读取对象 ObjectOutputStream + FileOutputStream 一.浅克隆(ShallowClone)和深克隆(DeepClone)   <=返回目录 1.1.浅克隆和深克隆区别 package com.oy…
为什么需要克隆      在实际编程过程中,我们常常要遇到这种情况:有一个对象A,在某一时刻A中已经包含了一些有效值,此时可能会需要一个和A完全相同新对象B, 并且此后对B任何改动都不会影响到A中的值,也就是说,A与B是两个独立的对象,但B的初始值是由A对象确定的.在Java语言中,用简单的赋值语句是不 能满足这种需求的,要满足这种需求有很多途径.       克隆的实现方式       一.浅度克隆            浅度克隆对于要克隆的对象,对于其基本数据类型的属性,复制一份给新产生的对…
这是java高并发系列第15篇文章 Semaphore(信号量)为多线程协作提供了更为强大的控制方法,前面的文章中我们学了synchronized和重入锁ReentrantLock,这2种锁一次都只能允许一个线程访问一个资源,而信号量可以控制有多少个线程可以访问特定的资源. Semaphore常用场景:限流 举个例子: 比如有个停车场,有5个空位,门口有个门卫,手中5把钥匙分别对应5个车位上面的锁,来一辆车,门卫会给司机一把钥匙,然后进去找到对应的车位停下来,出去的时候司机将钥匙归还给门卫.停车…
这是java高并发系列第16篇文章. 本篇内容 介绍CountDownLatch及使用场景 提供几个示例介绍CountDownLatch的使用 手写一个并行处理任务的工具类 假如有这样一个需求,当我们需要解析一个Excel里多个sheet的数据时,可以考虑使用多线程,每个线程解析一个sheet里的数据,等到所有的sheet都解析完之后,程序需要统计解析总耗时.分析一下:解析每个sheet耗时可能不一样,总耗时就是最长耗时的那个操作. 我们能够想到的最简单的做法是使用join,代码如下: pack…
java必备的开发知识和技能 https://blog.csdn.net/qq_34405062/article/details/89389646 学习一下java 其实上学那会儿学的 早就过时加落伍了.. 而且 还只是 应付考试   1. 线程和进程的区别 线程三个基本状态:就绪.执行.阻塞 线程五个基本操作:创建.就绪.运行.阻塞.终止 进程四种形式:主从式.会话式.消息或邮箱机制.共享存储区方式 进程是具有一定功能的程序关于某次数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单…