Java

Java是一门超高人气编程语言,拥有跨平台、面向对象、泛型编程等特性。在TIOBE编程语言排行榜中,连续夺得第一宝座,而且国内各大知名互联网公司,后端开发首选语言:非Java莫属。今天只是梳理下Java知识体系,后续会针对各类目有更详细的经验分享。

知识体系

JDK

  • Java8

    • Lambda 语句

    • 方法引用

    • 日期/时间处理API

    • 等等,不一一列举,详细的参考这些文档

    • URL: http://www.oracle.com/technetwork/cn/java/javase/documentation/index.html

    • 说明: Java8增加了很多新的重要特性,比如:

    • Java8特性(英文): http://www.tutorialspoint.com/java8/java8_overview.htm

    • Java8特性(中文): http://www.importnew.com/11908.html

IDE

  • IntelliJ IDEA: - URL: http://www.jetbrains.com/idea/ - 推荐指数: 5星 - 评价: JetBrains公司旗下有很多非常棒的IDE,例如PHP开发:PHPStorm,Python开发:Pycharm等,用了很多年的 Eclipse,后来发现IDEA,如获至宝,果断放弃了Eclipse,并在团队中分享,技术同学都切到IntelliJ IDEA,用过的都说好,具体咋好,自己去体验吧!

    • URL: http://www.eclipse.org/

    • 评价:最流行的Java开发IDE,国内很多团队使用MyEclipse,基于EclipseIDE的扩展,集成了很多插件,功能也很强大,非开源,收费。 MyEclipse的URL:http://www.myeclipsecn.com/

    • Eclipse

Web服务器

  • Apache

    • URL: https://projects.apache.org/project.html?httpd-http_server

    • 说明: 具有的跨平台性和安全性,广泛使用,最流行开源Web服务器。

  • Nginx

    • URL: http://www.nginx.org/

    • 说明: 轻量级Web服务器、反向代理服务器,Nginx相较于 Apache、lighttpd 具有占有内存少,稳定性高,并发能力强等优势,丰富的模块库以及友好灵活的配置而闻名。

  • Tomcat

    • URL: http://tomcat.apache.org/

    • 说明: Tomcat是应用(java)服务器,它只是一个servlet容器,是Apache的扩展。

  • Jetty

    • URL: http://www.eclipse.org/jetty/

    • 说明: Jetty 是一个开源的servlet容器,它为基于Java的web容器,例如JSP和servlet提供运行环境,相对于Tomcat,更轻量级,更灵活,扩展性好。

    • 备注: 关于tomcat 与 nginx,apache的区别,参见知乎上的一篇文章:https://www.zhihu.com/question/32212996

构建工具

  • Maven

    • URL: http://maven.apache.org/

  • Gradle

    • 推荐指数: 个人比较推荐Gradle,代码简洁,设置灵活,但也需要根据具体业务场景和技术架构评估。

    • URL: http://gradle.org/

    • gradle和maven区别参照知乎这篇文章:https://www.zhihu.com/question/29338218

  • Ant: 过时的东东,就不要用了。

框架

  • Spring Framework

    • URL: http://spring.io/

    • 推荐指数: 5星

    • 说明: 学Java不知道Spring,没用过Spring,那就太low了,DI、AOP、MVC、ORM这些概念自不必说,必须要学的,围绕着Spring的生态圈很全,各种组件基本都已经齐备,结合自己的业务,做些扩展就run!

    • Github上各种Spring组件代码:https://github.com/spring-projects

  • Play!

    • URL: https://www.playframework.com/

    • 说明: Play!是在设计时考虑了可伸缩性的 新一代反应式 Web 框架,Play 还带来了开发友好的特性,比如原生的 XML 和 JSON 处理,开发模式下的浏览器内错误报告,内置的测试帮助器,以及Selenium集成。

模版引擎

  • Thymeleaf

    • URL: http://www.thymeleaf.org/

    • 说明: 支持用XML/XHTML/HTML5写模版,用于Web与非Web环境中的应用开发。Spring Boot中推荐用Thymeleaf作为前端渲染模版引擎。

  • Velocity

    • URL: http://velocity.apache.org/

    • 说明: 一个基于java的模板引擎,它允许任何人使用简单但是强大的模板语言, 引用java代码中的对象。

