自学Java如何入门?

html-css06

自学Java如何入门?,第1张

自学Java看这一篇就够啦!Java学习路线图分享给你,跟着学习吧!

一、Java基础

JavaSE基础是Java中级程序员的起点,是帮助你从小白到懂得编程的必经之路。

在Java基础板块中有6个子模块的学习:

基础语法,可帮助你建立基本的编程逻辑思维;

面向对象,以对象方式去编写优美的Java程序;

集合,后期开发中存储数据必备技术;

IO,对磁盘文件进行读取和写入基础操作;

多线程与并发,提高程序效率;

异常,编写代码逻辑更加健全;

网络编程,应用服务器学习基础,完成数据的远程传输。

学习该阶段,可以完成一些简单的管理系统、坦克大战游戏、QQ通信等。

二、数据库

数据库不仅仅是Java开发工程师的必学课程,也是其他语言都需要掌握的技能。用于对交互过程中客户的数据进行存储。

该板块包括关系型数据库和非关系型数据库。

例如:MySQL、oracle、redis、MongoDB等。数据库学习完毕后,可以将数据存储到数据库中,也可以通过SQL语句从数据库中查询数据,结合Java项目可以实现动态站点的数据的保存。

技术树

三、前端技术

Javaweb阶段包括前端、数据库和动态网页。Javaweb是互联网项目的入门课程,是学习后面高进阶课程的基础。

首先,我们先看一下前端板块。该板块主要包括如下几个模块:

HTML5,网页制作标记语言;

CSS,对HTML制作网页进行美化;

JavaScript,嵌入在页面中的脚本语言,具备逻辑性;

Vue,前端框架,简化了与服务器端交互的操作,用户良好的交互体验是必不可少的。

学习前端技术后,可以完成类似京东、淘宝的前端工程的编写。

技术树

四、动态网页技术

动态网页是中级程序员服务器端编程的基础,是高级框架学习的必备课程,后期学习的框架、服务底层都是基于动态网页技术之上的。

该板块包括Javaweb核心技术、包括Servlet、Request、Response、Cookie和Session等,通过这些技术的学习可以完成动态站点开发,可更好的完成服务器端与客户的交互,让页面的数据“动”起来,做出小型的应用系统。

技术树

五、编程强化

编程强化是对解决实际问题方面做一个深入的了解和应用,是对JavaSE基础的加强,对后期自动以框架和对一些服务框架的底层理解做支撑。

编程强化板块主要包括如下几个模块:多线程高级、涉及线程内存、线程通信等;JVM优化,对JVM底层进行调优来提高项目执行效率;NIO,同步非阻塞IO来提高效率。

学习该阶段,可以对原有项目进行优化从而使程序更快更稳定。

技术树

六、软件项目管理

JavaSE基础是Java中级程序员的起点,是帮助你从小白到懂得编程的必经之路。

在Java基础板块中有6个子模块的学习:基础语法,可帮助你建立基本的编程逻辑思维;面向对象,以对象方式去编写优美的Java程序;集合,后期开发中存储数据必备技术;IO,对磁盘文件进行读取和写入基础操作;多线程与并发,提高程序效率;异常,编写代码逻辑更加健全;网络编程,应用服务器学习基础,完成数据的远程传输。

学习该阶段,可以完成一些简单的管理系统、坦克大战游戏、QQ通信等。

技术树

七、热门技术框架

使用Javaweb进行企业级开发是完全可以的,但是开发效率比较低,所以对常用的逻辑操作进行封装就形成了框架,因此框架是企业开发的入门技能。

热门框架板块主流框架有如下几个:Spring框架,占据统治地位,其生态系统涉及各个方面解决方案;MyBatis框架,使用ORM思想对数据库进行操作。

该板块学习后,就可以进行真实企业级项目开发了,做出的项目也会更加符合企业要求。

技术树

八、分布式架构方案

随着互联网的发展,业务的复杂性和用户的体验性都需要提高,所以分布式架构出现了。该板块主要讲解的是分布式架构的相关解决方案。

主要包括如下模块:Dubbo,高性能的 RPC 服务发布和调用框架;SpringBoot,简化Spring应用的初始搭建以及开发过程;Spring Cloud,一系列框架的有序集合,如服务发现注册、配置中心、负载均衡、断路器、数据监控等。

该板块的学习,可以具备大型互联网项目开发的必备技术和实际经验,为进入BATJ打下基础

技术树

九、服务器中间件

中间件板块是大型互联网项目中必备的。服务中间件可以帮助各子模块间实现互相访问,消息共享或统一访问等功能。其包括远程服务框架中间件,例如阿里(Apache)的RPC框架Dubbo等;消息队列中间件,例如:阿里巴巴开源分布式中间件RocketMQ、高吞吐量消息发布和流处理服务Kafka等。

