自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(464)
  • 资源 (26)
  • 收藏
  • 关注

原创 ThreadLocal原理及内存泄露

前言在介绍ThreadLocal之前,先说两个概念内存泄露与内存溢出: 内存泄漏memory leak:是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄漏似乎不会有大的影响,但内存泄漏堆积后的后果就是内存溢出。 内存溢出 out of memory:没内存可以分配给新的对象了。 强引用: 不会被回收的内存。 软引用: 内部不足的时候回收的内存。 弱引用: 存活到垃圾回收前的内存。Thr...

2020-06-19 09:33:51 1006

原创 Linux十字病毒查杀处理

https://blog.51cto.com/ixdba/2163018一、现象接到客户的电话,说自己的云服务器被提供商禁止访问了,原因是监测到网络流量暴满,服务器不停的向外发包,在确认客户没有业务量突增的情况下,初步判断可能服务器遭受了流量攻&击(DDOS),不过按照常理来说,客户的业务系统就是一个小的web系统,平时流量不大,影响力也一般,不至于遭受DDOs,带着这些疑问...

2020-02-12 14:53:07 765 1

原创 使用shell脚本实现自动SSH互信功能(免密登录)

说假设有一个1000台节点的Hadoop集群,要配置节点之间的SSH免密码登录,该如何用shell脚本实现?#!/bin/expect #循环1000台机器的IP地址,生成密钥文件authorized_keys for ip in {cat ip.list}do ssh user@$ip ssh-keygen -t rsa &>/dev/null e...

2020-02-12 14:11:37 1420

原创 nginx 查看每秒有多少访问量

nginx访问量统计1.根据访问IP统计UVawk ‘{print $1}’ access.log|sort | uniq -c |wc -l2.统计访问URL统计PVawk ‘{print $7}’ access.log|wc -l3.查询访问最频繁的URLawk ‘{print $7}’ access.log|sort | uniq -c |sort -n -k 1 -...

2019-08-17 17:09:42 1275

原创 微信小程序、公众号内嵌H5页面调用微信扫一扫

小程序内嵌H5调用微信扫一扫的功能,通过小程序webview来实现,具体方法与思路代码如下:但是,小程序踩坑之路并没有结束。在公众号网页中通过配置APPID和appsecret可以正常调起微信扫一扫,但是,如何在小程序webview中调用扫一扫?扫描之后数据如何处理?小程序页面处理?还是传递给H5页面处理?无奈之下,只得另寻他法。网上有人说,可以在H5页面使用wx.miniProgram....

2019-06-29 16:26:04 11507 4

原创 java通过Exchange协议发送邮件

1、由于公司邮箱采用微软的,所以之前使用STMP协议发送业务告知邮件的业务代码需要变更。首先需要在项目引入以下Jar包 <!-- 微软邮箱 --> <dependency> <groupId>com.microsoft.ews-java-api</groupId> <artifactId>ews-java-api&l...

2019-05-27 17:53:10 13078 7

原创 采用Redis、Java的BitSet布隆过滤器去重

BloomFilter算法及其适用场景  BloomFilter是利用类似位图或者位集合数据结构来存储数据,利用位数组来简洁的表示一个集合,并且能够快速的判断一个元素是不是已经存在于这个集合。因为基于Hash来计算数据所在位置,所以BloomFilter的添加和查询操作都是O(1)的。因为存储简洁,这种数据结构能够利用较少的内存来存储海量的数据。那么,还有这种时间和空间两全其美的算法?当然不是...

2019-05-05 17:41:48 3063

原创 jmap、jstack、jps无法连接jvm解决办法

一、背景在对线上服务器的java应用dump操作时发现,以下报错,不能dump。jps也获取不到java进程的pid。# jmap -dump:file=/data/dump/jvm_en.hprof 2017620176: Unable to open socket file: target process not responding or HotSpot VM not loade...

2019-04-29 11:22:52 1602

原创 JVM性能调优及线上故障问题排查步骤

一、发现问题下面是线上机器的cpu使用率,可以看到从4月8日开始,随着时间cpu使用率在逐步增高,最终使用率达到100%导致线上服务不可用,后面重启了机器后恢复。二、排查思路简单分析下可能出问题的地方,分为5个方向:系统本身代码问题 内部下游系统的问题导致的雪崩效应 上游系统调用量突增 http请求第三方的问题 机器本身的问题三、开始排查查看日志,没有发现集中的错...

