En tant que programmeur, vous utiliserez presque tous les jours les fameuses bibliothèques tierces Java sur GitHub, telles que Apache Commons, Spring, Hibernate, etc. En plus de celles-ci, vous pouvez également utiliser fork ou Star d'autres bibliothèques open source, mais il y a tellement de bibliothèques sur GitHub qu'il est difficile pour un individu d'avoir le temps de découvrir et de comprendre ces nouvelles bibliothèques. sont constamment ajoutés et peuvent souvent vous aider dans certains domaines émergents.
J'utilise JAVA pour écrire des applications back-end, et je suis habituellement les blogs de certains experts en technologie étrangers (des blogs technologiques tels que Tapki, DZone, Google Developer, etc.), et j'ai ainsi remarqué quelques des nouvelles et intéressantesBibliothèques open source Java, certaines d'entre elles peuvent aider vos projets, certaines se présentent sous forme de jeux pour vous aider à améliorer votre niveau de programmation Java, et d'autres peuvent vous aider identifier les programmes JAVA FAQ dans . Parmi les 330 000 bibliothèques open source JAVA, j'ai rassemblé les bibliothèques open source Java suivantes qui valent peut-être la peine d'être essayées.
Strmen-java est un outil de traitement de chaînes que vous pouvez introduire dans le projet via maven. En plus des méthodes de traitement de chaînes propres à Java, nous pouvons également utiliser les StringUtils dans Apache Common Langs pour simplifier les opérations sur les chaînes. Cependant, les deux méthodes ci-dessus sont encore quelque peu insuffisantes pour le traitement des chaînes, ce qui est le plus susceptible d'être rencontré dans notre programmation quotidienne. Strmen-java nous fournit une solution très complète et puissante, capable de résoudre presque tous les scénarios de traitement de chaînes.
Voici quelques exemples d'utilisation courante de Strman-java :
Épisser des chaînes
import static strman.Strman.append append("f", "o", "o", "b", "a", "r") // result => "foobar"
Obtenir des caractères à une certaine position
import static strman.Strman.at at("foobar", 0) // result => Optional("f")
Obtenez le contenu contenu dans deux caractères précis
import static strman.Strman.between between("[abc][def]", "[", "]")
Encodage Base64
import static strman.Strman.base64Encode base64Encode("strman") // result => "c3RybWFu"
Quand il s'agit de Big Data, ce que nous pensez à C'est toujours Hodoop plus le déploiement de cluster, mais existe-t-il un moyen plus petit qui nous permet d'implémenter facilement les fonctions du big data sur une seule machine ? Tablesaw nous fournit une solution Big Data hautes performances basée sur la mémoire. Vous pouvez utiliser son API pour importer facilement des données depuis un SGBDR ou CSV, puis utiliser les interfaces fournies par Tablesaw pour trier, filtrer, regrouper, mapper/réduire et d'autres opérations sur les données.
Selon les instructions données dans le document, vous pourrez charger un fichier de données de 500 000 000 de lignes (4 champs par ligne) dans 10 Go de mémoire en 22 secondes. La vitesse de requête n'est que de 1 à 2 ms.
Dex est une solution de visualisation de données qui prend en charge plus de 50 types de vues différents, notamment des cartes du monde, des chronologies, des graphiques 3D et bien plus encore. Dex est écrit en Java/JavaFX, et vous pourrez facilement l'intégrer à vos autres programmes (tels que les programmes d'analyse Big Data écrits en langage R) pour créer de superbes graphiques.
Lors du développement d'applications Web dans le passé, nous devions toujours d'abord créer une application Ensuite, emballez-le (war) et déployez-le sur un conteneur Web tel que Tomcat. Mais avec la popularité des microservices architecture , nous avons besoin d'un cadre de développement plus léger et sans conteneur. SpringBoot est ce que j'utilise, et Bootique est certainement un autre excellent choix. Il vous permet d'insérer des modules avec différentes fonctions pour prendre en charge des fonctions telles que le service REST, l'application Web, la planification planifiée, la migration de données, etc. Les programmes écrits à l'aide de celui-ci seront regroupés sous forme de fichier Jar et vous pourrez le démarrer de manière plus flexible via la ligne de commande.
À bien des égards, il est très similaire à SpringBoot, vous libérant de l'application Java du conteneur Web dont elle dépend. Les programmeurs peuvent avoir une plus grande autonomie pour écrire le programme principalmain(). fonction. Même si vous n'ajoutez aucun module supplémentaire, vous pouvez directement utiliser Bootqiue pour implémenter une application Java.
Gumshoe est un outil de détection de programme JAVA qui peut vous aider à suivre la charge et les performances de votre programme. Il peut vous aider à analyser l'utilisation des ressources en mesurant TCP, UDP, l'utilisation du processeur et d'autres informations. En même temps, il fournit également la fonction d'analyse de la pile d'appels dans les programmes Java, par exemple en fournissant le nombre et la fréquence des appels à un certain. méthode.
内存泄漏一直是令Java程序员苦恼的问题,因为在你开发阶段很难察觉内存泄漏问题,而一旦到了生产环境,则可能因为它而造成严重的后果。LeakCanary是一个内存泄漏检查工具,只需要像下面这样简单加入LeakCanary,它便能全程监控你的应用,并在出现内存泄漏时给你发出警告。LeakCanary同时支持Android和Java,下面是在Android应用中使用的例子。
public class ExampleApplication extends Application { @Override public void onCreate() { super.onCreate(); LeakCanary.install(this); } }
Awesome-java得到了7490个Star,作者将JAVA中那些最常用的第三方库按照分类整理成了一个列表。包含Ancients(古老,但常用的),Bean Mapping,Build,Bytecode Manipulation,Code Analysis,Command-line Argument Parsers,Configuration,Continuous Integration,CSV,Database等等,简直是一本jiava第三方库大全,如果你对项目中应该使用哪一个库不确定,或希望选择几个库来做比较,都可以到awesome-java上进行参考。
99-Problems是一个很有意思的GitHub项目,它对三种不同的语言Java 8,Scala和Haskell分别提出了99个问题,让你通过使用特定语言编程来提供一个最优的解决方案。
这些问题分为不同的难度等级,用*表示,一个星号表示在15分钟内解决,2个星号可能需要30-69分钟,而最难的3个星号,则需要更长时间(90分钟左右),如果你能在限定的时间内使用JAVA8的特性解决所有的问题,那说明你对JAVA8的掌握程度已经非常牢固了。如果你没办法解决所有问题也没关系,你可以查看作者提供的代码示例,这也是你学习JAVA8很好的途径。
Chronicle Map是一个基于内存的键值对存储方案。以其低延迟、高并发的特性著称,并在交易及金融系统中得到应用。另外,他还支持持久化到磁盘,以及多键值查询的功能。
下面是官方文档中一段对于从JAVA角度描述Chronicle Map的说明:
From Java perspective, ChronicleMap is a ConcurrentMap implementation which stores the entries off-heap, serializing/deserializing key and value objects to/from off-heap memory transparently. Chronicle Map supports
Key and value objects caching/reusing for making zero allocations (garbage) on queries.
Flyweight values for eliminating serialization/deserialization cost and allowing direct read/write access to off-heap memory.
ND4J是一个开源的数值计算扩展 ,它将 Python中著名的numpy库的很多特性带到了Java中。ND4J可以用来存储和处理大型多维矩阵。它的计算和处理速度很快,但占用的内存却很少,程序员们可以很容易地使用它来与其他JAVA或Scala库作接口。
ND4J主要包括了:一个强大的N维数组对象Array,比较成熟的函数库;实用的线性代数、傅里叶变换和随机数生成函数等。它可以与Hadoop或者Spark这样的工具整合使用。
Automon是一个非常灵活的JAVA监控工具,它结合了AOP(AspectJ)以及JDK和其他依赖库的功能特性,以声明方式去监控你的Java代码。它可以与JAMon,JavaSimon,Yammer Metrics,StatsD和像 perf4j,log4j,sl4j这样的logging库结合使用。
Automon最常被用于跟踪Java方法的调用时长,异常次数等信息,并在你选择的工具中显示监控结果。它并不自己进行任何监控动作,但却很好地扮演了“我应该监控什么”以及“我如何进行监控”这两者之间中间人的角色。而且它的安装也非常简单,只需要简单进行配置便可使用。
SJK (Java Swiss Army Knife) est un ensemble d'outils pour la surveillance, le débogage et le réglage de la JVM. Il s'agit d'un outil de ligne de commande, mais il est très pratique à utiliser. Vous pouvez l'utiliser pour interroger l'utilisation du processeur par les threads de la JVM, les informations en temps réel du GC et les options de réglage de base. Vous pouvez également le combiner avec MBean pour exporter toutes les informations dont vous avez besoin au format JSON.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!