IO流的分类&序列化&事件处理模型&J2EE各类名词&LinkedBlockingQueue

IO流的分类

输入流

主要是InputStream和Reader作为基类

输出流

主要由outputStream和Writer作为基类

什么是序列化?

  • 序列化:把Java对象转换为字节序列的过程。
  • 反序列化:把字节序列恢复为Java对象的过程。
    用来处理对象流。
    什么是对象流?将对象的内容进行流化。
  • 实现:实现java.io.Serializable接口,为了标注该对象是可被序列化的
  • 用途:1.永久保存数据,保存在文件中2.在网络中传输对象的字节序列
  • 对象的默认序列化机制写入的内容是:对象的类,类签名,以及非瞬态和非静态字段的值。

Java集合对象

Java 提供的事件处理模型是一种人机交互模型。它有三个基本要素:

  1. 事件源(Event Source):即事件发生的场所,就是指各个组件,如按钮等,点击按钮其实就是组件上发生的一个事件;

  2. 事件(Event):事件封装了组件上发生的事情,比如按钮单击、按钮松开等等;

  3. 事件监听器(Event Listener):负责监听事件源上发生的特定类型的事件,当事件到来时还必须负责处理相应的事件;

类中静态语句块仅在类加载时被执行一次

数组复制方法

效率:System.arraycopy > clone > Arrays.copyOf > for循环

LinkedBlockingQueue

基于链接节点的可选限定的blocking queue 。
有界的阻塞队列,不允许null。
线程安全。
这个队列排列元素FIFO(先进先出)。 队列的头部是队列中最长的元素。 队列的尾部是队列中最短时间的元素。 新元素插入队列的尾部,队列检索操作获取队列头部的元素。 链接队列通常具有比基于阵列的队列更高的吞吐量,但在大多数并发应用程序中的可预测性能较低。
blocking queue说明:不接受null元素;可能是容量有限的;实现被设计为主要用于生产者 - 消费者队列;不支持任何类型的“关闭”或“关闭”操作,表示不再添加项目实现是线程安全的;

ConcurrentLinkedQueue

基于链接节点的无界线程安全队列,该队列的元素遵循FIFO原则。

PriorityQueue

无界队列,不允许null值,入队和出队的时间复杂度是O(log(n))。
每次从队列中取出的是具有最高优先权的元素。

  • java的封装性:指的是将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息,通过该类提供的方法实现对内部信息的操作访问。
  • 反射机制:在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性

J2EE

  • web容器:给处于其中的应用程序组件(JSP,SERVLET)提供一个环境,使 JSP,SERVLET直接更容器中的环境变量接**互,不必关注其它系统问题。主要有WEB服务器来实现。例如:TOMCAT,WEBLOGIC,WEBSPHERE等。该容器提供的接口严格遵守J2EE规范中的WEB APPLICATION 标准。我们把遵守以上标准的WEB服务器就叫做J2EE中的WEB容器。

EJB容器:Enterprise java bean 容器。更具有行业领域特色。他提供给运行在其中的组件EJB各种管理功能。只要满足J2EE规范的EJB放入该容器,马上就会被容器进行高效率的管理。并且可以通过现成的接口来获得系统级别的服务。例如邮件服务、事务管理。

JNDI:(Java Naming & Directory Interface)JAVA命名目录接口。主要提供的功能是:提供一个目录系,让其它各地的应用程序在其上面留下自己的索引,从而满足快速查找和定位分布式应用程序的功能。

JMS:(Java Message Service)JAVA消息服务。主要实现各个应用程序之间的通讯。包括点对点和广播。

JTA:(Java Transaction API)JAVA事务服务。提供各种分布式事务服务。应用程序只需调用其提供的接口即可。

JAF:(Java Action FrameWork)JAVA安全认证框架。提供一些安全控制方面的框架。让开发者通过各种部署和自定义实现自己的个性安全控制策略。

RMI/IIOP:(Remote Method Invocation /internet对象请求中介协议)他们主要用于通过远程调用服务。例如,远程有一台计算机上运行一个程序,它提供股票分析服务,我们可以在本地计算机上实现对其直接调用。当然这是要通过一定的规范才能在异构的系统之间进行通信。RMI是JAVA特有的。

堆区:类中成员变量,线程共享
方法区:静态存储区。存放class文件和静态数据。线程共享
栈区:方法中的局部变量,存放在栈区

猜你喜欢

转载自blog.csdn.net/xuxuan1997/article/details/83788692