2019-04-29 11:22:11 4520 2

原创 Zookeeper实现可重入分布式锁

原理见快速理解Zookeeper实现分布锁的原理及代码实现抽象的OrderService接口:public interface OrderService { void createOrder();}订单号生成类(模拟公共资源ps:需要用锁的地方):import java.text.SimpleDateFormat;import java.util.Date;...

2019-04-18 15:36:43 1078

原创 快速理解Zookeeper实现分布锁的原理及代码实现

如何用Zookeeper实现分布式锁?网上好多采用ZK实现分布式锁都只能够应付一般使用场景,但存在着如下两个问题:1、锁的获取顺序和最初客户端争抢顺序不一致,这不是一个公平锁。每次锁获取都是当次最先抢到锁的客户端。2、羊群效应,所有没有抢到锁的客户端都会监听/exlusive_lock变更。当并发客户端很多的情况下,所有的客户端都会接到通知去争抢锁,此时就出现了羊群效应。而本文章等...

2019-04-18 11:46:04 689

原创 使用雪花算法为分布式下全局ID、订单号等简单解决方案考虑到时钟回拨

1.snowflake简介互联网快速发展的今天,分布式应用系统已经见怪不怪,在分布式系统中,我们需要各种各样的ID,既然是ID那么必然是要保证全局唯一,除此之外,不同当业务还需要不同的特性,比如像并发巨大的业务要求ID生成效率高,吞吐大;比如某些银行类业务,需要按每日日期制定交易流水号;又比如我们希望用户的ID是随机的,无序的,纯数字的,且位数长度是小于10位的。等等,不同的业务...

2019-04-16 14:18:51 7421 1

原创 高效、高并发的分布式ID生成器解决方案

ID生成器是指能产生不重复ID服务的程序,在后台开发过程中,尤其是分布式服务、微服务程序开发过程中,经常会用到,例如,为用户的每个请求产生一个唯一ID、为每个消息产生一个ID等等,ID生成器也是进行无状态服务开发的重要需求之一。ID生成器有其特殊要求:(1)产生的ID不能重复,在任何情况下产生的ID都不能重复,例如:在ID生成器程序重启之后,ID生成器产生的新ID不能与重启之前产生...

2019-04-16 09:41:38 894

原创 分布式防重复提交token设计