数据访问

  • JPA

    • URL: http://projects.spring.io/spring-data-jpa/

    • 说明: JPA是基于Hibernate的作的扩展,提供了简单的编程模型,JPA定义了独特的JPQL,不写SQL文,就能进行简单的进行数据CRUD操作。

  • MyBatis

    • URL: http://mybatis.org/mybatis-3/

    • 说明: MyBatis的前身就是iBatis,是一个数据持久层(ORM)框架,简单易学,轻巧灵活,封装了绝大多数的JDBC样板代码,使得开发者只需关注SQL本身。

日志

  • Logback

    • URL: http://logback.qos.ch/

    • 说明: Logback是log4j的升级版本,通常会和SLF4J配合使用。

  • SLF4J

    • URL: http://www.slf4j.org/

    • 说 明: SLF4J是一个用于日志系统的简单Facade,允许最终用户在部署其应用时使用其所希望的日志系统,SLF4J提供了统一的记录日志的接口,只要按照 其提供的方法记录即可,最终日志的格式、记录级别、输出方式等通过具体日志系统的配置来实现,因此可以在应用中灵活切换日志系统。

单元测试

  • JUnit

    • URL: http://junit.org/junit4/

    • 说明: 没啥好介绍的,老牌的Java代码自动话测试工具。

  • testNG

    • URL: http://testng.org/doc/index.html

    • 说明: 类似于JUnit和NUnit, 功能都差不多,只是功能更加强大,使用也更方便。

  • JMockit

    • URL: http://jmockit.org/

    • 说明: 单元测试mock框架,尤其在测试框架底层复杂代码时,JMockit是很好的武器,另外还有一个工具:Djunit也是Mock框架,场合Junit结合使用。

常用类库

  • jackson

    • URL: https://github.com/FasterXML/jackson

    • 说明: 操作JSON的类库。

  • GSON

    • URL: https://github.com/google/gson

    • 说明: Google开源java对象和JSON对象进行影射的类库。

  • CSV

    • URL: http://opencsv.sourceforge.net/

    • 说明: 操作CSV文件格式类库。

  • Excel

    • URL: https://poi.apache.org/

    • 说明: 操作Excel,Word的类库。

  • Apache PDFBox

    • URL: https://pdfbox.apache.org/index.html

    • 说明: 操作PDF的类库。

  • Jsoup

    • URL: https://jsoup.org/

    • 说明: 一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。

  • Ehcache

    • URL: http://www.ehcache.org/

    • 说明: 纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。

  • Quartz

    • URL: http://quartz-scheduler.org/

    • 说明: 作业调度框架。

代码质量

  • FindBugs

    • URL: http://findbugs.sourceforge.net/

    • 说明: 代码静态分析工具,帮助提高代码质量以及排除隐含的缺陷。

  • CheckStyle

    • URL: http://checkstyle.sourceforge.net/

    • 说明: 检查Java编码规范的静态分析工具。

  • PMD

    • URL: https://pmd.github.io/

    • 说明: 和FindBugs功能类似。

JVM语言

  • Scala

    • URL: http://www.scala-lang.org/

    • 说明: Scala是一门现代的多范式编程语言,志在以简练、优雅及类型安全的方式来表达常用编程模式。它平滑地集成了面向对象和函数语言的特性。

  • Groovy

    • URL: http://groovy-lang.org/

    • 说明: Groovy是一种基于JVM(Java虚拟机)的敏捷开发语言,它结合了Python、Ruby和Smalltalk的许多强大的特性,Groovy 代码能够与Java代码很好地结合,也能用于扩展现有代码。

