1 - Было бы неплохо использовать NiO2 от снимка JDK7? С какими проблемами я могу столкнуться?
Для студента/исследовательского проекта я не вижу каких-либо серьезных проблем, кроме общих из них, как:
- новых API-интерфейсов может еще быть в состоянии потока, и могут изменения без уведомление,
- у вас больше шансов столкнуться с JDK/JRE/JVM ошибки и
- люди, которые хотят попробовать ваш проект должен использовать JDK 7.
Для проекта, который должен быть выпущен до выпуск JDK 7, вы, вероятно, должны быть более осторожны.
2 - Если я скомпилирую свой код, который использует классы JDK6 и JDK7, можно ли скомпилировать его с помощью JDK7?
Вы не можете быть уверены, пока не попробуете, но я был бы очень удивлен, если бы ответ был чем-то иным, чем «да». Команда Java прекрасно понимает необходимость поддерживать обратную совместимость.
(Однако вряд ли вы сможете скомпилировать с помощью JDK 6 ... если только они не решат, что технически возможно и целесообразно предоставить backport для функции JDK 6. Для чего-то вроде NIO2, это может быть «нет» по обоим показателям.)