包含跟7相关的java的词条
今天给各位分享跟7相关的java的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
Java 7有什么新特性?
几乎方方面面都有重大更新,举几个语法上的新特性,其他方面建议你去查找相关资料。
1、switch...case支持字符串。
2、数字字面量改进,加入二进制字面量表示:如0b001001(十进制数字9)或0B001001;
数字字面量中可以使用下划线分割,以使长数字便于阅读,如100000可以写成100_000,就好比现实生活中写成100,000便于阅读一样。
3、优化异常处理,Throable类增加addSuppressed和getSuppressed方法,用来记录被其他异常抑制而无法正常抛出的异常;
一个catch子句可以捕获多个异常,每个异常之间使用“|”分割,如catch (ClassNotFoundException cnfe | IOException ioe);
还有其他的一些优化,如异常类中包含更多信息,精确异常抛出等等。
4、Java 7之前通常在try里创建资源,finally里对资源进行关闭等操作,Java 7中可以使用try-with-resources语句,而不需要关心资源的关闭,如——
try (InputStream input = new FileInputStream("D:/test1.txt");
OutputStream output = new FileOutputStream("D:/test2.txt")) {
byte[] buffer = new byte[1024];
int len = -1;
while ((len = input.read(buffer) != -1 ) {
output.write(buffer, 0, len);
}
}
将资源的创建写在try后的括号里,这样就不需要使用finally语句来保证资源的正确关闭,由虚拟机自动完成,程序员只需要关心业务逻辑即可。
5、关于变长参数的优化,增加了@SafeVarargs注解,Java 7之前在使用可变长参数的方法时,如果参数传递的是不可具体化的类型(如泛型类型ListString)会产生警告信息,如果希望进制该警告,需要使用@SuppressWarnings("unchecked")注解进行声明,Java 7中,如果开发人员确信某个使用了可变长参数的方法在与泛型类一起使用时不会出现类型安全问题,就可以使用@SafeVarargs注解来声明。注意该注解只能用于可变长参数的方法或者构造方法,并且方法必须声明为static或final。
JAVA EE 7有哪些主要的实现
Java EE 7新功能
1.3.1 新的规范
新规范的主要功能描述如下。
1.Java API for WebSocket
通过声明方式注解一个POJO或者通过编程方式实现接口来定义一个WebSocket的客户端和服务器端点。
提供服务器特定的配置,比如在容器的URI空间中、端点支持的子协议中,以及应用程序所需的扩展中标识WebSocket端点的映射。
提供客户端特定的配置,比如提供自定义配置的算法。
启用在JDK或Web容器上打包和部署。
允许与现有的Java EE技术集成。
2.Java API for JSON Processing
流式API用于提供以流的方式解析和生成JSON。
对象模型API用于创建随机访问和树状结构来表述内存中的JSON数据。
3.Batch Applications for Java Platform
使用XML模式的作业规范语言(Job Specification Language)来描述批处理作业,定义了完整的作业执行顺序。
使用接口、抽象类和字段注释来定义批处理编程模型的功能。
提供了Chunked和Batchlet两种作业处理方式。
4.Concurrency Utilities for Java EE
提供了Java EE应用程序组件的并发能力,而不影响容器的完整性。
定义了托管对象:ManagedExecutorService、ManagedScheduledExecutorService、ContextService和ManagedThreadFactory。
1.3.2 更新的规范
更新后,规范的主要功能描述如下。
1.Java API for RESTful Web Services
提供了一个新的客户端API,用于访问网络资源和提供与JAX-RS的providers整合。
支持在客户端API和服务器API之间的异步处理。
定义了消息过滤器和实体拦截器作为定制客户端和服务器两端的请求/响应处理的扩展点。
引入QS因子作为服务器端新的内容协商。
字段、属性和使用@HeaderParam、@QueryParam等注解注入的参数可以使用声明式验证。资源类可以使用约束注解。
2.Java Message Service
为使JMS API更简单和易用,做出了多处修改。例如,Connection、Session和其他对象的close方法现在实现了java.lang.Autocloseable接口,可以在Java SE 7的try-with-resources语句中使用。增加了无需提供冗余参数创建会话的新方法。增加了getBody的新方法,允许应用程序直接从Message获取消息体,而无需首先将其转换为适当的子类型。
消息生产者现在可以指定一个在指定的时间间隔之后才被传送的消息。
增加了允许应用程序异步发送消息的发送方法。
JMS提供者现在必须设置JMSXDeliveryCount消息属性。
3.Expression Language
表达式语言(EL)是一个独立的规范,它可以使用ELProcessor在Java EE容器之外配置和使用。
表达式语言包含了lambda语法。现在,使用lambda表达式可以支持一套完整的集合操作,如map和过滤器。
除了通常的算术和比较操作符,还加入了新的操作(比如赋值运算符和字符串连接运算符),使表达式语言更具表现力。
4.Enterprise JavaBeans
对EJB 2.1、EJB QL和基于JAX-RPC的Web服务端点和客户端视图的支持现在是可选的。
使用没有方法的消息监听器接口,增强了消息驱动Bean(MDB)的约束。MDB暴露所有公共方法作为消息监听器方法,这将允许为将来的更多的MDB自定义资源适配器。
使用清晰的规则为EJB精简版容器定义了EJB API组来支持其他的API组,有助于定义如何将超越EJB精简版的EJB功能正式地加入到不支持完整功能的Java EE Profile的产品中。
EJB精简版包含了异步会话Bean调用和非持久性的EJB定时器服务。
增加了一个选项来禁用有状态会话Bean的钝化。
5.Servlets
定义了使用HttpUpgradeHandler升级现有的HTTP连接到不同的协议的标准机制。
为异步Servlet提供了非阻塞请求和响应处理。
定义了HTTP方法被securityconstraint覆盖的规则。
6.JavaServer Faces
Faces Flow封装了与应用程序定义的入口点和出口点相关的视图、页面。
资源库约束使开发人员能够以可重用的和可互换的方式,将Facelet模板应用到整个应用程序。
HTML5友好的标记允许几乎完全控制视图中每个元素的用户体验。
无状态视图意味着开发人员不再需要保存UIComponentstate,这允许应用程序使用JavaScript组件来代替JSF管理状态。
7.Java Persistence
可以通过使用javax.persistence.schema-generation.*属性来创建数据库和表。
非同步的持久化上下文意味着一个持久化上下文无需登记在一个事务中,这样的持久化上下文可以显式地加入事务。
Criteria API支持批量更新/删除。
可以使用FUNCTION调用预定义和用户定义的函数。
可以使用StoredProcedureQuery和@NamedStoredProcedureQuery调用存储过程。
8.Interceptors
使用InterceptorBinding关联拦截器是现在这个规范而不是CDI的一部分。
@AroundConstruct指定了一个拦截器方法来接收目标类构造子被调用时的回调。
通过增加构造子级别的拦截器,方法级的拦截器可以扩展到生命周期的回调。
使用拦截器绑定,优先级范围可以专用于拦截器排序。
9.Contexts and Dependency Injection
在Java EE中,为使用作用域注解的Bean和EJB自动启用CDI。
@Priority注解支持全局排序和启用拦截器、装饰器和Alternative。
@Vetoed注解简化了编程式的禁用类。
10.Bean Validation
验证约束可以应用到任意方法和构造子的参数和返回值。
增加和重新设计了CDI集成点。
当验证级联触发时,可以改变目标组。
11.Java Transaction
应用程序可以使用@Transactional,在类级别和方法级别以声明方式控制CDI管理的Bean和Java EE规范的托管Bean的事务边界,方法级别的注解会覆盖类级别定义的注解。
@TransactionScoped是一个新的CDI作用域,将Bean实例生命周期的作用域定义为当前的JTA事务。
12.JavaMail
@MailSessionDefinition和@MailSessionDefintions定义了使用JNDI注册的MailSession。
13.Java EE Connector Architecture
提供@AdministeredObjectDefinition、@AdministeredObjectDefintions、@Connector FactoryDefinition和@ConnectorFactoryDefinitions来定义连接器管理的对象和将在JNDI中注册的工厂。
关于JAVA7的问题
class MyAction implements ActionListener{
public void actionPerformed(ActionEvent e){
TextField tf=(TextField)e.getSource(); 你这少写一个字母getSource
System.out.println(tf.getText());//错误发生在这一行
}
}
跟7相关的java的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、跟7相关的java的信息别忘了在本站进行查找喔。
发布于:2022-11-30,除非注明,否则均为
原创文章,转载请注明出处。