vm JSR 292: Поддержка языков с динамической типизацией (InvokeDynamic)
Строгая проверка файла класса
lang JSR 334: небольшие языковые улучшения (Project Coin)
ядро Обновить архитектуру загрузчика классов
Метод закрытия URLClassLoader
Обновления параллелизма и коллекций (jsr166y)
i18n Unicode 6.0
Улучшение локали
Отдельные языковой стандарт пользователя и языковой стандарт пользовательского интерфейса
ionet JSR 203: больше новых API ввода-вывода для платформы Java (NIO.2)
Поставщик файловой системы NIO.2 для архивов zip / jar
SCTP (протокол передачи управления потоком)
SDP (Прямой протокол сокетов)
Используйте стек IPv6 Windows Vista
TLS 1.2
sec Криптография на основе эллиптических кривых (ECC)
jdbc JDBC 4.1
клиентский конвейер XRender для Java 2D
Создание новых API-интерфейсов платформы для графических функций 6u10
Внешний вид Nimbus для Swing
Компонент Swing JLayer
Звуковой синтезатор Gervill [НОВИНКА]
web Обновить стек XML
mgmt Enhanced MBeans [ОБНОВЛЕНО]
+1 Код для труднодоступных примеров кода. Вы можете добавить еще?
Zasz
3
Улучшенный вывод типов кажется грустной копией из C # со странным изменением, когда ссылка вводится, а объект - нет ?? Какая комедия!
Zasz
1
@Zasz, да, конечно, он постоянно совершенствуется
didxga
Итак, вопрос к OP, каково ваше мнение? Являются ли эти улучшения только производительностью или они действительно могут улучшить производительность программ? Если байт-код не меняется, можно ли использовать новые языковые улучшения с байт-кодом, помеченным как 1.5?
Дмитрий Р
Хотя это и не улучшение языка, есть новый Objectsкласс со статическими методами, чтобы избежать необходимости проверять нулевые ссылки. Пример: if (obj != null && obj.equals(anotherObj))становитсяif (Objects.equals(obj, anotherObj))
Carcamano 02
13
Новая функция Java Standard Edition (JSE 7)
Украсьте компоненты классом JLayer:
Класс JLayer - это гибкий и мощный декоратор для компонентов Swing. Класс JLayer в Java SE 7 по духу похож на проект проекта JxLayer на java.net. Класс JLayer изначально был основан на проекте JXLayer, но его API развивался отдельно.
Строки в операторе switch :
В JDK 7 мы можем использовать объект String в выражении оператора switch. Компилятор Java обычно генерирует более эффективный байт-код из операторов switch, которые используют объекты String, чем из связанных операторов if-then-else.
Вывод типа для универсального экземпляра:
Мы можем заменить аргументы типа, необходимые для вызова конструктора универсального класса, пустым набором параметров типа (<>), если компилятор может вывести аргументы типа из контекста. Эта пара угловых скобок неофициально называется ромбом. Java SE 7 поддерживает вывод ограниченного типа для создания универсального экземпляра; вы можете использовать вывод типа, только если параметризованный тип конструктора очевиден из контекста. Например, следующий пример не компилируется:
List<String> l = new ArrayList<>();
l.add("A");
l.addAll(new ArrayList<>());
Для сравнения компилируется следующий пример:
List<? extends String> list2 = new ArrayList<>();
l.addAll(list2);
Перехват нескольких типов исключений и повторное отображение исключений с улучшенной проверкой типов:
В Java SE 7 и более поздних версиях один блок catch может обрабатывать более одного типа исключений. Эта функция может уменьшить дублирование кода. Рассмотрим следующий код, который содержит повторяющийся код в каждом из блоков catch:
В версиях, предшествующих Java SE 7, сложно создать общий метод для устранения дублированного кода, поскольку переменная e имеет разные типы. В следующем примере, который действителен в Java SE 7 и новее, дублированный код устраняется:
Предложение catch определяет типы исключений, которые может обрабатывать блок, и каждый тип исключения отделяется вертикальной чертой (|).
Пакет java.nio.file
Этот java.nio.fileпакет и связанный с ним пакет java.nio.file.attribute обеспечивают всестороннюю поддержку файлового ввода-вывода и доступа к файловой системе. Поставщик файловой системы zip также доступен в JDK 7.
К точке! Десять лучших результатов поиска Google по запросу « Java features » возвращает (бесполезный) список:Simple, Object-Oriented, Portable, Platform independent, Secured...
Marinos An
3
В дополнение к тому, что сказал Джон Скит, вот обзор проекта Java 7 . Он включает в себя список и описание функций.
Примечание. JDK 7 был выпущен 28 июля 2011 г., поэтому теперь вам следует перейти на официальный сайт java SE .
К вашему сведению, это хорошая презентация, но довольно старая и несколько устаревшая.
Alex Miller
Когда я попробовал эту ссылку, у меня появилась страница с ошибкой на иврите - есть ли где-нибудь более свежая копия?
Саймон Никерсон
1
Изменения языка :
-Project Coin(small changes)
-switch on Strings
-try-with-resources
-diamond operator
Изменения библиотеки :
-new abstracted file-system API(NIO.2)(with support for virtual filesystems)
-improved concurrency libraries
-elliptic curve encryption
-more incremental upgrades
Изменения платформы :
-support for dynamic languages
Ниже приведена ссылка, объясняющая недавно добавленные функции JAVA 7, объяснение кристально ясное с возможными небольшими примерами для каждой функции:
В следующем списке содержатся ссылки на страницы расширений в Java SE 7.
Swing
IO and New IO
Networking
Security
Concurrency Utilities
Rich Internet Applications(RIA)/Deployment
Requesting and Customizing Applet Decoration in Dragg able Applets
Embedding JNLP File in Applet Tag
Deploying without Codebase
Handling Applet Initialization Status with Event Handlers
Java 2D
Java XML – JAXP, JAXB, and JAX-WS
Internationalization
java.lang Package
Multithreaded Custom Class Loaders in Java SE 7
Java Programming Language
Binary Literals
Strings in switch Statements
The try-with-resources Statement
Catching Multiple Exception Types and Rethrowing Exceptions with Improved Type Checking
Underscores in Numeric Literals
Type Inference for Generic Instance Creation
Improved Compiler Warnings and Errors When Using Non-Reifiable Formal Parameters with Varargs Methods
Java Virtual Machine(JVM)
Java Virtual Machine Support for Non-Java Languages
Garbage-First Collector
Java HotSpot Virtual Machine Performance Enhancements
JDBC
Ответы:
Функции и улучшения Java SE 7 из JDK 7 Release Notes
Это сводка новых возможностей Java 7 со страницы возможностей OpenJDK 7 :
Примеры кода для новых функций в Java 1.7
Заявление "Попробуйте с ресурсами"
этот:
BufferedReader br = new BufferedReader(new FileReader(path)); try { return br.readLine(); } finally { br.close(); }
становится:
try (BufferedReader br = new BufferedReader(new FileReader(path)) { return br.readLine(); }
Вы можете объявить закрытие нескольких ресурсов:
try ( InputStream in = new FileInputStream(src); OutputStream out = new FileOutputStream(dest)) { // code }
Подчеркивание в числовых литералах
int one_million = 1_000_000;
Струны в переключателе
String s = ... switch(s) { case "quux": processQuux(s); // fall-through case "foo": case "bar": processFooOrBar(s); break; case "baz": processBaz(s); // fall-through default: processDefault(s); break; }
Двоичные литералы
int binary = 0b1001_1001;
Улучшенный вывод типов для создания универсального экземпляра
Map<String, List<String>> anagrams = new HashMap<String, List<String>>();
становится:
Map<String, List<String>> anagrams = new HashMap<>();
Множественный перехват исключений
этот:
} catch (FirstException ex) { logger.error(ex); throw ex; } catch (SecondException ex) { logger.error(ex); throw ex; }
становится:
} catch (FirstException | SecondException ex) { logger.error(ex); throw ex; }
SafeVarargs
этот:
@SuppressWarnings({"unchecked", "varargs"}) public static void printAll(List<String>... lists){ for(List<String> list : lists){ System.out.println(list); } }
становится:
@SafeVarargs public static void printAll(List<String>... lists){ for(List<String> list : lists){ System.out.println(list); } }
источник
Objects
класс со статическими методами, чтобы избежать необходимости проверять нулевые ссылки. Пример:if (obj != null && obj.equals(anotherObj))
становитсяif (Objects.equals(obj, anotherObj))
Новая функция Java Standard Edition (JSE 7)
Украсьте компоненты классом JLayer:
Класс JLayer - это гибкий и мощный декоратор для компонентов Swing. Класс JLayer в Java SE 7 по духу похож на проект проекта JxLayer на java.net. Класс JLayer изначально был основан на проекте JXLayer, но его API развивался отдельно.
Строки в операторе switch :
В JDK 7 мы можем использовать объект String в выражении оператора switch. Компилятор Java обычно генерирует более эффективный байт-код из операторов switch, которые используют объекты String, чем из связанных операторов if-then-else.
Вывод типа для универсального экземпляра:
Мы можем заменить аргументы типа, необходимые для вызова конструктора универсального класса, пустым набором параметров типа (<>), если компилятор может вывести аргументы типа из контекста. Эта пара угловых скобок неофициально называется ромбом. Java SE 7 поддерживает вывод ограниченного типа для создания универсального экземпляра; вы можете использовать вывод типа, только если параметризованный тип конструктора очевиден из контекста. Например, следующий пример не компилируется:
List<String> l = new ArrayList<>(); l.add("A"); l.addAll(new ArrayList<>());
Для сравнения компилируется следующий пример:
List<? extends String> list2 = new ArrayList<>(); l.addAll(list2);
Перехват нескольких типов исключений и повторное отображение исключений с улучшенной проверкой типов:
В Java SE 7 и более поздних версиях один блок catch может обрабатывать более одного типа исключений. Эта функция может уменьшить дублирование кода. Рассмотрим следующий код, который содержит повторяющийся код в каждом из блоков catch:
catch (IOException e) { logger.log(e); throw e; } catch (SQLException e) { logger.log(e); throw e; }
В версиях, предшествующих Java SE 7, сложно создать общий метод для устранения дублированного кода, поскольку переменная e имеет разные типы. В следующем примере, который действителен в Java SE 7 и новее, дублированный код устраняется:
catch (IOException|SQLException e) { logger.log(e); throw e; }
Предложение catch определяет типы исключений, которые может обрабатывать блок, и каждый тип исключения отделяется вертикальной чертой (|).
Пакет java.nio.file
Этот
java.nio.file
пакет и связанный с ним пакет java.nio.file.attribute обеспечивают всестороннюю поддержку файлового ввода-вывода и доступа к файловой системе. Поставщик файловой системы zip также доступен в JDK 7.Источник: http://ohmjavaclasses.blogspot.com/
источник
Улучшения языка программирования Java @ Java7
Официальная ссылка
Официальная ссылка со ссылкой на java8
wiki
источник
Simple, Object-Oriented, Portable, Platform independent, Secured...
В дополнение к тому, что сказал Джон Скит, вот обзор проекта Java 7 . Он включает в себя список и описание функций.
Примечание. JDK 7 был выпущен 28 июля 2011 г., поэтому теперь вам следует перейти на официальный сайт java SE .
источник
Изменения языка :
-Project Coin (small changes) -switch on Strings -try-with-resources -diamond operator
Изменения библиотеки :
-new abstracted file-system API (NIO.2) (with support for virtual filesystems) -improved concurrency libraries -elliptic curve encryption -more incremental upgrades
Изменения платформы :
-support for dynamic languages
Ниже приведена ссылка, объясняющая недавно добавленные функции JAVA 7, объяснение кристально ясное с возможными небольшими примерами для каждой функции:
http://radar.oreilly.com/2011/09/java7-features.html
источник
Map<String, List<Trade>> trades = new TreeMap <> ();
String status= “something”; switch(statue){ case1: case2: default: }
int val 12_15; длинный phoneNo = 01917_999_720L;
catch(IOException | NullPointerException ex){ ex.printStackTrace(); }
try(FileOutputStream fos = new FileOutputStream("movies.txt"); DataOutputStream dos = new DataOutputStream(fos)) { dos.writeUTF("Java 7 Block Buster"); } catch(IOException e) { // log the exception }
источник
Я думаю, что ForkJoinPool и связанное с ним усовершенствование Executor Framework являются важным дополнением в Java 7.
источник
В следующем списке содержатся ссылки на страницы расширений в Java SE 7.
Swing IO and New IO Networking Security Concurrency Utilities Rich Internet Applications (RIA)/Deployment Requesting and Customizing Applet Decoration in Dragg able Applets Embedding JNLP File in Applet Tag Deploying without Codebase Handling Applet Initialization Status with Event Handlers Java 2D Java XML – JAXP, JAXB, and JAX-WS Internationalization java.lang Package Multithreaded Custom Class Loaders in Java SE 7 Java Programming Language Binary Literals Strings in switch Statements The try-with-resources Statement Catching Multiple Exception Types and Rethrowing Exceptions with Improved Type Checking Underscores in Numeric Literals Type Inference for Generic Instance Creation Improved Compiler Warnings and Errors When Using Non-Reifiable Formal Parameters with Varargs Methods Java Virtual Machine (JVM) Java Virtual Machine Support for Non-Java Languages Garbage-First Collector Java HotSpot Virtual Machine Performance Enhancements JDBC
Ссылка 1 Ссылка 2
источник