① 一个高级java工程师需要具备什么能力和技术
一、 JAVA。
要想成为JAVA(高级)工程师肯定要学习JAVA。一般的程序员或许只需知道一些JAVA的语法结构就可以应付了。但要成为JAVA(高级) 工程师,要对JAVA做比较深入的研究
二、 设计模式。
如何写出好的代 码往往要借助一些设计模式。当然长期的代码经验积累,只要用心,就会形成自己的代码风格。
三、 XML。
XML的功能非常强大,它可以做数据转换、做系统的配置、甚至可保存您的系统业务数据。因此必须掌握 XML,包括它的语法,结构。还需要比较熟练的使用解析XML的一些API,比如JDOM,SAX等,因为在我们一般的项目中,XML往往担当系统配置信息的作用。
四、 精通使用一种或两种框架。
“框架都会有许多可重用的代码,良好的层次关系和业务控制逻辑,基于框架的开
发使你可以省出很多的开发成本”。通过框架的使用了解框架的思想。
五、 熟悉主流数据库。其实真正比较大的项目都是有人专门做数据库的,但往往很多项目要求作为(高级)工程师的也要参与数据库的设计以及SQL的编写。
六、 精通一种或两种WEBServer。
作为高级JAVA工程师,不可避免地要部署项目到WebServer上,而且只有当你精通一种WebServer,才可能最大限度地使用它 的资源,这往往可以节省很多时间和精力。
② 如何用maven-bundle-plugin在bundle中嵌入内部JAR包
部署时从maven库中找到这个jar包,然后直接放到Felix的bundle目录,启动Felix,就可以看到这个jar包作为一个独立bundle已经启动,其他bundle就可以通过直接Import-Package的方式来引用这些包。的之所以能够这么做是因为这个jar已经osgi化了,查看jar包中的META-INF/MENIFEST.MF文件,只要其中有Bundle-SymbolicName: org.apache.commons.io等一系列Bundle-*的属性值,并且有Export-Package导出内部的包就可以确定。现在大部分从maven库中获得的比较新的jar包,基本上都已经支持OSGI了。如果一个jar包确实不包含OSGI信息,也可以通过手动编辑它的MENIFEST.MF文件增加OSGI信息,来实现这个jar包独立作为bundle运行。例如json-20090211.jar,直接编辑它的MENIFEST.MF
③ Java培训班都需要学什么
我了解到Java培训学习课程分为四部分:
1、Java语言基础知识的学习与应用,掌握常见的数据结构和实用算法。
2、数据库的学习与应用,熟练使用oracle数据库。
3、熟练运用Java脚本语言编程,掌握HTML的基本原理与运用。
4、学习软件项目开发。
Java是一门面向对象编程语言,Java语言集合了C++的优点,丢弃了缺点,所以Java语言表现的功能强大而简单易用。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,让程序员能够以清晰的思维方式进行复杂的编程?。
想了解更多信息,我推荐到AAA教育集团了解一下。AAA教育集团以软件教育、数字教育为主,致力于培养“高级软件工程师”为特色,以促进大学生高质量就业为办学宗旨,是业界“互联网金领生产基地”。
随着当今职业多元化发展态势,我国对IT行业软件技术人才需求越来越旺盛,校企双方联合培养软件技术人才,是学校顺应时代发展的必要举措,对推动国家信息化发展进程具有重要的现实意义。
④ java学习路线
1、java基本语法(1 编写 HelloWorld、2 常量、3 变量、4 数据类型、5 运算符、6 方法、7 流程控制语句、8 IDEA使用:目前企业使用最多开发工具、9 数组)
2、面向对象(1 类、2 对象、3 封装、继承、多态、4 构造器、5super、this、6 接口、抽象类、7 权限修饰符、8 内部类、9 Random、ArrayList、String、Arrays、Math)
3、API(常用API:1 Date、2 DateFormat、3 Calendar、4 System、5 StringBuilde)
4、集合(1 Collection、2 泛型、3 List、4 Set、5 Collections、6 Map、7 HashMap)
5、异常(1 异常体系、2 异常分类、3 声明抛出捕获异常、4 自定义异常)
6、多线程(1 线程概念、2 线程同步、3 Lock、4 线程生命周期、5 线程池)
7、Lambda表达式(1 函数式思想概述、2 Lambda标准格式、3 Lambda语法与注意事项)
8、IO流(1 文件、2 字节流、字符流、3 转换流、高效流)
9、网络编程(1 网络编程三要素、2 Socket原理机制、3 UDP传输、4 TCP传输)
10、数据库(1 mysql、2 jdbc、3 连接池、4 JdbcTemplate )
11、前端技术(1 html5、2 css、3 javascript、4 bootstrap)
12、linux(1 linux安装、2 目录操作、3 文件操作、4 网络操作等)
13、nginx( nginx安装、配置、部署)
14、xml与(1 xml基本语法、2 约束)
15、jsonp( 1 jsoup概述、2 jsoup作用使用、3 xpath)
16、Servlet(1 tomcat、2 request、response、3 cookie、session、4 jsp、el、jstl、Filter)
17、web异步开发(1 jquery3、2 ajax、3 json)
18、redis(1 nosql介绍、2 redis数据类型、3 常用命令、4 jedis)
19、maven(1 maven概念与作用、2 idea集成maven、3 maven常用命令、4 依赖管理)
20、spring(1 spring体系结构、2 spring配置、3 bean管理、 4 IOC/DI、AOP、5 事务管理、6 spring5新特性 )
⑤ 科技公司钟爱的50款开源工具
大数据
1. Hadoop
Apache主持的这个项目是最广为人知的大数据工具。众多公司为Hadoop提供相关产品或商业支持,包括亚马逊网络服务、Cloudera、Hortonworks、IBM、Pivotal、Syncsort和VMware。知名用户包括:阿里巴巴、美国在线、电子港湾、Facebook、谷歌、Hulu、领英、Spotify、推特和雅虎。
支持的操作系统:Windows、Linux和OS X
相关网站:http://hadoop.apache.org
2. Hypertable
Hypertable在互联网公司当中非常流行,它由谷歌开发,用来提高数据库的可扩展性。用户包括网络、电子港湾、Groupon和Yelp。它与Hadoop兼容,提供商业支持和培训。
支持的操作系统:Linux和OS X
相关网站:http://www.hypertable.com
3. Mesos
Apache Mesos是一种资源抽象工具,有了它,企业就可以鼗整个数据中心当成一个资源池,它在又在运行Hadoop、Spark及类似应用程序的公司当中很流行。使用它的企业组织包括:Airbnb、欧洲原子核研究组织(CERN)、思科、Coursera、Foursquare、Groupon、网飞(Netflix)、推特和优步。
支持的操作系统:Linux和OS X
相关网站:http://mesos.apache.org
4. Presto
Presto由Facebook开发,自称是“一款开源分布式SQL查询引擎,用于对大大小小(从GB级到PB级)的数据源运行交互式分析查询。”Facebook表示,它将Presto用于对300PB大小的数据仓库执行查询,其他用户包括Airbnb和Dropbox。
支持的操作系统:Linux
相关网站:https://prestodb.io
5. Solr
这种“快若闪电”的企业搜索平台声称高度可靠、扩展和容错。使用它的公司包括:AT&T、Ticketmaster、康卡斯特、Instagram、网飞、IBM、Adobe和SAP Hybris。
支持的操作系统:与操作系统无关
相关网站:http://lucene.apache.org/solr/
6. Spark
Apache Spark声称,“它在内存中运行程序的速度比Hadoop MapRece最多快100倍,在磁盘上快10倍。”Spark“支持”的企业组织包括:亚马逊、网络、Groupon、日立解决方案、IBM、MyFitnessPal、诺基亚和雅虎。
支持的操作系统:Windows、Linux和OS X
相关网站:http://spark.apache.org
7. Storm
正如Hadoop用来处理批量数据,Apache Storm用来处理实时数据。官方网站上显示用户包括:天气频道、推特、雅虎、WebMD、Spotify、威瑞信(Verisign)、Flipboard和Klout。
支持的操作系统:Linux
相关网站:https://storm.apache.org
云计算
8. Cloud Foundry
Cloud Foundry提供用于构建平台即服务的开源工具。它声称“由行业领袖为行业领袖构建”,其支持者包括IBM、 Pivotal、惠普企业、VMware、英特尔、SAP和EMC。
支持的操作系统:Linux
相关网站:https://www.cloudfoundry.org
9. CloudStack
这个交钥匙IaaS解决方案构成了许多公共云和私有云的基础。它的用户极多,包括阿尔卡特-朗讯、苹果、Autodesk、英国电信、冠群科技、思杰、Cloudera、戴尔、富士通、SAP和韦里逊。
支持的操作系统:与操作系统无关
相关网站:http://cloudstack.apache.org
10. OpenStack
这种很受欢迎的云计算平台声称,“世界上成百上千个大品牌”每天依赖它。支持者包括:AT&T、Ubuntu、惠普企业、IBM、英特尔、Rackspace、红帽、SUSE、思科、戴尔、EMC、赛门铁克及另外许多知名科技公司。
支持的操作系统:与操作系统无关
相关网站:http://www.openstack.org
11. Scalr
这种云管理平台备受市场研究公司的好评,它简化了管理多个云环境的过程。知名用户包括Expedia、三星、美国宇航局喷气推进实验室、埃森哲、索尼和Autodesk。
支持的操作系统:Linux
相关网站:http://www.scalr.com
容器
12. Docker
Docker在相对新兴的容器领域迅速确立起了主导平台这一地位。科技界的许多大牌公司在构建或提供扩展或使用Docker技术的产品,包括亚马逊、微软、IBM、惠普企业、红帽、Rackspace和Canonical。
支持的操作系统:Windows、Linux和OS X
相关网站:https://www.docker.com
输入标题 内容管理
13. DNN
这款内容管理解决方案之前名为DotNetNuke,承诺构建丰富的交互式网站时,只要花较少的精力,就能收到显著的成效。用户包括佳能、时代华纳有线电视、德州仪器和美国银行。
支持的操作系统:Windows
相关网站:http://www.dnnsoftware.com
14. Drupal
Drupal声称,98000多个开发人员在为这个极其流行的内容管理系统积极贡献代码。支持者包括微软、Zend、Fastly和New Relic,其内容市场有数百家公司参与其中,它们提供了相关的产品和服务。
支持的操作系统:与操作系统无关
相关网站:https://www.drupal.org
15. Joomla
Joomla为数百万个网站提供平台,其下载量超过了5000万人次。许多用户当中就有这些公司:电子港湾、巴诺书店、MTV和标致。
支持的操作系统:与操作系统无关
相关网站:https://www.joomla.org
16. MediaWiki
MediaWiki以维基网络使用的软件而出名,它还为网络、Vistaprint、Novell、英特尔和美国宇航局支持网站。它是构建可编辑网页的不错选择,许多企业组织用它来构建内部知识库。
支持的操作系统:Windows、Linux/Unix和OS X
相关网站:https://www.mediawiki.org/wiki/MediaWiki
数据库
17. Cassandra
这种NoSQL数据库由Facebook开发,其用户包括苹果、欧洲原子核研究组织(CERN)、康卡斯特、电子港湾、GitHub、GoDaddy、Hulu、Instagram、Intuit、网飞、Reddit及其他科技公司。它支持极其庞大的数据集,声称拥有非常高的性能和出色的耐用性和弹性。可通过第三方获得支持。
支持的操作系统:与操作系统无关
相关网站:http://cassandra.apache.org
18. CouchDB
CouchDB为Web而开发,这种NoSQL数据库将数据存储在JSON文档中,这类文档可通过HTTP来加以查询,并用JavaScript来处理。Cloudant现在归IBM所有,它提供一款专业人员支持的软件版本,用户包括:三星、Akamai、Expedia、微软游戏工作室及其他公司。
支持的操作系统:Windows、Linux、OS X和安卓
相关网站:http://couchdb.apache.org
19. MongoDB
MongoDB是一种NoSQL数据库,声称“针对关键任务型部署环境进行了优化”,用户包括Foursquare、《福布斯》、Pebble、Adobe、领英、eHarmony及其他公司。提供收费的专业版和企业版。
支持的操作系统:Windows、Linux、OS X和Solaris
相关网站:http://www.mongodb.org
20. MySQL
MySQL自称是“世界上最流行的开源数据库”,备受众多互联网公司的青睐,比如YouTube、贝宝、谷歌、Facebook、推特、电子港湾、领英、优步和亚马逊。除了免费社区版外,它还有多款收费版。最新更新版声称速度比老版本快三倍。
支持的操作系统:Windows、Linux、Unix和OS X
相关网站:http://www.mysql.com
21. Neo4j
Neo4J自诩为“世界上领先的图形数据库”,用于欺诈检测、推荐引擎、社交网站、主数据管理及更多领域。用户包括电子港湾、沃尔玛、思科、惠普、埃森哲、CrunchBase、eHarmony、Care.com及另外许多企业组织。
支持的操作系统:Windows和Linux
相关网站:http://neo4j.com
开发工具
22. Bugzilla
Bugzilla是开源社区的宠儿,用户包括Mozilla、Linux基金会、GNOME、KDE、Apache、LibreOffice、Open Office、Eclipse、红帽、Novell及其他公司。这款软件缺陷追踪系统(bugtracker)的重要功能包括:高级搜索功能、电子邮件通知、预定报告、时间追踪、出色的安全及更多特性。
支持的操作系统:Windows、Linux和OS X
相关网站:https://www.bugzilla.org
23. Eclipse
Eclipse项目最为知名的是,它是一种大受欢迎的面向Java的集成开发环境(IDE),它还提供面向C/C++和PHP的IDE,此外提供另外一大批开发工具。主要支持者包括冠群科技、谷歌、IBM、甲骨文、红帽和SAP。
支持的操作系统:与操作系统无关
相关网站:http://www.eclipse.org
24. Ember.js
这种框架用于“构建野心勃勃的Web应用程序”,旨在为JavaScript开发人员提高工作效率。官方网站上显示用户包括雅虎、Square、Livingsocial、Groupon、Twitch、TED、网飞、Heroku和微软。
支持的操作系统:与操作系统无关
相关网站: http://emberjs.com
25. Grunt
Grunt是一种JavaScript任务运行工具,有助于自动处理重复性的开发任务。使用它的知名科技公司包括:Adobe、推特、Mozilla、Cloudant和wordPress。
支持的操作系统:与操作系统无关
相关网站:http://gruntjs.com
26. LoopBack
这个Node.js框架旨在让用户很容易构建REST API,并连接到后端数据存储区。知名用户包括GoDaddy、美国能源部和赛门铁克。
支持的操作系统:Windows、Linux、OS X、安卓和iOS
相关网站:http://loopback.io
27. Node.js
Node.js的成名之处在于,它让开发人员可以使用JavaScript,编写服务器端应用程序。开发工作之前由Joyent管控,现在交由Node.js基金会监管。用户包括IBM、微软、雅虎、SAP、领英、贝宝和网飞。
支持的操作系统:Windows、Linux和OS X
相关网站:https://nodejs.org/en/
28. PhoneGap
Apache Cordova是一种开源框架,让开发人员可以使用HTML、CSS和JavaScript等Web技术,构建移动应用程序。PhoneGap是最受欢迎的Cordova发行版。使用某一种Cordova发行版的科技公司包括:维基网络、Facebook、 Salesforce、IBM、微软、Adobe和黑莓。
支持的操作系统:Window、Linux和OS X
相关网站:http://phonegap.com
29. React Native
React Native由Facebook开发,这种框架可用于使用JavaScript和React JavaScript库(同样由Facebook开发),构建原生移动应用程序。其他用户包括:《探索》频道和CBS体育新闻网。
支持的操作系统:OS X
相关网站:http://facebook.github.io/react-native/
30. Ruby on Rails
这个Web开发框架在开发人员当中极其流行,它声称“为确保编程员满意和持续高效地工作进行了优化”。用户包括Basecamp、推特、Shopify和GitHub等公司。
支持的操作系统:Windows、Linux和OS X
相关网站:http://rubyonrails.org
31. Sencha Touch
Sencha Touch自称是“一种用于构建通用移动应用程序的领先的跨平台移动Web应用程序框架,基于HTML5和JavaScript”。它既有开源许可证版本,也有商业许可证版本。据官方网站声称,《财富》100强中60%使用它。
支持的操作系统:与操作系统无关
相关网站:https://www.sencha.com/procts/touch/
32. ZK
索尼、Sun、IBM、Adobe、电子港湾、富士通、梦工厂和优利系统等公司使用这种Java Web框架来构建Web和移动应用程序。提供收费支付及相关工具。
支持的操作系统:与操作系统无关
相关网站:http://www.zkoss.org
中间件
33. JBoss
红帽的JBoss中间件包括各种轻量级、对云计算友好的工具,同时结合、集成和自动化各个企业应用程序和系统。用户包括:橡树岭国家实验室、日产、思科、冠群科技、AMD及其他公司。
支持的操作系统:Linux
相关网站:http://www.redhat.com/en/technologies/jboss-middleware
操作系统
34. 红帽企业版Linux
红帽最知名的产品就是其旗舰Linux发行版,这需要付费订购。据该公司声称,《财富》全球500强公司中超过90%在使用红帽产品。
相关网站:http://www.redhat.com/en/technologies/linux-platforms/enterprise-linux
35. SUSE Linux企业版
这款面向企业的Linux发行版同样备受大企业的追捧,它也需要付费订购。该公司声称,它有13000多个企业用户,包括伦敦证券交易所、SAP、天睿(Teradata)和沃尔格林连锁药店(Walgreens)。
相关网站:https://www.suse.com
36. Ubuntu
Ubuntu提供广受欢迎的Linux发行版,有多个版本:桌面版、服务器版、云版、手机版、平板电脑版和物联网版。声称用户包括亚马逊、IBM、维基网络和英伟达。
相关网站:http://www.ubuntu.com/index_kylin
项目管理
37. Project Libre
这个屡获奖项的项目是微软Project的替代者,下载量已有近200万人次。它有一大批用户,包括IBM、埃森哲、美国能源部、思科、ATI和AMD。
支持的操作系统:Windows、Linux和OS X
相关网站:http://www.projectlibre.org
存储
38. FreeNAS
这款开源网络附加存储(NAS)软件声称,它备受联合国、迪士尼互动媒体集团、路透社和Dr. Phil等用户的“喜爱”。它可以安装到几乎任何硬件上,而TrueNAS提供的预先构建的设备就基于该技术。
支持的操作系统:FressBSD
相关网站:http://www.freenas.org
39. Gluster
Gluster是一种可高度扩展的网络文件系统,适合云计算环境。红帽提供一款基于该技术的收费产品,用户包括卡西欧和Intuit。
支持的操作系统:Linux
相关网站:http://www.gluster.org
40. Lustre
Lustre是另一种可高度扩展的文件系统,旨在支持高性能计算(HPC)环境。一些最早采用它的用户包括美国的几大国家实验室:劳伦斯·利物莫尔国家实验室、桑迪亚国家实验室、橡树岭国家实验室和洛斯阿拉莫斯国家实验室。
支持的操作系统:Linux
相关网站:http://lustre.org
系统管理工具
41. Ansible
Ansible现在归红帽所有,它自称是“一种异常简单的IT自动化引擎,可以使云服务配置、配置管理、应用程序部署、服务内部的编排以及其他许多IT操作实现自动化。”使用它的科技公司包括:思科、瞻博网络、Evernote、推特、威瑞信、GoPro、EA Sports、Atlassian和韦里逊。它既有免费版,也有收费版。
支持的操作系统:Linux
相关网站:http://www.ansibleworks.com
42. Chef
作为另一款自动化工具,Chef支持开发运维方法,同时改善了速度、协作和安全性。拥有免费版和收费版。官方网站上显示用户包括:塔吉特(Target)、诺德斯特龙(Nordstrom)、Facebook、Etsy、IGM、雅虎和彭博社。
支持的操作系统:Windows、Linux和OS X
相关网站:https://www.chef.io/chef/
43. Hudson
Hudson在使用敏捷和开发运维方法的企业当中很流行,它是一种可扩展的持续集成服务器系统,可以监控重复作业的执行。这个项目得到了Eclipse基金会、甲骨文、Atlassian和YourKit的支持。
支持的操作系统:与操作系统无关
相关网站:http://hudson-ci.org
44. Puppet
Puppet号称“使用最广泛的开源IT管理系统”,它包括40多个基础设施管理方面的开源项目。除了开源版本外,它还有一款收费的企业版本。它声称,用户包括25000多家企业,比如迪士尼、沃尔玛、1-800-Flowers.com、Heartland Payment Systems、盖蒂图片社(Getty Images)和Yelp。
支持的操作系统:Windows、Linux、Unix和OS X
相关网站:https://puppetlabs.com/puppet/open-source-projects
版本控制
45. Bazaar
Bazaar由Canonical管理,被许多开源项目所使用,包括Ubuntu、 GNU基金会、Linux基金会、MySQL、Bugzilla、 Debian和Maria DB。它简单易学,支持任何工作流程和工作区间模式,承诺存储效率很高、速度很快。
支持的操作系统:Windows、Linux和OS X
相关网站:http://bazaar.canonical.com/en/
46. Git
这个版本控制系统已变得极受欢迎,这一方面归功于GitHub服务的使用日益广泛。使用它的公司和项目包括:谷歌、Facebook、微软、推特、领英、网飞、Perl、PostgreSQL、安卓、Rails、QT、Gnome和Eclipse。
支持的操作系统:Windows、Linux和OS X
相关网站:http://git-scm.com
47. Mercurial
Mercurial是一种分布式源代码控制管理工具,专注于帮助团队更轻松、更快速地协同工作。用户包括OpenJDK和NetBeans等各大项目。
支持的操作系统:Windows、Linux和OS X
相关网站:https://www.mercurial-scm.org
48. Subversion
这个企业级版本控制系统得到Apache的支持,首次发布于2000年。使用它的企业组织包括Apache软件基金会自己、Hobby Lobby、Mono、Plone和GNU Enterprise。
支持的操作系统:Windows、Linux和OS X
相关网站:http://subversion.apache.org
Web服务器
49. Apache HTTP Server
Apache至今已有20年多的历史,专利是自1996年以来互联网上最受欢迎的Web服务器系统。据W3Techs声称,目前所有网站中55.3%是由Apache支持的。
支持的操作系统:Windows、Linux和OS X
相关网站:http://httpd.apache.org
50. Nginx
Nginx的人气也极旺,它被互联网上所有网站中的大约四分之一所使用。除了俄罗斯许多访问量很大的网站外,用户还包括网飞和WordPress.com。
支持的操作系统:Windows、Linux和OS X
相关网站:http://nginx.org
⑥ 普通开发人员,怎么提升到JAVA高级开发工程师
宏观方面
一、 JAVA。要想成为JAVA(高级)工程师肯定要学习JAVA。一般的程序员或许只需知道一些JAVA的语法结构就可以应付了。但要成为JAVA(高级) 工程师,您要对JAVA做比较深入的研究。您应该多研究一下JDBC、IO包、Util包、Text包、JMS、EJB、RMI、线程。如果可能,希望您 对JAVA的所有包都浏览一下,知道大概的API,这样您就发现其实您想实现的很多功能,通过JAVA的API都可以实现了,就不必自己费太多的脑经 了。
二、 设计模式。其实写代码是很容易的事情,我相信您也有同感。但如何写得好就比较难了。这个“好”字包括代码可重用性,可维护性,可扩展性等。如何写出好的代 码往往要借助一些设计模式。当然长期的代码经验积累,只要您用心,会使您形成自己代码风格。相信您的代码也比较符合代码的可重用性,可维护性,可扩展性。 但既然前人已经给我们总结出了经验,我们何不踩着前人的肩膀前进?
三、 XML。现在的系统中不使用XML几乎是不可能的。XML的功能非常强大,它可以做数据转换、做系统的配置、甚至可保存您的系统业务数据。因此您必须了解 XML,包括它的语法,结构。您还需要比较熟练的使用解析XML的一些API,比如JDOM,SAX等,因为在我们一般的项目中,XML往往担当系统配置 信息的作用,您需要用这些API解析这些配置信息,开发完美的项目。
四、 精通使用一种或两种框架。像在《如何成为java初级程序员》中提到的那样,“框架都会有许多可重用的代码,良好的层次关系和业务控制逻辑,基于框架的开 发使你可以省出很多的开发成本”。但我这里希望您能精通,更多的是希望您能通过框架的使用了解框架的思想。这样您在开发一个项目时思路会开阔一些,比如您 会想到把SQL语句与您的JAVA代码分开,再比如您会考虑把您的业务逻辑配置到XML或者数据库中,这样整个项目就很容易扩张了。
五、 熟悉主流数据库。其实真正比较大的项目都是有人专门做数据库的,但往往很多项目要求作为(高级)工程师的您也参与数据库的设计以及SQL的编写。所以为了 更好的为国家做贡献,建议您还是多了解一些主流数据库,比如SQLSERVER,ORACLE,多连接SQL和存储过程以及触发器。如果您不是“科班”出 身,您还需要补充一些数据库原理方面的知识。
六、 精通一种或两种WEBServer。尽管我再《如何成为java初级程序员》里讲过它,我还是要强调您要精通一种或两种。因为作为JAVA工程师,特别时 想成为高级JAVA工程师的您,您不可避免地要部署您的项目到WebServer上,而且只有当您精通一种WebServer,您才可能最大限度地使用它 的资源,这往往可以节省很多时间和精力。
七、 UML。我知道您肯定想成为高级工程师,因此您有必要了解或熟练或精通UML,这取决于您有多大决心想成为高级工程师和项目经理。在比较正规的开发团队 中,UML是讨论项目的交流工具,您要想做一个软件工程师,您至少要能看懂,您要想做高级工程师,您要能通过它来描述您对项目的理解,尽管这不是必须,但 却很重要。
八、 站在高度分析问题:这不是一个知识点,也不是通过书本就能学得到的。只所以提到这一点,是因为我比您还着急,我希望您更快的成为一个高级的软件工程师,而 不是一个一般的软件工程师。希望您在工作中多向您的系统分析员、需求分析员、系统设计员学习,多站在他们角度上去看您在开发的项目。在最好在项目之初先在 您的脑海里对项目有个大致的分析、设计,然后和他们进行比较,找找差别,想想缺点。
九、 工具。与在《如何成为java初级程序员》里提到的不同,您在这个阶段可能接触到不同的工具了,尽管您还需要使用JB或者IDEA,但能可能对 ROSE,Together要多了解一些,因为您要画UML了。不要再对Dreamweaver等HTML编辑器情有独钟了,那些JSP页面让初级程序员 去写吧
微观方面
1.Core Java部分
这是最基础的,对于一个java高级开发/设计人员,你需要对这一部分达到精通的水平,重点内容如下:
a.面向对象编程思想(封装继承多态接口)
b.字符串处理
c.java.lang包,java.util包等常用包
d.java异常处理
2.Java高级部分
a.Java I/O流
b.Java多线程技术
c.Java网络编程
d.Java Swing
后两项可以了解即可,如果项目需要可以深入研究
3.前端基本技能
* HTML + CSS网页开发
* JavaScript
* Jquery
* 浏览器兼容性 CSS hack(了解)
4.熟练使用JSP + Servlet进行开发
5.MVC设计模式,原理,以及相关框架,如Struts
6.SSH框架
7.缓存技术 session & cookie
8.熟练使用一种以上Java开发工具(Eclipse/MyEclipse/Jbuilder/Jcreator/IntelliJIEDA/NetBeans)
9.熟练使用XML
JDOM w3c.dom SAX
10.Java设计模式
工厂模式,单例模式 ==
11.Java反射机制
反射的各种用法
12.了解或熟悉 C, C++, .NET
13.熟悉JDK的配置,环境变量
14.数据库oracle必学,其他最好了解一种以上(mysql,sql server,access==)
oracle:视图,索引,存储过程,触发器,游标,包,常用函数 ==
15.数据库原理
事务的原理,锁机制,表连接,复杂查询语句(工作经验),性能调优,锁表以及解决方案==
16.JDBC,连接池
17.Ajax,反向Ajax
18.HTTP协议,request 和 response的原理,HTTP status(了解常用的),Https原理
19.熟悉Linux基本命令,使用过Linux/Unix系统,可以编写shell脚本,可以在Linux上部署项目
20.了解windows系统批处理脚本bat
21.了解HTML5,最好学习过
22.熟悉一种JS框架,如Prototype
23.J2EE原理 熟悉一种以上web容器如Tomcat,JBoss,websphere,weblogic==
24.熟悉ant或maven
25.熟悉一门脚本语言,如python ,ruby
26.了解php/ asp
27.了解ftp协议及原理
28.熟练使用Junit测试,熟悉Mockito等测试工具
29,熟悉javac,javadoc,native,native2ascii等常用命令
30.熟悉常用的排序算法,如冒泡排序,快速排序等,最好自己研究过一些的算法。
31.了解Flex(不学也没关系)
32.了解敏捷开发模式
33.工作流workflow至少用过一种,如OSworkflow,了解原理
34.使用过VPN了解其原理
35.熟悉jstl表达式和el表达式
36.熟悉webservice,WSDL,SOAP
37.图片处理,如图片上传,预览,限制大小等
38.版本控制工具,CVS VSS SVN
39,JSON技术,JSON+AJAX
40.分页技术,最好自己实现过不仅仅是用过要知道原理
41.Java Mail
42.Java读写txt,excel,JXL技术
43.JVM原理,JVM内存管理,GC,Java堆栈池
44.熟练使用下面的工具:
office办公软件,word,excel,ppt等
plsql,sqldevelop 数据库开发工具
outlook大公司都用
ue编辑器
浏览器控制台,调试
SHH/PUTTY 远程
45.UML建模工具Rational Rose等
46. 使用log4j
47.使用过开放Api如网络,腾讯街景,新浪微博等
48.页面静态化技术(伪静态页面)
49.报表技术,使用过报表制作工具,如水晶易表。
50.定时任务,如Spring batch ,学会自定义batch任务(不适用第三方工具)
51.了解uuid
52.b/s 和 c/s架构
53.正则表达式
54.了解jndi jms
55.ERP
56.UNICODE编码,乱码解决
57.开源网络编辑器,如ckEditor
58.二进制原理
59.使用过,了解过开源论坛框架,如discuzz
60.GWT,Closure框架
61.了解大数据,云计算
62.搜索引擎搜索技术
63.软件工程,项目管理
希望我们的解答可以帮到您!