A. 学习java软件工程师要具备什么条件
一、专业技能
1、熟练的使用、Socket、JDBC、XML、反射等。
2、熟悉基于jsP和Servlet的JavaWeb开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器、过滤器等Web组件以及MVC架构模式进行JavaWeb项目开发经验。
3、对Spring的IoC容器和AOP原理有深入了解,熟练的运用Spring框架管理各种Web组件及其依赖关系,熟练的使用Spring进行事务、日志、安全性等的管理,有使用SpringMVC作为表示层技术以及使用Spring提供的持久化支持进行Web项目开发的经验,熟悉Spring对其他框架的整合。
4、熟练的使用Hibernate、MyBatis等ORM框架,熟悉Hibernate和MyBatis的核心API,对Hibernate的关联映射、继承映射、组件映射、缓存机制、事务管理以及性能调优等有深入的理解。
5、熟练的使用HTML、CSS和和进行项目开发的经验。
6、熟悉常用的关系型数据库产品(MySQL、Oracle),熟练的使用SQL和PL/SQL进行数据库编程。
7、熟悉面向对象的设计原则,对GoF设计模式和企业应用架构模式有深入的了解和实际开发的相关经验,熟练的使用UML进行面向对象的分析和设计,有TDD(测试驱动开发)和DDD(领域驱动设计)的经验。
8、熟悉Apache、NginX、Tomcat、WildFly、Weblogic等Web服务器和应用服务器的使用,熟悉多种服务器整合、集群和负载均衡的配置。
9、熟练的使用产品原型工具Axure,熟练的使用设计建模工具PowerDesigner和EnterpriseArchitect,熟练的使用Java开发环境Eclipse和IntelliJ,熟练的使用前端开发环境WebStorm,熟练的使用软件版本控制工具SVN和Git,熟练的使用项目构建和管理工具Maven和Gradle。说明:上面罗列的这些东西并不是每一项你都要烂熟于心,根据企业招聘的具体要求可以做相应的有针对性的准备。但是前6项应该是最低要求,是作为一个Java软件工程师必须要具备的专业技能。
二、项目经验
项目介绍:本系统是X委托Y开发的用于Z的系统,系统包括A、B、C、D等模块。系统使用了Java企业级开发的开源框架E以及前端技术F。表示层运用了G架构,使用H作为视图I作为控制器并实现了REST风格的请求;业务逻辑层运用了J模式,并通过K实现事务、日志和安全性等功能,通过L实现缓存服务;持久层使用了M封装CRUD操作,底层使用N实现数据存取。整个项目采用了P开发模型。
说明:
E通常指Spring;
F最有可能是jQuery库及其插件或者是Bootstrap框架,当然如果要构建单页应用(SPA)最佳的方案是前端MVC框架(如AngularJS)和,最有可能的实现框架是SpringMVC,除此之外还有Struts2、JSF以及Apache为JSF提供的MyFaces实现。
H是JSP,JSP作为MVC中的V,也可使用模板引擎(如Freemarker和Velocity)来生成视图
还可以是各种文档或报表(如Excel和PDF等)。
I是Servlet或者自定义的控制器,他们是MVC中的C,当然SpringMVC中提供了作为前端控制器的DispatcherServlet;
J通常是事务脚本,
K应该是AOP(面向切面编程)技术,
L目前广泛使用的有memcached和Redis;
M的选择方案很多,最有可能的是Hibernate和MyBatis,也可以两种技术同时运用,但通常是将增删改交给Hibernate来处理,而复杂的查询则由MyBatis完成,此外TopLink、jOOQ也是优秀的持久层解决方案;
N底层的数据存取传统上是使用关系型数据库,可以是MySQL、Oracle、SQLServer、DB2等,随着大数据时代的来临,也可以采用NoSQL(如MongoDB、MemBase、BigTable等)和其他大数据存取方案(如GFS、HDFS等);
P是项目的开发模型,可以是瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型、RAD模型等。
B. java中如何自动定位
自动定位需要特定的api,比如网络等。
在需要的地方调用第三方提供的api调用定位相关代码就好。
C. 应该怎样学习JAVA顺序是什么
Java环境搭建、Java流程控制语句-for循环、switch选择判断、循环嵌套、数组拷贝、多维数组、final关键字、构造函数的调用、类的访问权限和路径、面向对象高级特性、Java异常处理、Set,Map,List接口及接口实现类、Java线程、同步阻塞、JavaIO流、文件的操作,复制,读写,删除等。
MySQL安装、管理、创建数据库、MySQLUPDATE 查询、Mysql高级操作、JDBC、JDBC数据库连接操作,JDBC动态Sql处理、Servlet3.0 网页重定向、Servlet3.0 新增的注解支持、AJAX、responseText属性详解等。
Struts2异常处理、Struts2+Log4j集成、Struts2和JSON实例、Hibernate5、Hibernate集合映射、Hibernate组件映射、Spring4.0、SpringAOP+ AspectJ框架、Spring 与其它Web框架集成、Spring Hibernate支持等。
SpringMVC、Spring MVC生成JSON数据、MyBatis、MyBatis 环境配置及入门、Mybatis set标签、Mybatis trim标签、Shiro、Shiro快速入门教程、Shiro Web应用等。
SpringBoot、全局异常处理、过滤器监听器、EHCache缓存、SpringBoot Quartz定时任务、Vue、Vue.js 安装、模板语法、计算属性、事件处理器、Vue.js 自定义指令、Vue.js 路由等
ActiveM环境搭建、生产者和消费者、消息持久化操作、RSA数字加密算法、Codebar条形码生成器、zxing二维码生成器、HighCharts统计图、Echarts统计图、网络播放器ckplayer、嵌入式网络播放器,可以浏览器和移动端随意使用
分布式服务框架的理解,Dubbo架构设计详解及其核心要点,框架运行原理分析、SpringData数据访问、Lucene搜索引擎、Lucene的全文搜索服务器介绍、索引建立方式、Solr海量数据搜索引擎、Socket网络通信、实现RMI远程对象通讯、使用JMS消息服务、Kafka分布式消息系统、WebService与RestfulWS等
Spring Security安全框架、实现Web应用安全控制、缓存应用与EhCache框架、OSCache与JBossCache框架、MyBatis与Hibernate缓存机制、NoSQL应用与SQL调优、MongoDB
NoSQL数据库、Redis内存数据库、实现RedisSession共享、SQL语句的优化、实现数据库读写分离、WEB应用集群及性能优化、Maven项目管理工具、Web服务器负载均衡、实现Nginx与Tomcat集群、使用LoadRunner测试工具、性能优化之内存调优、代码优化与重构的方法等。
D. java 初级、中级、高级工程师等 如何区分
初级水平(认知理解技术为主):
项目实战方面:
1.能够熟练使用三大框架或者springboot进行基本的业务开发,熟悉MVC架构
2.能写工作流,熟悉常用的设计模式
java部分:
1.能熟练应用封装,继承,多态这三大特性。能熟练使用list,set等collection接口,及map接口。
2.对java的较为复杂的技术能够灵活使用如:多线程,反射,io流,网络编程和数据库编程
3.sql能够熟练掌握,如子查询,mybatis的复杂查询
中级水平(利用技术解决复杂业务和理解技术的原理为主):
1.对常用的框架的原理有较清晰的理解,能够掌握其设计思想和所用到的设计模式。
2.能独立的完成项目的某些模块的任务
3.能够进行性能优化,代码规范,编程习惯良好无冗余代码
4.对缓存,事务管理,日志,分布式等复杂技术有着深入理解
高级水平(技术领导):
1.能对需求进行架构设计,选择框架以适应最合适的业务,作为某个项目的领导,带领团队完成项目。
2.有自己的开源项目,可以写出自己的组件,对开源的框架能够进行二次编写,java核心技术有着非常深入的理解
架构师
能管理多个高级工程师及以下级别,提升工作效率
其发展战略可以参考下图:
1、Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多 继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。
2、Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅 的思维方式进行复杂的编程。
3、Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态 性等特点。
4、Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。 2018年9 月25日,Java11(18.9 LTS)正式发布,支持期限至2026年9月。
E. Java培训班一般都教什么内容
阶段一:揭开企业开发神秘面纱 (4周)
本阶段主要目标是让学员初步了解真实的企业开发流程,掌握开发JavaEE企业应用必要的基础知识,并通过简单B/S应用,为学员揭开企业开发的神秘面纱。
主要课程内容:
1) Web开发基础:HTML语言、JavaScript、CSS、DOM等
2) Oracle数据库基础:安装、配置Oracle数据库,熟练掌握SQL语句
3) 操作系统:Windows /Linux的安装、管理
4) JavaEE环境搭建:搭建JavaEE开发环境、运行环境
实践项目:典型电子商务网站
阶段二:夯实企业开发核心技术(8周)
要胜任企业开发,必须扎实掌握企业开发所需的核心技术。本阶段主要目标是让学员能够掌握并熟练使用JavaEE企业开发所需的核心技术。
主要课程内容:
1) Java SE核心技术:Java语言核心编程技术,
2) Java EE Web开发技术:Servlet/JSP/JavaBean编程技术、MVC模式
3) Java EE流行框架技术:Struts2/Hibernate3/Spring2流行框架
4) Java EE企业开发通用组件:log4j、JFreeChart、分页、目录树等
5) UML与设计模式:统一建模语言UML、经典设计模式
6) 富客户端(RIA)开发:AJAX、Flex等
实践项目:(一)即时通讯系统 (二)国家烟草生产销售管理系统
阶段三:模拟真实企业开发环境(4周)
掌握了企业开发核心技术后,如何正确运用到真实的企业开发流程中才是关键。本阶段,以真实的项目、真实的流程,带学员模拟真实的企业开发流程,为学员进行“准员工”训练。
主要课程内容:
1) 需求分析 2) 原型设计 3) 系统设计 4) 代码编写 5) 测试
6) 项目提交 7) 项目评审
实战项目:中国移动IDC运营管理系统
阶段四:如何敲开企业大门(增值服务)
当具备了企业所要求的技术功底后,要敲开企业的大门,仍需要具备一些“软技能”,本阶段主要为学员提供企业前沿技术讲解,职业规划和发展指导,简历与面试辅导等免费服务,从各个方面保障就业。
F. 学习java难吗一般要学多久
前言
回想几年前的自己,在学校里面左手稳着键盘,右手捏住鼠标,不停的动着右手的中指,一声Penta KIll把自己带入了一个虚幻的世界
日复一日,之前那个好学又勤奋的自己慢慢开始转变,从每天的外卖到内急的时候都感觉在浪费时间,此时我已经知道现在的自己已经颓废了,就这样浑浑噩噩的过了三年
直到有一天,在睡梦中听到一声尖叫“啊!!!我找到工作了!!!面试官跟我说给我6.5K的实习工资!!!啊!!!”
此时的我只能在被窝里面默默的哭泣,回想自己的三年时光,通过自己的努力上了黄金,然而这些跟室友找到工作相比,我的内心是无比的空虚、害怕
眼里已经打湿了我的枕头,擦干眼角上的泪水,用被子掩盖住泪湿了的枕头,起床洗漱,我发誓,我的人生转折点就从此刻开始,我要努力学习Java,每天必须保持6个小时的时间去学习,一定要保持自己精神状态,利用好每一分每一秒
开始整理我的学习路线,保存到我成为高级Java工程师
阶段1 java语言基础
1-1-Java基础语法
1、第1节 java运行环境
2、第2节 HelloWorld案例
3、第3节 关键字&标识符
4、第4节 常量&变量
5、第5节 数据类型转换
6、第6节 运算符
7、第7节 方法入门
8、第8节 JDK9新特性-Jshell
9、第9节 选择结构-if语句-switch语句
10、第10节 循环结构-for-while-do..while
11、第11节 开发工具-IDEA
12、第12节 方法复习
13、第13节 方法重载
14、第14节 数组
小总结:
这个阶段我花了半个月的时间去学习,也就是90个小时的时间,其中有27个小时是我用来看理论的知识,另外的63个小时是我用来给自己练手的,每一个知识点我都要做很多的题目,直到自己拿到题目的时候,能够把自己的思路转为代码实现
毫无疑问,这个阶段最耗时的自然是循环结构、选择结构,因为这两个知识点对于一个初学者来说很不友好,不仅代码量增加了,逻辑思维也是很绕的,如果不保持自己的思路清晰,你就理解不了他每一步的结果
然后就是数组,这一个阶段可以说是全新的阶段,我们可以把我们需要的数据都保存在数组里面,在这个知识点结束之后我还做了一个数组版的学生管理系统
1-2 -面向对象和封装
1、1_2_1_01_面向对象思想的概述
2、1_2_1_02_面向对象思想的举例
3、1_2_1_03_类和对象的关系
4、1_2_1_04_类的定义
5、1_2_1_05_对象的创建及其使用
6、1_2_1_06_手机类练习
7、1_2_1_07_一个对象的内存图
8、1_2_1_08_两个对象使用同一个方法的内存
9、1_2_1_09_两个引用指向同一个对象的
10、1_2_1_10_使用对象类型作为方法的参
11、1_2_1_11_使用对象类型作为方法的返
12、1_2_1_12_成员变量和局部变量的区别
13、1_2_1_13_面向对象三大特征之封装性
14、1_2_1_14_private关键字的作用及使用
15、1_2_1_15_练习使用private关键字定义
16、1_2_1_16_this关键字的作用
17、1_2_1_17_构造方法
18、1_2_1_18_定义一个标准的类
小总结:
这一个阶段花的时间足足有一个月,时间的分配也是按照30%的时间去看理论,70%的时间去动手敲代码
我觉得这个阶段每一个知识点都是特别的重要,在这个阶段我学会了什么是对象,学会了如何面向对象编程,也学会了如何使用对象编程去偷懒,把重复的事情都封装成了一个对象,交给这个对象去帮我做
1-3-Java语言高级
1、01-常用API_1
2、02-继承与多态
3、03-常用API第二部分
4、04-集合
5、05-异常与多线程
6、06-File
7、07-网络编程提取码:s5ks
8、08-JDK8新特性
9、09-基础加强
10、10-MySQL
11、11 -JDBC
小总结:
是的,这个阶段我花了两个月,一个月学完JavaSE,然后一个月学完了MySQL跟JDBC,话说这个阶段是最难的,也是最重要的,这个阶段的东西你学不懂就代表你后面的知识都处于一个危机边缘
在这个阶段我做了四个小项目,和一些零零碎碎的练习题,代码加起来应该有三四万行了吧;其中有三个项目是学生管理系统,我从数组版把它改为了集合版,然后又改为了IO版,最后改为了MySQL版;然后还做了一个ATM小型的桌面程序
然后个人感觉我在这个阶段学得是比较扎实的,期间还去看了许多的集合的源码,虽然有的看不懂,但是对于我一个初学者来说已经很了不起了
阶段2 JavaWeb+旅游网
小总结:
这个阶段的知识非常多,我不仅学习了前端三剑客,还学了JavaWEB、JSP、JSTL、EL,然后为了做一个项目去练手,还学习了Redis和Maven
这个阶段我花了两个月的时间,包括跟着做好这个项目,因为我前面的基础部分学得比较扎实吧,所以感觉这部分比较简单,难点就是JavaWEB的过滤器,这个知识点我花的时间比较多
然后就是大概的从面向对象编程转为了面向接口编程了
01 HTML和CSS
1、第1节 概念介绍
2、第2节 基本标签
3、第3节 表单标签
4、第4节 CSS概述
5、第5节 CSS_选择器
6、第6节 CSS属性
7、第7节 CSS_案例-注册页面
02 JavaScript
1、01 JavaScript_简介
2、02 JavaScript基础语法
3、03 JavaScript运算符
4、04 JavaScript特殊语法
5、05 JavaScript_语法_流程控制语
6、06 JavaScript_对象
7、07 DOM和事件的简单学习
8、08 BOM对象
9、09 DOM对象
10、10JavaScirpt中的事件
03 BootStrap
1、01 快速入门
2、02Bootstrap_栅格系统
3、03Bootstrap_全局CSS样式
4、04Bootstrap_组件和插件
5、05案例_旅游网
04 XML
1、01 xml基础
2、02 xml_约束
3、03 xml_解析
05 Tomcat
1、01web相关概念
2、02 tomcat基本操作
3、03 tomcat_部署项目
06-Servlet和HTTP请求协议
1、01Servlet_快速入门
2、02Servlet_生命周期方法
3、03Servlet_3.0注解配置
4、04 IDEA与tomcat相关配置
5、05 Servlet_体系结构与urlpartten配置
6、06 HTTP请求协议
07 -Request和Respons
1、01 Request原理和继承体系
2、02 Request_获取请求数据
3、03 请求转发和request共享数据
4、04 Request_获取ServletContext
5、05 request登录案例
6、06 HTTP响应协议
7、07 response之重定向
8、08 response之相对路径和绝对路径
9、09 response之输出数据
10、10 response之验证码
11、11 ServletContext对象
12、12 文件下载
08-Cookie和Session
1、第1节 Cookie快速入门
2、第2节 Cookie_细节
3、第3节 Cookie案例
4、第4节 JSP改造Cookie案例
5、第5节 Session快速入门
6、第6节 Session细节
7、第7节 Session之验证码案例
09-JSP,EL和JSTL
1、第1节 JSP基础语法
2、第2节 MVC
3、第3节 EL介绍和运算符
4、第4节 EL获取域中存储的数据
5、第5节 JSTL常用标签
10-综合案例(用户信息)
1、第1节 登录功能
2、第2节 添加删除修改功能
3、第3节 删除选中功能
4、第4节 分页查询功能
5、第5节 复杂条件查询功能
11-Filter和Listener
1、第1节 Filter快速入门
2、第2节 Filter细节
3、第3节 Filter案例
4、第4节 监听器
12-Jquery
1、第1节 JQuery基础
2、第2节 JQuery选择器
3、第3节 Jquery基础案例
4、第4节 JQuery动画和遍历
5、第5节 JQuery事件绑定和切换
6、第6节 Jquery高级案例
13-Ajax和JSON
1、第1节 原生JS方式实现Ajax
2、第2节 JQuery方式实现Ajax
3、第3节 JSON基础语法
4、第4节 JSON_解析器
14-Redis
1、第1节 Redis环境搭建
2、第2节 Redis命令操作
3、第3节 Redis持久化
4、第4节 Jedis代码操作
5、第5节 Jedis连接池
6、第6节 redis案例
15-Maven基础
1、第1节 基本概念
2、第2节 maven的安装和仓库种类
3、第3节 maven标准目录结构和常用命令
4、第4节 maven生命周期和概念模型图
5、第5节 使用骨架创建maven的java工程
6、第6节 maven工程servlet实例
16-旅游网
1、01 准备工作
2、02 注册功能
3、03 登陆和退出功能
4、04 BaseServlet抽取
5、05 分类数据展示功能
6、06 旅游线路分页展示分页展示
7、07 旅游线路查询
8、08 旅游线路详情
9、09 旅游线路收藏
阶段三:基本框架SSM
小总结:
这个阶段相对于JavaWEB来说还是比较简单的,少了很多的代码量,但是却多了很多的配置,稍微不注意就会把这些配置给搞错,期间出现了好几次注入bean失败的错误,这是我最不能够容忍的,同样的错误居然出现了好几次,而且都是没有给service加上@Service这个注解导致的;所以,在同一个地方跌倒多次是最不应该的,以后一定的加强注意了
在此期间,我还把JavaWEB做的那个项目改为了SSM版的,在改的过程中才体会到这些代码真的是很浪费,之前一个一个参数的接收,现在只需要一个对象就可以接收到了,而且更加的让我明白面向接口编程的含义了
阶段3 1.Mybatis
1、01.Mybatis课程介绍及环境搭建
2、02.Mybatis入门案例
3、03.自定义Mybatis框架
4、04.自定义Mybatis框架基于注解开发
5、05.使用Mybatis完成CRUD
6、06.使用Mybatis完成DAO层的开发
7、07.Mybatis的连接池及事务
8、08.动态SQL
9、09.Mybatis的多表操作
10、10.JNDI扩展知识
11、11.Mybatis的缓存
12、12.Mybatis注解开发
阶段3 2.Spring
1、01.Spring框架简介
2、02.程序间耦合
3、03.Spring的 IOC 和 DI
4、04.Spring的常用注解
5、05.基于XML的IOC的案例1
6、06.Spring的新注解
7、07.银行转账案例
8、08.面向切面编程 AOP
9、09.JdbcTemplate的基本使用
10、10.Spring中事务控制
阶段3 3.SpringMVC
1、01.SpringMVC概述及入门案例
2、02.参数绑定及自定义类型转换
3、03.SpringMVC常用注解
4、04.SpringMVC返回值类型及响应数据类型
5、05.文件上传
6、06.异常处理及拦截器
7、07.SSM整合案例
阶段四:高级框架
小总结:
这个阶段可不止Spring Boot,还有springcloud,springsecurity等等这些框架,就不一一列出来了,资料网上一大堆
学了Spring Boot之后你才会发现,SSM是多么的麻烦,Spring Boot为不仅为我们减少了代码量,还为我们减少了很多的配置,采用注解的方式
当然,这么智能的框架,我能不把做的项目改为Spring Boot版本吗?
阶段4 4.Spring Boot
1、01.spring boot 介绍
2、02.spring boot 入门
3、03.spring boot 原理分析
4、04.spring boot 配置文件
5、05.spring boot 集成提取码:ywin
阶段4 5.Git
1、01.Git简介及安装使用
2、02.连接远程仓库
3、03.Git分支
参考:《2020最新Java基础精讲视频教程和学习路线!》
原文链接:网页链接