java网络编程

请讲述线程的概念与原理、多线程的概念
产生死锁的必要条件与解决方法
什么是数据的持久化、实体Bean的概念
文件流的概念、字符流与字节流的区别

线程是程序执行的基本原子单位. 一个进程可以由多个线程组成.
在分布式编程中,正确使用线程能够很好的提高应用程序的性能及运行效率.

实现原理是将一个进程分成多个线程,然后让它们并发异步执行,来提高运行效率.

并发执行并不是同时执行(占有CPU),任意时刻还是只能有一个线程占用CPU,
只不过是它们争夺CPU频繁一些,感觉到他们似乎都在运行.

多线程是指程序中包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执行不同的任务,也就是说允许单个程序创建多个并行执行的线程来完成各自的任务。

死锁产生的四个必要条件:

互斥条件(Mutual exclusion):资源不能被共享,只能由一个进程使用。
请求与保持条件(Hold and wait):已经得到资源的进程可以再次申请新的资源。
非剥夺条件(No pre-emption):已经分配的资源不能从相应的进程中被强制地剥夺。
循环等待条件(Circular wait):系统中若干进程组成环路,改环路中每个进程都在等待相邻进程正占用的资源。

死锁解决策略:

分为发生前的预防和发生后的检测恢复,如下

1.忽略该问题。例如鸵鸟算法,该算法可以应用在极少发生死锁的的情况下。为什么叫鸵鸟算法呢,因为传说中鸵鸟看到危险就把头埋在地底下,可能鸵鸟觉得看不到危险也就没危险了吧。跟掩耳盗铃有点像。
2.检测死锁并且恢复。
3.仔细地对资源进行动态分配,以避免死锁。
4.通过破除死锁四个必要条件之一,来防止死锁产生。

数据的持久化是指将从数据库取出的数据进行封装,放在一个对象里,目的是为了以后的使用更加高效,不必每次都从数据库里取数据。(个人理解)

实体bean主要存储业务数据
文件流 -- 指与输入输出设备有关的数据的流动,也指流动的数据本身

字符流和字节流是根据处理数据的不同来区分的。字节流按照8位传输,字符流按照16位传输
由于字符流使用Unicode字符集,支持多国文字,因此若流要跨越多种平台传输,应使用字符流。
按kilojin的说法,字符流的传输效率比字节流的高.

只是个人的一些了解。希望可以帮到你。努力学习ing~~~
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-11-03
面试用的?
自己google一下java面试题,都是些常见题目。
第2个回答  2013-11-03
老大 你真懒 ,都懒得百度!
第3个回答  2013-11-03
我可以提供几个视频给你看 要不??
相似回答