【转】Java开发必须要知道的知识体系
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开发必须要知道的知识体系的更多相关文章
- from: Java开发必须要知道的知识体系
from: https://zhuanlan.zhihu.com/p/21895647 作者:靳洪飞链接:https://zhuanlan.zhihu.com/p/21895647来源:知乎著作权归 ...
- 关于用JAVA开发短信方面的知识
现在流行的网络业务莫过于短信了.网易新浪等都因此而盈利,股价上涨.我凭自己的经验和公司支持,也就乘着东风来研究一下了! 首先,你要选择一台移动或者联通的短信服务器做你们的发送短信接口.这是最关键的 ...
- 聊聊IT技术人的知识体系
我在我的2020年终总结中提到技术人需要建立自己的知识体系,那么怎么建立自己的知识体系呢?技术人的知识体系又是什么样的呢?今天,和你一一分享. 1 关于我的12字方针 我在我的<2020年终回顾 ...
- java开发知识IO知识之输入输出流以及文件
目录 java开发知识IO知识之输入输出流以及文件 一丶流概述 二丶输入流讲解 InputStream类. 1. 输入流以及类层次结构 2.文件操作.使用输入流读取 三丶输出流 OutputStrea ...
- Java开发知识之Java中的Map结构
Java开发知识之Java中的Map结构 一丶Map接口 Map没有实现Collection接口,提供的是Key 到Value的映射. Map中.不能包含相同的Key,每个Key只能映射一个Value ...
- Java开发知识之Java中的集合Set接口以及子类应用
---恢复内容开始--- Java开发知识之Java中的集合Set接口以及子类应用 一丶Set接口以及作用 在上一讲.我们熟悉了接口的实现图.以及自己各有的子类. List接口主要存储的数据是可以重复 ...
- Java开发知识之Java中的集合上List接口以及子类讲解.
Java开发知识之Java中的集合类 一丶什么是集合类 如果你学习说数据结构,那么学习集合就很简单. 因为集合就是存储数据的结构. 例如 有链表结构 (list ) 还有 map结构.等等. 集合类就 ...
- Java开发知识之Java中的泛型
Java开发知识之Java中的泛型 一丶简介什么是泛型. 泛型就是指泛指任何数据类型. 就是把数据类型用泛型替代了. 这样是可以的. 二丶Java中的泛型 Java中,所有类的父类都是Object类. ...
- Java开发知识之Java的枚举
Java开发知识之Java的枚举 一丶什么是枚举 枚举可以理解为就是常量,在Java中我们定义常量.都是用 final语句. C++中都是用const关键字. 枚举跟C++概念都是一样的.就是特定的常 ...
随机推荐
- 查看和解除Linux系统对用户使用资源的限制
查看当前系统资源限制 ulimit -a 设置用户的最大进程数(重启后失效) ulimit -u 1024 设置用户可以打开的最大文件句柄数(重启后失效) ulimit -n 65530 ...
- git bash的命令
git bash cd /f 该命令可以把当前目录切换到f盘 git clone git上的项目的url
- String类型作为方法的形参
代码: public class TestString { String str = new String("good"); char [] ch = {'a','b','c'}; ...
- PHP针对数字的加密解密类,可直接使用
<?phpnamespace app;/** * 加密解密类 * 该算法仅支持加密数字.比较适用于数据库中id字段的加密解密,以及根据数字显示url的加密. * @author 深秋的竹子 * ...
- 34)django-上传文件,图片预览功能实现
目录 文件上传 1)form表单提交上传(会刷新) 2)ajax上传 3)iframe 4)图片上传预览(思路保存文件的时候,把文件保存文件的路径反馈回,客户端 ...
- (转载)(int)a、&a、(int)&a、(int&)a的区别,很偏僻的题
#include <iostream>#include <stdio.h>#include <string.h>#include <conio.h>us ...
- Modbus库开发笔记之七:Modbus其他辅助功能开发
前面开发了各种应用,但是却一直没有提到一个问题,你就是对具体的数据进行读写操作.对于Modbus来说标准的数据有4种:线圈数据(地址:0000x).输入状态量数据(地址:1000x).保持寄存器数据( ...
- Confluence 6 Windows 中以服务方式自动重启修改运行服务的用户
基于安全的考虑,如果你希望你的 Confluence 不是在系统中以管理员的身份运行或者你使用网络驱动器来存储备份,附件和索引的话,你可以以其他用户来运行 Confluence. 希望修改用户,打开 ...
- es6简单介绍
1.ECMAScript 6 简介 2.let和const命令 3.变量的解构赋值 4.字符串的扩展之模板字符串 5.正则的扩展 6.数值的扩展 7.函数的扩展 8.数组的扩展 9.对象的扩展 10. ...
- 《剑指offer》顺时针打印矩阵
本题来自<剑指offer> 顺时针打印矩阵 题目: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 1 ...