【转】Java开发必须要知道的知识体系相关推荐

  1. Java基础知识第二讲:Java开发手册/JVM/集合框架/异常体系/Java反射/语法知识/Java IO

    Java基础知识第二讲(Java编程规范/JVM/集合框架/异常体系/Java反射/语法知识/Java IO/码出高效) 分享在java学习及工作中,常使用的一些基础知识,本文从JVM出发,讲解了JV ...

  2. Java 开发常用的 Linux 命令知识积累

    来源 | siye1982.github.io/2016/02/25/linux-list/ 写在前面 基本操作 Linux关机,重启 查看系统,CPU信息 建立软连接 rpm相关 sshkey 命令 ...

  3. Java开发需要知道的HTML知识

    概述 HTML(HyperText Markup Language) 不是一门编程语言,而是一种用来告知浏览器如何组织页面的标记语言. HTML 可复杂.可简单,一切取决于开发者.它由一系列的元素组成 ...

  4. 安卓软件前后端开发!2021最新Android知识体系总结,含泪整理面经

    不是安卓不行了,是你跟不上了 我的很多读者都在反馈说,现在一个岗位可以收到的简历数,是前几年的几倍.我们必须承认,僧多粥少就是 Android 行业的现状,别说初中级工程师,就是高级工程师也是一抓一大 ...

  5. java开发环境安装原理,java开发环境搭建 java开发环境的完整搭建过程

    想了解java开发环境的完整搭建过程的相关内容吗,Rosalh在本文为您仔细讲解java开发环境搭建的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:java开发环境搭建步骤,java开发环 ...

  6. IOS开发高手课第一篇 构建自己的IOS开发知识体系

    开篇词 | IOS开发锚定一个点,然后在这个点上深耕 你好,我是戴铭,欢迎你加入我的 iOS 开发专栏. 说起 iOS 开发,自然是绕不开 iPhone 和 App Store 这两个词.多少年过去了 ...

  7. 如何快速构建嵌入式全栈知识体系?

    嵌入式是一门交叉学科. 一个嵌入式电子产品(比如手机)从底层到上层,一般会涉及半导体芯片.电子电路.计算机.操作系统.多媒体等不同专业领域的知识. 很多从事嵌入式开发的朋友,通常来自不同的专业(电子. ...

  8. 快速构建嵌入式全栈知识体系以及如何进阶

    快速构建嵌入式全栈知识体系以及如何进阶 嵌入式是一门交叉学科.一个嵌入式电子产品(比如手机)从底层到上层,一般会涉及半导体芯片.电子电路.计算机.操作系统.多媒体等不同专业领域的知识.很多从事嵌入式开 ...

  9. BigData:大数据开发的简介、核心知识(linux基础+Java/Python编程语言+Hadoop{HDFS、HBase、Hive}+Docker)、经典场景应用之详细攻略

    BigData:大数据开发的简介.核心知识(linux基础+Java/Python编程语言+Hadoop{HDFS.HBase.Hive}+Docker).经典场景应用之详细攻略 BigData:大数 ...

最新文章

  1. 巴黎新式婴儿饼干,你敢吃吗?
  2. linux mysql 实例详解_MySQL 多实例详解
  3. 数据特征分析(学习笔记)
  4. findbugs, checkstyle, pmd的myeclipse7.5+插件安装(转:http://blog.csdn.net/priestmoon/article/details/63941)
  5. 20200318_抓取51job招聘数据存数据库
  6. 南阳oj 题目72 Financial Management
  7. 值得学习的言语 | 对话技巧 | 开场白
  8. Substrate是什么,为什么要选择Substrate
  9. 8b10b编码源码 matlab,8b/10b编码技术系列(一):Serdes、CDR、K码
  10. PC 时代 Office 的仇,WPS 在 24 年后有机会报了
  11. Typecho博客评论生成随机用户头像
  12. [独家] 阎庆民将调任天津副市长
  13. 使用FFmpeg 批量处理视频
  14. 常见的高清视频接口(HDTV、VGA、DVI、HDMI)
  15. Windows XP 超级140个技巧(转)
  16. 调用worldlingo.com翻译服务,制作的一个多国语言翻译工具
  17. dwg格式怎么转换成pdf?格式转换方法说明
  18. 禧图集团纳斯达克上市:市值3611万美元 募资规模缩水
  19. 2023 Hulu/Disney Streaming与广告北京研发中心秋季校园招聘开始啦!
  20. UCloud云主机到底好用吗?

热门文章

  1. 洛谷p2234/BZOJ1588 [HNOI2002]营业额统计
  2. 从0开始学习 GitHub 系列之「03.Git 速成」
  3. HDU 3948 不同回文子串个数
  4. LeetCode Longest Valid Parentheses
  5. LBS核心技术解析(引子)
  6. 使用selector改变按钮状态
  7. 桌面级linux推荐,七大顶级桌面比较!Linux平台自由选择
  8. java有装箱和拆箱吗_Java中装箱和拆箱,你真的都懂么?
  9. gb酱油和gbt酱油哪个好_都是酱油,生抽好还是味极鲜好?老板:两者差别很大,别买错了...
  10. 全国计算机等级考试题库二级C操作题100套(第69套)