//in Swift 3
//subtract 3 hours
let calendar = NSCalendar.autoupdatingCurrent
newDate = calendar.date(byAdding:.hour, value: -3, to: originalDate)
Если вы новичок в Java (или программировании), важно научиться читать и понимать документацию, чтобы стать самостоятельным надежный - это первый шаг к тому, чтобы стать менее зависимым от других людей, и в большинстве случаев он улучшит вашу скорость обучения и программирования.
Ниже приведены некоторые советы и предложения:
Ознакомьтесь со спецификацией Java API Specification .
Поначалу формат Javadoc в спецификации API казался немного слабым без каких-либо возможностей поиска, но я обнаружил, что возможность просматривать документацию в браузере является очень мощным инструментом.
Поскольку документы Javadoc - это просто файлы HTML, их можно легко просматривать и перемещать в браузере, а также легко добавлять страницы в закладки.Кроме того, Спецификация API доступна для загрузки , поэтому нет необходимости всегда заходить в Интернет для получения информации.
Поскольку документация представляет собой просто веб-страницы, с помощью функции «Найти» в браузере можно быстро найти информацию на странице, а если это не удается, использовать Google или вашу любимую поисковую систему для поиска документации очень быстро и легко.
Google (или ваша любимая поисковая система) - ваш друг.
Нужна информация о классе StringBuilder
? Попробуйте выполнить следующий запрос:
Первым результатом будет страница спецификации Java API для класса StringBuilder
. Совет состоит в том, чтобы добавить строку « java 6
» в конце запроса, и это, кажется, выводит спецификацию API на первое место в большинстве случаев.
Ознакомьтесь со структурой Спецификации API.
Структура представления инструмента Javadoc очень удобна и логична:
+-----------+-------------------+
| | |
| Packages | |
| | |
+-----------+ Details |
| | |
| Classes | |
| | |
+-----------+-------------------+
Javadoc разделен на три фрейма.
Обычно поиск класса начинается с выбора пакета в верхнем левом кадре, затем поиска класса в нижнем левом кадре и, наконец, просмотра деталей в правом кадре. Идея такова:
Package -> Class -> Details
Детали в правом фрейме для классов и пакетов также очень структурированы.Для классов структура следующая:
Когда я ищу информацию о методе, я прокручиваю вниз до «Сводки по методам», нахожу метод, который мне нужен, и щелкаю имя этого метода, после чего я перехожу к сведениям о методе.
Кроме того, все о классе задокументировано на одной странице - может показаться, что это слишком много информации для одной страницы, но это позволяет легко получить всю необходимую информацию о классе из одного места. В других форматах документации может потребоваться переключение между несколькими страницами, чтобы получить информацию о нескольких методах в одном классе. В формате Javadoc все на одной странице.
Изучите API платформы Java
Следующим шагом будет изучение важных пакетов API платформы Java. Это поможет быстро найти классы из огромной коллекции классов в API платформы.
Не волнуйтесь, не торопитесь - вам не нужно изучать все сразу!
Вот некоторые интересные пакеты:
java.lang
- Содержит такие классы, как String
, System
, Integer
и другие, которые автоматически импортируются в каждую программу Java.
Java.util
- содержит коллекции Java (например, List
, Set
, Map
и их реализации), Date
, Случайные
и другие утилитарные классы. Вероятно, это первый пакет, к которому нужно обратиться, чтобы найти классы, которые будут полезны при выполнении общих операций.
java.io
-Классы, относящиеся к вводу и выводу, такие как File
, Reader
s и Writer
s, а также различные Stream
s.
java.awt
и javax.swing
- Для графических пользовательских интерфейсов Java использует Abstract Window Toolkit или Swing, и эти два пакета используются для работы с графическими интерфейсами в Java.
Знание, где находятся классы, и понимание того, где искать в огромном количестве документации, облегчит поиск информации. Вероятно, потребуется некоторое время, чтобы привыкнуть к этому, но как только вы освоитесь, это должно быть намного проще, и вы сможете найти информацию самостоятельно.
Удачи!
Это зависит от того, что вы имеете в виду. Например, если вы хотите узнать местоположение конкретного класса, такого как «Где снова был BufferedReader?», Я выполняю поиск в Google по:
site:java.sun.com BufferedReader
. Если вы хотите узнать, как выполнить задачу, например, «Как я могу прочитать пароли из терминал без эха? " (java.io.Console), иногда в первый раз можно понять, только спросив совета.
В большинстве случаев, если он находится в ядре языка (это не сторонняя библиотека), я использую следующую ссылку:
http://java.sun.com /javase/6/docs/api/allclasses-frame.html
, который перечисляет все классы в Java SE.
Чтобы узнать, может ли класс работать или нет, я пытаюсь нажать Ctrl-F и угадать, какой класс будет
Со временем, когда вы привыкнете к существующим классам, поиск станет проще.
Например, допустим, вы хотите использовать массив:
Ctrl + F Array дает :
Array
Array
ArrayBlockingQueue
ArrayDeque
ArrayIndexOutOfBoundsException
ArrayList
Arrays
ArrayStoreException
ArrayType
ArrayType
Я нажимаю на каждую и просматриваю документацию. Некоторые из них не имеют смысла, некоторые из них как раз то, что мне нужно.
Иногда это может работать не очень просто. Давайте рассмотрим, как создать окно:
Ctrl + F не показывает JFrame, который является правильным ответом,
Я бы порекомендовал такую книгу, как Java In A Nutshell , которая является отличным справочником по Java SE API (обратите внимание, что она охватывает только Java 5, но это должно быть Подходит для большинства нужд)
Учебники по Java, http://java.sun.com/docs/books/tutorial/ , и Java API, http: // java .sun.com / javase / 6 / docs / api / - важные ресурсы, чтобы узнать, как что-то делать и с какими классами.
Мне нравится использовать DocJar .
Есть даже плагин для eclipse, но я еще не пробовал его.
http://eclipse-plugins.2y.net/eclipse/plugin_details.jsp?id=959
Я согласен с тем, что учебники хороши, а поисковые системы в целом великолепны (но теперь все они возвращают вас к SO). Помимо форумов, нельзя пропустить еще один ресурс - это программисты вокруг вас. Если вы являетесь частью команды разработчиков или участвуете в классе, вы можете получить нужные ответы или совместно работать над поиском. Человеку часто легче помочь вам, если вы не совсем уверены, что понимаете, что ищете.