Java核心技术(卷2):高级特性(原书第9版)的笔记(45)

按有用程度 按页码先后 最新笔记

  • 热心市民钟先生 (元気です。)

    遵循下面的步骤就可以将一个本地方法链接到Java程序中: 1)在Java类中声明一个本地方法。 2)运行javah以获得包含该方法的C声明的头文件。 3)用C实现该本地方法。 4)将代码置于共享类库中。 5)在Java程序中加载该类库。

    2015-07-05 20:02:10

  • 热心市民钟先生 (元気です。)

    可以使用集与散列表中的远程引用,但是必须记住,对它们进行等价测试以及散列计算并不会考虑远程对象的内容。不能直接克隆远程引用。

    2015-07-05 01:50:48

  • 热心市民钟先生 (元気です。)

    一个远程类可以实现多个接口。考虑远程接口ServiceCenter。 public interface ServiceCenter extends Remote{ int getReturnAuthorization(Product prod) throws RemoteException; } 现在假设WarehouseImpl类实现了这个接口与Warehouse接口。当一个对ServiceCenter的引用被传递到另一个虚拟机时,接收者会获得一个可以访问在ServiceCenter与Warehouse接口中的所有远程方法的存根。可以使用instanceof操作符来查看一个特定的远程...

    2015-07-05 01:10:31

  • 热心市民钟先生 (元気です。)

    总结一下,在虚拟机之间传递值有两种机制: ●实现了Remote接口的类的对象将作为远程引用传递。 ●实现了Serializable接口,但是没有实现Remote接口的类的对象将使用序列化进行复制。 这两种机制都是自动化的,而且不需要任何程序员的干预。请记住,序列化对于大型对象来说会比较慢,而且远程方法不能改变被序列化的参数。当然,你可以通过传递远程引用来避免这些问题。但是这么做代价太大:在远程引用上调用方法与调用本地方法...

    2015-07-05 01:04:20

  • 热心市民钟先生 (元気です。)

    服务器程序使用自举注册服务来注册至少一个远程对象。要注册一个远程对象,需要一个RMI URL和一个对实现对象的引用。 RMI的URL以rmi:开头,后接服务器以及一个可选的端口号,接着是远程对象的名字。例如: rmi://regserver.mycompany.com:99/central_warehouse 默认情况下,主机名是localhost,端口为1099。服务器告诉注册表在给定位置将这个名字关联或"绑定"到该对象。 构造并注册了一个WarehouseImpl对象: public class Wareh...

    2015-07-05 00:09:27

  • 热心市民钟先生 (元気です。)

    public class WarehouseImpl extends UnicastRemoteObject implements Warehouse { public WarehouseImpl() throws RemoteException { prices = new HashMap<String, Double>(); prices.put("Blackwell Toaster", 24.95); prices.put("ZapXpress Microwave Oven", 49.95); } public double getPrice(String description) throws RemoteException { Double price = prices.get(description); return price == null ? 0 : ...

    2015-07-04 23:49:58

  • 热心市民钟先生 (元気です。)

    存根与参数编组 当客户代码要在远程对象上调用一个远程方法时,实际上调用的是代理对象上的一个普通的方法,我们称此代理对象为存根(stub)。例如, Warehouse centralWarehouse = get stub object; double price = centralWarehouse.getPrice("Blackwell Toaster"); 存根位于客户端机器上,而非服务器上。它知道如何通过网络与服务器联系。存根将远程方法所需的参数打包成一组字节。对参数编码的过程称作参数编组(parameter ...

    2015-07-04 23:25:10

  • 热心市民钟先生 (元気です。)

    假设有一个程序需要执行许多INSERT语句,以便将数据填入数据库表中,此时可以使用批量更新的方法来提高程序性能。在使用批量更新(batch update)时,一个语句序列作为一批操作将同时被收集和提交。 处于同一批中的语句可以是INSERT、UPDATE和DELETE等操作,也可以是数据库定义语句,如CREATE TABLE和DROP TABLE。但是,在批量处理中添加SELETE语句会抛出异常。 为了执行批量处理,首先必须使用通常的办法创建一个Statement对象...

    2015-06-14 22:33:01

  • 热心市民钟先生 (元気です。)

    在使用某些驱动程序时,使用保存点(save point)可以更细粒度地控制回滚操作。创建一个保存点意味着稍后只需返回到这个点,而非事务的开头。例如, Statement stat = conn.CreateStatement(); //start transaction ; rollback() goes here stat.executeUpdate(command1); Savepoint svpt = conn.setSavepoint(); //set savepoint ; rollback(svpt) goes here stat.executeUpdate(command2); if (...) conn.rollback(svpt); //und...

    2015-06-14 22:09:08

<前页 1 2 3 4 5 后页>

笔记是你写在书页留白边上的内容;是你阅读中的批注、摘抄及随感。

笔记必须是自己所写,不欢迎转载。摘抄原文的部分应该进行特殊标明。

Java核心技术(卷2):高级特性(原书第9版)

>Java核心技术(卷2):高级特性(原书第9版)