零基础学Java从啥开始学?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了零基础学Java从啥开始学?相关的知识,希望对你有一定的参考价值。
零基础学习java不知道从什么开始学,这里整理了一份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、掌握项目开发的流程,按照项目开发流程完成基于微服务架构项目的需求分析,编码开发。
参考技术A零基础小白学习JAVA要懂得一个道理,学习和掌握java相关技术也非一朝一夕之事,不可能一蹴而就,除了知识理论的学习,还需要后续更深入的学习和大量的实践,所以需要你一个良好的学习规划。
随着社会信息的发展,Java技术已经无处不在,无论是手机软件、手机Java游戏还是电脑软件等,只要你使用到电子产品就会碰到和Java有关的东西,更多的企业正采用Java语言开发网站,而在所有程序员中,Java开发工程师就占据20%的比例,不可否认,Java语言有着广泛的行业发展前景,它在行业中的影响力已是不可避免的。
零基础学Java从什么开始学?学java无非就是自学和报班这两种方式,至于java自学还是报班好,这个还是需要根据您自身的条件来判断的。如果您自控能力、自学能力且有基础那自学好。反之报班好。下面跟您说一下java自学与报java培训班学的不同之处,供您参考。
Java自学:好的地方是省钱,不太好的就是学习时间不确定,学习周期很容易拉长,学习不够系统,对于没有基础的或者自控力不强的人来说,也容易导致半途而废。遇到不懂的问题没有人解答,难以往下进行学习,而且容易学的半知半解。
Java培训:学习时间相对较短,整体学习比较全面,学习内容也比较集中。专业老师按照大纲进行系统授课,在学习中遇到技术问题能够快速得到解决,同时还有专项的练习相对于自学,学习气氛更加浓厚,跟同期学员对问题的探讨,对拓展思路有很大的帮助。并且像一些专业的培训机构,培训完后有相应的就业课程和就业指导,比起自学来说求职胜算更大。
如果您学Java是因为单纯的兴趣爱好,自学是一个很不错的选择。但如果您想通过学Java技术转行的话,那么最好是选择参加Java培训班。当然,可能现在的您感觉参加Java培训班学费很贵,但是对于可以通过学习找到工作,还是比较值得的。
总之,决定了要学习Java技术就不要犹豫,要行动起来,时间可不等人。不管是自学也好还是参加Java培训也罢,都要进行实际了解才行。
参考技术B首先你确定你要进入Java开发?决定学习Java是要下很大决心的,因为Java技术的世界是个无底洞,永远也学不完,不废话了,我就简单的说一下自己的看法(偏重Java方面,什么html、css、js这些不在这次的讨论之内,虽然JavaServer开发有时候也都需要懂点):
Core Java,就是Java基础、JDK的类库,很多童鞋都会说,JDK我懂,但是懂还不足够,知其然还要知其所以然,JDK的源代码写的非常好,要经常查看,对使用频繁的类,比如String,集合类(List,Map,Set)等数据结构要知道它们的实现,不同的集合类有什么区别,然后才能知道在一个具体的场合下使用哪个集合类更适合、更高效,这些内容直接看源代码就OK了。
多线程并发编程,现在并发几乎是写服务端程序必须的技术,那对Java中的多线程就要有足够的熟悉,包括对象锁机制、synchronized关键字,concurrent包都要非常熟悉,这部分推荐你看看《Java并发编程实践》这本书,讲解的很详细。
I/O,Socket编程,首先要熟悉Java中Socket编程,以及I/O包,再深入下去就是Java NIO,再深入下去是操作系统底层的Socket实现,了解Windows和Linux中是怎么实现socket的。
JVM的一些知识,不需要熟悉,但是需要了解,这是Java的本质,可以说是Java的母体, 了解之后眼界会更宽阔,比如Java内存模型(会对理解Java锁、多线程有帮助)、字节码、JVM的模型、各种垃圾收集器以及选择、JVM的执行参数(优化JVM)等等,这些知识在《深入Java虚拟机》这本书中都有详尽的解释,或者去oracle网站上查看具体版本的JVM规范。
一些常用的设计模式,比如单例、模板方法、代理、适配器等等,以及在Core Java和一些Java框架里的具体场景的实现,这个可能需要慢慢积累,先了解有哪些使用场景,见得多了,自己就自然而然会去用。
常用数据库(Oracle、MySQL等)、SQL语句以及一般的优化。
JavaWeb开发的框架,比如Spring、iBatis等框架,同样他们的原理才是最重要的,至少要知道他们的大致原理。
其他一些有名的用的比较多的开源框架和包,Netty网络框架,Apache common的N多包,Google的Guava等等,也可以经常去Github上找一些代码看看。
暂时想到的就这么多吧,1-4条是Java基础,全部的这些知识没有一定的时间积累是很难搞懂的,但是了解了之后会对Java有个彻底的了解,5和6是需要学习的额外技术,7-8是都是基于1-4条的,正所谓万变不离其宗,前4条就是Java的灵魂所在,希望能对你有所帮助
(补充)学会使用Git。如果你还在用SVN的话,赶紧投入Git的怀抱吧!
参考技术C对于初学者来说,只要在学习过程中,掌握科学的学习方法,即使零基础的入行者也能充分掌握Java开发技术,那究竟如何才能学习Java呢?
第一阶段:企业入门级项目阶段,可掌握Java核心基础、面向对象、JavaSE API、MySQL数据库、JDBS、HTML+CSS、Servlet、JSP、JavaScript等,可以完成常见中小型互联网项目开发,达到初级Java开发工程师能力。
第二阶段企业框架级项目阶段是进阶阶段,增强Java基础、web基础、CSS/JavaScript进阶、Maven项目管理、Spring5、SpringMVC、Mybatis、SMM综合项目、学员项目等,完成本阶段学员可以胜任各行业企业级项目中高级工程师岗位。
第三阶段亿级大并发分布式项目阶段,掌握Linux、Docker、Vue、SpringBoot、项目整合Vue、分布式项目、Zookeepr、Dubbo、Springcloud、Redis、Elasticsearch、Quartz、RocketMQ、FastDFS、Mycat、CAS、分布式锁、分布式事务、微信开发、学生项目等,学员学完后可以胜任大型、超大型互联网项目开发高级工程师岗位。
初学Java虽然有一定的难度,但Java学习并不是不可逾越,只要你明确方向,找到有效的学习方法,坚持学习,一定能攻克Java难关,成为一名合格的Java开发工程师。如果你是零基础自学,那么所花费的时间与精力是不可估计的。 如果系统学习5个月的时间可以帮助你快速成长。
参考技术D 学习java基本都是向J2EE工程师发展,以下列出了零基础的学习路径,供各位参考:第一步:学习javase初级部分内容;
第二步:学习前端的基础知识。如:html+css+javascript;
第三步:学习数据库知识。如:mysql、oracle etc;
第四步:学习servlet、jsp的基础知识,并使用之前学习的jdbc+servlet+jsp实现一个小项目;
从零开始学大数据-Java基础-流程控制语句
我们从零开始学习大数据技术,从java基础,到Linux技术涉猎,再深入到大数据技术的Hadoop、Spark、Storm技术,最后到大数据企业平台的搭建,层层递进,由点到面!希望技术大牛能过来指导学习。
上一节学习了三元运算符/键盘录入,本节学习流程控制语句。
开始之前,我们先看一下上节的练习题。
一、练习题
(1)键盘录入三个数据,获取三个数据中最大值,程序如下:
程序执行结果如下:
(2)键盘录入两个数据,比较两个数据是否相等,程序代码如下:
程序执行结果如下:
二、流程控制语句
通过我们前面的学习,我们应该可以感觉到在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的,也就是说程序的流程对运行结果有直接的影响。
所以,我们必须要清楚每条语句的执行过程。而且,很多时候我们要通过控制语句的执行顺序来实现我们要完成的功能。
下面我们来讲讲流程控制语句的分类(主要有三种):
顺序结构
选择结构
循环结构
流程控制语句概念:可以控制程序的执行流程
1、顺序结构
规则:从上往下,依次执行
举例:
程序执行结果:
选择结构有两种语句,分别为如下:
if 语句
switch语句
if语句
if语句(三种格式)
格式1:适合做单个判断
格式2:适合做两个判断
格式3:适合做多个判断
if(比较表达式){
语句体;
}
执行流程规则:
先计算比较表达式的值,看其返回值是true,还是false.
如果是true,就执行语句体;
如果是false,就不执行语句体。
程序代码举例:
程序执行结果:
可见,在if语句中,x等于10为true,大括号里的语句体可以正常执行;
x等于20为false,大括号里的语句体不执行,但不影响后面的语句“over”执行.
if语句的注意事项:
比较表达式无论简单还是复杂,结果必须是boolean类型
if语句的语句体如果是一条语句,大括号可以省略;
如果是多条语句,就不能省略,建议永远都不要省略。
一般来说,有左大括号就没有分号,有分号就没有左大括号
如下程序代码,if语句里面的表达式都是布尔类型的
②if语句格式2
if(比较表达式){
语句体1;
}else {
语句体2;
}
执行流程:
首先计算比较表达式的值,看其返回值式true还是false.
如果式true,就执行语句体1;
如果式false,就执行语句体2;
注意:else后面是没有比较表达式的,只有if后面才会加表达式
程序代码案例,如下:
程序执行结果:
练习题:
下面我们针对if else语句做两个练习题:
1、获取两个数据中较大的值
2、判断一个数据是奇数还是偶数,并输出
程序代码如下,我将两道题都通过下述代码实现:
执行结果:
可见,if语句和三元运算符可以完成相同的效果,但也是有需要注意以下的区别:
区别:
三元运算符实现的,都可以采用if语句实现,反之不成立。
什么时候if语句实现不能用三元运算符改进呢?
当if语句控制的操作是一个输出语句的时候就不能。
因为三元运算符是一个运算符,必须要有一个结果返回,不能是一个输出语句。
案例:
程序执行结果:
如果将判断奇偶的例子,使用三元运算做改进,可以参照以下程序代码:
程序执行结果:
可见,验证了我们前面提到的三元运算符实现的,都可以采用if语句实现,反之不成立的结论。
③if语句的格式3
if(比较表达式1){
语句体1;
}else if(比较表达式2){
语句体2;
}else if(比较表达式3){
语句体3;
}
...
else{
语句体n+1;
}
执行流程:
首先计算表达式1看其返回值是true还是false,
如果是true,就执行语句体1,if语句结束。
如果是false,接着计算比较表达式2看其返回值是true还是false
如果是true,就执行语句体2,if语句结束
如果是false,接着计算比较表达式3,看其返回值是true还是false.
...
如果是false,则执行语句体n+1.
举例:键盘录入一个成绩,判断并输出成绩的等级。
90 - 100 优秀
80 - 90 好
70 - 80 良
60 - 70 及格
0 - 60 不及格
程序代码如下:
程序执行结果:
注意:
在写一个程序的基本测试的时候,一定要考虑以下几个问题:
正确数据
错误数据
边界数据
所以针对上面的数据,我们可以做个改进,先判断先错误数据,这样会更好,如下:
扩展练习题(自行完成):
1、获取两个数据中较大的值
2、判断一个数据是奇数还是偶数,并输出
本节我们就先告一段落,下一节我们将学习Switch语句
往期文章:
以上是关于零基础学Java从啥开始学?的主要内容,如果未能解决你的问题,请参考以下文章