大型互联网项目中,很多流量都达到亿级。同一时间很多的人在使用,而每个用户提交表单的时候都可能会出现重复点击的情况,此时如果不做好控制,那么系统将会产生很多的数据重复的问题。怎样去设计一个高可用的防重复提交方案呢?具体问题争论点如下: 1.用户在提交数据后,很多时候总会有重复提交(商城秒抢活动更甚,几乎不可用) 2.系统每天宕机好几次(后经代码+服务器数据分析,a各种流没使用...

2019-04-15 20:22:19 684

原创 jvm参数陷阱

-XX:MaxTenuringThreshold-XX:MaxTenuringThreshold只对串行回收器和ParNew有效,对ParallGC无效。存活次数在串行和ParNew方式中可通过-XX:MaxTenuringThreshold来设置,ParallelScavenge则根据运行状态来决定。-XX:PretenureSizeThreshold-XX:PretenureSiz...

2019-04-09 17:05:41 761

原创 nginx配置详解及如何解决跨域、GEO白名单、限速、限流(防止DDOS攻击)

本配置中有些功能是在window下测试,而由于windows下nginx好像对有些功能有限制,所以只做了名词功能标注,功能注释了##定义nginx运行的用户各用户组#user nobody;##nginx进程数,建议设置与cpu核心数一致worker_processes 1;#windows下好像不支持#worker_cpu_affinity 00000001 00000010...

2019-03-30 17:53:34 1398

原创 Spring-session(spring-session-data-redis)实现分布式下Session共享

由于公司项目是单节点的,同事在开发过程中并未做Session共享,由于流量上升后,领导未经过了解直接加机器、加节点;大家可想而知了,项目中运行过程出现很多问题,经过同事们系列排查,才知道是由于上面原因导致拿不到Session。大家在项目采用Spring-Session时一定要注意项目中Spring的版本,否则会给你带成很多坑,首先,Spring-Session所需的最低SPring版本是3.2...

2019-03-13 12:58:39 5487

原创 Java多线程系列--“JUC线程池”06之 Callable和Future

概要本章介绍线程池中的Callable和Future。Callable 和 Future 简介  Callable 和 Future 是比较有趣的一对组合。当我们需要获取线程的执行结果时,就需要用到它们。Callable用于产生结果,Future用于获取结果。1. CallableCallable 是一个接口,它只包含一个call()方法。Callable是一个返回结果并且可能...

2019-03-06 09:55:18 311

原创 Java多线程系列--“JUC线程池”05之 线程池原理(四)

概要本章介绍线程池的拒绝策略。内容包括:拒绝策略介绍线程池的拒绝策略,是指当任务添加到线程池中被拒绝,而采取的处理措施。当任务添加到线程池中之所以被拒绝,可能是由于:第一,线程池异常关闭。第二,任务数量超过线程池的最大限制。线程池共包括4种拒绝策略,它们分别是:AbortPolicy,CallerRunsPolicy,DiscardOldestPolicy和DiscardPo...

2019-03-06 09:51:30 189

原创 Java多线程系列--“JUC线程池”04之 线程池原理(三)

本章介绍线程池的生命周期。在"Java多线程系列--“基础篇”01之 基本概念"中,我们介绍过,线程有5种状态:新建状态,就绪状态,运行状态,阻塞状态,死亡状态。线程池也有5种状态;然而,线程池不同于线程,线程池的5种状态是:Running,SHUTDOWN,STOP,TIDYING,TERMINATED。线程池状态定义代码如下:private final AtomicI...

2019-03-05 12:34:10 192

原创 Java多线程系列--“JUC线程池”03之 线程池原理(二)

概要在前面一章"Java多线程系列--“JUC线程池”02之 线程池原理(一)"中介绍了线程池的数据结构,本章会通过分析线程池的源码,对线程池进行说明。内容包括:线程池示例在分析线程池之前,先看一个简单的线程池示例。import java.util.concurrent.Executors;import java.util.concurrent.ExecutorServi...

2019-03-05 12:31:17 129

原创 Java多线程系列--“JUC线程池”02之 线程池原理(一)

概要在上一章"Java多线程系列--“JUC线程池”01之 线程池架构"中,我们了解了线程池的架构。线程池的实现类是ThreadPoolExecutor类。本章,我们通过分析ThreadPoolExecutor类,来了解线程池的原理。内容包括:ThreadPoolExecutor简介ThreadPoolExecutor是线程池类。对于线程池,可以通俗的将它理解为"存放一定数量线...

2019-03-05 12:27:05 173

原创 Java多线程系列--“JUC线程池”01之 线程池架构

概要前面分别介绍了"Java多线程基础"、"JUC原子类"和"JUC锁"。本章介绍JUC的最后一部分的内容——线程池。内容包括:线程池架构图线程池的架构图如下:1. Executor它是"执行者"接口,它是来执行任务的。准确的说,Executor提供了execute()接口来执行已提交的 Runnable 任务的对象。Executor存在的目的是提供一种将"任务提交...

2019-03-05 11:47:24 176

转载 Java多线程系列--“JUC集合”10之 ConcurrentLinkedQueue

概要本章对Java.util.concurrent包中的ConcurrentHashMap类进行详细的介绍。内容包括:ConcurrentLinkedQueue介绍ConcurrentLinkedQueue是线程安全的队列,它适用于“高并发”的场景。它是一个基于链接节点的无界线程安全队列,按照 FIFO(先进先出)原则对元素进行排序。队列元素中不可以放置null元素(内部实现...

2019-03-05 11:29:10 253

原创 Java多线程系列--“JUC集合”09之 LinkedBlockingDeque

概要本章介绍JUC包中的LinkedBlockingDeque。内容包括:LinkedBlockingDeque介绍LinkedBlockingDeque是双向链表实现的双向并发阻塞队列。该阻塞队列同时支持FIFO和FILO两种操作方式,即可以从队列的头和尾同时操作(插入/删除);并且,该阻塞队列是支持线程安全。此外,LinkedBlockingDeque还是可选容量的(防...

2019-03-05 11:24:37 188

原创 Java多线程系列--“JUC集合”08之 LinkedBlockingQueue

概要本章介绍JUC包中的LinkedBlockingQueue。内容包括:LinkedBlockingQueue介绍LinkedBlockingQueue是一个单向链表实现的阻塞队列。该队列按 FIFO(先进先出)排序元素,新元素插入到队列的尾部,并且队列获取操作会获得位于队列头部的元素。链接队列的吞吐量通常要高于基于数组的队列,但是在大多数并发应用程序中,其可预知的性能要低。...

2019-03-05 11:20:47 232

转载 Java多线程系列--“JUC集合”07之 ArrayBlockingQueue

概要本章对Java.util.concurrent包中的ArrayBlockingQueue类进行详细的介绍。内容包括:ArrayBlockingQueue介绍ArrayBlockingQueue是数组实现的线程安全的有界的阻塞队列。线程安全是指,ArrayBlockingQueue内部通过“互斥锁”保护竞争资源,实现了多线程对竞争资源的互斥访问。而有界,则是指ArrayBl...

2019-03-05 11:15:29 195

转载 Java多线程系列--“JUC集合”06之 ConcurrentSkipListSet

概要本章对Java.util.concurrent包中的ConcurrentSkipListSet类进行详细的介绍。内容包括:ConcurrentSkipListSet介绍ConcurrentSkipListSet是线程安全的有序的集合,适用于高并发的场景。ConcurrentSkipListSet和TreeSet,它们虽然都是有序的集合。但是,第一,它们的线程安全机制不同,...

2019-03-05 11:09:51 237

转载 Java多线程系列--“JUC集合”05之 ConcurrentSkipListMap

概要本章对Java.util.concurrent包中的ConcurrentSkipListMap类进行详细的介绍。内容包括:ConcurrentSkipListMap介绍ConcurrentSkipListMap是线程安全的有序的哈希表,适用于高并发的场景。ConcurrentSkipListMap和TreeMap,它们虽然都是有序的哈希表。但是,第一,它们的线程安全机制不...

2019-03-05 11:04:21 374

原创 Java多线程系列--“JUC集合”04之 ConcurrentHashMap

概要本章是JUC系列的ConcurrentHashMap篇。内容包括:ConcurrentHashMap介绍ConcurrentHashMap是线程安全的哈希表。HashMap,Hashtable, ConcurrentHashMap之间的关联如下:  HashMap是非线程安全的哈希表,常用于单线程程序中。  HashMap是线程安全的哈希表,它是通过sync...

2019-03-04 17:05:00 239

原创 Java多线程系列--“JUC集合”03之 CopyOnWriteArraySet

概要本章是JUC系列中的CopyOnWriteArraySet篇。接下来,会先对CopyOnWriteArraySet进行基本介绍,然后再说明它的原理,接着通过代码去分析,最后通过示例更进一步的了解CopyOnWriteArraySet。内容包括:CopyOnWriteArraySet介绍它是线程安全的无序的集合,可以将它理解成线程安全的HashSet。有意思的是,CopyOnWrit...

2019-03-04 16:55:18 199

转载 Java多线程系列--“JUC集合”02之 CopyOnWriteArrayList

概要本章是"JUC系列"的CopyOnWriteArrayList篇。接下来,会先对CopyOnWriteArrayList进行基本介绍,然后再说明它的原理,接着通过代码去分析,最后通过示例更进一步的了解CopyOnWriteArrayList。内容包括:CopyOnWriteArrayList介绍它相当于线程安全的ArrayList。和ArrayList一样,它是个可变数组;但是和A...

2019-03-04 16:49:06 263

原创 Java多线程系列--“JUC集合”01之 框架

概要之前,在"Java 集合系列目录(Category)"中,讲解了Java集合包中的各个类。接下来,将展开对JUC包中的集合进行学习。在学习之前,先温习一下"Java集合包"。本章内容包括:Java集合包在“Java 集合系列01之 总体框架”中,介绍java集合的架构。主体内容包括Collection集合和Map类;而Collection集合又可以划分为List(队列)和...

2019-03-04 16:40:07 199

原创 Java多线程系列--“JUC锁”11之 Semaphore信号量的原理和示例

概要本章,我们对JUC包中的信号量Semaphore进行学习。内容包括:Semaphore简介Semaphore是一个计数信号量,它的本质是一个"共享锁"。信号量维护了一个信号量许可集。线程可以通过调用acquire()来获取信号量的许可;当信号量中有可用的许可时,线程能获取该许可;否则线程必须等待,直到有可用的许可为止。 线程可以通过release()来释放它所持有的信号...

2019-03-04 16:18:50 256

原创 Java多线程系列--“JUC锁”10之 CyclicBarrier原理和示例

概要本章介绍JUC包中的CyclicBarrier锁。内容包括:CyclicBarrier简介CyclicBarrier是一个同步辅助类,允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。因为该 barrier在释放等待线程后可以重用,所以称它为循环 的 barrier。注意比较CountDownLatch和CyclicBarr...

2019-03-04 16:05:03 194

原创 Java多线程系列--“JUC锁”09之 CountDownLatch原理和示例

概要前面对"独占锁"和"共享锁"有了个大致的了解;本章,我们对CountDownLatch进行学习。和ReadWriteLock.ReadLock一样,CountDownLatch的本质也是一个"共享锁"。本章的内容包括:CountDownLatch简介CountDownLatch是一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。Cou...

2019-03-04 15:58:05 180

原创 Java多线程系列--“JUC锁”08之 共享锁和ReentrantReadWriteLock

概要Java的JUC(java.util.concurrent)包中的锁包括"独占锁"和"共享锁"。在“Java多线程系列--“JUC锁”02之 互斥锁ReentrantLock”中,对Java的独占锁进行了说明。本章对Java的“共享锁”进行介绍,JUC中的共享锁有CountDownLatch, CyclicBarrier, Semaphore, ReentrantReadWriteLoc...

2019-03-04 15:53:16 313

原创 Java多线程系列--“JUC锁”07之 LockSupport

概述本章介绍JUC(java.util.concurrent)包中的LockSupport。内容包括:LockSupport介绍LockSupport是用来创建锁和其他同步类的基本线程阻塞原语。LockSupport中的park() 和 unpark() 的作用分别是阻塞线程和解除阻塞线程,而且park()和unpark()不会遇到“Thread.suspend 和 Thread...

2019-03-04 15:29:09 205

原创 Java多线程系列--“JUC锁”06之 Condition条件

概要前面对JUC包中的锁的原理进行了介绍,本章会JUC中对与锁经常配合使用的Condition进行介绍,内容包括:Condition介绍Condition的作用是对锁进行更精确的控制。Condition中的await()方法相当于Object的wait()方法,Condition中的signal()方法相当于Object的notify()方法,Condition中的signalAl...

2019-03-04 15:23:05 155

原创 Java多线程系列--“JUC锁”05之 非公平锁

概要前面两章分析了"公平锁的获取和释放机制",这一章开始对“非公平锁”的获取锁/释放锁的过程进行分析。内容包括参考代码下面给出Java1.7.0_40版本中,ReentrantLock和AQS的源码,仅供参考!ReentranLock.javaAQS(AbstractQueuedSynchronizer.java)获取非公平锁(基于JDK1.7.0_40)非...

2019-03-02 15:55:05 150

在应用层通过spring特性解决数据库读写分离代码

在应用层通过spring特性解决数据库读写分离代码

2016-03-22

用Java实现FTP批量大文件上传下载

用Java实现FTP批量大文件上传下载

2014-06-30

Android之SQLite分页表格源码

关于Android之SQLite分页表格,使用SQLite作为数据库实现数据分页显示的表格

2014-06-26

Struts2返回JSON数据的具体应用范例 Struts2_JSON_Demo

Struts2返回JSON数据的具体应用范例

2013-03-05

点阵字库在JAVA中的实现源码

点阵字库在JAVA中的实现源码

2012-12-25

fatjar用于打包可执行的jar文件软件

fatjar用于打包可执行的jar文件软件

2012-11-12

exe4j安装包

exe4j安装包文件

2012-11-12

Swing下CS结构软件自动升级实现

前段时间做了一个工具发布给公司的各部门使用后反馈了不少BUG,每次修改后均需要发邮件通知各用户替换最新版本,很不方便,因此后来就写了一个自动升级的功能,这样每次发布新的版本时只需要将其部署到自动升级服务器上,工具使用用户运行工具时就会连接到自动升级服务器,检查是否有版本更新,如果有则完成更新后再运行最新版本,否则就运行当前工具版本。 为了使这个自动升级模块具有通用性,我将其做成可以单独运行的程序,而并非集成到工具中,这样则可以为各类软件提供自动升级的功能。自动升级模块采用SOCKET方式实现升级客户端与服务端的交互,通过版本控制文件autoupdate.xml来控制版本的更新,完成自动更新后会将历史清单history.htm也发送给客户端,并自动打开该文件,使用户可以对本次升级的具体内容一目了然。

2012-10-16

java图片压缩处理 支持gif

java图片压缩处理

2012-10-15

java处理GIF文件格式时进行相关分析的类

生成和解析动态的GIF图片 有了以上对图象的基本处理之后,我们再来看看对动态GIF图片的处理。 GIF是一种由CompuServe创建的压缩和传送图像文件的格式。 GIF图像是基于颜色列表的(存储的数据是该点的颜色对应于颜色列表的索引值),最多只支持8位(256色)。GIF文件内部分成许多存储块,用来存储多幅图像(Frame)或者是决定图像表现行为的控制块,用以实现动画和交互式应用。因此我们要生成和分析GIF图像的话,就需要对GIF文件格式进行分析,

2012-10-15

深入Java虚拟机(原书第2版)

深入Java虚拟机(原书第2版).深入Java虚拟机(原书第2版).深入Java虚拟机(原书第2版).

2012-09-26

Java_TCPIP_Socket编程

第1章简介....................................................................................................................................3 1.1 计算机网络,分组报文和协议........................................................................................3 1.2 关于地址............................................................................................................................6 1.3 关于名字............................................................................................................................8 1.4 客户端和服务器................................................................................................................8 1.5 什么是套接字....................................................................................................................9 1.6 练习..................................................................................................................................10 第2章基本套接字......................................................................................................................10 2.1 套接字地址......................................................................................................................10 2.2 TCP套接字.......................................................................................................................17 2.2.1 TCP客户端............................................................................................................17 2.2.2 TCP服务器端........................................................................................................22 2.2.3 输入输出流...........................................................................................................26 2.3 UDP套接字......................................................................................................................28 2.3.1 DatagramPacket类...............................................................................................28 2.3.2 UDP客户端...........................................................................................................30 2.3.3 UDP服务器端.......................................................................................................36 2.3.4 使用UDP套接字发送和接收信息......................................................................38 2.4 练习..................................................................................................................................40 第3章发送和接收数据...............................................................................................................41 3.1 信息编码..........................................................................................................................42 3.1.1 基本整型...............................................................................................................42 3.1.2 字符串和文本.......................................................................................................48 3.1.3 位操作:布尔值编码...........................................................................................50 3.2 组合输入输出流..............................................................................................................51 3.3 成帧与解析......................................................................................................................52 3.4 Java特定编码...................................................................................................................58 3.5 构建和解析协议消息......................................................................................................59 3.5.1 基于文本的表示方法...........................................................................................62 3.5.2 二进制表示方法...................................................................................................65 3.5.3 发送和接收...........................................................................................................67 3.6 结束..................................................................................................................................76 3.7 练习..................................................................................................................................76 第4章进阶..................................................................................................................................77 4.1 多任务处理......................................................................................................................77 4.1.1 Java 多线程..........................................................................................................78 4.1.2 服务器协议...........................................................................................................80 4.1.3 一客户一线程.......................................................................................................84 4.1.4 线程池...................................................................................................................86 4.1.5 系统管理调度:Executor接口...........................................................................89 4.2 阻塞和超时......................................................................................................................91 4.2.1 accept(),read()和receive()....................................................................................91 4.2.2 连接和写数据.......................................................................................................92 4.2.3 限制每个客户端的时间.......................................................................................92 4.3 多接收者..........................................................................................................................94 4.3.1 广播.......................................................................................................................94 4.3.2 多播.......................................................................................................................95 4.4 控制默认行为................................................................................................................100 4.4.1 Keep-Alive...........................................................................................................100 4.4.2 发送和接收缓存区的大小.................................................................................101 4.4.3 超时.....................................................................................................................101 4.4.4 地址重用.............................................................................................................102 4.4.5 消除缓冲延迟.....................................................................................................102 4.4.6 紧急数据.............................................................................................................103 4.4.7 关闭后停留.........................................................................................................103 4.4.8 广播许可.............................................................................................................103 4.4.9 通信等级.............................................................................................................104 4.4.10 基于性能的协议选择.......................................................................................104 4.5 关闭连接........................................................................................................................104 4.6 Applets...........................................................................................................................111 4.7 结束................................................................................................................................112 4.8 练习................................................................................................................................112 第5章 NIO.................................................................................................................................112 5.1 为什么需要NIO?........................................................................................................113 5.2 与Buffer一起使用Channel..........................................................................................115 5.3 Selector...........................................................................................................................118 5.4 Buffer详解.....................................................................................................................125 5.4.1 Buffer索引...........................................................................................................125 5.4.2 创建Buffer..........................................................................................................126 5.4.3 存储和接收数据.................................................................................................128 5.4.4 准备Buffer:clear(),flip(),和rewind()........................................................130 5.4.5 压缩Buffer中的数据..........................................................................................132 5.4.6 Buffer透视:duplicate(),slice()等..................................................................134 5.4.7 字符编码.............................................................................................................136 5.5 流(TCP)信道详解....................................................................................................136 5.6 Selector详解...................................................................................................................139 5.6.1 在信道中注册.....................................................................................................139 5.6.2 选取和识别准备就绪的信道.............................................................................141 5.6.3 信道附件.............................................................................................................143 5.6.4 Selector小结........................................................................................................144 5.7 数据报(UDP)信道...................................................................................................144 5.8 练习................................................................................................................................149 1. 使用定长的写缓冲区改写TCPEchoClientNonblocking.java。....................................149 2.使用Buffer和DatagramChannel编写一个回显客户端。................................................149 第6章深入剖析........................................................................................................................149 6.1 缓冲和TCP....................................................................................................................152 6.2 死锁风险........................................................................................................................155 6.3 性能相关........................................................................................................................158 6.4 TCP套接字的生存周期.................................................................................................158 6.4.1 连接.....................................................................................................................158 6.4.2 关闭TCP连接.....................................................................................................164 6.5 解调多路复用揭秘........................................................................................................167 6.6 练习...............................................................................................................................

2012-09-26

Java 并发编程实战

Java 并发编程实战

2012-09-26

Java虚拟机规范(Java SE 7版).

Java虚拟机规范(Java SE 7版).

2012-09-26

Java RMI 开发技术

Java RMI 开发技术英文版资源PDF格式

2012-09-26

借助浏览器控件利用CSS和JavaScript设计Java桌面程序界面

借助浏览器控件利用CSS和JavaScript设计Java桌面程序界面

2012-09-26

Java制作的快速打开文件夹、程序的小工具 .

Java制作的快速打开文件夹、程序的小工具

2012-09-26

Java网络高级编程

Java网络高级编程

2012-02-23

MySQL入门常用操作命令收集.

MySQL入门常用操作命令收集,集合的mysql中常用的命令操作方法

2012-02-23

Java.P2P技术内幕

Java.P2P技术内幕,描述了p2p技术的实现内幕

2012-02-18

Swing 截屏程序

Swing 截屏程序Swing 截屏程序

2012-02-18

Ext 2.0中文API(最新版)Ext 2 API Documentation

Ext 2.0中文API(最新版)Ext 2 API Documentation

2010-05-08

很适合学习EXTJS的中文手册

是一个很好的EXTJS中文版手册,很适合那些初学EXTJS的学者

2010-05-08

ASP微型调试工具 小旋风ASP服务器

ASP微型调试工具 ASP微型测试工具 小旋风ASP服务器

2009-04-16

良好体验度的注册系统ASP.NET版本

良好体验度的注册系统ASP.NET版本Asp.NET+AJAX *特点和知识点: 1.AJAX验证用户名和验证码,同时异步进行用户名注册(都属于AJAX的很基础部分) 2.支持验证码刷新(包括firefox平台下) 3.密码,邮箱,用户名等即时检测(利用javascript DOM) 4.HTML通过W3C Strict验证,CSS也通过W3C CSS验证(其实这个有点多余,并不完全必要)

2008-12-07

空空如也

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

TA关注的人

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