1. Что такое FastJson
Во-первых, скопируйте введение с официального сайта: FastJson - это библиотека синтаксического анализа JSON с открытым исходным кодом Alibaba, которая может анализировать строки формата JSON, поддерживать сериализацию Java Bean в строку JSON, а также может десериализовать строку JSON в JavaBean.
FastJson - одна из библиотек классов, обычно используемых программистами на Java. Я верю, что тот, кто нажмет на эту страницу, обязательно станет другом программиста. Как следует из названия, «быстрый» является его основным пунктом продажи.
2. Это действительно быстро?
Без исследований нет права говорить. С первоначальным намерением «искать истину» давайте проведем простой раунд тестирования. Для сравнения выберите наиболее широко используемые Джексон и Гсон производства Google. Тестовая среда выбрала JDK 8, AMD 3700X, 3200MHZ памяти. Упростите эксперимент, протестируйте только строку «Строка в объект» и «Строка в объект» для простых и сложных объектов. Результаты сравнения при вызове 10 миллионов раз выглядят следующим образом (единица времени - миллисекунды):
Судя по результатам теста, FastJson действительно самый быстрый, но всего на 20% быстрее, чем Джексон, Gson от Google - самый медленный, разрыв больше. Прочитав это, вы считаете правильным выбрать FastJson! Если интервьюер спрашивает, почему стоит выбрать FastJson? Потому что быстро! Эта причина может оттолкнуть его назад.
Расследований и исследований здесь недостаточно, и нет проверки потребления памяти и больших документов.
В современных приложениях даже самый медленный Gson удовлетворяет потребности, скорость разбора документов - не единственный критерий выбора и, возможно, даже не главный критерий. Меры оптимизации, такие как оптимизация ввода-вывода и параллельная обработка, более эффективны, чем выбор более быстрой библиотеки.
3. FastJson не так популярен
Тем не менее, FastJson не так популярен, есть одна из самых интуитивных данных, то есть количество цитирований в Maven, и Джексон и Гсон не в одном порядке, и могущественное семейство Джексонов не может сравниться.
Я использую поддельную популярную домашнюю библиотеку? Я видел сообщение в Жиху, в котором обсуждается, почему иностранным друзьям не нравится FastJson. Таким образом, FastJson - это отечественная библиотека с низким качеством кода. Это полностью подорвало мое восприятие, потому что в моем проекте часто используется FastJson, и нет никаких ошибок, и этот комментарий был написан в 2016 году.
Со скептическим отношением откройте адрес FastJson и посмотрите упомянутые вами проблемы. Есть 1283 нерешенных проблем. Красная рамка отмечена, я возьму ее себе на учебу, потому что вижу, что некоторые люди задавали один и тот же вопрос.
Тестовый код выглядит следующим образом:
Конечно, после использования последней версии библиотеки классов, как описано в проблеме, все еще есть отклонения. Итак, я увидел следующий исходный код:
Этот код имеет серьезные логические ошибки, такие как неправильный формат, например:
«1970-01-01 00: 00: 00.000000000.000000000»
или
«1970-01-01 00: 00: 00.000000000.000000»
Также могут быть успешно преобразованы и некоторые правильные форматы, такие как:
«1970-01-01 00:00:00» «1970-01-01 00: 00: 00.000»
Но преобразование не удалось.
В сочетании с комментариями друзей из интернета, я также думаю, что FastJson не так хорош, другие глубокие обзоры, такие как ASM, не имеют глубокого понимания, и я не буду делать тест.
Четыре, заброшенная яма fastjson
В проекте, за который я отвечаю, потому что Джексон применяется в рамках Spring Boot, по принципу «наименьшей зависимости», Джексон применяется для анализа json. Но код многих коллег также использует Gson и Fastjson. Конечно, это результат не строгих требований.
Благодаря небольшому исследованию сегодня популярность Джексона имеет внутренние причины. В наших будущих проектах мы в основном продвигаем Джексона и постепенно ликвидируем Fastjson.
Последняя документация по сухим товарам технологии Java: [Завершение основных знаний о Java], охватывающая 29 основных технологий Java, JVM, Redis, Nginx, Spring Boot, Spring Cloud, Kafka, параллельное программирование, Tomcat, MyBatis, вопросы об интервью BAT, Java Техническая проработка видео и др. Вперед + следуй, добавь мне VX [tkzl6666], чтобы получить бесплатный способ получить его.
Овладев этими баллами знаний, вы можете получить много внимания среди кандидатов во время собеседования, критически набрав 9999 баллов. Возможности зарезервированы для тех, кто подготовлен, и только при достаточной подготовке можно выделиться среди кандидатов.