
java
文章平均质量分 84
小辰工具箱
每日分享好用的软件,更多更新的资源可以关注工众浩【灰灰软件库】!!!
展开
-
JAVA序列化和反序列化
1、什么是序列化和反序列化 序列化:对象序列化的最主要的用处就是在传递和保存对象的时候,保证对象的完整性和可传递性。序列化是把对象转换成有序字节流,以便在网络上传输或者保存在本地文件中。序列化后的字节流保存了Java对象的状态以及相关的描述信息。序列化机制的核心作用就是对象状态的保存与重建。 反序列化:客户端从文件中或网络上获得序列化后的对象字节流后,根据字节流中所保存的对象状态及描述信息,通...原创 2018-11-01 15:52:54 · 214 阅读 · 0 评论 -
JAVA的clone
1.为什么要克隆? 这无非就是比较克隆的对象与new的对象之间的区别,首先克隆的对象包含一些已经修改过的属性,而new出来的对象的属性都还是初始化时候的值;其次我们以前用过Object a=new Object();Object b=a;这种形式的代码复制的是引用,即对象在内存中的地址,a和b对象仍然指向了同一个对象,而通过clone方法赋值的对象跟原来的对象时同时独立存在的。 2.如何实现克...翻译 2018-11-01 15:53:13 · 110 阅读 · 0 评论 -
InputStream分析
IO流操作一般分为两类:字符流和字节流。今天我们就来分析下字节输入流的父类:InputStream。它实现了Closeable 接口,我们先来看下Closeable 接口定义,如下: public interface Closeable extends AutoCloseable { // 关闭此流并释放与此流关联的所有系统资源。如果已经关闭该流,则调用此方法无效。 publi...翻译 2018-11-09 11:29:26 · 494 阅读 · 0 评论 -
OutputStream分析
上篇我们写了字节输入流的父类:InputStream,这篇我们接着分析字节输出流的父类:OutputStream。它实现了Closeable, Flushable接口,上篇介绍了Closeable接口,这篇我们就介绍Flushable接口,Flushable接口定义如下: public interface Flushable { //通过将任何缓冲的输出写入基础流来刷新此流 ...翻译 2018-11-09 14:48:03 · 330 阅读 · 0 评论 -
FileInputStream分析
我们先写个简单的Demo,代码如下: package com.lg.io; import java.io.FileInputStream; import java.io.IOException; public class FileInputStreamDemo { public static void main(String[] args) throws IOException {...翻译 2018-11-09 15:55:29 · 957 阅读 · 0 评论 -
HashMap解析
在早期(JDK1.8以前)的HashMap中,最常用的两种数据结构一种是数组,一种是链表结构。HashMap为了解决hash算法带来的hash冲突,所以采用了数组和链表的结合模式,它的底层是一个数组,然后根据求得的hash值在数组相应位置将相应的值插入链表中。但是这样的问题就是,数组的某一个桶的元素很多,那么链表就会很长,从而使得访问效率比较低。因此后来(JDK1.8)HashMap引入了红黑树...翻译 2018-11-13 17:33:37 · 178 阅读 · 0 评论 -
Java内存模型
1.共享变量 在java程序中所有实例域,静态域和数组元素都是放在堆内存中(所有线程均可访问到,是可以共享的),而局部变量、方法定义参数和异常处理器参数不会在线程间共享。共享数据会出现线程安全的问题,而非共享数据不会出现线程安全的问题。 2.JMM结构模型 在多线程条件下,多个线程肯定会相互协作完成一件事情,一般来说就会涉及到多个线程间相互通信告知彼此的状态以及...翻译 2018-11-15 17:54:16 · 108 阅读 · 0 评论 -
线程池
为什么使用线程池? 在实际使用中,线程是很占用系统资源的,如果对线程管理不善很容易导致系统问题。因此,在大多数并发框架中都会使用线程池来管理线程,使用线程池管理线程主要有如下好处: 1.降低资源消耗。通过复用已存在的线程和降低线程关闭的次数来尽可能降低系统性能损耗; 2.提升系统响应速度。通过复用线程,省去创建线程的过程,因此整体上提升了系统的响应速度; ...翻译 2018-11-21 17:38:26 · 112 阅读 · 0 评论