- 浏览: 407944 次
- 性别:
- 来自: 上海
最新评论
-
handong1587:
代码有一处错.query函数最后一行return的应该是:re ...
RMQ -
yuandong0828:
简洁的特别透彻细致,多谢,
虚函数、虚指针和虚表 -
adam_zs:
谢谢分享!
括号匹配问题 -
hongloumengyanzxw:
good[b][/b]
dup和dup2函数 -
chriszeng87:
最后第二种情况右下角的那个点是不是可以看作相交点的?上面的那种 ...
判断两个链表是否相交
文章列表
Java程序需要编译,但是没有直接编译成机器语言,而是编译成.class字节码再由JVM以解释方式执行。
经常听说SQLServer最难的部分是性能优化,不禁让人感到优化这个工作很神秘,这种事情只有高手才能做。很早的时候我在网上看到一位高手写的博客,介绍了SQL优化的问题,从这些内容来看,优化并不都是一些很复杂的问题,掌 ...
1.什么是索引?
索引类似于书的目录,主要用于提高查询效率。在按条件查询的时候,数据库会先查询索引,再通过索引找到相关的数据。因此,索引记录了对某个关键词指定到不同的文件,或者文件里的不同位置,当然索引自身也是通过文件来保存的。
2.索引的类型
有两种基本的索引结构,即索引文件的保存方式。一个是顺序索引,就是根据值的顺序排序的(这个文件里面的值就是为其建索引的字段值,它被顺序地放在索引文件里面);另外一个是散列索引,就是将值平均分配到若干散列桶中,通过散列函数定位的。
2.1 顺序索引
如果被索引的字段本身按照一定的顺序排序,那么这种索引叫做聚集索引。否 ...
在网络编程中,最基本的操作就是在两台机器之间建立点对点通信,Socket能够帮助我们实现这个功能。其实现原理为:
在服务器端,使用ServerSocket监听指定的端口,端口可以随意指定(由于1024以下的端口通常属于保留端口,在一些操作系统中不可以随意使用,所以建议使用大于1024的端口),等待客户连接请求;在客户连接后,产生会话;在完成会话后,关闭连接。
在客户端,使用Socket对网络上某一个服务器的某一个端口发出连接请求,一旦连接成功,打开会话;会话完成后,关闭Socket。客户端不需要指定打开的端口,通常临时的、动态的分配一个1024以上的端口。
服务端代码
...
我们知道Java是一种平台无关性的语言,平台对于上层的java代码来说是透明的,所以在多数时间我们是不需要调用本地方法,但是假如你遇到了以下情况,你可能就需要使用Java调用本地方法了:
你的Java代码需要得到一个文件的 ...
最近用httpclient做performance testing时,发现当线程加到150时服务端就会抛出socket资源用尽的错误,根本没法再往上加,响应的速度也是相当的慢,后来经过研究,发现在server.xml中修改以一部分,增加节点数目,可以很好的提高性 ...
先给出一个问题,下面程序的输出结果是多少?
import java.util.Date;
public class Test extends Date{
public static void main(String[] args) {
new Test().test();
}
public void test(){
System.out.println(super.getClass().getName());
}
}
你可能会认为是Date,但是实 ...
1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?
可以有多个类,但只能有一个public的类,并且public的类名必须与文件名相一致。
2、Java有没有goto?
java中的保留字,现在没有在java中使用。
3、说说&和&&的区别。
&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。
&&还具有短路的功能,即如果第一个表 ...
使用Java实现一些文件操作。
import java.io.*;
public class FileOperator {
public FileOperator() {
}
/**
* Create new folder
* @param folderPath String as c:/test
*/
public void newFolder(String folderPath) {
try {
File myFilePath = new File(folderPath);
if (!myFilePath ...
在JDK1.5中,线程池类为 java.util.concurrent.ThreadPoolExecutor,常用构造方法为:
ThreadPoolExecutor(int corePoolSize, int maximumPoolSize,
long keepAliveTime, TimeUnit unit,
BlockingQueue<Runnable> workQueue,
RejectedExecutionHandler handler)
其中:
corePoolSize: ...
线程池的作用:
线程池作用就是限制系统中执行线程的数量。
根据系统的环境情况,可以自动或手动设置线程数量,达到运行的最佳效果;如果线程少了会浪费系统资源,多了又会造成系统拥挤效率不高。用线程池控制线程数量,使得其他线程排队等候。一个任务执行完毕,再从队列的中取最前面的任务开始执行。若队列中没有任务等待进程,则线程池中的线程处于等待。当一个新任务需要运行时,如果线程池中有等待的工作线程,就可以开始运行了;否则进入等待队列。
为什么要用线程池:
减少了创建和销毁线程的次数,每个工作线程都可以被重复利用,可执行多个任务。也可以根据系统的承 ...
当调用start()后,此线程就处于就绪状态,但并没有运行。之后该线程通过调用方法run()来完成操作。方法run()称为线程体,它包含了要执行的这个线程的内容。run()方法运行结束后,该线程终止,CPU再运行其它线程。
如果直接用run()方法,相当于只是调用一个普通的方法,程序中依然只有主线程这一个线程,其程序执行路径还是只有一条,
并没有创建新的线程来运行run()中的代码。
1. 内部类的对象隐含一个外部类的对象引用,可以直接引用外部类的方法和属性,此外内部类不能定义静态的属性和方法,创建内部类对象必须依赖于一个外部对象。
2. 嵌套类不能直接引用外部类的non-satic属性和方法,创建嵌套类对象时不依赖外部类对象。
1. JVM的gc概述
gc即垃圾收集机制是指jvm用于释放那些不再使用的对象所占用的内存。java语言并不要求jvm有gc,也没有规定gc如何工作。不过常用的jvm都有gc,而且大多数gc都使用类似的算法管理内存和执行收集操作。
在充分理解了垃圾收集算法和执行过程后,才能有效的优化它的性能。有些垃圾收集专用于特殊的应用程序。比如,实时应用程序主要是为了避免垃圾收集中断,而大多数OLTP应用程序则注重整体效率。理解了应用程序的工作负荷和jvm支持的垃圾收集算法,便可以进行优化配置垃圾收集器。
垃圾收集的目的在于清除不再使用的对象。gc通过确定对象是否被活动对象 ...
1. 给定a、b两个文件,各存放50亿个url,每个url各占用64字节,内存限制是4G,如何找出a、b文件共同的url?
两个50亿个url的文件,大概有50 0000 0000 * 64 B = 640G的大小,肯定不能全部读入内存,可以分组解决。准备1030个桶,读 ...