(一)并发编程(Java 通过 Executor 提供四种线程池)
Executor框架是指 java 5中引入的一系列并发库中与executor相关的一些功能类,其中包括线程池,Executor、
Executors,ExecutorService,CompletionService,Future,Callable等
并发编程的一种编程方式是把任务拆分为一些列的小任务,即Runnable,然后在提交给一个Executor执行,
Executor.execute(Runnalbe) ,Executor在执行时使用内部的线程池完成操作
(二)事务(JTA+JTS)
事务是一组原子操作单元,从数据库角度说,就是一组SQL指令,要么全部执行成功,若因为某个原因其中一条指令执行
有错误,则撤销先前执行过的所有指令。更简答的说就是:要么全部执行成功,要么撤销不执行(解决数据安全操作)
实际上,一个Java应用系统,如果要操作数据库,则通过JDBC来实现的。增加、修改、删除都是通过相应方法间接来实现
的,事务的控制也相应转移到Java程序代码中。因此,数据库操作的事务习惯上就称为Java事务
Java 事务的类型有三种:JDBC事务、JTA(Java Transaction API)事务、容器事务
1、JDBC事务
JDBC 事务是用 Connection 对象控制的。JDBC Connection 接口( java.sql.Connection )提供了两种事务模式:自动
提交和手工提交。
使用 JDBC 事务界定时,可以将多个 SQL 语句结合到一个事务中。JDBC 事务的一个缺点是事务的范围局限于一个数
据库连接。一个 JDBC 事务不能跨越多个数据库。
2、JTA(Java Transaction API)事务(分布式事务处理)
JTA是一种高层的,与实现无关的,与协议无关的API,应用程序和应用服务器可以使用JTA来访问事务
JTA允许应用程序执行分布式事务处理——在两个或多个网络计算机资源上访问并且更新数据,这些数据可以分布在多个
数据库上。JDBC驱动程序的JTA支持极大地增强了数据访问能力。
3、三种Java事务差异
(1)JDBC事务控制的局限性在一个数据库连接内,但是其使用简单。
(2)JTA事务的功能强大,事务可以跨越多个数据库或多个DAO,使用也比较复杂。
(3)容器事务,主要指的是J2EE应用服务器提供的事务管理,局限于EJB应用使用。
4、Java事务控制是构建J2EE应用不可缺少的一部分,合理选择应用何种事务对整个应用系统来说至关重要。一般说来,
在单个JDBC 连接连接的情况下可以选择JDBC事务,在跨多个连接或者数据库情况下,需要选择使用 JTA事务 ,如果用到了
EJB,则可以考虑使用EJB容器事务
(三)Java消息服务(JMS)
JMS是一个用于提供消息服务的技术规范,制定了在整个消息服务提供过程中的所有数据结构和交互流程。而MQ则是
消息队列服务,是面向消息中间件(MOM)的最终实现,是真正的服务提供者(MQ的实现可以基于JMS,也可以基于其他规范
或标准)
MQ 全称为Message Queue,消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的
消息(针对应用程序的数据)来通信,而无需专用连接来链接它们(以管道的方式做消息传递)
MQ框架:RabbitMQ、ActiveMQ、ZeroMq 三者中,综合来看,RabbitMQ是首选
(1)RabbitMQ:是用天生具有高并发、高可用的 Erlang 语言进行编写的。基于AMQP协议,Erlang是天然集群化的语言
(2)ActiveMQ:是用 java 语言开发的,与java程序有天然的耦合性,基于STOMP协议
(四)安全机制
Java的安全是目前的编程语言中最优秀的一种,Java技术之所以适用于网络就是因为有完备的、设计到其结构中
的安全模式
1、Java语言本身嵌入了安全特性,其中包括编译器/JVM对强数据类型的支持,自动的内存管理,字节代码的验证机制
以及独特的安全类加载方式
2、密码体系
3、JAAS
4、安全通信
5、PKI体系
6、Java沙箱模型