- 浏览: 217760 次
- 性别:
- 来自: 天津
文章分类
最新评论
-
flychao88:
nothingismao 写道623deyingxiong 写 ...
nio与io的比较 -
李冰冰:
如果NIO单个线程处理业务逻辑,那么如果这个业务逻辑非常耗时, ...
nio与io的比较 -
wj_126mail:
IO是一个连接就创建一个线程来处理;NIO是一个线程在处理所有 ...
nio与io的比较 -
nothingismao:
623deyingxiong 写道wwj85523 写道 看完 ...
nio与io的比较 -
623deyingxiong:
wwj85523 写道
看完后我迷糊了,
IO一样可以一个线 ...
nio与io的比较
摘自:https://www6.software.ibm.com/developerworks/cn/education/java/j-classloader/tutorial/j-classloader-6-1.shtml实现的一个自动编译的classloader里面使用了很多我不熟悉的api。值得学习、借鉴
import java.io.*; /* A CompilingClassLoader compiles your Java source on-the-fly. It checks for nonexistent .class files, or .class files that are older than their corresponding source code. */ public class CompilingClassLoader extends ClassLoader { // Given a filename, read the entirety of that file from disk // and return it as a byte array. private byte[] getBytes( String filename ) throws IOException { // Find out the length of the file File file = new File( filename ); long len = file.length(); // Create an array that's just the right size for the file's // contents byte raw[] = new byte[(int)len]; // Open the file FileInputStream fin = new FileInputStream( file ); // Read all of it into the array; if we don't get all, // then it's an error. int r = fin.read( raw ); if (r != len) throw new IOException( "Can't read all, "+r+" != "+len ); // Don't forget to close the file! fin.close(); // And finally return the file contents as an array return raw; } // Spawn a process to compile the java source code file // specified in the 'javaFile' parameter. Return a true if // the compilation worked, false otherwise. private boolean compile( String javaFile ) throws IOException { // Let the user know what's going on System.out.println( "CCL: Compiling "+javaFile+"..." ); // Start up the compiler Process p = Runtime.getRuntime().exec( "javac "+javaFile ); // Wait for it to finish running try { p.waitFor(); } catch( InterruptedException ie ) { System.out.println( ie ); } // Check the return code, in case of a compilation error int ret = p.exitValue(); // Tell whether the compilation worked return ret==0; } // The heart of the ClassLoader -- automatically compile // source as necessary when looking for class files public Class loadClass( String name, boolean resolve ) throws ClassNotFoundException { // Our goal is to get a Class object Class clas = null; // First, see if we've already dealt with this one clas = findLoadedClass( name ); //System.out.println( "findLoadedClass: "+clas ); // Create a pathname from the class name // E.g. java.lang.Object => java/lang/Object String fileStub = name.replace( '.', '/' ); // Build objects pointing to the source code (.java) and object // code (.class) String javaFilename = fileStub+".java"; String classFilename = fileStub+".class"; File javaFile = new File( javaFilename ); File classFile = new File( classFilename ); //System.out.println( "j "+javaFile.lastModified()+" c "+ // classFile.lastModified() ); // First, see if we want to try compiling. We do if (a) there // is source code, and either (b0) there is no object code, // or (b1) there is object code, but it's older than the source if (javaFile.exists() && (!classFile.exists() || javaFile.lastModified() > classFile.lastModified())) { try { // Try to compile it. If this doesn't work, then // we must declare failure. (It's not good enough to use // and already-existing, but out-of-date, classfile) if (!compile( javaFilename ) || !classFile.exists()) { throw new ClassNotFoundException( "Compile failed: "+javaFilename ); } } catch( IOException ie ) { // Another place where we might come to if we fail // to compile throw new ClassNotFoundException( ie.toString() ); } } // Let's try to load up the raw bytes, assuming they were // properly compiled, or didn't need to be compiled try { // read the bytes byte raw[] = getBytes( classFilename ); // try to turn them into a class clas = defineClass( name, raw, 0, raw.length ); } catch( IOException ie ) { // This is not a failure! If we reach here, it might // mean that we are dealing with a class in a library, // such as java.lang.Object } //System.out.println( "defineClass: "+clas ); // Maybe the class is in a library -- try loading // the normal way if (clas==null) { clas = findSystemClass( name ); } //System.out.println( "findSystemClass: "+clas ); // Resolve the class, if any, but only if the "resolve" // flag is set to true if (resolve && clas != null) resolveClass( clas ); // If we still don't have a class, it's an error if (clas == null) throw new ClassNotFoundException( name ); // Otherwise, return the class return clas; } }
- src.rar (3.7 KB)
- 下载次数: 15
发表评论
-
ant build.xml例子
2010-01-10 20:16 2500<?xml version="1.0" ... -
避免内存泄露专题
2009-12-17 16:19 1219For Java: 1.限制使用单例模式;单例模式是引发mem ... -
万恶的inner class, memory leak的源头之一
2009-12-17 15:35 1317非static inner class隐式的含有一个引用指向o ... -
resolve maven [Request to merge when 'filtering' is not identical]. issue
2009-11-06 11:18 2694mvn org.apache.maven.plugins:ma ... -
an example of cloneable
2009-10-10 09:43 1077The following code describes ho ... -
jvm 远程debug
2009-04-17 10:01 1132-Xdebug -Xrunjdwp:transport=dt_ ... -
java dynamic proxy
2008-11-21 20:45 1126package proxy.cxz.org; impor ... -
serializable例子一则
2008-11-15 21:13 1047实现Serializable接口,编写地定义的针对transi ... -
jmx添加naming service以及一个rmi 监听方式
2008-11-11 15:22 2626ObjectName namingName = new ... -
指定编码器、解码器,并且利用ByteBuffer读写文件
2008-11-04 20:48 2684指定编码器、解码器,并且利用ByteBuffer读写文件。 做 ... -
java 网络编程探讨
2008-11-02 19:30 2093毕业有一年多了,大学的时候上过网络课程,但我一直认为:网络技术 ... -
Differences Between notify() and notifyAll()
2008-08-08 21:20 1043package com.cxz.currency.test; ... -
一套基于http的聊天c/s结构工具(除了网页tomcat还能做什么)
2008-08-08 11:51 4030在我的认识当中以前一直有一种误区认为:tomcat=web。在 ... -
jdk1.6中添加的future
2008-07-18 13:59 1323摘自:http://caterpillar.onlyfun.n ... -
模拟jdk1.5中reentrantlock
2008-07-18 13:15 1197选自:java线程2e。 类似于jdk1.5中的reentra ... -
java线程2e中写得相当花哨的thread例子!
2008-07-14 16:53 1778太鲜灵儿了! package com.cxz.tools; ... -
j2se中实现jndi的控制、管理
2008-07-01 19:34 1155jndi例子一则,转载自网络。利用一个container实现了 ... -
jmx控制tomcat
2008-07-01 09:22 5045以前所作的一切应用程序基本上都是由tomcat容器,控制web ... -
jmx例子一则
2008-06-30 07:32 2882很简单的一个hellojmx的例子。其中实现了:标准bean、 ... -
nio与io的比较
2008-06-21 17:31 14933nio是new io的简称,从jdk1.4就被引入了。现在的j ...
相关推荐
CompileClassLoader.java
本文介绍了 Java 实现的自定义类加载器的原理和实现技巧,包括 ClassLoader 类、自定义类加载器的功能、CompileClassLoader 示例等。自定义类加载器可以满足特定的需求,例如执行代码前自动验证数字签名、根据用户...
spring 异步编程样例
带有 python 3.7 和 opencv 4.1.0 的 Docker 映像用法docker run -it jjanzic/docker-python3-opencv python>>> import cv2带有标签的图像包含使用contrib 模块:contrib构建的 docker 镜像可用的docker标签列表opencv-4.1.0(latest分支)contrib-opencv-4.1.0(opencv_contrib分支)opencv-4.0.1contrib-opencv-4.0.1opencv-4.0.0contrib-opencv-4.0.0opencv-3.4.2contrib-opencv-3.4.2opencv-3.4.1contrib-opencv-3.4.1opencv-3.4.0contrib-opencv-3.4.0opencv-3.3.0contrib-opencv-3.3.0opencv-3.2.0contrib-opencv-3.2.0
原生js鼠标滑过文字淡入淡出效果.zip
中国各城市、区、县距离港口和海岸线的距离数据集提供了全国各城市及区、县的坐标信息,以及各个港口和海岸线的坐标信息。通过R语言计算,得出了各城市、区县与港口和海岸线之间的距离。该数据集包含了各港口的经纬度、各城市与港口之间的距离、各区县与港口之间的距离、中国各城市质心与港口的最近距离、中国各城市质心与海岸线的距离、中国各区县质心与港口的最近距离以及中国各区县质心与海岸线的距离等指标。此外,还涉及中国各省距离海岸线的距离数据。港口等级划分参考了《全国沿海港口布局规划》,包括上海港、大连港等45个港口。数据集覆盖了全国31个省及直辖市,是研究地理、经济和规划等领域的宝贵资源。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 替换数据可以直接使用,注释清楚,适合新手
Python错误集合.doc
《中国全球投资追踪》数据库提供了2005至2023年间中国在全球范围内的投资和合同的详细记录,不包括债券。该数据库由中国海外直接投资(ODI)和建筑合同两大部分组成,覆盖全球多个国家和地区,涉及能源、交通、通信等多个行业领域。这份追踪数据集包含4142条样本,以面板数据格式呈现,主要指标包括年份、月份、投资方、投资量(单位:百万美元)、交易类型、行业、子行业、国家、地区、是否为“一带一路”倡议相关项目、绿地投资等。这份追踪数据是政策制定者、学者、企业和公众理解中国在全球经济中角色的重要资源,有助于分析中国的全球战略和经济目标。
原生js广告代码制作可展开关闭的页面上固定的图片对联广告代码.rar
这组数据涵盖了1999至2020年间中国各地区普通小学毕业生的数量。它为我们提供了一个深入了解中国教育领域中普通小学阶段教育水平和教育资源分配情况的窗口。通过分析这些数据,可以为制定科学合理的教育政策提供依据,同时,通过比较不同城市的普通小学毕业生数,也能为城市规划和劳动力市场调查提供参考。数据来源于中国区域统计年鉴和中国各省市统计年鉴,包含了8472个样本,以面板数据的形式呈现。这些数据对于掌握中国教育态势具有重要的参考价值。
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 替换数据可以直接使用,注释清楚,适合新手
自写程序
该数据集由草莓照片组成,用于识别成熟的草莓。 图像上标注有边界框,可以准确标出图像中成熟草莓的位置。 该数据集可用于促进草莓生产、质量控制和农业实践的进步以及提高精确度。 数据集结构 图像- 包含草莓的原始图像 框- 包括原始图像的边界框标签 annotations.xml - 包含为原始照片创建的边界框和标签的坐标 数据格式 文件夹中的每张图片都images附有 XML 注释,annotations.xml指示用于检测成熟草莓的边界框的坐标。对于每个点,都提供了 x 和 y 坐标。成熟草莓的可见性也由属性occluded (0, 1) 提供。
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 替换数据可以直接使用,注释清楚,适合新手
jmw网址导航网站简洁源码.zip
内容概要:本文档旨在带领初学者了解和掌握小程序开发全流程。首先介绍了小程序的特点及其广泛应用场景。随后详细讲解了小程序的项目准备、前端与后端开发、API调用技巧以及测试发布等关键环节。特别是针对微信小程序的特性,给出了许多实用的技术指南。 适用人群:对于想要学习小程序开发的新手开发者尤其有用。 使用场景及目标:帮助读者从零开始构建一个完整的餐饮类微信小程序,涵盖需求分析、功能设计、技术选型、页面搭建、交互逻辑实现、后台服务对接、测试上线等一系列步骤。 其他说明:文中还特别强调了代码调试的重要性,并提供了关于常见错误排查的具体指导,有助于新手解决实际开发过程中遇到的问题。另外,文档末尾附有项目总结和后续维护要点,提醒开发者注意项目完成后的工作事项。
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 替换数据可以直接使用,注释清楚,适合新手