分布式计算学习笔记之一: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图的绘制以及案例的抽象有所了解。
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图的绘制以及案例的抽象有所了解。
相关文章推荐
- 分布式、并行计算语言Erlang 学习笔记(第二部分)
- 分布式java应用学习笔记一
- 我的java学习笔记之hibernate进阶…
- 网易云课堂Java进阶学习笔记系列02 -- 第6周 设计原则
- 分布式、并行计算语言Erlang 学习笔记(第三部分)
- Java WebService学习笔记 - Axis进阶(二)
- java事务学习笔记(八)--分布式事务入门例子(Spring+JTA+Atomikos+Hibernate+JMS)
- java学习笔记(一)用程序来做计算
- 网易云课堂Java进阶学习笔记系列01 -- 第3周 对象容器
- java中日期、日期格式、日期计算学习笔记(二)
- C# Hadoop学习笔记(九)—C#的分布式计算简单类图
- 【分布计算环境学习笔记】4 Enterprise Java Bean
- Java中jqGrid 学习笔记整理――进阶篇(二)
- 分布计算环境学习笔记4——Enterprise Java Bean
- 分布式java应用学习笔记一
- 云计算学习笔记---异常处理---hadoop问题处理ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.lang.NullPoin
- C# Hadoop学习笔记(八)—C#的分布式计算机制
- Java学习笔记03——Java面向对象和语言进阶
- Java学习笔记之循环计算
- java进阶学习笔记