JAVA 语言适合网络 特点有三 1.平台无关性 ,2 ,安全性 (可以定制不同的安全级别),3.程序的健壮性(内部屏蔽了很多BUG,如内存泄露等)4,网络移动性(rmi和序列化API)
JAVA体系结构 包含4个方面
1、JAVA虚拟机 2、CLASS文件格式 3、JAVA编程接口和API 4、JAVA语言
2、JAVA虚拟机 (是JAVA面向网络编程的核心,包含JAVA的三个方面如上)是一台抽象的计算机,可以用软件实现,硬件实现等等但必须都能执行JAVA字节码,JAVA虚拟机 有JAVA类装载器和JAVA执行引擎组成。 JAVA中只有运行时需要的类才会被加载,不同的执行引擎执行JAVA字节码的方式不同。
3、JAVA中有2中方法,本地方法(JNI)和JAVA方法 (本地方法由别的语言实现)
4、类装载体系结构(在安全性方面保证)
在JAVA虚拟机的安全性和网络移动性方面发挥重要的作用。在JAVA虚拟机中存在多个类装载器
一个JAVA程序可以有2中类装载器(启动类装载器(用别的语言编写,装载JAVA API)和用户定义的类装载器(和普通的JAVA对象一样)) ,不同类装载器装载的类不能相互访问,除非系统显示的声明. 一个类被A装载器装载,那么他里面调用的其他类也被这个类装载器装载
5、JAVA CLASS 文件(平台无关性和网络移动性)
1、提供了独立于平台的2进制文件(在JAVA虚拟机上运行),这种2进制文件的高位在前。
2、CLASS文件设计的很紧出,而且是动态连接和扩展的,所以在网络移动性方面提供了很大的方便
NGQ NOTE:动态扩展与动态载入不一样,前者是给你的程序中动态加入新的类型(可以加入新的类型),后者一般是系统动态载入程序中已经有的类型。
6、JAVA API
用户程序 --》JAVA API --》本地动态连接库 --》系统资源
7、JAVA 的缺点
1、运行速度慢。 2、内存管理(不知道垃圾回收器多会运行) 和线程调度(为了实现平台无关性 线程管理很松散)这中缺陷是JAVA 不适用于某些特定的系统,如事实响应的系统。
3、CLASS 文件天生的动态连接特性 ,容易被反编译(因为动态连接 把调用方法的参数类型等信息全部用符号标记,还有对自己成员变量和方法的符号引用,调试信息包含了局部变量的名称和类型)CLASS文件的符号信息和字节码指令、和JAVA语言这些方面使得CLASS文件很容易被反编译