一、学习前的准备工作
java语言一般用于大型的服务器程序开发,所有有必要了解如下内容:Unix开发环境Unix系统原理、Unix开发环境、Unix常用命令。熟练掌握Unix常用命令;熟练构建下的Java开发环境。
二、Java语言基础的学习阶段学习
任何一门语言都要打好基础,曾经学过高级程序语言(C,C++等)来说,java语言基础有自己的特点,但是基本规律都是相通的,如:算法基础、常用数据结构、企业编程规范。掌握常见的数据结构和实用算法;培养良好的企业级编程习惯。
三、面向对象语言的共性
Java面向对象面向对象特性:封装、继承、多态等。掌握面向对象的基本原则以及在编程实践中的意义;掌握Java面向对象编程基本实现原理。
四、JDK核心API语言核心包、异常处理、常用工具包、集合框架
熟练掌握JDK核心API编程技术;理解API设计原则;具备熟练的阅读API文档的能力;JavaSE核心异常处理、多线程基础、IO系统、网络编程、Swing组件、JVM性能调优(JVM内存结构剖析、GC分析及调优、JVM内存参数优化)、Java泛型、JDK新特性。熟练掌握JavaSE核心内容,特别是IO和多线程;初步具备面向对象设计和编程的能力;掌握基本的JVM优化策略。XMLXML语法、XML解析(SAX、DOM)、Dom4j组件、Digester组件。熟练掌握XML语法规则;理解DOM模型;熟悉Java对XML的各种解析方式。
五、SQL语言SQL语句基础和提高、SQL语句调优
熟练的掌握SQL语句;掌握一定的数据库查询技巧及SQL语句优化技巧。Oracle数据库开发Oracle体系结构及系统管理、Oracle数据库高级编程、数据库设计基础。掌握Oracle体系结构及核心编程技术。
六、连接数据库:JDBCJDBC核心API(Connection、Statement、ResultSet)、JDBC优化技术(缓存技术、批处理技术、连接池技术)
理解JDBC作为规范的设计原则;熟练掌握JDBCAPI;具备使用JDBC对数据库进行高效访问的能力。
七、软件工程基础软件过程和软件活动
需求设计、概要设计、详细设计基本原则和文档规范;配置管理的基本概念和必要性;CVS基本 *** 作;Ant简介理解软件过程的普遍概念和基本的软件活动;理解迭代的意义;掌握Ant、CVS等常用配置管理及部署工具。
八、OOAD及设计模式面向对象基本设计原则、工厂模式、策略模式、适配器模式、代理模式等、门面模式
理解面向对象设计的一般原则;理解重用的意义;掌握常见的设计模式。
九、HTML/CSSHTML基本文档结构、掌握CSS基础语法、关于HTML文档块、链接、列表、表格、表单等
掌握
十、Ajax基础、XHR对象、Ajax设计模式、JSON技术
掌握Ajax的基本通信原理;掌握基于XML和JSON的Ajax数据规则。
十一、JavaScript框架JQuery、JQuery插件、DWR
掌握JQuery核心API;了解JQuery基本设计原则;了解多种JQuery插件;掌握DWR的基本原理及应用技巧。
十二、ssh三大框架的学习
这是企业实际应用的框架模型:
1,Struts216Struts2核心控制流程、Ognl、Action、Interceptor、,Result、FreeMarker、Struts2标记库、Struts2扩展、Struts2应用技巧(输入验证、消息国际化、文件上传和下载、防止重复提交等)。熟练掌握Struts2核心要件,特别是Interceptor和Result;掌握基于模板技术的Struts2UI组件;掌握基于Ognl的数据共享方式、掌握Struts2各种定制及扩展方式;熟练掌握基于Struts2的Web开发技巧。
2,Hibernate321ORM概念、Hibernate核心API、Hibernate实体映射技术、Hibernate关系映射技巧、HQL查询、OSCache及Hibernate缓存技术。重点掌握Hibernate多种关联映射技巧及其实用背景,做到在合适的时候使用合适的关联方式;掌握多种Hibernate查询技巧及优化技术。
3,Spring25SpringIoc基础、Ioc注入技巧、对象高级装配(自动装配、模板装配、组件扫描特性、FactoryBean、对象生命周期)、SpringAOP原理、AspectJ、SpringJDBC支持、Spring事务及安全管理;Spring整合Hibernate、Spring整合Struts、SpringMVC简介。深入理解Ioc和AOP的基本原理和实现方式;熟练掌握SpringIoc及AOP实现方式;熟练掌握Spring事务管理;熟练掌握Spring与其他组件的整合技术。
在进行服务器处理的过程中,需要保证数据的正确处理,那么最重要的就是使用不同的数据处理模式进行运算。在整个过程中,可能很多人对服务器的知识并不了解,那么应该如何进行Java开发服务器的线程处理呢,关于线程处理有哪些知识?下面昌平北大青鸟为大家介绍关键服务器线程处理的简单知识。
1、BIO线程模型
在JDK14中引入JavaNIO之前,所有基于Java的Socket通信都使用了同步阻塞模式(BIO)。这种请求-响应通信模型简化了上层的应用程序开发上,但在具有性能和可靠性的情况下,存在一个巨大的瓶颈。在一段时间里面,大型应用程序服务器主要是用C或C++开发的,因为它们可以直接使用 *** 作系统提供的异步I/O或AIO功能。
当流量增加且响应时间延迟增加时,JavaBIO开发的服务器软件只能通过硬件的不断扩展来满足并发性和低延迟的情况,这极大地增加了企业的成本和群集大小。系统的不断扩展,系统的可维护性也面临着巨大的挑战,只能通过购买性能更高的硬件服务器来解决问题,这将导致恶性循环的产生。
2、异步非阻塞线程模型
从JDK10到JDK13,Java的I/O类库非常原始。UNIX网络编程中的许多概念或接口未反映在I/O类库中,例如Pipe、Channel、Buffer和Selector等。在发布JDK14的时候,NIO正式发布JDK作为JSR-51。并且它还添加了一个javanio包,为异步I/O开发提供了许多API和库。
3、RPC性能三原则
影响RPC的性能主要有三大元素,其中主要为I/O模型、协议及线程。
I/O模型:使用什么样的通道传递给另一方,BIO,NIO或AIO发送数据,IO模型在很大程度上能够决定框架的性能。
协议:应该使用什么样的通信协议,Rest+JSON或基于TCP的专用二进制协议。参加电脑培训的过程中发现,协议的选择不同,性能模型也不同。内部专用二进制协议的性能通常可以比公共协议更好地设计。
线程:如何读取数据报?在执行读取后的编解码器的哪个线程中,如何分发编码消息,通信线程模型是不同的,并且对性能的影响也非常大。
自学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的目标是让部署容器化的应用简单并且高效。通过该板块的学习,你可以通过上述技术快速搭建环境,节省开发时间,提高开发效率。
技术树
十二、业务解决方案
虽然我们已经具备了基础技术和高阶技术,但是要想与企业开发相接轨,还需要对实际项目的业务解决方案进行探究。而此版块就是在实际业务场景中的真实解决方案集合,常用的业务解决方案有如下:搜索业务场景解决方案、日志收集与分析场景解决方案、工作流引擎场景解决方案、任务调度场景解决方案、地图开发平台场景解决方案、支付开放平台场景解决方案、图表可视化场景解决方案。通过分析实际业务来学习这个解决方案技术集,完全可以达到中级甚至高级工程师水平。
技术树
随着互联网的不断发展,无服务器应用编程开发成为了程序员学习的又一个发展方向,下面北大青鸟>
首先,我得说明的是,目前市场上新人很难去做pc游戏开发,要么是做页游要么是手游。
页游不清楚我就不说了,手游里面,客户端主要就是c2d和u3d。
如果你想做客户端,那么你可以转学u3d,因为它使用的语言是csharp,这个语言和java相似。网上unity的教程也很多,你随便找一下就有了。
再说说手游服务器,其实我入行服务器还是挺巧合的,当初本来是打算做客户端的,都入职了,因为招不到服务器,就让我转服务器了。。
服务器的教程,我至今也没找到,而且也找不到系统的教程。
开源的服务器框架也只熟悉kbengine和scut。其中一个是cpp做底层python做开发的,一个是csharp做开发。而且scut已经两年没有更新了,应该是死掉了。
所以,想要学服务器开发,得碰点运气。
java服务器目前主流框架技术有网络层netty或mina,数据协议protobuf,数据库mysql,缓存数据库redis,jdbc一般是mybaits或者jpa,项目管理maven,设计层面spring
然后还需要熟悉多线程,linux的基本 *** 作,git或者svn。
差不多了,这些都有个大致的了解,会用,应该就能找到工作了。
后面再深入需要学习的也挺多的,到时候你再根据业务需求自己琢磨着学吧。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)