您的位置:首页 > 编程语言 > Java开发

分布式计算学习笔记之一:Java进阶 与 Scocket通讯

2016-09-03 23:11 169 查看
Java进阶与Scocket通讯

1. RuntimeException是JAVA在处理异常时的一个类,继承于Exception类,负责运行时抛出异常。常见的RuntimeException有NullPointerException,ClassCastException,IllegalArgumentException。

用一个小程序捕获异常。

void transfer(double amount) throws OutOfMoney {

if (blance < amount)

throw new OutOfMoney(“OutOfMoney!”);

blance -= amount;

}

try

{

transfer(amount);

} catch (OutOfMoney exc) {

exc.printStackTrace();

} finally {

}

2.



3.不申明语法上不会出现问题,但是去掉后会导致try、catch语句无法捕获到这个异常。所以应该要申明。

 

4.客户端会出错。

在 Socket server = new Socket(args[0], Integer.parseInt(args[1]));出错。

 

5.客户端抛出一个异常。

 

7.不能支持两个或以上客户端。服务端程序不支持多线程。

 

8.进程是一种重量级任务,线程是一种轻量级任务。每一进程占有独立的地址空间,包括代码、数据以及其他资源,而一个进程中的多个线程可以共享该进程的这些空间。进程之间的通讯开销较大且受到很多限制,而线程可以通过共享的公共数据区进行通信,开销小且更简单。进程间切换开销大,线程间切换开销小。

 

9.使用Runnable创建线程可以节约JAVA程序中宝贵的单继承指标,而使用继承Thread类的方法创建线程可以更为简单地完成同样的事情。

 

10.synchronized是Java中的关键字,是一种同步锁。它修饰的对象有以下几种:

修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{}括起来的代码,作用的对象是调用这个代码块的对象;

修饰一个方法,被修饰的方法称为同步方法,其作用的范围是整个方法,作用的对象是调用这个方法的对象;

修改一个静态的方法,其作用的范围是整个静态方法,作用的对象是这个类的所有对象;

修改一个类,其作用的范围是synchronized后面括号括起来的部分,作用主的对象是这个类的所有对象。

 

11.不存在。不会序列化对象的transient的实例变量,也不会序列化静态变量。

 

13.假如我们有两个程序员,一个程序员在写程序的时候,需要使用第二个程序员所写的类,但第二个程序员并没完成他所写的类。那么第一个程序员的代码能否通过编译呢?这是不能通过编译的。利用Java反射的机制,就可以让第一个程序员在没有得到第二个程序员所写的类的时候,来完成自身代码的编译。

 

14.



静态代理类实现了AccountService,有个主机host,端口号port。其中实现了getAccount方法,里面运用Connector、RemoteCall。

 

15.静态代理在程序运行前,.class文件就已经存在。动态代理在程序运行时,.class文件运用反射机制创建。

 

 

 

 

 

 

个人学习小结:

 

熟悉了JAVA中关于Socket通讯的内容。

了解了反射机制,弄清反射存在的必要性。

对序列化与非序列化机制有个初步的认识。

熟悉了两种代理模式,了解了两者的异同。

对uml图的绘制以及案例的抽象有所了解。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: