「java原力计划详解」原力协议for
本篇文章给大家谈谈java原力计划详解,以及原力协议for对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、java职业路线规划,从基础语法学习开始到能完成一些大型项目
- 2、java程序员的季度工作计划怎么写?
- 3、Java程序员的职业规划是什么?
- 4、Java如何高效的学习?
- 5、一套完整的JAVA项目包括哪些部分?
- 6、如何学习JAVA
java职业路线规划,从基础语法学习开始到能完成一些大型项目
Java介绍
Java分为三个体系JavaSE(Java2 Platform Standard Edition,java平台标准版),JavaEE(Java 2 Platform,Enterprise Edition,java平台企业版),JavaME(Java 2 Platform Micro Edition,java平台微型版)。
* Java SE(Java Platform,Standard Edition)。Java SE 以前称为 J2SE。它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的 Java 应用程序。Java SE 包含了支持 Java Web 服务开发的类,并为 Java Platform,Enterprise Edition(Java EE)提供基础。
* Java EE(Java Platform,Enterprise Edition)。这个版本以前称为 J2EE。企业版本帮助开发和部署可移植、健壮、可伸缩且安全的服务器端 Java 应用程序。Java EE 是在 Java SE 的基础上构建的,它提供 Web 服务、组件模型、管理和通信 API,可以用来实现企业级的面向服务体系结构(service-oriented architecture,SOA)和 Web 2.0 应用程序。
* Java ME(Java Platform,Micro Edition)。这个版本以前称为 J2ME。Java ME 为在移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一个健壮且灵活的环境。Java ME 包括灵活的用户界面、健壮的安全模型、许多内置的网络协议以及对可以动态下载的连网和离线应用程序的丰富支持。基于 Java ME 规范的应用程序只需编写一次,就可以用于许多设备,而且可以利用每个设备的本机功能。
J2SE就是做那种桌面安装程序样的,像QQ,WORD那种应用程序。
J2EE 就是做基于Internet的应用程序,像选课系统,企业网站,银行系统之类的。
J2ME就是做嵌入式系统开发的,像手机游戏之类的,像现在流行的Android操作系统。
为了让大家能够更快的加入到做项目的队伍,工作室特制定以下培训计划。我们java组现在主要是沿着J2EE这条路线走,主要是这方面项目目前比较多。
一.培训阶段的划分
1. 学习java基础(包括基本语法,面向对象的思想的一些特性,IO,集合框架,jdbc)
2. 学习网页的基础知识(包括html,css,javascript),这些是做好界面的必备知识。
3. 学习javaweb的基础知识(包括jsp,servlet,javabean,MVC,JSTL,EL表达式)
4. 学会使用ssh框架(struts.,hibernate,spring)
二.培训阶段的要求
1.Java基础
1. 大体了解java的运行原理,安装java虚拟机(java虚拟编绎与运行)
2. 熟练掌握java语言基本语法(这个和c语言里面的差不多)
3. 熟练掌握面向对象编程的思想及面向对象的一些基本概念(类,对象,接口,继承,重载,覆盖)
4. 熟练掌握输入输出流(流的概念,文件的读写,终端输入)
5. 熟练掌握集合框架(List,Set,Map)
6. 熟练掌握JDBC连接数据库(sqlserver2000,mysql数据库的使用及连接)
7. 熟练掌握API的使用,熟悉常用类库的使用。
8. 能够编写简单的图形界面程序
这个阶段是j2se的基础知识,特别是面向对象的知识的掌握,类和对象的概念,接口,继承,重载,覆盖,掌握基本的输入输出,然后就是集合框架,List,Set,Map的使用,因为这些在以后的数据库操作中经常将查询结果放在里面,最后就是用jdbc连接数据库,也许之前学过的一些理论都感觉没兴趣,但学了数据库的连接之后,兴趣就来了,因为这是第一次写程序操作数据库。
这个阶段培养人的最大能力就是要勤查API文档,要多去百度,要多向别人请教。
2. 静态网页的制作
1.了解网页的基本知识
2.会写基本的html语言,能够看懂别人写的html
3.会使用表单
4.使用javascript进行客户端验证
这个阶段要掌握一些静态网页的基本知识,学会动手做静态网页。学会用css控制
页面,学会用javascript来进行表单的验证。
3. javaweb基础
1. 搭建开发环境
安装Tomcat,并配置虚拟目录
安装Eclipse,并安装MyEclipse插件
作用MyEclipse新建项目,整合Tomcat服务器,部署项目
2. Jsp的基础语法
了解JSP基本特点
理解JSP的运行机制
熟练使用JSP声明语句
熟练使用JSP Scriptlets
熟练使用JSP表达式
3. JSP指令元素
了解Page,include,taglib指令的使用
了解jsp:forwardjsp:includejsp:paramjsp:params
4. JSP内置对象(9个)
熟练使用JSP内置对象保存属性
熟练JSP属性保存的四个范围(page,request,session,application)
熟练使用request,session对象取得参数值,了解其他各对象常用的方法
5. JavaBean
熟练掌握定义JavaBean,调用JavaBean,设置并获得JavaBean属性,设置JavaBean的范围,移除JavaBean
6. EL表达式
熟练掌握使用EL运算符
熟练掌握EL内置对象
熟练掌握EL存取
7. JSTL标签库
JSTL核心标签库,数据库标签库,I18N格式化标签库,XML标签库和JSTL函数标签库
熟练掌握通过JSTL核心标签库定义变量,输出变量,移除变量
熟练掌握通过数据库标签库完成数据库操作
熟练掌握XML标签库完成 XML文件操作
熟练掌握I18N标签库完成国际化操作
熟练掌握通过JSTL函数标签库完成常用函数操作
8. Servlet开发
熟练掌握如何定义Servlet
理解Servlet的生命周期
熟练掌握HttpServlet的常用方法
熟练掌握使用Servlet的接口
9. Filter开发
熟练掌握如何定义并配置Filter
理解Filter的生命周期
熟练掌握如何添加非法文字过滤器,字符编码过滤器,登录验证过滤器
10. Listener开发
熟练掌握如何定义并配置Listener
熟练掌握 ServletContextListener,ServletContextAttributeListener,HttpSessionListener,
HttpSessionAtrributeListener接口的实现和作用
11. Dao设计模式
了解什么是Dao设计模式以及其特点
熟练掌握如何定义数据库连接类
熟练掌握如何定义Vo类
熟练掌握如何定义Dao接口,Dao类以及Dao工厂类
熟练掌握如何使用Dao实现数据库操作
12. MVC设计模式
了解什么是MVV设计模式
了解Model1和Model2的区别以及优缺点
熟练掌握如何定义视图,模型,控制器部分,用MVC进行开发
这个阶段才是真正的接触了javaweb的知识,要会用javaweb进行动态网页的开发,
这个阶段完成后,就能做一些应用系统的开发了,javaweb也基本上学完了,后面基本上都是些别人根据基础知识做好的框架或组件,我们只要拿来用就行。
4 . ssh框架
1 Struts2基础
了解如何下载并安装Struts2 框架
了解Struts2运行原理
熟练掌握如何新建控制器
熟练掌握如何配置控制器
了解实现Action接口的优点
熟练掌握通过Struts2标签库简化表单
熟练掌握通过继承ActionSupport完成输入校验
熟练掌握页面国际化以及校验错误信息国际化
2 Struts2高级开发
熟练使用Struts2内建的类型转换器
理解服务器端校验的重要性
熟练使用addFieldError来添加校验错误信息
熟练使用struts2校验框架完成输入校验
3 Hibernate持久化
了解什么是ORM映射以及特点
熟练掌握配置Hibernate配置文件
熟练掌握创建持久化类
熟练掌握创建关系映射文件
熟练掌握通过Hibernate框架进行数据库操作
4 Struts2整合Hibernate开发
熟练掌握持久层设计
熟练掌握业务逻辑层设计
熟练掌握struts2 整合hibernate 开发
5 Spring开发
熟练掌握Spring的依赖注入
熟练掌握Spring的自动装配
熟练掌握Spring面向切面编程
框架的发现,提高了软件开发的速度,增强了软件开发的规范性,使人们都按照某一种模式,一种规范去进行开发。这个阶段我们要做的就是学会使用这些框架来进行开发,了解框架的原理,当然有能力的话,根据它的原理,我们可以试着看下它的源码,自己试着写框架。
三.各阶段所要掌握的工具
1.Java基础
1.会用记事本(或EditPlus)编写java程序,在DOS下进行编绎与运行。(初级阶段)
2.会用JCreator编写,编绎,运行。(中级阶段)
3.会用Eclipse,JBuilder,NetBeans其中之一集成开发环境(高级阶段,推荐使用Eclipse)
4.会安装并使用Navicate(mysql的界面环境),sqlserver2000。(数据库)
2. 静态网页的制作
1. 会用记事本(或EditPlus)编写Html语言
2. 会用Dreamweaver进行编写Html语言
3.Fireworks切图
4.Photoshop图片处理
3. javaweb开发
1.Tomcat使用(javaweb服务器)
2.MyEclipse (javaweb开发)
3.JUit单元测试工具
4.PowerDesigner数据库设计工具
5.CVS版本控制工具
6. Rose ,visio UML建模工具
四.各阶段所要掌握的知识点
1.Java基础
(基本要求)
1. 了解Java语言的特征,掌握JDK(Java开发工具包)的安装、目录层次、
环境变量配置,Java程序的实现过程
2.Java语言基础
a). 数据类型:
8种基本类型:byte,char,short,int,long,float,double,boolean
引用类型: 数组, 类,接口
b).结构化语句: if,if--else ,if--else if ,switch--case,while,do--while,for
c).数组
int num[]={1,2,3,4,5}; == int []num={1,2,3,4,5};
3.面向对象的基础
a).类:具有相同属性和行为的一组对象的集合
b).对象:客观存在的或可被描述的抽象对象,具有特定属性和行为的实体。
c).类是对象的模板(原型),对象是类的具体实例
d).抽象、封装、继承,多态(重载,重写,接口多实现)
e).构造方法(默认构造器/参数化构造器)
f).限制访问修饰符: private,缺省(默认),protected,public
g).附加修饰符:final,static,abstract
h).接口
4.Java 基础包
a). java.lang :
包装类(Byte,Character,Short,Integer,Long,Float,Double,Boolean)
其它类:String,StringBuffer,Math,Class,Object
b). java.util
随机类:Random
日期类:Date,Calender
集合框架体系:Collection,List,Set,ArrayList,LinkedList,Vector,HashMap
c). java.io
文件类:File
字节流:FileInputStream,FileOutputStream
字符流:FileReader,FileWriter,BufferedReader,BufferedWriter
二进制流:(了解) DataInputStream,DataOutputStream
构造键盘流:BufferedReader input=
new BufferedReader(new InputStreamReader(System.in));
d). java.swt /javax.swing 了解java图形界面及事件响应机制
容器类组件:JFrame,JPanel,JScrollPane
组件: JLabel,JTextField,JPasswordField,JTextArea,JComboBox,
JRadioButton,JCheckBox,JMenuBar,JMenu,JMenuItem
5.JDBC 数据库连接
数据库的连接步骤:
1). 加载数据库驱动类: Class.forName(driver)
2). 通过驱动程序管理器获取连接: DriverManager.getConnection(url,user,password)
3). 基于连接对象建立处理器对象/预处理器对象
Statement stmt=conn.createStatement();
PreparedStatement stmt=conn.prepareStatement("insert into student values(?,?,?,?,?)");
4). 处理器执行SQL命令(Select/Insert/Update/Delete)
executeQuery(Select)
==返回查询的结果集(ResultSet, ResultSet.getXXX(列编号,从1开始))
executeUpdate(Insert/Update/Delete) ==返回执行命令影响的记录行(int)
5). 关闭各个对象
(高级要求,可以暂时不用掌握)
1. java内存管理(垃圾收集及对象引用的内存分析)
2. 栈和堆的区别(变量比较复制,引用传递和值传递)
3. 异常处理机制(异常的原量,异常程序流程)
4. 网络通信(TCP和UDP开发)开发
5. Java多线程开发
6. Applet,JavaWebStart.SWT,JavaFX
7. 数据库存取(事务存取,SavePoint)
8. 分布式计算(RMI,CORBA)
9. java本地调用(JNI原理,调用c程序,调用Delphi)
10. 反射机制(Annotation,动态代理)
11. Java动态编程(Compiler API,Instrumentation,Javassist,ClassEditor)
12. JMX资源管理容器
13. XML开发(DOM,DOM4J,SAX,JDOM)
14. LOG4J日志开发
15. 定时任务,日程工具Timer,Quartz
16. ZIP工具包
17. Excel文档存取工具POI
18. UML建模
19. 设计模式
2. 静态网页的制作
(基本要求)
1. 会写简单的HTML,并且能看懂一些正规网页(多级标题的运应。列表标记(序和无序标记)超链接标记,图像标记,表格标记,多媒体标记,表单标记
)
2. 用javascript做些简单的表单验证
3. 用css做排版
4. 会用Dreamweaver做简单的网页
(高级要求)以后从事界面开发的人,可以多下点工夫
1. 能够熟练用Dreamweaver制作网页
2. 能够熟练使用Photoshop进行图片处理
3. 能够熟练用Fireworks对图片进行切割
4. 能够熟练使用javascript做一些特效
5. 能够熟练使用DIV+CSS进行排版
3. javaweb开发
(基本要求)
1. WEB的两个发展阶段:静态,动态
2. 动态WEB的主要实现手段及区别
3. Tomcat的主要作用及配置
4. 开发一个简单的交互式程序
5. MyEclipse开发工具的使用
6. 在MyEclipse中使用Tomcat服务器
7. JSP中的三种注释
8. 三种SCriptlet及其区别
9. Page指令,包含指令
10. Jsp连接数据库
11. 两个include以及forward语句
12. 了解九个内置对象的定义
13. 掌握JAVAWEB中的四种属性范围
14. 掌握pageContext对象的使用
15. 掌握request,response,session,application四种内置对象及属性的设置
16. Javabean的主要作用,定义及使用,四种保存范围
17. 掌握Smartupload组件的作用,上传文件,为上传文件重命名
18. Dao数据库操作
19. MVC模式
20. Servlet
21. EL
22. JSTL
(高级要求,可以暂时不用掌握)
1. Filter
2. Listener
3. 报表的处理(JFreeChat)
4. 邮件收发(JavaMail)
5. 分页技术
6. Ajax
7. JSF
8. Freemarker
4.ssh框架学习
1.Struts(基本要求)
1. 了解struts2 框架的思想,MVC实现
2. 在Eclipse中开发struts2
3. Struts2 的基本流程
4. Struts2的基本配置(web.xml,struts.xml.struts.properties,struts.xml)
5. Struts2的Action(实现Action类,Action访问Servlet API,配置Action,动态方法调用,使用通配符,默认Action)
6. Struts2的处理结果(配置结果,Struts2支持的处理结果类型,redirect,chain)
7. Struts2的属性驱动与模型驱动
8. Struts2的类型转换器
Struts(高级要求)
1. Struts2的文件上传下载
2. Struts2的拦截器
3. Struts2的输入校验
4. Struts2的国际化
5. Struts2的标签库
6. Struts2的Ajax
7. 整合JSF
8. 整合JFreeChart
五.各阶段任务
1.Java基础
1. 安装配置java运行环境JDK,了解java程序的运行机理,用记事本写个HelloWorld程序,并在命令行操作。
2. 用java写个对数组降序排列程序(数组最好可以自己输入);在后面抄一个有图形的界面的程序(像画图的,有菜单的之类的),自己试着运行下(相信大家看到图形后会有惊喜的)。
3. 安装JCreator,用JCreator写个执行单步的计算器(不要求界面)。如输入3+5 输出8
4. 了解类,面向对象,继承,接口的相关概念,会编写一定的基础程序。
(1)定义一个接口,里面有方法ShowS(),ShowC()
(2)编写一个正方形类,实现了上面的接口,其中包含边长A,面积S和周长C,编写方法ShowS()和ShowC()分别输出正方形的面积和周长。(测试数据:A=5)
(3)编写一个长方体类继承自正方形类,长为A宽为B,重写方法ShowS()和ShowC()分别输出长方形的面积和周长。(测试数据:A=3,B=5)
(4)编写测试类来测试以上两个类。
5. 学会查API文档(这是必备的,因为类库非常多,要记是不可能的,记得常用的就行,另外就是要勤查文档),实现下面的接口。
要求:涉及到具体时间的标准格式格式一般为:yyyy-MM-dd HH:mm:ss
测试类可以自己写。
public interface TimeInterface {
// 计算当月最后一天,返回字符串
public String getDefaultDay();
// 获得本周星期日的日期
public String getCurrentWeekday();
// 获取当天时间
public String getNowTime(String dateformat);
// 获得上周星期日的日期
public String getPreviousWeekSunday();
// 获得下个月最后一天的日期
public String getNextMonthEnd();
// 获得明年最后一天的日期
public String getNextYearEnd();
/**
* 是否闰年,参数要求由键盘输入
*
* @param year
* 年
* @return
*/
public boolean isLeapYear(int year);
}
6. 安装Eclipse,会用Eclipse编写程序,编写图形界面程序,能够对事件响应有很好的了解。编写一个记事本,能够对字体大小,字体形状,字体颜色进行控制,能够复制粘贴。(多查API文档)
7. 编写图形界面的计算器,能够实现简单的加减乘除运算,乘立方法算。
8. 安装sqlserver2000数据库,了解数据库基本知识,能够用查询分析器进行简单的增删改查。
9. 能够用JDBC连接数据库,将登录注册程序连接上数据库。
2. 静态网页的制作
1. 学会用html语言做静态网页。做一个介绍自己的网站(要求:代码手写,有以下标签:多级标题,列表,超链接,图像,表格,多媒体,表单)
2. 对介绍自己的网站的布局用css ,div控制完成
3. 用javascript对自己的网站进行表单验证。
4. javaweb开发
1. 安装Tomcat和MyEclipse,配置环境,了解jsp的运行原理。
2. 学习jsp的基本语法,会用四种内置对象,能够实现表单的提交,页面的跳转,做个登录注册程序,不要求连接数据库。
3. 用jsp对介绍自己的网站进行更改,要求能够,实现表单的提交,页面的参数传递和连接数据库对自己信息进行更改。
4. 了解Servlet的运行原理,配置Servlet,利用Servlet做一个登录注册程序。
5. 学习javabean,对登录注册用Servlet+javaBean+jsp实现
6. 用el表达式,对登录注册程序用EL表达式实现
7. 用JSTL表达式,对登录注岫程序用JSTL表达式实现
4.ssh框架学习
java程序员的季度工作计划怎么写?
新的一年意味之新的起点新的机遇和新的挑战,也是我非常重要的一年。我是二零一四年的十一月份来到公司的。在我来到公司上班的这一个多月以来,我着手开始做宜家宜项目到现在,不仅让我学会了很多技术上的问题,而且让我学会了很多生活上的事情。第一季度的工作有以下计划:
就目前宜家宜项目还处于开发阶段,其中好多的功能和接口都还没有实现,手机端,WEB端界面也没有明确的统一确定。离真正的完成还有很大一段的距离,所以我计划在2014年年底项目测试版完成的前提下,在新的一年第一季度里完善其软件的功能和优化。接口的完善、二级以及多级界面的完善、调试和增加新的功能模块,解决软件当中出现的BUG,努力实现能让软件完全可用。为了能让项目在新年的第一季度能够更加高效有力的完成,我把工作任务分步计划实施。
首先做好一级界面和二级界面的优化和功能跳转实现。 其次完成新增页面和功能的融合和运行。 添加新的接口。 实现首页面附属业务的功能以及美化。 调试软件中出现的大小BUG。
具体的范文模板
链接:
?pwd=cpb8 提取码: cpb8
Java程序员的职业规划是什么?
如果你是在校学生,务必要在学好基础(比如计算机系统、算法、编译原理等等)的前提下,再考虑去进行下面的学习。第一部分:对于尚未做过Java工作的同学,包括一些在校生以及刚准备转行Java的同学。
一、Java基础首先去找一个Java的基础教程学一下,这里可以推荐一个地址,或者你也可以参照这个地址上去找相应的视频。学习Java基础的时候,应该尽量多动手,很多时候,你想当然的事情,等你写出来运行一下,你就会发现不是这么回事儿,不信你就试试。学完以上内容以后,你应该对Java有一个基本的了解了,你可以用Java语言写出一些简单的程序,并且你用的是最简单的编辑器,比如记事本。这个时候,不要急于进入下一部分,留下几天好好写一些程序,尽可能熟悉这些基础内容。
二、Web开发等你写上几天程序以后,你往往会比较迷茫,因为你写的东西似乎看起来毫无用处,比如实现一个简单的计算器,读取一个文件等。这个时候你就应该去学着写一些让你觉得有意思的东西了,所以你应该学习更多的知识。这些内容主要是Web开发相关的内容,包括HTML/CSS/JS(前端页面)、Servlet/JSP(J2EE)以及Mysql(数据库)相关的知识。它们的学习顺序应该是从前到后,因此最先学习的应该是HTML/CSS/JS(前端页面),这部分内容你可以去上面的那个runoob网站上找。
你可以试着自己写一些页面,当然,你可以尽你最大的努力让它变得最漂亮。这部分内容对于后端Java来说,理论上不是特别重要,但至少要达到可以自己写出一些简单页面的水平。接下来,你需要学习的是Servlet/JSP(J2EE)部分,这部分是Java后端开发必须非常精通的部分,因此这部分是这三部分中最需要花精力的,而且这个时候,你要学会使用开发工具,而不能再使用记事本了,可以选择eclipse。当你下载安装好eclipse以后,请视频中的教程一步一步去学习,一定要多动手。关于Servlet/Jsp部分视频的选择,业界比较认可马士兵的视频,因此推荐给大家。
当然了,我本人并没有看过他的视频,所以不好说的太绝对,如果大家自己有更好的选择,可以坚持自己的,不要被我干扰。原本我也是打算出教学视频的,但是由于时间问题,还是决定放弃了。但是如果你看视频的过程中遇到了问题,欢迎来我的交流群提问,或者去斗鱼观看我的直播提出你的问题,直播地址和群号都在我的个人博客左侧。最后一步,你需要学会使用数据库,mysql是个不错的入门选择,而且Java领域里主流的关系型数据库就是mysql。这部分一般在你学习Servlet/Jsp的时候,就会接触到的,其中的JDBC部分就是数据库相关的部分。你不仅要学会使用JDBC操作数据库,还要学会使用数据库客户端工具,比如navicat,sqlyog,二选一即可。
三、开发框架当你学会以上内容以后,这个时候你还不足以参加工作,你还需要继续深造。公司里为了提高开发的效率,会使用一些Java Web框架,因此你还需要学习一些开发框架。目前比较主流的是SSM框架,即spring、springmvc、mybatis。你需要学会这三个框架的搭建,并用它们做出一个简单的增删改查的Web项目。你可以不理解那些配置都是什么含义,以及为什么要这么做,这些留着后面你去了解。
但你一定要可以快速的利用它们三个搭建出一个Web框架,你可以记录下你第一次搭建的过程,相信我,你一定会用到的。还要提一句的是,你在搭建SSM的过程中,可能会经常接触到一个叫maven的工具。这个工具也是你以后工作当中几乎是必须要使用的工具,所以你在搭建SSM的过程中,也可以顺便了解一下maven的知识。在你目前这个阶段,你只需要在网络上了解一下maven基本的使用方法即可,一些高端的用法随着你工作经验的增加,会逐渐接触到的。
关于学习SSM框架的地址给大家推荐一个,这里面有视频,大家可以去观看。四、找工作当你完成开发框架的学习以后,你就该找工作了,在校的找实习,毕业的找全职。与此同时,在找工作的同时,你不应该停下你的学习,准确的说,是你在以后都不能停下学习。上面这些内容你只是囫囵吞枣的学会了使用,你可以逐步尝试着去了解更多的东西,网络是你最重要的老师。
第二部分:对于参加工作一年以内的同学。恭喜你,这个时候,你已经拥有了一份Java的工作。这个阶段是你成长极快的阶段,而且你可能会经常加班。但是加班不代表你就可以松懈了,永远记得我说的那句话,从你入行那一刻起,你就要不停的学习。在这一年里,你至少需要看完《Java编程思想》这本书。这本书的内容是帮助你对于Java有一个更加深入的了解,是Java基础的升级版。这本书很厚,当初看这本书,我花了整整三个月。正常速度的话,应该可以在半年左右看完。我这里不要求过高,只要你在一年以内把这本书看完即可。当然了,我所说的看完,是充分吸收,而不是读一遍就完事了,因此有些内容你可能会看不止一遍。总而言之,这个阶段的核心学习思想就是,在工作中实践,并且更加深入的了解Java基础。
第二部分:对于参加工作1年到2年的同学。这部分时间段的同学,已经对Java有了一个更加深入的了解。但是对于面向对象的体会可能还不够深刻,编程的时候还停留在完成功能的层次,很少会去考虑设计的问题。于是这个时候,设计模式就来了。我当时看的是《大话设计模式》这本书,并且写了完整版的设计模式博客。因此,我要求大家,最多在你工作一年的时候,必须开始写博客,而设计模式就是你博客的开端。
请记住,我所提的基本都是最低要求,因此不要有任何松懈的心理,否则五年后,你不要去羡慕别人高于你的工资,也不要去羡慕别人进入了某公司。这一年,你必须对于设计模式了如指掌,《大话设计模式》可以作为你的开端。此外,设计模式并不是你这一年唯一的任务,你还需要看一些关于代码编写优化的书。比如《重构 改善既有代码的设计》,《effective java》。总而言之,这个阶段,你的核心任务就是提高你的代码能力,要能写出一手优雅的代码。
第三部分:对于参加工作2年到3年的同学有的同学在这个时候觉得自己已经很牛逼了,于是忍不住开始慢慢松懈。请记住,你还嫩的多。这个阶段,有一本书是你必须看的,它叫做《深入理解Java虚拟机》。这本书绝对是Java开发者最重要的书,没有之一。在我眼里,这本书的重要性还要高于《Java编程思想》。这本书的内容是帮助你全面的了解Java虚拟机,在这个阶段,你一定已经知道Java是运行在JVM之上的。所以,对于JVM,你没有任何理由不了解它。
另外,在过去2年的工作当中,你肯定或多或少接触过并发。这个时候,你应该去更加深入的了解并发相关的知识,而这部分内容,我比较推荐《Java并发编程实战》这本书。只要你把这本书啃下来了,并发的部分基本已经了解了十之六七。与此同时,这个阶段你要做的事情还远不止如此。这个时候,你应该对于你所使用的框架应该有了更深入的了解,对于Java的类库也有了更深入的了解。
因此,你需要去看一些JDK中的类的源码,也包括你所使用的框架的源码。这些源码能看懂的前提是,你必须对设计模式非常了解。否则的话,你看源码的过程中,永远会有这样那样的疑问,这段代码为什么要这么写?为什么要定义这个接口,它看起来好像很多余?由此也可以看出,这些学习的过程是环环相扣的,如果你任何一个阶段拉下来了,那么你就真的跟不上了,或者说是一步慢步步慢。而且我很负责的告诉你,我在这个阶段的时候,所学习的东西远多于这里所罗列出来的。
因此千万不要觉得你已经学的很多了,我所说的这些都只是最低要求,不光是我,很多人在这个时间段所学习的内容都远超本文的范围。如果你不能跟上节奏的话,若干年后,如果不是程序猿市场还不错的话,你很可能不仅仅是工资比别人低,公司没别人好,而是根本就找不到工作。总而言之,这个阶段,你需要做的是深入了解Java底层和Java类库(比如并发那本书就是Java并发包java.concurrent的内容),也就是JVM和JDK的相关内容。而且还要更深入的去了解你所使用的框架,方式比较推荐看源码或者看官方文档。另外,还有一种学习的方式,在2年这个阶段,也应该启用了,那就是造轮子。不要听信那套“不要重复造轮子”的论调,那是公司为了节省时间成本编造出来的。重复造轮子或许对别人没有价值,因为你造的轮子可能早就有了,而且一般情况下你造出来的轮子还没有现存的好。
但是对别人没有价值,不代表对你自己没有价值。一个造轮子的过程,是一个从无到有的过程。这个过程可以对你进行系统的锻炼,它不仅考察你的编码能力,还考察你的框架设计能力,你需要让你的轮子拥有足够好的扩展性、健壮性。而且在造轮子的过程中,你会遇到各种各样的难题,这些难题往往又是你学习的契机。当你把轮子造好的时候,你一定会发现,其实你自己收获了很多。所以,这个阶段,除了上面提到的了解JVM、JDK和框架源码以外,也请你根据别人优秀的源码,去造一个任何你能够想象出来的轮子。
第四部分:参加工作3年到4年的同学这个阶段的同学,提升已经是很难了,而且这个阶段的学习往往会比较多样化。因为在前3年的过程中,你肯定或多或少接触过一些其它的技术,比如大数据、分布式缓存、分布式消息服务、分布式计算、软负载均衡等等。这些技术,你能精通任何一项,都将是你未来面试时巨大的优势,因此如果你对某一项技术感兴趣的话,
这个时候可以深入去研究一下。这项技术不一定是你工作所用到的,但一定是相关的。而且在研究一门新技术时,切忌朝三暮四。有的同学今天去整整大数据,搞搞Hadoop、hbase一类的东西。过不了一段时间,就觉得没意思,又去研究分布式缓存,比如redis。然后又过不了一段时间,又去研究分布式计算,比如整整Mapreduce或者storm。结果到最后,搞得自己好像什么都会一样,在简历上大言不惭的写上大数据、分布式缓存、分布式计算都了解,其实任何一个都只是浮于表面。到时候面试官随便一问,就把你给识破了。
一定要记住,作为一个程序猿,平日里所接触的技术可能会很多,但是想要让一门技术成为你的优势,那么一定是你对这门技术的了解强过绝大多数人才行。因此在这个阶段,你就不能再简单的去学习前3年的内容了,虽然前面的学习如果还不够深入的话依旧要继续,但这个时候你应该更多的考虑建立你的优势,也可以称为差异性。差异性相信不难理解,就是让你自己变得与众不同。你前面三年的学习足够你成为一名基本合格的Java开发者,但你离成为一名优秀的Java开发者还有很大的距离。
所谓优秀,即能别人所不能。而你前三年所学习的内容,是很多做过几年的Java开发都能够掌握的。那么为了让自己有差异性,你就需要另辟蹊径,找一个方向深入研究下去,以期在将来,你能够成为这个领域的专家,比如分布式计算领域的专家,大数据领域的专家,并发领域的专家等等。此外,你除了建立你的差异性之外,还要去弥补你基础上的不足,直到现在,我都没有提及基础知识。原因是基础是很枯燥无味的,学的太早不仅容易懵逼,而且懵逼的同时还容易产生心理阴影,以至于以后再不想去研究这些基础。但基础又是你深入研究一些领域时所必须掌握的,比如你去研究分布式计算,你不懂算法你玩个毛毛?比如你去做分布式缓存,你对计算机系统的内存不了解,你如何去做缓存?
如果你的基础本来就非常强,那么恭喜你,相信你在之前的工作中已经充分体会到了这些基础对你的帮助。但我相信大部分人的基础都很薄弱,哪怕是科班毕业的人,很多人也不敢说自己当初的基础学的多么强大,比如算法、计算机系统原理、编译原理这些。但是每个人时间都是有限的,而且这些基础的书籍每一本读下来,没个一年半载的,还真拿不下来,因此还是要有所抉择的。虽然艺多不压身,但问题是艺多是有代价的,是需要你付出时间和精力的,而我个人更赞成在同等代价的情况下获取最大的收获。
首先,我比较推崇的基础书籍有三本,分别是《深入理解计算机系统》,《tcp/ip详解 卷一、二、三》,《数据结构与算法》。其中TCP/IP有三本书,但我们这里把这三本看成是一本大书。这三本分别适合三种人,《深入理解计算机系统》比较适合一直从事Java Web开发和APP后端开发工作的人群。《tcp/ip详解 卷一、二、三》比较适合做网络编程的人群,比如你使用netty去开发的话,那么就要对TCP/IP有更深入的了解。而《数据结构与算法》这本书,则比较适合做计算研究工作的人,比如刚才提到的分布式计算。另外,我要强调的是,这里所说的适合,并不是其它两本对你就没有用。比如你做Java Web和APP后端开发,《tcp/ip详解 卷一、二、三》这本书对你的作用也是很大的。这里只是分出个主次关系而已,你要是时间足够的话,能把三本都精读那当然最好不过了。
但如果时间有限的话,那么就先挑对你帮助最大的书去读。理论上来讲,这一年你能把这三本其中一本精读下来,就已经非常厉害了。有了基础,有了前面的工作经验,你就可以去开拓属于你的领域了。在这一年里,一定要规划好自己的领域,建立好自己的优势,制造出差异性。如果你对自己的领域不够清晰的话,随着你工作的时间日益增多,你接触的技术会越来越多,这个时候,你很容易被淹死在技术的海洋里,看似接触的技术越来越多,会用的也越来越多,但你毫无优势。有的同学可能会问,“我,我也不知道我的领域是什么啊?怎么办呢?”对于这种人,我只想说,“卧槽,这还问我?要不干脆我替你学习得了,好不好?”
第五部分:参加工作4年到5年的同学经过前面一年的历练,相信你在自己所钻研的领域已经有了自己一定的见解,这个时候,技术上你应该已经遇到瓶颈了。这个时候不要着急提高自己的技术,已经是时候提高你的影响力了,你可以尝试去一些知名的公司去提高你的背景,你可以发表一些文章去影响更多的人。当然,你也可以去Github创建一个属于你的开源项目,去打造自己的产品。
这次的开源项目不同于之前的造轮子,你这个时候是真的要去尽量尝试造出来真正对别人有价值的轮子。技术学到这个阶段,很容易遇到瓶颈,而且往往达到一定程度后,你再深入下去的收效就真的微乎其微了,除非你是专门搞学术研究的。然而很可惜,大部分程序猿做不到这一步,那是科学家做的事情。这个时候提高影响力不仅仅是因为技术上容易遇到瓶颈,更多的是影响力可以给你创造更多的机会。程序猿在某种程度上和明星很像,一个好的电视剧和电影就可以成就一批明星,程序猿有的时候也是,一个好的项目就可以成就一群程序猿。比如国内几个脍炙人口的项目,像淘宝、支付宝、QQ、百度、微信等等。这每一个项目,都成就了一批程序猿。我敢说,这里面任何一个项目,如果你是它的核心开发,光是这样一个Title,就已经是你非常大的优势。更何况还不止如此,Title说到底也是个名头,更重要的是,这种项目在做的时候,对你的历练一定也是非常给力的。
而你如果想要参与这样的项目,除了靠运气之外,影响力也是很重要的一个手段。比如你在分布式计算领域有一定的影响力,那么如果有什么好的关于分布式计算的项目,对方就很可能会邀请你。就算人家不邀请你,你自己主动去面试的时候,对方如果知道你在这个领域的影响力,也肯定会起到很大的作用,而这个作用,甚至可能会超过你现在的技术能力。所以,在这个阶段,你最大的任务是提高自己的影响力,为自己未来的十年工作生涯那一天做准备。如果你能够靠你的影响力和以前积累的技术,参与到一个伟大的项目当中,那么你后面的五年也就有着落了。当然了,我现在满打满算,做程序猿也就4年半不到,因此关于4年到5年这一部分,我的见解不一定是对的,就算是对的,也不一定是适合任何人的。
所以,希望大家自己有的判断力,去决定到底该如何度过这一年。结语本文到此就基本结束了,整篇文章很长,但其实主要就说了两部分内容,一个是社招面试的准备,一个是Java生涯的学习。关于这两部分,我已经给出了自己的见解,但是还是那句话,每个人吸收知识的时候,都要有抽取精华,去除糟粕的能力。我所说的,可能有些是对的,有些是错的,有些是适合你的,有些是不太适合你的,你要自己能够判断。其实你在生活和工作当中也是一样的,你身边的人形形色色,有的人你喜欢,有的人你很讨厌。但其实你喜欢的人也有缺点,你讨厌的人也有优点。你要学会从你讨厌的人身上学会他的优点,千万不要一棒子打死,这只会让你失去很多学习成长的机会。好了,说了这么多了,就到此为止吧
Java如何高效的学习?
学习JAVA,首先要确认以下几件事情:
1.JAVA是什么?
2.JAVA是用来干什么的?
3.JAVA的知识体系由什么组成?
4.我学习的目的是什么?(不同的目的对应不同的投入时间、精力程度)
5.我的学习计划是什么?
1.JAVA是什么?
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。
2.JAVA用来干什么?
①搭建网站
Java可以用来搭建网站,实际上绝大多数大型网站都是用Java写的,想学习Java的同学可以多关注网站制作方面的内容,对面试比较有利。
②Android(安卓)APP
安卓系统基于Linux系统开发,源代码用的Java,所有的安卓系统(手机、平板)都是基于Java运行的,相对于系统,JAVA程序员花费更多时间开发APP,市场需求较大。
③电脑游戏
不止手机游戏(APP)大多数是JAVA写的,电脑上大多数游戏也是用Java来开发的,比如英雄联盟、比如绝地求生,都是JAVA写的。需要注意的是如果应聘这种大型游戏的研发岗,需要前期就有方向的进行深入学习。
④电脑软件
企业级应用开发,还有OA、邮箱、物流、医疗、投票、金融、考试、系统,Java都占有极为重要的地位。很多编程语言都是可以来写软件的。有一说一这一部分一般都是有实力的大公司承接,小公司接不到,如果没有入职譬如浪潮、京安利德这种公司,很难接到这种单子。
⑤Java服务器程序
服务器架设程序,绝大部分是使用的Java,用于编写前台和后台的电子交易系统,结算和确认系统,数据处理项目以及其他项目,和上一条一样,大公司能接到,一般的公司接不到这种单子。
⑥Java大数据技术
大数据处理技术中JAVA仍是非常重要的组成部分,也是当前最热的领域,虽然python势头很旺盛,但JAVA的地位仍是举足轻重的。
3.JAVA的知识体系由什么组成?
JAVA基础、数据库、前端、动态网页、软件项目、技术框架、分布式架构、服务器程序、容器
4.我的学习目的是什么?
不管是浅尝辄止的了解,还是准备深入学习后入职大厂,这个课程(免费)都值得你去学习,后续可以根据个人情况选择投入时间和精力。
【0元领课】超适合小白的Java高效学习路线!直播课+编码实现+辅导答疑
已失效
5.我的学习计划是什么?
这个问题的答案非常重要,你每天的投入时间、用多久学到什么程度都非常重要。
举例说明:小A是富土康的员工,每天8点上班,晚上8点下班,看不到职场晋升的希望,也看不到未来,想要通过学习JAVA来改变命运。
于是决定每天早起2小时,5:30起床学习JAVA,学到7:30,并按照自己的学习能力制定了月度计划,每个月学完哪个模块,如果未完成的利用周末时间补上……
如果决定学习一门新的课程,一定要列好计划,然后坚决的执行,最后祝愿大家都能够学有所成,拿到大厂offer,升职加薪走上人生巅峰。
一套完整的JAVA项目包括哪些部分?
1、项目启动
1)、项目组成立(公司成员、客户成员)
2)、制定项目预期目标
3)、制定项目计划周期
4)、建立好项目组成员沟通机制2、需求调研
1)、创建调研计划、协调调研时间
2)、收集客户资料,获取客户需求
所有的资料都需要保留一份,资料中存疑的需要及时询问
3)、编写需求文档
重点描述出客户的业务流程和性能要求。
采用Word、Excel、Rose等形式。
4)、需求变更记录
5)、确定开发环境和运行环境
6)、扩展性要求
7)、与旧系统的接驳要求。
8)、估算出项目工作量本阶段需要一套需求管理系统来进行需求的管理。 本阶段的需求文档也是用户测试的依据。3、系统设计/详细设计
一个系统可以分为基础平台和应用模块两部分。
1)、选择基础平台,无论是采用第三方平台还是自行开发平台,都需要深入了解,查看是否符合要求。
2)、应用模块设计(针对业务流程)
3)、中间件的采用或自行开发,需要深入了解。
4)、用户界面的设计
如果用户界面设计完毕并确认,即可初步写出用户使用手册、管理员使用手册。
5)、变更记录本阶段的系统设计是集成测试的依据。4、程序开发
创建开发任务计划表、开发计划日程表
1)、优先编写测试用例
2)、按照编码规范编写代码
3)、按照文档注释规范注释
以上形成开发文档。 本阶段需要一套版本管理系统。 本阶段的测试用例也是单元测试的依据。
如果能做到,最好每日构建。5、测试
本阶段需要一套Bug管理系统,形成需求、设计、开发、测试互动。1)、编写测试计划和测试方案
2)、功能测试
单元测试、集成测试
3)、性能测试
集成测试、压力测试如果能做到,最好能进行自动化测试。
如果能做到,做分析统计工作。最后形成测试报告。6、试用、培训、维护
本阶段需要解决:
1)、解决异地修改和公司修改的同步问题。
2)、用户测试中的Bug修改问题,按照级别分为
a)、程序Bug
b)、设计变更
c)、需求变更
尽量按照a b c的顺序来进行修改,尽量避免b、c级的修改。最后形成安装手册、维护记录。
如何学习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、独立自主完成一个中小型的企业级综合项目的设计和整体架构的原型和建模。独立自主完成一个大型的企业级综合项目,并具备商业价值
java原力计划详解的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于原力协议for、java原力计划详解的信息别忘了在本站进行查找喔。