随笔分类 - Java
Java NIO原理分析
摘要:Java IO在Client/Server模型中,Server往往需要同时处理大量来自Client的访问请求,因此Server端需采用支持高并发访问的架构。一种简单而又直接的解决方案是“one-thread-per-connection”。这是一种基于阻塞式I/O的多线程模型。在该模型中,Server为每个Client连接创建一个处理线程,每个处理线程阻塞式等待可能达到的数据,一旦数据到达,则立即处理请求、返回处理结果并再次进入等待状态。由于每个Client连接有一个单独的处理线程为其服务,因此可保证良好的响应时间。但当系统负载增大(并发请求增多)时,Server端需要的线程数会增加,这将成为
阅读全文
彻底理解JAVA动态代理
摘要:代理设计模式定义:为其他对象提供一种代理以控制对这个对象的访问。代理模式的结构如下图所示。动态代理使用java动态代理机制以巧妙的方式实现了代理模式的设计理念。代理模式示例代码public interface Subject { public void doSomething(); } public class RealSubject implements Subject { public void doSomething() { System.out.println( "call doSomething()" ); } } ...
阅读全文
最小的k个数
摘要:题目:输入n个整数,找出其中的最小的k个数。例如输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4思路:创建一个大小为k的大顶堆,每次从数组中读入一个数,与大顶堆的根作比较,如果小于根,将该数做根,然后调整大顶堆。依次比较,最后输出该大顶堆。package com.flyoung;public class K { public static void heapAjust(int[] array,int s,int m){ //调整大顶堆 int temp ,j; temp=array[s]; for(j=2*s;j<=...
阅读全文
编程之美--3.5最短摘要生成
摘要:Alibaba笔试题:给定一段产品的英文描述,包含M个英文字母,每个英文单词以空格分隔,无其他标点符号;再给定N个英文单词关键字,请说明思路并编程实现方法String extractSummary(String description,String[] key words),目标是找出此产品描述中包含N个关键字(每个关键词至少出现一次)的长度最短的子串,作为产品简介输出。(不限编程语言)20分。 这道笔试题和编程之美最短摘要生成的方法类似,我用java实现了这个方法。 先来看看这些序列:w0,w1,w2,w3,q0,w4,w5,q1,w6,w7,w8,q0,w9,q1 问题在于,如何...
阅读全文
java nio小结
摘要:根据网上的资料做些整理Java NIO API详解 http://www.blogjava.net/19851985lili/articles/93524.html这篇文章对nio的api讲解比较全,可以帮助在宏观上把握nio。BIO 方式使得整个处理过程和连接是绑定的,只要连接建立,无论客户端是否有消息发送,都要进行等待处理,一定程度上浪费了服务器端的硬件资源,因此就有了NIO 方式。Java 对于 NIO 方式的支持是通过 Channel和 Selector 方式来实现,采用的方法为向 Channel注册感兴趣的事件,然后通过 Selector 来获取到发生了事件的 key,如发生了相应的
阅读全文
Java SE6调用动态编译
摘要:一、使用JavaCompiler接口编译java源程序 我们可以通过ToolProvider类的静态方法getSystemJavaCompiler来得到一个JavaCompiler接口的实例。 JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); JavaCompiler中最核心的方法是run。通过这个方法可以编译java源程序。这个方法有3个固定参数和1个可变参数(可变参数是从Jave SE5开始提供的一个新的参数类型,用type… argu表示)。前3个参数分别用来为java编译器提供参数、得到Java编译器的输出信..
阅读全文
RPC应用的java实现
摘要:一、RPC介绍 什么是RPC?Remote Procedure Call,远程过程调用。也就是说,调用过程代码并不是在调用者本地运行,而是要实现调用者与被调用者二地之间的连接与通信。比较严格的定义是:Remote procedure call (RPC) is a protocol that allows a computer program running on one computer to cause a subroutine on another computer to be executed without the programmer explicitly coding the .
阅读全文
浙公网安备 33010602011771号