vm JSR 292: Suporte para linguagens digitadas dinamicamente (InvokeDynamic)
Verificação estrita de arquivo de classe
lang JSR 334: Pequenos aprimoramentos de linguagem (Projeto Moeda)
arquitetura do carregador de classe de atualização principal
Método para fechar um URLClassLoader
Simultaneidade e atualizações de coleções (jsr166y)
i18n Unicode 6.0
Melhoria de local
Local do usuário separado e local da interface do usuário
ionet JSR 203: Mais novas APIs de E / S para a plataforma Java (NIO.2)
Fornecedor de sistema de arquivos NIO.2 para arquivos zip / jar
SCTP (protocolo de transmissão de controle de fluxo)
SDP (protocolo Sockets Direct)
Use a pilha IPv6 do Windows Vista
TLS 1.2
sec criptografia de curva elíptica (ECC)
jdbc JDBC 4.1
pipeline XRender do cliente para Java 2D
Crie novas APIs de plataforma para recursos gráficos 6u10
Nimbus look-and-feel para Swing
Componente Swing JLayer
Sintetizador de som Gervill [NOVO]
web Atualizar a pilha XML
MBeans otimizados de gerenciamento [ATUALIZADO]
Exemplos de código para novos recursos em Java 1.7
Código +1 para os exemplos de código difíceis de encontrar. Você pode adicionar mais?
Zasz
3
A inferência de tipo melhorada parece ser uma cópia triste do C # com uma mudança estranha onde uma referência é digitada, mas o objeto não é ?? Que comédia!
Zasz
1
@Zasz, sim claro, está em melhoria contínua
didxga
Então a pergunta é para o OP, qual a sua opinião? Essas melhorias são apenas do lado da produtividade ou podem realmente melhorar o desempenho dos programas? Se nenhum bytecode for alterado, os novos aprimoramentos de idioma podem ser usados com o bytecode marcado como 1.5?
Dmitriy R
Embora não seja uma melhoria da linguagem, existe a nova Objectsclasse, com métodos estáticos para evitar a verificação de referências nulas. Exemplo: if (obj != null && obj.equals(anotherObj))torna - seif (Objects.equals(obj, anotherObj))
Carcamano
13
Novo recurso do Java Standard Edition (JSE 7)
Decore os componentes com a classe JLayer:
A classe JLayer é um decorador flexível e poderoso para componentes Swing. A classe JLayer em Java SE 7 é semelhante em espírito ao projeto do projeto JxLayer em java.net. A classe JLayer foi inicialmente baseada no projeto JXLayer, mas sua API evoluiu separadamente.
Strings in switch Statement :
No JDK 7, podemos usar um objeto String na expressão de uma instrução switch. O compilador Java geralmente gera bytecode mais eficiente a partir de instruções switch que usam objetos String do que instruções if-then-else encadeadas.
Inferência de tipo para instância genérica:
Podemos substituir os argumentos de tipo necessários para invocar o construtor de uma classe genérica por um conjunto vazio de parâmetros de tipo (<>), desde que o compilador possa inferir os argumentos de tipo a partir do contexto. Este par de colchetes angulares é informalmente chamado de diamante. Java SE 7 suporta inferência de tipo limitada para criação de instância genérica; você só pode usar a inferência de tipo se o tipo parametrizado do construtor for óbvio a partir do contexto. Por exemplo, o exemplo a seguir não compila:
List<String> l =newArrayList<>();
l.add("A");
l.addAll(newArrayList<>());
Captura de vários tipos de exceção e relançamento de exceções com verificação de tipo aprimorada:
No Java SE 7 e posterior, um único bloco catch pode manipular mais de um tipo de exceção. Este recurso pode reduzir a duplicação de código. Considere o seguinte código, que contém código duplicado em cada um dos blocos catch:
Em releases anteriores ao Java SE 7, é difícil criar um método comum para eliminar o código duplicado porque a variável e tem tipos diferentes. O exemplo a seguir, que é válido em Java SE 7 e posterior, elimina o código duplicado:
A cláusula catch especifica os tipos de exceções que o bloco pode manipular, e cada tipo de exceção é separado por uma barra vertical (|).
O pacote java.nio.file
O java.nio.filepacote e seu pacote relacionado, java.nio.file.attribute, fornecem suporte abrangente para E / S de arquivos e para acessar o sistema de arquivos. Um provedor de sistema de arquivo zip também está disponível no JDK 7.
Ao ponto! Os dez principais resultados de pesquisa do Google para " recursos Java " retornam a lista (inútil):Simple, Object-Oriented, Portable, Platform independent, Secured...
Marinos An
3
Além do que John Skeet disse, aqui está uma visão geral do projeto Java 7 . Inclui uma lista e descrição dos recursos.
Nota: o JDK 7 foi lançado em 28 de julho de 2011, então agora você deve ir para o site oficial do java SE .
Para sua informação, esta é uma boa apresentação, mas muito antiga e um tanto desatualizada.
Alex Miller
Recebi uma página de erro em hebraico quando tentei este link - há uma cópia mais atualizada em algum lugar?
Simon Nickerson,
1
Mudanças de idioma :
-ProjectCoin(small changes)-switch on Strings-try-with-resources
-diamond operator
Mudanças na biblioteca :
-new abstracted file-system API (NIO.2)(with support for virtual filesystems)-improved concurrency libraries
-elliptic curve encryption
-more incremental upgrades
Mudanças de plataforma :
-support for dynamic languages
Abaixo está o link que explica os recursos recém-adicionados do JAVA 7, a explicação é cristalina com os possíveis pequenos exemplos para cada recurso:
A lista a seguir contém links para as páginas de aprimoramentos no Java SE 7.
Swing
IO and New IO
NetworkingSecurityConcurrencyUtilitiesRichInternetApplications(RIA)/DeploymentRequesting and CustomizingAppletDecoration in Dragg able AppletsEmbedding JNLP File in AppletTagDeploying without CodebaseHandlingAppletInitializationStatus with EventHandlersJava2DJava XML – JAXP, JAXB, and JAX-WS
Internationalization
java.lang PackageMultithreadedCustomClassLoaders in Java SE 7JavaProgrammingLanguageBinaryLiteralsStrings in switchStatementsThetry-with-resources StatementCatchingMultipleExceptionTypes and RethrowingExceptions with ImprovedTypeCheckingUnderscores in NumericLiteralsTypeInferenceforGenericInstanceCreationImprovedCompilerWarnings and ErrorsWhenUsingNon-ReifiableFormalParameters with VarargsMethodsJavaVirtualMachine(JVM)JavaVirtualMachineSupportforNon-JavaLanguagesGarbage-FirstCollectorJavaHotSpotVirtualMachinePerformanceEnhancements
JDBC
Respostas:
Recursos e aprimoramentos do Java SE 7 das notas de versão do JDK 7
Este é o resumo dos novos recursos do Java 7 da página de recursos do OpenJDK 7 :
Exemplos de código para novos recursos em Java 1.7
Declaração de teste com recursos
isto:
torna-se:
Você pode declarar mais de um recurso para fechar:
Sublinhados em literais numéricos
Strings em switch
Literais binários
Inferência de tipo aprimorada para criação de instância genérica
torna-se:
Captura de múltiplas exceções
isto:
torna-se:
SafeVarargs
isto:
torna-se:
fonte
Objects
classe, com métodos estáticos para evitar a verificação de referências nulas. Exemplo:if (obj != null && obj.equals(anotherObj))
torna - seif (Objects.equals(obj, anotherObj))
Novo recurso do Java Standard Edition (JSE 7)
Decore os componentes com a classe JLayer:
A classe JLayer é um decorador flexível e poderoso para componentes Swing. A classe JLayer em Java SE 7 é semelhante em espírito ao projeto do projeto JxLayer em java.net. A classe JLayer foi inicialmente baseada no projeto JXLayer, mas sua API evoluiu separadamente.
Strings in switch Statement :
No JDK 7, podemos usar um objeto String na expressão de uma instrução switch. O compilador Java geralmente gera bytecode mais eficiente a partir de instruções switch que usam objetos String do que instruções if-then-else encadeadas.
Inferência de tipo para instância genérica:
Podemos substituir os argumentos de tipo necessários para invocar o construtor de uma classe genérica por um conjunto vazio de parâmetros de tipo (<>), desde que o compilador possa inferir os argumentos de tipo a partir do contexto. Este par de colchetes angulares é informalmente chamado de diamante. Java SE 7 suporta inferência de tipo limitada para criação de instância genérica; você só pode usar a inferência de tipo se o tipo parametrizado do construtor for óbvio a partir do contexto. Por exemplo, o exemplo a seguir não compila:
Em comparação, o exemplo a seguir compila:
Captura de vários tipos de exceção e relançamento de exceções com verificação de tipo aprimorada:
No Java SE 7 e posterior, um único bloco catch pode manipular mais de um tipo de exceção. Este recurso pode reduzir a duplicação de código. Considere o seguinte código, que contém código duplicado em cada um dos blocos catch:
Em releases anteriores ao Java SE 7, é difícil criar um método comum para eliminar o código duplicado porque a variável e tem tipos diferentes. O exemplo a seguir, que é válido em Java SE 7 e posterior, elimina o código duplicado:
A cláusula catch especifica os tipos de exceções que o bloco pode manipular, e cada tipo de exceção é separado por uma barra vertical (|).
O pacote java.nio.file
O
java.nio.file
pacote e seu pacote relacionado, java.nio.file.attribute, fornecem suporte abrangente para E / S de arquivos e para acessar o sistema de arquivos. Um provedor de sistema de arquivo zip também está disponível no JDK 7.Fonte: http://ohmjavaclasses.blogspot.com/
fonte
Aprimoramentos da linguagem de programação Java @ Java7
Referência oficial Referência
oficial com referência de wiki java8
fonte
Simple, Object-Oriented, Portable, Platform independent, Secured...
Além do que John Skeet disse, aqui está uma visão geral do projeto Java 7 . Inclui uma lista e descrição dos recursos.
Nota: o JDK 7 foi lançado em 28 de julho de 2011, então agora você deve ir para o site oficial do java SE .
fonte
Mudanças de idioma :
Mudanças na biblioteca :
Mudanças de plataforma :
Abaixo está o link que explica os recursos recém-adicionados do JAVA 7, a explicação é cristalina com os possíveis pequenos exemplos para cada recurso:
http://radar.oreilly.com/2011/09/java7-features.html
fonte
int val 12_15; long phoneNo = 01917_999_720L;
fonte
Acho que ForkJoinPool e o aprimoramento relacionado ao Executor Framework são uma adição importante no Java 7.
fonte
A lista a seguir contém links para as páginas de aprimoramentos no Java SE 7.
Referência 1 Referência 2
fonte