学习服务中间件是中级JavaEE工程师必要技术,也是JavaEE架构师必须精通的技术。

技术树

十、服务器技术

不管是使用原生Javaweb进行开发,还是使用框架进行开发,项目最终需要对外发布才能供全世界的人访问到,而服务器板块就可以解决这个问题,所以服务器是项目发布的必要技术。该板块包括虚拟化和web应用服务器的学习,主要包括如下几个模块:Vmware,虚拟机软件;Linux,专门用于服务器的系统;Nginx,集群部署时反向代理服务器;Tomcat,项目发布时主要使用的服务器。

该板块学习后,我们就可以把开发好的项目发布到服务器中,然后供你的小伙伴远程访问了,超酷!

技术树

十一、容器技术

容器化技术是近两年超级火的一个专题,通过容器化技术可以对环境进行打包,方便移植,大大提高了开发效率。该板块包括容器化技术Docker和其平台管理引擎Kubernetes,其中,Docker 是一个开源的应用容器引擎,可以打包应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows 机器上,也可以实现虚拟化。而Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效。通过该板块的学习,你可以通过上述技术快速搭建环境,节省开发时间,提高开发效率。

技术树

十二、业务解决方案

虽然我们已经具备了基础技术和高阶技术,但是要想与企业开发相接轨,还需要对实际项目的业务解决方案进行探究。而此版块就是在实际业务场景中的真实解决方案集合,常用的业务解决方案有如下:搜索业务场景解决方案、日志收集与分析场景解决方案、工作流引擎场景解决方案、任务调度场景解决方案、地图开发平台场景解决方案、支付开放平台场景解决方案、图表可视化场景解决方案。通过分析实际业务来学习这个解决方案技术集,完全可以达到中级甚至高级工程师水平。

技术树

1,网页游戏的市场潜力巨大,与其他类型网游相比有着强劲优势 业内普遍看好WEBGAME其实并无道理,与MMORPG和休闲网游等其他类型网游相比,WEBGAME有着投入成本小,开发周期短,技术门槛低和维护费用小等优势,这些对刚涉足网游行业的中小型开发公司而言都是非常有吸引力的。而其不用下载客户端,直接浏览网页就能游戏;不用疯狂点击鼠标键盘,只需要简单的按钮操作就能完成指令;不需要长时间泡在游戏中也能取得较大的成长等种种特点,也非常适合长时间呆在办和校园的OFFICE一族和大学生一族,他们可以轻松地“在老板眼皮底下”享受游戏的乐趣,这些都是MMORPG和休闲网游所不能比拟的。而这部分用户大多具备消费游戏的经济能力和消费需求,因此市场潜力相当巨大。 2,网页游戏的用户群逐渐培养起来,极有可能成为未来网游用户的一支主力军 对于网页游戏的用户定位,从上网地点和从事职业上有着明显的划分:网吧用户都是付费游戏,没有多少人愿意花十几块钱上网来玩节奏缓慢的网页游戏,所以基本排除;而在其他地点上网的用户中,家庭用户因为机器配置和游戏需求等方面的因素,也基本上不会考虑长时间地玩网页游戏;而真正喜欢而且能够长时间泡WEBGAME的用户基本上都是OFFICE的白领一族和校园网的学生一族。这部分用户要么从未或者很少接触其他类型网游,要么由于工作或学习时间不方便玩其他类型游戏,所以基本上不与其他类型网游的用户相冲突,可以培养成一个相对独立的用户群。而这个用户群都是具备消费能力和长期上网条件的,如果培养适当极有可能发展成为未来网游用户的一支生力军。 3避大型网游之锋芒,坚持走游击路线。坚持和中小站长合作。 网页游戏与大型网游相比,存在着可玩性低,黏着度低和画面表现粗糙等诸多不足,而这些不足是足以令同类型同题材的网页游戏与大型网游不可相提并论的致命伤。如果还是要原封不动地继续沿袭现有大型网游的成功模式,甚至不惜定位成做某个成功网游的WEB版,它的前景是可想而知的。网页游戏中的成功案例OGAME和体育经理模式等都告诉我们,只有做大型网游没有做过的类型或模式,走适合WEB形式的游击路线才是避开大型网游的强劲竞争另辟奚径的首选。而这些,中小站的发展模式未尝不是一种比较好的互补。 4针对用户群大胆创新,敢于突破固有模式 网页游戏有自己特有的用户群,就应该根据他们的游戏习惯和消费需求来做针对性地开发和设计,如果延续大型网游的思路去设计游戏只会牛头不对马嘴。比如,MMORPG针对的是那些愿意而且能够长时间泡在游戏里,通过不停点击鼠标来寻求刺激的玩家,休闲游戏则是针对那些愿意而且能够在较短的时间里全情投入紧张操作来娱乐的玩家,而这些都不是利用工作或学习的空余忙里偷闲轻松一把的玩家所能接受的,对他们而言,操作时间不能太长,不需要长时间泡在线上是他们选择网页游戏的根本。只有了解这点做针对性的开发,才是网页游戏取得成功的出。

Flash游戏优势介绍

一听到游戏大家都会认为那是不上进人玩的。确实由其实在网吧玩游戏的人总给人一种不务正业的感觉。游戏在人们心目中已经形成了根深蒂固的不好印象,特别是当我们听说某家的小孩子喜欢玩游戏总觉得这孩子不是好孩子。但是,随着Flash游戏的产生和发展原本印象不好的游戏名词却让人对它有了新的认识。Flash游戏主要包括Flash小游戏和网页游戏两部分,现在Flash游戏可以在线玩也可以单机玩,并且听过Flash游戏的平台是越来越多越来越火。玩Flash游戏的人也越来越多,并且多以青年人为主。

为什么Flash游戏会这么火呢?为什么简单得不能再简单的游戏却能获得年轻人的喜爱呢?闪客教育作为Flash游戏制作培训学校总结出了一下几点Flash游戏有点:

1、Flash游戏界面炫酷

Flash游戏虽然是在线游戏或者小游戏下载和安装都很简单但是其通过Adobe公司专业的动漫制作软件制作出来的效果绝对可以和客户端游戏媲美。凭借Adobe公司的技术支持加上Flash Player插件的支持其视觉效果完全可以用炫酷来形容。这也是为什么可以说Flash小游戏不小,并且能够获得大部分年轻人喜爱的原因。

2、Flash游戏小易于传播

一般的Flash游戏都很小,大小只有十几兆最多几十兆左右。这样体积大小的游戏很容易在互联网上传播。因为Flash游戏下载不需要太多时间,并且很多Flash游戏还可以在线玩耍。玩起来很方便,加上提供Flash游戏的平台越来越多其传播速度大大加快。Flash游戏的这个优点为其发展提供了重要支持。

3、Flash游戏免费

与其他大型客户端游戏相比Flash游戏基本是免费的,而客户端游戏少则几百动辄上千的游戏投入也让不少玩家心生厌恶。免费的Flash游戏让玩家体验到了免费的娱乐,而不是那种不投入钱就不能很好的玩游戏的感受。免费让Flash游戏能够获得很好的玩家基础,这也是为什么Flash游戏能发展如此之好的另一重要原因。

4、Flash游戏不易上瘾

因为Flash游戏结构简单对于玩家来说很容易就能玩耍游戏,且不像大型游戏那样内容会一直更新下去让人容易上瘾。Flash游戏操作和内容都很简单其突出特点是兴趣点而不是靠复杂的内容吸引玩家。

5、Flash游戏多以益智类为主

Flash 游戏还有一大优点——启发益智,这是Flash游戏能够在小孩间传播的重要意义。这一优点特别适合小孩玩耍加上不容易上瘾的优点也能让家长接受孩子们玩耍游戏。这也是Flash游戏能在小孩子间兴起的原因。

为什么FLASH有发展前景?

我要谈FLASH游戏三个特点:

FLASH小游戏是最最标准化的一种游戏类型。比如你打开一个应用,所有都是同样的操作模式,FLASH小游戏也是一样,你玩每个游戏都是这样的模式。标准化有什么好处呢?

第一个好处就是非常容易存积用户,你买了一个应用以后,很自然会买第二个应用,应用之间差别缩小化。玩了一个小游戏以后,很喜欢玩别的小游戏。用户转化非常容易,从一个应用到另外一个应用。

第二个好处,标准化很大好处就是商业模式接入非常容易。盛大几年前也做过游戏广告,我们用MMO来做,在MMO中插入游戏广告,但效果不是非常理想,因为MMO是一个最不标准化的应用,因为插入每个广告,要针对每个MMO游戏单独开发,单独接入广告引擎,而且非常影响用户体验。但是在FLASH小游戏这种游戏类型上面非常合适。因为你只要做一个API,所有开发者,只要自己把这个API开发进去,只要有人玩了你的游戏,就会看到广告,你会得到分成。这也特别适合中国,因为中国盗版特别厉害,所以大家都拷贝,反正我能赚免费的盗版眼球。这种模式因为标准化,所以商业模式接入比较容易。同时我们可以跟好友互通,因为标准化,所以容易形成一个合体。

吴总也讲过网页游戏适合多平台,其实比网页游戏更适合多平台是FLASH小游戏,因为FLASH小游戏标准化。现在很多互联网电视支持FLASH,你的FLASH游戏可以走向互联网。所以这里开发的东西自然可以移植,是跟着平台走。从这一点上看,我们认为FLASH小游戏虽然小,但是生命力大。我们认为FLASH小游戏会是将来网页游戏多元化发展的重要方向,可能还会是一个重点方向。

第三个好处,因为标准,所谓用户容易开发这个游戏。大多数小游戏都是开发者自行开发的。麻球在全球有2万多个注册开发者,这些开发者每周会产生几百个游戏,一般开发一个FLASH游戏的周期可能两三个月,所以FLASH游戏开发门槛非常低。开发门槛低就有一个非常大的好处,可以用2.0方式做,就是用户创造内容,你可以自己开发你喜欢的游戏,用户分享内容。这样就决定FLASH小游戏的类型、内容是无穷丰富的。你可以通过你的创意赚大钱,游戏可以风靡全球,只要你有好的创意。

HTML5优缺点:

优点

1、无需插件

2、开放、免费

3、对搜索引擎友好

缺点

1、由于其目前仍处于草案阶段,浏览器兼容性差

2、开发模式单一,目前基本只靠记事本开发(DreadWeaver也可以,但是暂不支持HTML5新属性)

HTML5技术优点

网络标准

HTML5本身是由W3C推荐出来的,它的开发是通过谷歌、苹果,诺基亚、中国移动等几百家公司一起酝酿的技术,这个技术最大的好处在于它是一个公开的技术。换句话说,每一个公开的标准都可以根据W3C的资料库找寻根源。另一方面,W3C通过的HTML5标准也就意味着每一个浏览器或每一个平台都会去实现

多设备、跨平台

用HTML5的优点主要在于,这个技术可以进行跨平台的使用。比如你开发了一款HTML5的游戏,你可以很轻易地移植到UC的开放平台、Opera的游戏中心、Facebook应用平台,甚至可以通过封装的技术发放到App Store或Google Play上,所以它的跨平台非常强大,也是大多数人对HTML5有兴趣的主要原因。

总结概HTML5有以下优点:

1、提高可用性和改进用户的友好体验;

2、有几个新的标签,这将有助于开发人员定义重要的内容; 3、可以给站点带来更多的多媒体元素(视频和音频); 4、可以很好的替代FLASH和Silverlight;

5、当涉及到网站的抓取和索引的时候,对于SEO很友好; 6、将被大量应用于移动应用程序和游戏。

HTML5缺点

移动

浏览器的编程模型还是90年代流行的单进程单线程 (single process single thread),但原生实现(比如

用Object C)的APP可以用多线程。移动端编写APP,可以使用多个线程,第一个线程,被称作主线程(main thread),编程的第一原则是don’t do heavy work on main thread。通常

只让它处理UI事件等,其他重度的工作让其他背景线程来做。但浏览器只有一个线程,所有的事情都是它干。在台式机上,浏览器编程还没有太多问题,因为够快;但在移动端,这个弊端很明显。 例如

比如你在用浏览器看朋友的照片,你发的评论被发到服务器端,此时你接着用手指往下拉屏; 此时,服务器端返回信息,评论发布成功,浏览器中唯一的线程可能停止处理屏幕滚动(scrolling)而来处理

服务器的返回信息,由于移动设备的处理器(尤其单进程浏览器只能用上单核,即使是多核手机!)和内存(处

于省电原因使用低耗电的DDR1,这一点和现在PC使用的DDR3相差甚远)的不给力,完全可能造成滚动处理的

不连续。通常手机的刷新率是60MHZ,即每一帧不超过15ms;如果处理的延时大大超过15ms,那么就会出现 跳帧,肉眼就能看出来。 结果

如果你的APP是相对静态的,不需要很多对于照片,多点触摸,多向拉动的处理,那完全可以用HTML5

来实现;如果不是,比如信息流的展示,游戏等等,最好还是用原生的去实现。

(HTML5实现已经是50%以上的iOS APP的选择。我相信处理能力的提升,将让移动设备的处理不给力带来的体

验底下得到改善。而这种处理能力的提高,很大程度上将取决于低耗电高性能CPU/内存的出现,或者电池技术

的极大改善。在这一天到来之前,有可能10%的APP无法应用HTML5来实现。)

它新并不表示它安全

网络应用开发工程师们在学习新技术的同时需要时刻记住网络安全。HTML5所构建的网页和其他语言编写的网页一样容易泄露一些敏感数据。欧洲网络信息安全机构。

Network and Information Security Agency,ENISA)已经警告说HTML5可能并不够安全。

2013年3月,HTML5编程语言的一个漏洞被发现:它允许网站利用数GB垃圾数据对用户展开轰炸,甚至会在短时间内将硬盘塞满。多款主流浏览器均会受此影响。