这里整理了一份java全栈开发学习路线的思维导图,需要学习以下内容,可做参考。
第一阶段:Java专业基础课程
阶段目标:
1 熟练掌握Java的开发环境与编程核心知识
2 熟练运用Java面向对象知识进行程序开发
3 对Java的核心对象和组件有深入理解
4 熟练应用JavaAPI相关知识
5 熟练应用JAVA多线程技术
6 能综合运用所学知识完成一个项目
知识点:
1、基本数据类型,运算符,数组,掌握基本数据类型转换,运算符,流程控制。
2、数组,排序算法,Java常用API,类和对象,了解类与对象,熟悉常用API。
3、面向对象特性,集合框架,熟悉面向对象三大特性,熟练使用集合框架。
4、IO流,多线程。
5、网络协议,线程运用。
第二阶段:JavaWEB核心课程
阶段目标:
1 熟练掌握数据库和MySQL核心技术
2 深入理解JDBC与DAO数据库 *** 作
3 熟练运用JSP及Servlet技术完成网站后台开发
4 深入理解缓存,连接池,注解,反射,泛型等知识
5 能够运用所学知识完成自定义框架
知识点:
1、数据库知识,范式,MySQL配置,命令,建库建表,数据的增删改查,约束,视图,存储过程,函数,触发器,事务,游标,建模工具。
2、深入理解数据库管理系统通用知识及MySQL数据库的使用与管理。为Java后台开发打下坚实基础。Web页面元素,布局,CSS样式,盒模型,JavaScript,jQuery。
3、掌握前端开发技术,掌握jQuery。
4、Servlet,EL表达式,会话跟踪技术,过滤器,FreeMarker。
5、掌握Servlet相关技术,利用Servlet,JSP相关应用技术和DAO完成B/S架构下的应用开发。
6、泛型,反射,注解。
7、掌握JAVA高级应用,利用泛型,注解,枚举完成自己的CRUD框架开发为后续框架学习做铺垫。
8、单点登录,支付功能,项目整合,分页封装熟练运用JSP及Servlet核心知识完成项目实战。
第三阶段:JavaEE框架课程
阶段目标:
1 熟练运用Linux *** 作系统常见命令及完成环境部署和Nginx服务器的配置
2 熟练运用JavaEE三大核心框架:Spring,SpringMVC,MyBatis
3 熟练运用Maven,并使用SpringBoot进行快速框架搭建
4 深入理解框架的实现原理,Java底层技术,企业级应用等
5 使用Shiro,Ztree和Spring,SpringMVC,Mybaits完成企业项目
知识点:
1、Linux安装配置,文件目录 *** 作,VI命令,管理,用户与权限,环境部署,Struts2概述,hiberante概述。
2、Linux作为一个主流的服务器 *** 作系统,是每一个开发工程师必须掌握的重点技术,并且能够熟练运用。
3、SSH的整合,MyBatis,SpringMVC,Maven的使用。
4、了解AOP原理,了解中央控制器原理,掌握MyBatis框架,掌握SSM框架的整合。
5、Shiro,Ztree,项目文档,项目规范,需求分析,原型图设计,数据库设计,工程构建,需求评审,配置管理,BUG修复,项目管理等。
6、独立自主完成一个中小型的企业级综合项目的设计和整体架构的原型和建模。独立自主完成一个大型的企业级综合项目,并具备商业价值。
第四阶段:分布式与微服务课程
阶段目标:
1掌握前端框架VUE及Bootstrap的应用开发
2基于SpringCloud完成微服务架构项目的开发
3掌握NoSQL数据库Redis的使用
4掌握消息队列RabbitMQ的使用
5掌握Mycat数据库中间件的使用
知识点:
1、Bootstrap前端框架、VUE前端框架、RabbitMQ消息队列。
2、掌握Bootstrap前端框架开发、掌握VUE前端框架开发、掌握RabbitMQ消息队列的应用、掌握SpringBoot集成RabbitMQ。
3、Redis缓存数据库的应用、Java基于Redis的应用开发、基于SpringCloud微服务架构开发实战。
4、掌握NOSQL数据库Redis的安装、使用,Redis客户端的安装使用,Java访问 *** 作Redis数据库,Redis的持久化方案、主从复制、高可用。
5、掌握SpringCloud微服务架构的开发,注册中心,网关配置,配置中心,微服务间通信及容器化部署。
6、项目文档,项目规范,需求分析,数据库设计,工程构建,需求评审,配置管理,BUG修复,项目管理等。
7、掌握数据库中间件Mycat的应用,基于Mycat实现数据读写分离,高可用集群。
8、掌握项目开发的流程,按照项目开发流程完成基于微服务架构项目的需求分析,编码开发。
java常用的开发工具。都说工欲善其事必先利其器,要想学好java这门语言,选择一款好用顺手的开发工具是必不可少的。另外天通苑北大青鸟认为面试java工作时开发工具的使用也是一个重要的考核点。
要想全面了解java开发工具,我们首先需要先了解一下java程序的开发过程,通过这个过程我们能够了解到java开发都需要用到那些工具。
1、要想编写程序,需要一个能编写源代码的编辑工具。例如:Notepad++;
2、要想测试程序,需要一个编译、执行工具。例如:JDK;
3、要想单独测试一个单元,需要一个单元测试工具。例如:JUnit、TestNG;
4、要想编写开发文档,需要开发文档编辑工具。例如:word、Excel、PPT;
5、要想分析设计程序,需要程序的分析设计工具。例如:StarUML;
6、要想方便管理源码和版本升级,需要源码管理和版本维护工具。例如:SVN,Git;
7、要想多个团队协作开发或者项目用到很多的第三方类库和Jar包。需要自动化构建工具。例如:Maven、gradle;
8、要想在一个工具中使用以上所有功能,需要用到集成开发工具IDE。例如:Eclipse;
大家看到这么多工具是不是很头疼。哈哈:)所以说java开发入门门槛有点高。没关系。后面的课程我会一个一个逐步给大家详细介绍。下面我们先简单了解一下这些java开发常用工具。
啊,写了好几个小时,方法比较笨,你参考一下:
public class Test {
//定义几名学生
private static final String[] STUDENTS = {"张1", "张2", "张3", "张4", "张5"};
//定义课程名,课程号分别对应为数组下标 1,2,3n+1,即英语的课程号为1,高数为2,以此类推,可以添加更多课程
private static final String[] CLASS_NAME = {"英语", "高数", "大物"};
public static void main(String[] args) {
//定义一个二维数组,模拟一份成绩单,其中第一列为学生的名字,后面几列分别代表各科成绩,
//数组大小为:学生人数 × (课程数 + 1)
String[][] grades = new String[STUDENTSlength][CLASS_NAMElength + 1];
for (int i = 0; i < STUDENTSlength; i++) {
grades[i][0] = STUDENTS[i];
//这里使用随机数来得到学生的成绩,你也可以直接定义一个写死的数组或者输入进去
for (int j = 1; j < CLASS_NAMElength + 1; j++) {
grades[i][j] = StringvalueOf((int) (Mathrandom() 100));
}
}
//这里先把成绩单打印出来,并整理了格式
Systemoutprintln("学生成绩单:");
Systemoutprintln("[姓名|英语 高数 大物]");
for (int i = 0; i < STUDENTSlength; i++) {
Systemoutprint("[");
for (int j = 0; j < CLASS_NAMElength + 1; j++) {
if (j == 0) {
Systemoutprint(Stringformat("%-3s", grades[i][j]) + "|");
} else if (j < CLASS_NAMElength) {
Systemoutprint(Stringformat("%-3s", grades[i][j]) + " ");
} else {
Systemoutprint(Stringformat("%-3s", grades[i][j]));
}
}
Systemoutprint("]");
Systemoutprintln("");
}
//选择 *** 作
Systemoutprintln("----------------------");
Systemoutprintln("请选择 *** 作(1 - 任意学生成绩的查询;2 - 某一门课程的成绩从低到高排序):");
Scanner in = new Scanner(Systemin);
int choose = innextInt();
if (choose == 1) {
Systemoutprintln("请输入一个学生的名字:");
in = new Scanner(Systemin);
String studentName = innextLine();
for (int i = 0; i < STUDENTSlength; i++) {
//将输入的学生姓名在成绩单第一列中比较,有该学生则输出其成绩
if (grades[i][0]equals(studentName)) {
Systemoutprintln("学生[" + studentName + "]的成绩为:");
for (int j = 0; j < CLASS_NAMElength; j++) {
Systemoutprintln(CLASS_NAME[j] + ":" + grades[i][j + 1]);
}
break;
}
if (i == STUDENTSlength - 1) {
Systemoutprintln("无此学生成绩,请核对其姓名");
}
}
} else if (choose == 2) {
Systemoutprintln("请输入一门课程的名字:");
in = new Scanner(Systemin);
String className = innextLine();
//因为涉及到二维数组的重新排序,我这里定义了一个内部类SortGradeHelper,
//你不喜欢内部类也可以把它单独拿出去弄成一个普通的类,类的定义和排序方式详见这个类
SortGradeHelper sortGrade = new SortGradeHelper();
if ("英语"equals(className)) {
grades = sortGradedoSort(grades, 1);
} else if ("高数"equals(className)) {
grades = sortGradedoSort(grades, 2);
} else if ("大物"equals(className)) {
grades = sortGradedoSort(grades, 3);
} else {
Systemoutprintln("无此课程");
return;
}
//把新的成绩单打印出来
Systemoutprintln("新的学生成绩单:");
Systemoutprintln("[姓名|英语 高数 大物]");
for (int i = 0; i < STUDENTSlength; i++) {
Systemoutprint("[");
for (int j = 0; j < CLASS_NAMElength + 1; j++) {
if (j == 0) {
Systemoutprint(Stringformat("%-3s", grades[i][j]) + "|");
} else if (j < CLASS_NAMElength) {
Systemoutprint(Stringformat("%-3s", grades[i][j]) + " ");
} else {
Systemoutprint(Stringformat("%-3s", grades[i][j]));
}
}
Systemoutprint("]");
Systemoutprintln("");
}
} else {
Systemoutprintln("无效的选择!(1 - 任意学生成绩的查询;2 - 某一门课程的成绩从低到高排序)");
}
}
//成绩排序小助手
static class SortGradeHelper {
private int sort; //顺序号
private int grade;//成绩
private SortGradeHelper[] sortGrades = new SortGradeHelper[STUDENTSlength];
SortGradeHelper() {
}
SortGradeHelper(int sort, int grade) {
thissort = sort;
thisgrade = grade;
}
/我这个二维数组排序的思想是:
1、首先将某一列排出来,比如英语成绩,则把英语这一列先拿出来排序
2、以刚刚排出来的这一列为标准,按照新的行序列,把原成绩单赋值给新成绩单返回
可能有点绕,我举个例子:
假设某成绩单为:
[姓名|英语 高数 大物]
[张1 |7 1 40 ]
[张2 |93 32 78 ]
[张3 |24 25 74 ]
[张4 |8 79 28 ]
[张5 |10 67 45 ]
按照英语进行排列,则先取出英语这一列,生成本类的thissortGrades数组,该数组具体为:
{ new SortGradeHelper(0,7),
new SortGradeHelper(1,93),
new SortGradeHelper(2,24),
new SortGradeHelper(3,8),
new SortGradeHelper(4,10)
}
则可以看出本列的原顺序为:0,1,2,3,4
之后采用冒泡排序,按照英语成绩从小到大排序,则排序后的thissortGrades数组为:
{ new SortGradeHelper(0,7),
new SortGradeHelper(3,8),
new SortGradeHelper(4,10),
new SortGradeHelper(2,24),
new SortGradeHelper(1,93)
}
这便得到了新的顺序:0,3,4,2,1
则成绩单所有行都将按照这个新的顺序排列,按照此顺序得到newGrades[][]数组返回
/
String[][] doSort(String[][] grades, int classNo) {
//按照课程号取出该课程这一列的成绩
for (int i = 0; i < STUDENTSlength; i++) {
thissortGrades[i] = new SortGradeHelper(i, IntegervalueOf(grades[i][classNo]));
}
//冒泡排序
SortGradeHelper temp;
for (int i = 0; i < STUDENTSlength - 1; i++) {
for (int j = 0; j < STUDENTSlength - 1 - i; j++) {
if (thissortGrades[j]grade > thissortGrades[j + 1]grade) {
temp = thissortGrades[j];
thissortGrades[j] = thissortGrades[j + 1];
thissortGrades[j + 1] = temp;
}
}
}
//按照新的顺序重新排列成绩单
String[][] newGrades = new String[STUDENTSlength][CLASS_NAMElength + 1];
for (int i = 0; i < thissortGradeslength; i++) {
for (int j = 0; j < CLASS_NAMElength + 1; j++) {
newGrades[i][j] = grades[thissortGrades[i]sort][j];
}
}
return newGrades;
}
}
}
我发的代码老是会挤到一起,所以我再把程序截图给你:
8-24行
25-41行
42-63行
64-80行
81-101行
102-114行
115-142行 对排序方法的注释和举例
143-159行
160-171行完
运行结果:
打印成绩:
成绩单排序:
编写java程序,需要安装JDK。先装JDK,把环境搭好再来个IDE基本上就可以开始写java代码了
Java开发工具 首选eclipse,eclipse不用说,是Java开发者使用人数最多的开发工具
JRE: Java Runtime Environment
JDK:Java Development Kit
JRE顾名思义是java运行时环境,包含了java虚拟机,java基础类库。是使用java语言编写的程序运行所需要的软件环境,是提供给想运行java程序的用户使用的。
JDK顾名思义是java开发工具包,是程序员使用java语言编写java程序所需的开发工具包,是提供给程序员使用的。
JDK包含了JRE,同时还包含了编译java源码的编译器javac,还包含了很多java程序调试和分析的工具:jconsole,jvisualvm等工具软件,还包含了java程序编写所需的文档和demo例子程序。
对于java程序员来说,除了需要掌握基本的编程开发语言以外,同时还需要了解在不同的场景下我们应该使用哪些编程开发工具。下面我们就给大家简单介绍了常见的几种开发工具,一起来了解一下吧。
1Groovy
我们使用Groovy来写Java测试。为什么因为它提供了下面这些能力:
宽松的Java语法:这是Java语法,但有些其他规则,比如分号,变量类型,访问修饰符都是可选的。后者对于测试意义重大,由于访问修饰符不是严格的,你的测试可以读取并断言类内部的状态。
2支持REST风格
我们的后端提供RESTAPI服务来创建和管理账户,众多SDK中,我们的JavaSDK提供特定语言客户端模型做简单交互。其中一些SDK也提供网页来和后端交互,从而不用编写代码。
为了保证网络框架的互 *** 作性,它们必须表现的一样。因此我们需要创建一系列基于>
Rest-assured是Java领域特定语言(DSLdomain-specificlanguage)用来测试REST服务,它简单易用易上手,甚至对于没有用过Java的开发者也是难以置信的强大。它提供先进的特性,比如细节配置、过滤器、定制分析、跨站请求伪造(CSRF)和OAuth20。它提供非常简单的语法:given-when-then。
3CargoPlugin
为了让我们的JavaSDK按照TCK校验,我们需要开启我们其中一个Web服务,以便测试在上面执行。讲道理的话,我们需要每次构建时自动测试,GargoPlugin就是为此而生。
Cargo用标准的方式简单封装各种应用容器。电脑培训使用Cargo可以毫不费力的在不同的Servlet容器(比如Jetty和Tomcat)中运行我们的代码。我们只需要在我们的pom文件中配置CargoMaven2Plugin来启动一个Servlet容器(Tomcat7),在测试阶段编译近的War包,你可以在我们的Servlet插件例子中看到配置。
以上就是关于Java需要学习哪些软件全部的内容,包括:Java需要学习哪些软件、Java的常用开发工具、需要一个java程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)