Зачем читать исходный код JDK
Конечно, не для притворства, ведь кому нечего ругать себя...
1,Не могу запустить интервью. Теперь, пока вы проводите собеседования на должности, связанные с Java, вы определенно будете в большей или меньшей степени затрагивать вопросы, связанные с исходным кодом JDK.
2,Не паникуйте, если вы понимаете принцип. Как пользователи JDK, хотя мы и говорим, что очень рады использовать его каждый день, но иногда нам все же приходится следить за базовым исходным кодом, чтобы увидеть, сталкиваемся ли мы с проблемами, чтобы помочь нам лучше понять принцип.
3.Изучайте хороший код, идеи и шаблоны. В конце концов, JDK — это отличная кодовая база. Мы используем ее каждый день, и в ней находится исходный код. Будучи начинающим программистом, чтение исходного кода также может позволить нам усваивать больше отличных идей и шаблонов.
4.Гипноз перед сном. Гм... но это работает (забавно).
Исходный код сложный?
Ерунда, конечно сложно, иначе я бы до сих пор не закончила, а я часто забываю, когда читаю, плачу...
В конце концов, исходный код, такой как JDK, отличается от нашей обычной практики рукописного написания небольших примеров и написания бизнес-кода.библиотека классов,дляпредставление,стабильность,общность,РасширяемостьУчитывая другие факторы, многиевспомогательный код,Дженерики, и немногоШаблоны проектированияУчитывая вышесказанное, это, конечно, не кажется таким уж простым,Не могу видеть сквозь это.
Так что это должно быть долгосрочным процессом, я лично предлагаю (включая себя), иногда сталкиваюсь с некоторыми проблемами, вы можете просмотреть исходный код некоторых компонентов или частей до конца, а затем сделать некоторые заметки, написать некоторые заметки и т. д., чтобы он мог постепенно проникать в большое количество контента.
Но у нас должно быть достаточно уверенности, я твердо верю, что все написали код, я не верю, что не могу его понять!
Как читать исходный код
1,Способ 1: Чтение по запросу. Если вы заинтересованы в компоненте, синтаксисе или функции, или если у вас есть какие-либо вопросы или сомнения, вы можете следить за базовым исходным кодом, чтобы просмотреть его по запросу.Это также более эффективный способ чтения, который может быстро укрепить доверие. .
2,Метод 2: систематическое чтение. Конкретное содержание чтения и рекомендации по порядку подробно описаны ниже.
3.множественная отладка: Если просто смотреть на это глазами, а потом мозгом отлаживать экран, то это все равно довольно сложно.Лучше использовать IDE для отладки вручную, и вы это узнаете в два шага.
4.Не просто читайте, не забудьте оставить что-то после прочтения. Я не думаю, что имеет значение, сколько вы читаете, важно то, сколько вы можете вывести.
Поэтому ниже мы собираемся создать среду чтения и отладки исходного кода Java.по прихоти,когда у тебя проблемы,В случае сомнений,скучающийВ любой момент вы можете открыть проект, чтобы посмотреть исходный код, сделать пометки и комментарии.
Создайте среду чтения и отладки исходного кода
Я лично считаю, что глядя на исходный код, мы должны завести отдельный Java-проект, поместить в него исходный код, а в него поместить тестовый код.Централизованная отладка,сосредоточиться на коде,Сосредоточьтесь на написании заметокболее удобный.
1. Создайте проект чтения исходного кода
Просто выберите наиболее распространенный базовый проект Java:
2. Создайте два каталога
Они есть:
-
source: Поместите исходный код JDK позже. -
test: Разместите тестовый код, в котором вы также можете создавать иерархические подкаталоги по мере необходимости.
3. Импортируйте исходный код JDK
Многие друзья спрашивалиГде исходный код JDK?
Далеко в небе, только перед тобой, на самом делеКаталог установки JDKможно найти ниже.
В каталоге установки JDK есть файл с именемsrc.zipСжатый пакет, это исходный код JDK!
Разархивируйте его и скопируйте в указанный выше проект.sourceкаталог, чтобы исходный код JDK был импортирован.
У некоторых друзей будут вопросы,Зачем импортировать копию исходного кода JDK в этот проект?На самом деле, главная причина заключается в том, чтобы облегчить нам чтение, отладку и создание заметок и комментариев в исходном коде.
Что касается того, как использовать этот исходный код JDK, далее будет объяснено следующее.
4. Отлаживайте и запускайте
мы можемtestВ директорию можно написать кусок тестового кода по желанию.
Например, здесь яHashMapНапример, вtestСоздайте подкаталог в каталогеhashmap, а затем создайте тестовый файл основной записи внутриTest.java, и поместите кусок тестового кода по желанию:
public static void main( String[] args ) {
Map<String,Double> hashMap = new HashMap<>();
hashMap.put( "k1", 0.1 );
hashMap.put( "k2", 0.2 );
hashMap.put( "k3", 0.3 );
hashMap.put( "k4", 0.4 );
for ( Map.Entry<String,Double> entry : hashMap.entrySet() ) {
System.out.println( entry.getKey() +":" + entry.getValue());
}
}
Затем приступайте к отладке.
Тем не менее, будет несколько проблем, которые необходимо решить одну за другой.
Вопрос 1: Сборка сообщает об ошибке при запуске отладки, указывающей на недостаточность системных ресурсов
Решение:увеличиватьBuild process heap size.
Метод настройки:Preferences --> Build,Execution,Deployment --> Compiler, по умолчанию будет700Увеличьте значение , например, я установил его как1700:
Вопрос 2. Я хочу выполнить пошаговую отладку из внешнего кода F7 в исходный код JDK, но не могу войти.
Это связано с тем, что при отладке исходный код JDK защищен, и обычно одноэтапная отладка не допускается, но ее можно настроить.
Решение::
Preferences --> Build,Execution,Deployment --> Debugger --> Stepping
Вопрос 3: Как аннотировать исходный код JDK?
После отладки в исходном коде JDK обнаруживается, что комментарии не могут быть сделаны.Каждый файл имеет небольшой значок замка.Это связано с тем, что связанный исходный код - это не исходный код, только что скопированный в наш проект, а каталог установки JDK.src.zipАрхив только для чтения.
Решение:Повторно свяжите путь исходного кода JDK с этим исходным кодом JDK в пути проекта.
Таким образом, мы можем успешно отлаживать и аннотировать исходный код JDK.
Структура исходного кода и порядок чтения
В конце концов, исходный код JDK слишком велик, и все нереально, мы все еще готовы откопать важный контент в соответствии с частотой ежедневного использования и осмотром интервью.
Если у вас нет специального плана, вы можете следовать предложенному порядку чтения, как показано ниже:
Конкретное содержание выглядит следующим образом:
1,java.lang
На самом деле это основной синтаксис Java, такой как различные основные типы упаковки (Integer,Long,Doubleд.), базовые классы (Object,Class,Enum,Exception,Thread)так далее...
2,java.lang.annotation
Содержит исходный код, относящийся к основным элементам аннотаций Java.
3.java.lang.reflect
Содержит код, связанный с основными элементами отражения Java.
4.java.util
Здесь собраны все основные инструменты Java, самые типичные и часто используемые — это различные контейнеры и коллекции (List,Map,Set)
5.java.util.concurrent
Знаменитый пакет JUC содержит код, связанный с параллелизмом Java и многопоточным программированием.
6.java.util.function +java.util.stream
Содержит общие интерфейсы и код для функционального программирования на Java.
7.java.io
Содержит исходный код, относящийся к традиционному вводу-выводу Java, в основном байтовый и потоковый ввод-вывод.
8,java.nio
Содержит исходный код, связанный с неблокирующим вводом-выводом Java, в основном ввод-вывод для буферов, каналов и селекторов.
9,java.time
Содержит код, связанный с новой датой и периодом Java, наиболее типичным из которых являетсяLocalDateTime,DateTimeFormatterЖдать
10.java.math
В основном содержит некоторые вспомогательные классы данных для высокоточных операций.
11.java.net
В основном включает сетевое взаимодействие Java (обычно такое, как:Socketсвязь) соответствующий исходный код.
взаимное поощрение
Посмотрите на исходный код, торопиться нельзя, быстрее быть медленнее! взаимное поощрение.