自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 资源 (20)
  • 收藏
  • 关注

转载 深入分析Java的序列化与反序列化

序列化是一种对象持久化的手段。普遍应用在网络传输、RMI等场景中。本文通过分析ArrayList的序列化来介绍Java序列化的相关内容。主要涉及到以下几个问题:怎么实现Java的序列化为什么实现了java.io.Serializable接口才能被序列化transient的作用是什么怎么自定义序列化策略自定义的序列化策略是如何被调用的ArrayList对序列化的实现有什么

2016-08-31 11:23:40 546

原创 桥接模式

对于桥接模式的理解,参考《大话设计模式》桥接模式(Bridge),将抽象部分与它的实现部分分离,使它们都可以独立的变化。这里需要理解一下,什么叫抽象与它的实现部分分离,这不是说,让抽象类与其派生类分离,因为这没有任何意义,实现指的是抽象与它的派生类都用来实现自己的对象(可以理解为抽象类与实现类都有自己单独的子类?)。《大话设计模式》使用的例子是手机,手机可以按照品牌分类,也可以按照软件

2016-08-25 16:18:18 359

原创 适配器模式 合成模式

《Java设计模式》根据意图对设计模式进行的分类,作为参考,如下: 这里介绍“接口型模式”中的适配器模式、合成模式,桥接模式。适配器模式与合成模式还是比较好理解的,关键是桥接模式。 适配器模式:对适配器的概念源于电子通信,一般意义上的理解就是两个东西不匹配了,比如型号、速度等,拿个适配器转换一下,这里适配器的概念是类似的。在《Java设计模式》中举得一个例子就是客户端(clie

2016-08-25 15:08:21 443

原创 epoll的反应堆实现模式

这里有个epoll的反应堆模式实现,在这段代码之前,不知道什么是reactor反应堆,赶紧去补了一下Reator模式 论文阅读整理,这个论文是以面向对象的思想来介绍反应堆的实现的。对比这个epoll的反应堆实现,发生跟论文中的实现还是有点出入,而普通的epoll实现epoll 示例跟不用reator模式差不多,当然思想上还是有差别的。在反应堆实现中,为每个fd由自己封装了一个mye

2016-08-24 18:43:57 1251

原创 Reator模式 论文阅读整理

华盛顿大学的论文 Reactor An Object Behavioral Pattern for Demultiplexing and Dispatching Handles for Synchronous Events 讲了Reactor模式的设计。大体看了一下,发现也不是很复杂,而且也没有想象中的有新意。(可能这篇论文比较久了,有更新的Reactor模式等,这里只是大体了解其意)。

2016-08-24 17:20:13 915

原创 判断一个二叉树是不是合法的二分查找树

leetcode题目https://leetcode.com/problems/validate-binary-search-tree/,判断一个二叉树是不是合法的二分查找树,这个题目应该说遇到多次了,然而在写的时候还是费了一番时间,而且写了一个十分拙劣的算法(在本文最后,不做解释)。参考leetcode的discuss,遇到了两个比较好的解法,一个是递归(同样是递归,人家的就很简单),另一个

2016-08-23 10:57:59 3611

原创 Top K Frequent Elements 选出数组中出现次数最多的k个元素

原题地址:https://leetcode.com/problems/top-k-frequent-elements/,这个题目要求时间复杂度不能超过O(nlgn),也就是说常规的排序算法不可行(排序算法复杂度至少为nlgn)。那么想到的一种算法是使用优先队列,限制优先队列的大小为K,那么可以做到时间复杂度为O(nlgk),还能不能再提高呢,另一种方法是使用桶排序,算法复杂度为O(n)。

2016-08-22 17:49:31 3589

原创 《Node入门》读书笔记

这里Node入门给出了一个nodejs教程,感觉挺好,花半天时间看了一下,把其中的代码也敲了一下。笔记都写到代码里去了。感觉如何正确实现非阻塞IO在node中还是挺重要的,下面一共四个nodejs模块,分别为index.js,负责启动server,加载路由配置,server.js就是负责接收请求与调用route进行转发。router.js就是转发请求了,requestHanders.js就

2016-08-20 22:30:48 432

转载 为什么要用 Node.js

这是一个移动端工程师涉足前端和后端开发的学习笔记,如有错误或理解不到位的地方,万望指正。Node.js 是什么传统意义上的 JavaScript 运行在浏览器上,这是因为浏览器内核实际上分为两个部分:渲染引擎和 JavaScript 引擎。前者负责渲染 HTML + CSS,后者则负责运行 JavaScript。Chrome 使用的 JavaScript 引擎是 V8,它的速度非常

2016-08-20 16:01:31 642

原创 《Java性能优化...》读书笔记

1、JVM虚拟机内存分配参数-Xmx:设置最大堆大小,最大堆指的是新生代和年老代的大小之和的最大值,它是Java应用程序的堆上限。当使用值超过这个限制时会抛出OutOfMemoryError异常。可以使用循环申请1M空间(new byte[1024*1024])进行测试,-Xms:设置最小堆(可以认为后面的s代表small)大小,Java应用程序在运行时,首先会被分配-Xms指定的内存

2016-08-20 15:13:56 759 1

原创 二分查找总结

在《编程之美》中有一组关于二分查找的题目,给定一个有序(不降序)数组arr和一个数字v:1、求任意一个i,使得arr[i]等于v,不存在则返回-1。2、求最小的一个i,使得arr[i]等于v,不存在则返回-1。3、求最大一个i,使得arr[i]等于v,不存在则返回-1。4、求最大的i,使得arr[i]小于v,不存在则返回-1。5、求最小的i,使得arr[i]大于v,不存在返回-

2016-08-19 19:38:02 424

原创 编程之美,实现MaxQueue

要求能在O(1)时间内取最大元素,并且放元素和取元素的时间复杂度尽量是O(1),之前有两个题是这个题的基础:1、实现MaxStack(或者MinStack)。实现MaxStack比较简单,因为栈的操作都是在一端进行的。2、用栈来实现队列。这个题就是上述两个题的综合应用。首先要实现一个MaxStack,然后再用两个MaxStack来实现一个队列,两个MaxStack中的最大值就是队列中的

2016-08-19 09:27:53 994

原创 akka introduce

什么是Akka,Akka主要用来编写分布式的,可扩展的,并发的应用程序,详见官方文档,官方文档真的好长啊,这里记了一些akka的helloworld程序,算是简单入门吧。Akka总结Actor模型基于一种通过消息进行通信的简单的actor实体结构,能够轻松地构建应用程序来实现高并发性和可伸缩性。         用于并发计算的actor模型基于各种称为actor的原语来构建系统。A

2016-08-18 15:45:11 597

原创 Java AIO总结与示例

AIO是异步IO的缩写,虽然NIO在网络操作中,提供了非阻塞的方法,但是NIO的IO行为还是同步的。对于NIO来说,我们的业务线程是在IO操作准备好时,得到通知,接着就由这个线程自行进行IO操作,IO操作本身是同步的。但是对AIO来说,则更加进了一步,它不是在IO准备好时再通知线程,而是在IO操作已经完成后,再给线程发出通知。因此AIO是不会阻塞的,此时我们的业务逻辑将变成一个回调函数,等待I

2016-08-16 17:59:56 18689 5

原创 《实战Java...》读书笔记2

10、锁消除也是一种优化技术,一个例子是在不需要同步的地方使用了线程安全的数据结构,比如在线程的局部变量中使用了Vector,一个线程的局部变量是不能被其他线程访问的,不存在多线程问题,虚拟机检测到这样的问题就会将不必要的锁去除。 11、关于ThreadLocal,ThreadLocal是为了让每个线程都拥有一个对象的副本,多个线程之间不存在相互干扰。具体实现上,每个线程都持有一个Thre

2016-08-14 22:17:32 543

原创 《实战Java...》读书笔记

1、如何终止一个线程?    调用stop()方法不可取,因为stop会立即停止线程并释放锁,容易导致不一致,那怎么停止呢?一般是给线程设置一个标志位表示是否继续运行,然后设置一个方法,用来将标志位设置为false,并且在run方法中不断坚持这个标志位,如果为false则使用break跳出无限循环。 2、调用Thread.sleep时要处理InterruptedException,也就

2016-08-14 22:16:16 578

原创 Java NIO 总结与示例

Java NIO是New IO的简称,它是一种可以替代Java IO的一套新的IO机制。它提供了一套不同于Java标准IO的操作机制。Java NIO中涉及的基础内容有通道(Channel)和缓冲区(Buffer)、文件IO和网络IO。有关通道、缓冲区以及文件IO在这里不打算进行详细的介绍。这里参考《实战Java高并发程序设计》利用NIO实现一个Echo服务器的服务端与客户端。在看

2016-08-14 21:03:12 812

原创 一个并行搜索算法

抄自《实战Java高并发程序设计》package understanding;import java.util.ArrayList;import java.util.List;import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util.con

2016-08-13 16:14:54 4147

原创 倒计时器:CountDownLatch

CountDownLatch是一个非常实用的多线程控制工具类。其使用场景是一些线程等待另一些线程结束之后才执行。一个简单的例子是火箭发射程序。在火箭发射之前要进行检查任务,检查任务完成之后才进行火箭发射。使用CountDownLatch可以很容易完成程序。CountDownLatch的构造函数有一个int整数,用来标示执行任务之前需要执行的countDownLatch.countDown次数。 程

2016-08-12 21:13:55 492

转载 epoll 三个方法 两种工作模式

epoll是在2.6内核中提出的,是之前的select和poll的增强版本。相对于select和poll来说,epoll更加灵活,没有描述符限制。epoll使用一个文件描述符管理多个描述符,将用户关系的文件描述符的事件存放到内核的一个事件表中,这样在用户空间和内核空间的copy只需一次。一 epoll操作过程 epoll操作过程需要三个接口,分别如下:int epoll_create(int si

2016-08-12 15:56:16 4165

原创 C语言结构体赋值问题

本身做Java比较多,直接在C中将一个结构体赋值给另一个结构体时,不太确定会发生什么事。下面写了一个小例子测试。结论是:C结构体直接复制类似于深拷贝,改变被修改的结构体不会影响到原来的结构体。代码:#include typedef struct{ char *name; int age;}student;int main(){ student a,b; a.n

2016-08-12 10:08:54 2472

转载 epoll 示例

首先我们来定义流的概念,一个流可以是文件,socket,pipe等等可以进行I/O操作的内核对象。不管是文件,还是套接字,还是管道,我们都可以把他们看作流。之后我们来讨论I/O的操作,通过read,我们可以从流中读入数据;通过write,我们可以往流写入数据。现在假定一个情形,我们需要从流中读数据,但是流中还没有数据,(典型的例子为,客户端要从socket读如数据,但是

2016-08-11 21:35:58 917

原创 扩展ThreadPoolExecutor打印线程错误堆栈

在使用JDK Executors产生线程池执行任务时,如果使用threadPool.submit(Runnable)来提交任务,且不调用future.get时,如果线程发生错误,程序是不会打印错误堆栈的,比如下面的程序,当i==0时,100/i发生运行时异常,只有四组输出(应该有五组),但是程序不会打印任何异常信息,import java.util.concurrent.Synchronous

2016-08-10 21:34:05 2180

原创 判断一个机器使用的是大端存储还是小端存储

本文节选自《UNIX网络编程》。考虑一个16位整数,它由两个字节组成。内存中存储这两个字节有两种方法:一种是将低序字节存储在起始地址,这称为小端(little-endian)字节序;另一种方法是将高序字节存储在起始地址,这称为大端(big-endian)字节序。下面的程序可以判断一台机器是大端存储还是小端存储。#includeint main(int argc, char*

2016-08-06 10:44:33 1930

go学习笔记

完整版 带书签完整版 带书签完整版 带书签完整版 带书签完整版 带书签

2018-04-14

Kubernetes权威指南 pdf 带书签

Kubernetes权威指南 第2版 [龚正][电子工业出版社][2016.09][506页][14166741

2017-12-16

实战Java高并发程序设计 pdf

实战Java高并发程序设计 [葛一鸣,郭超编著][电子工业出版社][2015.10][339页][13897056]

2017-11-29

Java程序性能优化 让你的Java程序更快、更稳定 pdf [葛一鸣编著][清华大学出版社][2012.10][400页][13093953]

Java程序性能优化 让你的Java程序更快、更稳定 [葛一鸣编著][清华大学出版社][2012.10][400页][13093953]

2017-11-29

云计算网络珠玑 pdf 完整版 part2 注意还有part1

云计算网络珠玑 李俊武电子工业出版社 part2 这个是第二部分,要跟第一部分放在一起解压

2016-11-06

云计算网络珠玑 完整版 pdf part1 注意还有part2

云计算网络珠玑 李俊武著 电子工业出版社 注意:分成了两个压缩文件(我只有70M上传权限),放在一起,解压一个就好, part2也在我的资源列表中

2016-11-06

图说设计模式 Graphic Design Patterns

总结的很好的设计模式,原地址:http://design-patterns.readthedocs.io/zh_CN/latest/index.html

2016-08-27

深入理解Java虚拟机 JVM高级特性与最佳实践

[周志明著][机械工业出版社][2013.06][433页]

2016-08-17

虚拟化技术原理与实现 pdf

虚拟化技术原理与实现 广小明等编著电子工业出版社

2016-05-30

计算机组成原理课后答案_第二版_唐朔飞_课后答案[1-10]

计算机组成原理课后答案_第二版_唐朔飞_课后答案.pdf

2016-01-08

微型计算机接口技术及应用 _刘乐善_课后答案[1-6章].khda

微型计算机接口技术及应用 (刘乐善 著) 华中科技大学出版社 课后答案

2016-01-08

中文情感分析 酒店评论预料

为了弥补国内在中文情感挖掘方面的语料的匮乏,谭松波收集整理了一个较大规模的酒店评论语料。语料规模为10000篇。语料从携程网上自动采集,并经过整理而成。为了方便起见,语料被整理成4个子集: 1.ChnSentiCorp-Htl-ba-2000: 平衡语料,正负类各1000篇。 2.ChnSentiCorp-Htl-ba-4000: 平衡语料,正负类各2000篇。 3.ChnSentiCorp-Htl-ba-6000: 平衡语料,正负类各3000篇。 4.ChnSentiCorp-Htl-unba-10000: 非平衡语料,正类为7000篇。

2015-11-16

linux mysql-connector-java-5.1.36.tar.gz

一个平台无关的mysql jar包,具有平台无关系,主要用于linux中,恩,linux下的

2015-07-11

Java编程思想第4版

高清 高清,pdf 可以复制粘贴,从淘宝买的

2012-04-01

时间片轮转法作业调度 MFC课程设计

一个不错的MFC课程设计 自己做的,大家自己看着用吧

2012-03-21

java 课程设计 个人理财管理系统

一个不错的java设计 家庭理财管理系统

2012-03-20

MFC类库中文手册

MFC类库中文手册

2011-12-21

VC++6.0 简体中文版 msdn

VC++6.0 简体中文版 msdn ,很简易的mfc使用手册

2011-06-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除