java native方法是指本地方法,当在方法中调用一些不是由java语言写的代码或者在方法中用java语言直接操纵计算机硬件时要声明为native方法。
java中,通过JNI(Java Native Interface,java本地接口)来实现本地化。
Native方法一般用于两种情况:
1)在方法中调用一些不是由java语言写的代码。
2)在方法中用java语言直接操纵计算机硬件。
如果使用了native方法也就丢失了java的方便性和安全性。Native方法的执行依赖于JVM的设计者,比如在sun的JVM中,可以通过JNI(Java Native Interface) API接口来实现本地化。
一个Native Method就是一个java调用非java代码的接口。一个Native Method是这样一个java的方法:该方法的实现由非java语言实现,比如C。这个特征并非java所特有,很多其它的编程语言都有这一机制,比如在C++中,你可以用extern "C"告知C++编译器去调用一个C的函数。
"A native method is a Java method whose impl ......
传统的并发型服务器设计是利用阻塞型网络I/O 以多线程的模式来实现的,然而由
于系统常常在进行网络读写时处于阻塞状态,会大大影响系统的性能;自Java1. 4 开始引入
了NIO(新I/O) API,通过使用非阻塞型I/O,实现流畅的网络读写操作,为开发高性能并发
型服务器程序提供了一个很好的解决方案。这就是java nio
首先来看下传统的阻塞型网络 I/O的不足
Java 平台传统的I/O 系统都是基于Byte(字节)和Stream(数据流)的,相应的I/O 操
作都是阻塞型的,所以服务器程序也采用阻塞型I/O 进行数据的读、写操作。本文以TCP
长连接模式来讨论并发型服务器的相关设计,为了实现服务器程序的并发性要求,系统由一
个单独的主线程来监听用户发起的连接请求,一直处于阻塞状态;当有用户连接请求到来时,
程序都会启一个新的线程来统一处理用户数据的读、写操作。
这种模式的优点是简单、实用、易管理;然而缺点也是显而易见的:由于是为每一个客
户端分配一个线程来处理输入、输出数据,其线程与客户机的比例近似为1:1,随着线程
数量的不断增加,服务器启动了大量的并发线程,会大大加大系统对线程的管理开销,这将
成为吞吐量瓶颈的主要原因;其次由于底层的I/O 操作采 ......
可以使用流 访问文件系统上的文件。在最低的级别上,流允许程序接收来自数据源的字节,或者允许将输出发送到目的地。一些流可以处理所有类型的 16 位字符(类型 Reader 和 Writer)。而其他一些流则只能处理 8 位字符(类型 InputStream 和 OutputStream)。在这些分层结构中,有几种风格的流(所有流都可以在 java.io 包中找到)。在最高级别的抽象中,有一些字符流 和字节流。
字节流读取(InputStream 及其子类)并编写(OutputStream 及其子类)8 位字节。换句话说,可以将字节流看作是一种更原始的流。因此,也就不难理解为什么关于基本 Java 语言类的 Java.sun.com 教程说字节流通常用于二进制数据,比如说图像。以下是一个选定的字节流列表:
FileInputStream 从某一文件中读取文件
FileOutputStream 将字节写入某个文件中。
ByteArrayInputStream
ByteArrayOutputStream
从某个内存数组中读取字节,以及将字节写入某个内存数组中。
字符流可以读取(Reader 及其子类)和写入(Writer 及其子类)16 位的字符。子类也可以从数据接收器 中读取或写入数据,或者处理转换中的字节。以下是一个选定的字符流列表:
StringReader
StringWriter
这些流从内存中的 S ......
网站上对它的特征有如下描述:
● 支持Excel 95-2000的所有版本
● 生成Excel 2000标准格式
● 支持字体、数字、日期操作
● 能够修饰单元格属性
● 支持图像和图表
应该说以上功能已经能够大致满足我们的需要。最关键的是这套API是纯Java的,并不依赖Windows系统,即使运行在Linux下,它同样能够正确的处理Excel文件。另外需要说明的是,这套API对图形和图表的支持很有限,而且仅仅识别PNG格式。
搭建环境
将下载后的文件解包,得到jxl.jar,放入classpath,安装就完成了。
基本操作
一、创建文件
拟生成一个名为“测试数据.xls”的Excel文件,其中第一个工作表被命名为“第一页”,大致效果如下:
Java代码
/*
* Created on Dec 30, 2007
*
* To change the template for this generated file go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
package JExcelTest.standard;
&n ......
Java
静态代理与动态代理
一、
代理模式
代理模式是常用的
Java
设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息,过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本省并不是真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。
静态代理类:由程序员创建或由特定工具自动生成源代码,再对其编译,程序运行前,代理类的
class
文件就已经存在了。
动态代理类:在程序运行时,运用反射机制动态创建而成。
二、静态代理类:
接口:
public
interface
UserManager {
public
String sayHello();
}
实现类负责业务逻辑
public
class
UserManagerImpl implements
UserManager {
public
String sayHello() {
return
"Hello World!";
}
}
代理类为该业务逻辑添加事务功能
public
class
UserManagerProxy implements
UserManager {
private
UserManager userManager;
&nbs ......
今天刚参加完百度的笔试。。。。
估计让百度给笔试了 哈哈 不过我已经尽力了哈,卷子都写了。。。我的一贯作风,错的对的反正都写啦,就看RP咋样了
今天整理了最近JAVA中遇到的问题 我写出来给大家分享下,都是些基础,但网上没人说,那我说说看
1、JAVA数组初始化后,还报错,NullPointer好象是这个错误来着,就是说你所用的目标是空的,没有初始化。
//错误方法
int a[];
a = new int[32];
//初学者写到这里估计就算初始化完了,所以就报错了,你得对数组中每一个元素都初始化
//正确方法
int a[];
for(int i=0;i<32;i++)
{
a[i]=new int();
}
2、如果你有个JAR包,且这个程序得加载这个软件包,那在哪里加载这个软件包呢??
在你project的那里右键属性,里面有个libr ......