![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java 通用知识
文章平均质量分 78
普通网友
这个作者很懒,什么都没留下…
展开
-
JDK1.5中的线程池(java.util.concurrent.ThreadPoolExecutor)使用简介
原文:http://www.52z.com/info/html/28930.html在多线程大师Doug Lea的贡献下,在JDK1.5中加入了许多对并发特性的支持,例如:线程池。 一、简介 线程池类为 java.util.concurrent.ThreadPoolExecutor,常用构造方法为: ThreadPoolExecutor(int corePoolSize转载 2012-08-07 10:19:29 · 738 阅读 · 0 评论 -
Class.forName和ClassLoader.loadClass的比较及类加载原理
原文:http://blog.csdn.net/lu7kang/article/details/5576043Class的装载分了三个阶段,loading,linking和initializing,分别定义在The Java Language Specification的12.2,12.3和12.4。Class.forName(className)实际上是调用Class.forName(c转载 2012-09-14 10:12:12 · 1492 阅读 · 0 评论 -
Class.forName和new的比较
资料一: http://yhjhappy234.blog.163.com/blog/static/3163283220093288323624/Class.forName(xxx.xx.xx) 返回的是一个类, .newInstance() 后才创建一个对象 Class.forName(xxx.xx.xx);的作用是要求JVM查找并加载指定的类,也就是说JVM会执行该类的静态代码段转载 2012-09-14 11:27:28 · 572 阅读 · 0 评论 -
如何实现自定义的ClassLoader
原文链接:http://software.ccidnet.com/pub/disp/Article?columnID=294&articleID=25857&pageNO=1作者:Kert 本文选自:开放系统世界——赛迪网 2002年09月23日 ClassLoader,顾名思义是用来Load Class的,即加载Java类。ClassLoader读入一个字节数组,并且经过转载 2012-09-14 11:21:55 · 1189 阅读 · 0 评论 -
Java回调函数的理解
所谓回调,就是客户程序C调用服务程序S中的某个函数A,然后S又在某个时候反过来调用C中的某个函数B,对于C来说,这个B便叫做回调函数。例如Win32下的窗口过程函数就是一个典型的回调函数。一般说来,C不会自己调用B,C提供B的目的就是让S来调用它,而且是C不得不提供。由于S并不知道C提供的B姓甚名谁,所以S会约定B的接口规范(函数原型),然后由C提前通过S的一个函数R告诉S自己将要使用B函数,这个转载 2012-09-20 23:41:01 · 434 阅读 · 0 评论 -
java中覆盖、重写与重载的区别
原文:http://blog.chinaunix.net/uid-12926986-id-111709.html初次见到这两个单词并没有什么特别的感觉,但是时间长了,却发现书上一会儿用override,一会儿又用overload,搞得我的迷迷糊。于是就做了个总结,希望能对和我一样对这两个概念模糊不清的网友有一个帮助。 override可以翻译为覆盖,从字面就可以知道,它是覆盖了转载 2012-11-08 13:10:59 · 507 阅读 · 0 评论 -
java其他类型数据转换为Json数据
1、创建类Jsonimportjava.util.ArrayList;importjava.util.HashMap;importjava.util.List;importjava.util.Map;importnet.sf.json.JSONArray;importnet.sf.json.JSONObject;//将Java数据转换成Jso转载 2012-11-19 00:34:06 · 817 阅读 · 0 评论 -
java线程池学习
原文:http://www.cnblogs.com/jersey/archive/2011/03/30/2000231.htmlReference: 《创建Java线程池》[1],《Java线程:新特征-线程池》[2], 《Java线程池学习》[3],《线程池ThreadPoolExecutor使用简介》[4],《Java5中的线程池实例讲解》[5],《ThreadPoolExecutor转载 2013-03-08 17:49:28 · 559 阅读 · 0 评论 -
java线程中run()和start()区别
原文:http://www.cnblogs.com/linjiqin/archive/2011/04/10/2011272.htmlThread类中run()和start()方法的区别如下:run()方法:在本线程内调用该Runnable对象的run()方法,可以重复多次调用;start()方法:启动一个线程,调用该Runnable对象的run()方法,不能多次启动一个线程;转载 2013-03-08 17:51:12 · 673 阅读 · 0 评论 -
ThreadPoolExecutor使用介绍
private static ExecutorService exec = new ThreadPoolExecutor(8, 8, 0L,TimeUnit.MILLISECONDS, new LinkedBlockingQueue(100000),new ThreadPoolExecutor.CallerRunsPolicy());一、简介 线程池类为 java.util转载 2013-03-11 14:39:18 · 655 阅读 · 0 评论 -
使用JDBC时Class.forName()的作用
原文:http://dustin.iteye.com/blog/44291首先为什么不用new 如果用new的话,当工程改变了数据库,你得修改.java文件和引入相应的驱动包。而使用class.formname时可以将驱动的类配置在xml文件中。加载驱动对象时修改xml和引入jar包就行了,就不需要大规模的改动整个代码了。举个例子 ,你可以写一个配置文件 ,配置文件中写上 usern转载 2012-09-14 10:04:10 · 571 阅读 · 0 评论 -
Java垃圾回收机制
一个百度知道的回答:Java的垃圾回收机制是Java虚拟机提供的能力,用于在空闲时间以不定时的方式动态回收无任何引用的对象占据的内存空间。需要注意的是:垃圾回收回收的是无任何引用的对象占据的内存空间而不是对象本身,很多人来我公司面试时,我都会问这个问题的,70%以上的人回答的含义是回收对象,实际上这是不正确的。System.gc()Runtime.getRuntime().gc()转载 2014-10-07 16:18:23 · 712 阅读 · 0 评论 -
Java内存泄露原因详解
转自:一、Java内存回收机制 不论哪种语言的内存分配方式,都需要返回所分配内存的真实地址,也就是返回一个指针到内存块的首地址。Java中对象是采用new或者反射的方法创建的,这些对象的创建都是在堆(Heap)中分配的,所有对象的回收都是由Java虚拟机通过垃圾回收机制完成的。GC为了能够正确释放对象,会监控每个对象的运行状况,对他们的申请、引用、被引用、赋值等状况进行监控,Java会转载 2014-10-07 17:29:28 · 563 阅读 · 0 评论 -
Class.forName作用
摘自:http://www.360doc.com/content/10/0712/10/1720440_38421273.shtmlClass.forName(xxx.xx.xx) 返回的是一个类首先你要明白在java里面任何class都要装载在虚拟机上才能运行。这句话就是装载类用的(和new 不一样,要分清楚)。 至于什么时候用,你可以考虑一下这个问题,给你一个字符串变量,它代表转载 2012-09-14 10:08:23 · 456 阅读 · 0 评论 -
深入解读Quartz的原理
深入解读Quartz的原理 Quartz是一个大名鼎鼎的Java版开源定时调度器,功能强悍,使用方便。 一、核心概念 Quartz的原理不是很复杂,只要搞明白几个概念,然后知道如何去启动和关闭一个调度程序即可。 1、Job表示一个工作,要执行的具体内容。此接口中只有一个方法void execute(JobExecutionContext context)转载 2012-08-27 14:30:24 · 597 阅读 · 0 评论 -
Java堆和栈的区别
原文:http://www.open-open.com/lib/view/open1322614746155.htmlJava堆和栈的区别 栈与堆都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。 Java的堆是一个运行时数据区,类的对象从中分配空间。这些对象通过new、newarray、anewarray和 multi转载 2012-08-07 10:26:22 · 418 阅读 · 0 评论 -
Java多线程状态转换
线程在一定条件下,状态会发生变化。线程变化的状态转换图如下: 1、新建状态(New):新创建了一个线程对象。 2、就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于可运行线程池中,变得可运行,等待获取CPU的使用权。 3、运行状态(Running):就绪状态的线程获取了CPU,执行程序代码。 4、阻塞状态(Blocked转载 2012-08-06 11:38:25 · 906 阅读 · 0 评论 -
海量数据处理系列(二)系统过载保护
原文:http://www.cnblogs.com/cstar/archive/2012/06/25/2561388.html前言:前段时间在网上看到腾讯后台开发总监bison分享的一篇文章《浅谈过载保护》,读来受益匪浅。刚好自己也在处理系统请求过载的问题,把自己的一些心得体会总结出来拿来与大家一起探讨。 在bison的文章中谈到:对于延时敏感的服务,当外部请求超过系转载 2012-08-07 11:39:01 · 1288 阅读 · 0 评论 -
海量数据处理系列之(一)Java线程池使用
原文:http://www.cnblogs.com/cstar/archive/2012/06/14/2549494.html1. 为什么要用线程池? 在Java中,如果每当一个请求到达就创建一个新线程,开销是相当大的。在实际使用中,每个请求创建新线程的服务器在创建和销毁线程上花费的时间和消耗的系统资源,甚至可能要比花在实际处理实际的用户请求的时间和资源要多的多。除转载 2012-08-07 10:23:00 · 468 阅读 · 0 评论 -
jdk与jre的区别
很多程序员已经干了一段时间java了依然不明白jdk与jre的区别。JDK就是Java Development Kit.简单的说JDK是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境。SDK是Software Development Kit 一般指软件开发包,可以包括函数库、编译程序等。JRE是Java Runtime Enviroment是指Java的运行环境,是面向Ja转载 2012-08-15 11:04:10 · 307 阅读 · 0 评论 -
java build.xml构建文件
Ant 开发Ant的构建文件当开始一个新的项目时,首先应该编写Ant构建文件。构建文件定义了构建过程,并被团队开发中每个人使用。Ant构建文件默认命名为build.xml,也可以取其他的名字。只不过在运行的时候把这个命名当作参数传给Ant。构建文件可以放在任何的位置。一般做法是放在项目顶层目录中,这样可以保持项目的简洁和清晰。下面是一个典型的项目层次结构。(1) src存放文转载 2012-08-15 15:23:02 · 883 阅读 · 0 评论 -
java的引用类型
原文:http://paddy-w.iteye.com/blog/986796Java有四种引用类型,strongreference,softreference,weakreference,phantomreference。这四种引用的强度按照上面的顺序依次减弱,下面通过几个例子简单了解一下这四种引用类型。 StrongReference 这个不转载 2012-08-21 12:48:12 · 318 阅读 · 0 评论 -
java中import,package的用法
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://xgtian.blog.51cto.com/3844449/737269有些人写了一阵子 Java,可是对於 Java 的 package 跟 import 还是不 太了解很多人以為原始码 .java 档案中的 import 会让编译器把所 import 的程式转载 2012-08-22 16:36:08 · 658 阅读 · 0 评论 -
Java堆和栈的区别
原文:http://liufei-fir.iteye.com/blog/699509栈与堆都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。Java的堆是一个运行时数据区,类的(对象从中分配空间。这些对象通过new、newarray、anewarray和multianewarray等指令建立,它们不需要程序代码来显式的释放。堆是转载 2012-08-21 12:39:39 · 389 阅读 · 0 评论 -
Java中的equals(),==,compareTo()和compare()
Java中的equals(),==,compareTo()和compare()首先只有==可以用作两个基本类型数据之间的比较,当然是值比较。当用作两个对象比较时,比较的是对象引用,而不是值比较。其次任何对象都可以调用.equals()方法,因为这是从Object类继承下来的。Object.equals(Object obj)的缺省实现也是比较对象引用(显然它不知道如何比较值),但Java类转载 2012-08-24 16:31:57 · 9134 阅读 · 1 评论 -
使用Quartz实现定时功能
Quartz是一个完全由java编写的开源作业调度框架,具体的介绍可到http://www.opensymphony.com/quartz/官方网站查看。 Quartz的几个核心的接口和类为: Job接口:自己写的“定时程序”实现此接口的void execute(JobExecutionContext arg0)方法,Job还有一类为有状态的StatefulJob接口,如果我们需要转载 2012-08-27 14:31:07 · 443 阅读 · 0 评论 -
Quartz结合Spring和不结合Spring
原文:http://jiemyonline.blog.sohu.com/70215307.htmlQuartz总体看来,大致包括:Job,JobDetail,Trigger,Scheduler。一、不使用Spring的做法:1.实现Job接口的类,它是完成调度的实际要做的具体事情。package com.test.quartz; import java.util.Dat转载 2012-08-27 14:33:57 · 696 阅读 · 0 评论 -
的非方将航股将工尽给丫
随性而为翻译 2015-05-19 23:38:42 · 1178 阅读 · 0 评论