Цель написания этой статьи состоит в том, чтобы суммировать некоторые из моих опытов в использовании Java на протяжении многих лет, в основном связанных с некоторыми основными знаниями Java, поэтому я также надеюсь поделиться ею с программистами Java, которые только начали, и потенциальными новичками, которые намерены войти в индустрию развития Java. Я надеюсь дать вам некоторый опыт и позволить вам учиться и лучше использовать Java.
Основным содержанием этого введения является связанная с J2SE часть. Кроме того, в будущем мы представим некоторый контент, связанный с J2EE, связанный с каждой рамками в Java.
После стольких лет разработки Java и в сочетании с некоторым опытом интервьюирования разработчиков Java, я думаю, главное для J2SE - это овладеть следующим контентом.
1. Связанный с JVM (включая функции каждой версии)
Для тех, кто только участвует в Java, знания, связанные с JVM, не обязательно должны быть глубоко изучены, поэтому вы можете иметь простое понимание концепций в нем. Тем не менее, для старшего разработчика с более чем 3 -летним опытом Java, он почти недопустимо не знать JVM.
В качестве основы для операции на Java трудно поверить, что люди, которые вообще не знают JVM, могут полностью понять язык Java. Когда я брал интервью у разработчиков с более чем 3-летним опытом Java, JVM был почти обязательным вопросом. Конечно, JVM - не единственный вопрос интервью, который определяет качество технических возможностей, но может доказать уровень возможностей развития Java.
В категории JVM я думаю, что знания, которые необходимо освоить:
Модель и структура памяти JVM
Принцип GC, настройка производительности
Настройка: дамп потока, анализ структуры памяти
Класс двоичная структура байт -кодов, система загрузки класса, процесс загрузки класса, процесс создания экземпляра
Метод процесс выполнения
Новые функции, предоставленные различными основными обновлениями версий Java (требует простого понимания)
2. Работа Java (основные предметы первой необходимости)
Это может быть очень просто увидеть. Кто не может запустить программу Java? Но много раз мы просто выполняем программы Java через IDE. Как базовая IDE выполняет программы Java? Многие люди не понимают.
Эта точка знания является самой основной вещью, которую разработчики Java должны освоить. Когда вы начинающие, первое, что научит вас, как выполнять Java -программы в командной строке, но многие забывают об этом, как только они закончили изучение Java и используют IDE. Почему вы подчеркиваете это? После того, как вы узнаете самый чистый способ запуска Java, вы можете проанализировать количество каталогов, начатых в то время, как выполнить именование, какие параметры, независимо от того, есть ли какие -либо отсутствующие и т. Д. Когда возникают проблемы со стартапом. Это поможет вам решить странные возможные проблемы, связанные с окружающей средой в реальном развитии.
Знание, которые вам нужно освоить здесь:
Javac собирает файл Java в качестве файла класса
Использование команд Java, как начать класс Java с пакетом в командной строке
Различные пути, связанные с программой Java (ClassPath, Java.Library.Path, Home Directory, где работает Java и т. Д.)
3. Тип данных
В этой статье нечего сказать, это не что иное, как освоение основных типов и типов объектов в Java. Вы можете узнать больше о том, как JDK автоматически преобразуется, включая упаковку и распаковку и т. Д. Вы также должны обратить внимание, чтобы избежать суждения о равных типах после упаковки.
Основные моменты знания:
Основные типы: int, long, float, Double, Boolean ,. Полем Полем
Соответствующие типы объектов: целое число и другие типы в основные типы преобразование, упаковка и распаковка
Тип объекта: equals, Hashcode
Функции типа строки
4. Объекты и экземпляры, создание объекта
В связи с этим разработчики должны понимать понятия класса и экземпляра и различия между ними, что является основой для объектно-ориентированных особенностей Java. Основные моменты знания:
Концепции класса и экземпляра
Процесс создания экземпляра:
1. Нет наследования: распределить пространство памяти, инициализировать переменные и конструкторы вызова
2. Наследование: обрабатывает статические действия, выделяет пространство памяти, определяет переменные как начальные значения, обрабатывает инициализацию в определении и выполняет конструктор
Указывание:
Статические свойства и т. Д. Инициализируются из базовых классов-> подклассов
Особенности, связанные с методом строительства без параметра по умолчанию
5. Контроль доступа
Это также основа для функций инкапсуляции Java, и то, что нужно освоить:
Эффект изменения общественного защищенного по умолчанию частного для класса, метода и поля
6. управление процессом
Основы управления процессом Java, хотя некоторые синтаксисы не обязательно используются, их нужно понимать и использовать в нужных местах.
Что нужно освоить:
Синтаксис для управления процессом, например, если, переключение, петля, для, в то время как
7. Концепция объектно-ориентированного программирования
Это основная концепция Java, которая должна быть освоена любым разработчиком Java. Многие функции или знания в Java связаны с концепцией объектно-ориентированного программирования в Java. Насколько я понимаю, хороший разработчик не только должен понимать эти функции (точки знаний), но и нужно знать, как эти объекты отражаются в концепции объектно-ориентированного программирования на Java, что более благоприятно для разработчиков, чтобы овладеть языком развития Java и других объектно-ориентированных языков программирования. Я просто кратко перечислил здесь, и основные моменты знаний включают:
Три основные объектно-ориентированные особенности: инкапсуляция, наследование и полиморфизм; Их соответствующие концепции определения, каковы их характеристики и соответствующие сценарии использования
Концепция статического многофункционального и динамического отдельного распределения
Концепция и использование перегрузки
Наследование: реализации нескольких интерфейсов, наследство с одним базовым классом
Аннотация, абстрактный класс, интерфейс
Полиморфизм: концепция и использование охвата метода
Интерфейс обратный вызов
8. Статический
Статические атрибуты также часто используются в ежедневном развитии Java. Вы должны понимать использование, связанное со статическими ключевыми словами, а также использовать их в сочетании с другими ключевыми словами, например, можно ли их использовать в сочетании с такими ключевыми словами, как абстрактный и окончательный.
Основные вещи, которые нужно освоить:
Определение статических свойств, использования и того, как инициализировать класс при загрузке
Определение и использование статических методов
Определение и использование статических классов
Определение и сроки инициализации статических кодовых блоков
9. Основные знания знаний
Здесь мы в основном перечисляем некоторые разбросанные знания Java, которые не классифицируются систематически. Это также много используется в повседневном развитии. В этой области на самом деле много контента. В настоящее время я только суммировал их на какое -то время:
Включая:
equals, hashcode, string/stringbuffer, final, наконец, завершить
10. Сборка коллекции
Это часть, которая нуждается в большем мастерстве. Можно сказать, что нет необходимости в каркасе сбора без использования их. Это очень важно. Тем не менее, знания здесь не сложны, но лучше всего понять метод внутренней реализации для коллекций, потому что это поможет вам выбрать соответствующую структуру в разных сценариях для решения проблемы. Например, если у вас есть набор из 10 000 элементов, вам часто нужно выполнять операции. Если вы знаете характеристики коллекции или внутренней реализации, легко сделать правильный выбор.
Здесь включено следующее содержание (корреляция параллелизма не включена):
Система сбора сбора: базовая коллекция, карта
Содержание конкретных реализаций наборов, списка, набора, специфических реализаций карты, внутренних структур, специальных методов, применимых сценариев и т. Д.
Использование коллекций и т. Д.
11. Из исключения структура
Исключения не могут быть восприняты так серьезно в развитии Java. Как правило, при столкновении с исключениями они будут брошены напрямую или просто поймают их и обрабатывают их, и не окажут какого -либо серьезного влияния на общую работу программы. Однако в дизайне и разработке на уровне предприятия дизайн и обращение с аномалиями часто связаны с общей надежностью системы. Для разработчиков обработка исключений в хорошей системе должна быть объединена и избегать большого количества исключений, разбросанных везде; Для систем исключения должны быть управляемыми и простыми в эксплуатации и обслуживании. После появления некоторых исключений должен быть способ справиться с ними и знать, как работать и поддерживать. Следовательно, хотя структура исключений очень проста, для всей разработки приложений на уровне предприятия очень важна. Чтобы хорошо справиться с исключениями, вам нужно понять систему исключений в Java.
В основном в этой части не так много знаний, которые в основном: в основном:
Аномальная система:
Бросается
Исключение
Runtimeexception
Ошибка
Разница между Runtimeexception и общим исключением, конкретными методами обработки и т. Д.
12. Ява io
IO не только прост в Java, чтобы читать и записать файлы, но также включает в себя все операции ввода и вывода, такие как чтение и написание сетей сокетов. Например, чтение содержимого поста в стандартных HTTP -запросах также является выходным процессом и т. Д.
Для IO Java не только предоставляет API-интерфейсы, связанные с вводом и выводами, но также предоставляет некоторые упрощенные API-интерфейсы считывателя и писателя операции, которые также очень важны в некоторых разработках (проекты, включающие большое количество операций ввода-вывода). Он также будет включать (журналы, чтение и написание временных файлов и т. Д.) В повседневную разработку.
Основные знания здесь:
Основная система ввода -вывода: включая inputstream, outputstream, читатель/писатель, чтение файла, различное чтение потока и т. Д.
Концепция NIO, конкретные методы использования и сценарии использования
13. многопоточная параллелизм
Многопользовательская четка является относительно сложной частью Java. Если многопоточное использование используется должным образом, он может эффективно улучшить частоту использования процессора и повысить общую эффективность системы, особенно когда есть большое количество блокировки операций ввода-вывода; Но это также обоюдоострый меч. Если он не используется хорошо, система не только не будет значительно улучшена или не улучшится, но также будет создавать такие проблемы, как отладка между несколькими потоками.
Есть много содержимого в многопользовании. Я просто кратко объясняю точки знаний, которые должны быть освоены на Java в первоначальном использовании многопоточного чтения. В будущем, если у вас будет возможность внедрить некоторые расширенные функции в деталях, у вас будет подробное введение в сценарии использования некоторых расширенных функций.
Многопоточная реализация и стартап
Разница между вызовом и пробежком
синхронизированный, соответствующие особенности и сравнения Reentrantlock
БИЛЕР НИДЕЙ
Получить результаты исполнения асинхронно
одновременный пакет
замок
..
14. Сеть
Java также предоставляет API, которые могут непосредственно эксплуатировать протокол TCP и протокол UDP. Когда необходимо подчеркнуть производительность сети, связь может быть напрямую использоваться с TCP/UDP. Вы можете увидеть использование этих связанных API при просмотре исходного кода Tomcat и других. Однако, как правило, TCP редко используется напрямую, и для обработки используются такие рамки, как Mina и Netty. Поскольку в этой области не так много развития, я не буду их подробно перечислять.
15. Обработка времени и даты
Почти для каждого приложения нельзя избежать обработки времени и даты, но использование связанных с временем API до JDK8 не будет дружелюбным. В эту эпоху можно выбрать временные рамки, такие как Джода. После выпуска JDK8 новый API Time в основном интегрирует преимущества других рамок и может использоваться напрямую.
Для разработчиков Java они должны быть опытными в использовании API для борьбы со временем и датами.
Конкретные моменты знаний больше не будут перечислены. В будущем я напишу специальную статью, чтобы суммировать использование времени и даты API в JDK8.
16.xml РАБОР/JSON SAINING
Фактически, ни одно из этих двух содержимого не является содержанием в J2SE, но в повседневной разработке взаимодействие с другими программами и файлами конфигурации все более неотделимо от анализа этих двух форматов.
Тем не менее, для разработчика возможность понять некоторые принципы и методы конкретного анализа XML/JSON поможет вам лучше выбрать правильный путь для вас в каждом конкретном сценарии, чтобы сделать вашу программу более эффективной и надежной.
XML: вам нужно понять основные принципы анализа DOM и анализа Sax, а также их соответствующие сценарии
JSON: Вы должны понять использование некоторых часто используемых фреймворков JSON, таких как Джексон, Фастджсон, GSON и т. Д.
17. Использование Maven
Maven не является содержанием в Java, но Maven революционерский и приносит большое удобство для разработки Java. От введения и управления зависимостями, обновлений и выпусков процессов разработки и даже обновлений версий, использование Maven может значительно упростить сложность в процессе разработки, тем самым экономит много времени. Можно сказать, что Maven стал стандартной конфигурацией для разработчиков Java. Поэтому я также считаю Мавен основной точкой знания для разработчика Java. Я добавлю кое -что из своего опыта и навыков в использовании Maven в будущем, поэтому я не буду вдаваться в подробности здесь.
18. дженерики
Это новая концепция, представленная JDK5. Это на самом деле синтаксический сахар. При написании кода Java будет немного удобно. Как правило, для разработки приложений или бизнеса их нужно просто использовать, и это не обязательно может использоваться для определения генериков. Тем не менее, будут использованы некоторые основные публичные компоненты. Вы можете поближе взглянуть на эту часть, когда это необходимо. Как правило, это можно использовать просто.
19. Маркировка
Это также было введено после JDK5. Spring - отличная структура, и она началась с XML в качестве стандартного файла конфигурации. Однако после Spring3, особенно после подъема Spring Boot, все чаще рекомендуется использовать аннотации для упрощения файла конфигурации XML. Для разработчиков это может сэкономить много времени на конфигурации XML. Тем не менее, недостаток заключается в том, что аннотация разбросана в различных классах. В отличие от XML, он может иметь глобальное понимание и управление всеми конфигурациями, поэтому нет способа полностью заменить все XML. Для обычных разработчиков вы можете просто использовать аннотации. Некоторым разработчикам с публичными компонентами могут потребоваться понимание определения и реализации аннотаций, и вы можете поближе познакомиться, когда они вам нужны.
20.rmi
Remotemethodinvocation - это интерфейс удаленного вызова, уникальный для языка Java, и он относительно прост и удобен в использовании. Однако при перекрестных ситуациях для его поддержки необходимы другие методы, такие как веб-сервис. Вообще говоря, программы не должны использовать RMI, но их можно использовать в определенных ситуациях. Я нахожусь в проекте, используя RMI для управления удаленным началом и остановкой программы.
21.jni
Нативный интерфейс Java позволяет вызывать локальные методы интерфейса в Java, которая обычно используется для вызова кода C/C ++. Следует отметить, что проблема пути загрузки файла SO/DLL в Java не сложно вызвать сам интерфейс, но часто требуется много времени, чтобы загрузить необходимую локальную библиотеку интерфейса.
Выше приведено только краткое введение в мои взгляды и представления на этих основных знаниях Java и технических точках. Все это содержимое получено из некоторого краткого изложения моего использования Java на протяжении многих лет. Я надеюсь дать некоторый опыт тем, кто только что подвергся Java или намерен развиваться с Java. Я надеюсь более эффективно учиться и использовать Java и избегать тратить ценное время. В этом все еще есть неполный контент, и они будут добавлены через будущие статьи. Из -за ограниченных личных способностей, конечно, будут некоторые ошибки и упущения. Добро пожаловать, чтобы исправить меня, обсудить вместе и улучшить эту статью вместе, надеясь, что она действительно сможет помочь нуждающимся людям.
Приведенное выше резюме баллов знаний Java - некоторые предложения для начинающих Java (должны читать для начинающих) - все это контент, которым я делюсь с вами. Я надеюсь, что вы можете дать вам ссылку, и я надеюсь, что вы сможете поддержать Wulin.com больше.