Skip to main content

Java开发人员知识点 (转)



1.听说过James Gosling,SUN和Oracle公司。知道网上下载Java的地址,在哪讨论Java。练习过Java在Windows下的安装和配置。知道Java应用系统中常见的几种license和JCP。了解bytecode和Java在不同系统下可以轻松移植的原理。

2.懂得基本的Java编程和行命令格式。了解面向对象的编程思路。

几个基本点:Java基本语法和控制结构,命名和代码风格,结构化,对象封装,继承,抽象,多态,接口,异常处理,堆空间,栈空间,垃圾回收器,static,this,synchronized,annotations,JUnit,JDBC,JSP/servlet

Java Core APIs: java.lang,java.util,java.io,java.awt,javax.swing,JFrame ,String,java.sql,JUnit

3.了解Java ME,Java SE,和Java EE的基本区别。知道JVM,JRE,Java SDK,JavaContainer的不同。懂得Java SE6,Java 1.5和Java 1.4的不同,特别是1.4到1.5的改进,包括generics,enum,new loop,variable number of arguments。听说过Oracle JRockit。

4.熟悉一种Java IDE比如Eclipse,NetBeans,JDeveloper,IntelliJ,JBuilder,JCreator。最好版本比较新。懂得如何在程序中查错,熟悉常见的几种Java错误。

5.能用SVN/CVS/GIT进行团队开发。可以编写Javadoc文档。懂得一般的版本管理方法。

6.熟悉JDBC和JSP编写基本的Web数据库应用。懂得基本的SQL编程,JDBC,HTML格式,
JavaScript编程和CSS语法。

7.懂得进一步的Java编程比如collections,serialization,streams,networking,multi-threading,reflection,event handling,localization,charset conversion

Java Core APIs: java.util,java.text,java.io,JFrame,Thread,socket

8.学习过一个Application Server的使用和基本配置,比如WebLogic,WebSphere,Apache,Tomcat,JBoss,Glassfish, Jetty。

9.知道POJO和EJB的区别。能够习惯使用getter和setter方法编写POJO Java bean。能够
使用Flyweight方法优化Javabean重复使用的字符串常量。

11.使用过几种常见的数据库系统比如Oracle,SQLServer,MySQL,PregreSQL,HSQL,Access,DBF。能使用Excel,Access,Toad等工具对用户的数据文件进行预处理并import进数据库。

12.懂得关系数据库的设计原理,数据模型,数据类型,数据映射关系,normalization ,SQL语言,理解关系模型图。在复杂的嵌套查询中能够进行简单运算复杂度分析。

13.使用过LDAP,Active Directory,Oracle Directory之类的产品。对Dimensional Database有一定的了解,使用过Dimentional Database的查询语言和drill-down方式。

14.使用过Oracle Reports, Oracle BI Publisher或者IBM Cognos,对企业级应用的报表系统有一定的经验。

15.了解一些基本的Java技术比如JMX/JMS,JNDI,JAAS,AOP。

16.了解直接使用JDBC和JSP编写Web数据库存在的各种缺点和不足。知道Web系统常见的
各种安全问题。学习使用persistence,service,presentation来规划应用系统的设计
,习惯把数据,控制和格式在系统中隔离到不同层面单独进行控制。

17.养成良好的安全编程习惯,设计系统尽量避免最终用户有数据库ID或者能ping到数据库服务器,服务器端程序不应该有权限访问本地文件或者进程,访问数据库一定防止SQL Injection,页面参数传递避免cross-site scripting,避免hard-code ID和明文密码,避免session或者cookie保存任何不加密的敏感信息,escape用户的输入,escape页面上的数据输出。

18.了解基本的加密算法,能使用DES/3DES/AES对简单数据进行加密,明白RSA的算法原
理, 可以用SHA-2做散列(MD5已经不被推荐了)。掌握SSL的密匙交换方法。NIST对不
同加密算法定时有评估。

19.能够使用一些框架技术来设计数据层面的访问而避免直接做JDBC编程,比如:JPA,
Hibernate,ADF,TopLink。

20.了解MVC的设计。进一步能使用一些成熟的框架结构比如Spring MVC或者Oracle/Apache Struts编写MVC应用系统。让数据库端变轻,数据处理和控制逻辑在应用服务器端变胖,页面样式控制在客户端变胖,数据交互通过Ajax,JSON,Java Web Service(SOAP,JAX-RS,JAX-WS)和RESTFul之类的技术来进行。听说过BPEL,了解Orchestration和Choreography的不同。

21.了解Hibernate的数据库annotations,掌握Spring的注入原理和方法,了解Springsecurity和MVC的unit test。熟悉JSTL,了解Spring form tags。进一步学习JSF编程。

22.了解一些常见的Apache项目,比如FileUpload,Ant,Velocity,Open JPA,Tile,Tomcat, Log4j。了解Google常见的一些Java项目比如GSon,GWT Toolkit等。了解常见的Oracle Java项目比如Intermedia, Oracle Text,Oracle Spatial。进一步可以研究一下Oracle的UIX和JSF-Struts-ADF编程。

23.熟悉XML规范,特别是理解XML schema。能使用JAXP和JDOM编程。知道XLS和XSLT,
了解XPath。用XHTML和JSTL验证的网页代码,进一步用XML规范编写JSP代码。

24.了解GoF标准的设计模式,熟悉基本的Java设计模式。知道Test-Driven,Behavior-
Driven或者Data-Drive的开发模式。懂得几种基本的UML描述。

25.能够用iText或者Apache POI等工具直接用Java生成PDF Report。能用ApacheFileUpload或者Oracle Intermedia完成文件上传。能够用rules engine对表单数据进行验证。能够用JavaMail或者Java Socket完成email或者简单通讯。

26.熟悉pure css的设计方法,了解图片,字体和色彩遵循行业和印刷业规范。设计与大部分浏览器或手机设备无关的CSS页面。使用过Firebug,web developer tool等Firefox plugins。

27.熟悉JavaSciprt的编程,懂得一门基本的JavaScript框架语言比如jQuery, Ext JS, Dojo YUI,能使用框架规范进行插件设计和系统扩展。使用过GreaseMonkey等练习Firefox插件功能。能使用Google Chrome或者微软的Script Debugger调试和优化JavaScript程序。

28.懂得ANT或者Maven对Java项目进行编译和管理。了解Maven的product life phase管理和软件的发布方式。进一步能Hudson等SCM工具执行ANT/MAVEN。

29.懂得使用JMockit或者其他的Mock framework进行unit test。能使用Selenium结合Cobertura等工具编写面向web应用的Unit Test。学习数据库的java unit text。

30.使用项目管理软件完成从需求,设计,开发,自动测试,发布,bug tracking等全
流程系统化管理。

31.了解全文检索和metadata search,能使用Apache SOLR/LUCENE/TIKA或者OracleText/Intermedia编写全文检索。

32.使用过Content Management System,比如Rhythmix Percussion或者Oracle CMS。Rhythmix Percussion了解发布流程定制,网页的模块化设计和使用Apache Velocity编写模板。Oracle CMS能做简单配置,能使用Oracle Intermedia,Oracle Text和Oracle IDS等编写后台的trigger和procedure。

33.使用过静态代码扫描的工具比如FindBugs,PMD。了解静态代码扫描一般能catch的问题,flase alarms,和不能查找的问题。使用过一些集成代码扫描的系统比如Yasca,了解这些系统能检查到的问题。

Comments

Popular posts from this blog

湾区好吃的中餐馆

一个伪吃货在湾区的checklist 来源: 徐聪的日志 海鲜: Boiling Crab (San Jose), Joe's Crab Shack (San Francisco) , Tomi Sushi & Seafood Buffet(San Jose), Tatami Sushi & Seafood Buffet(Cupertino) 番外:Pier 39  的大螃蟹  (San Francisco) Boiling Crab的螃蟹从来都是酒香不怕巷子深,关键在于它家的酱绝对不会让人想起它 是一家西餐馆。它家的龙虾也是一绝,当然一旦点了龙虾还打算吃饱的话人均基本在40 刀以上。它家在San Jose有两家分店,如果想避免排长队的话推荐周末中午11点50点以 前(12点开门)去101高速边上那家,屡试不爽。 Joe's Crab Shack是一家全美连锁的海鲜餐馆,一锅端 (Steampot) 的吃法很有特色。 Tomi Sushi & Seafood Bufferz中文名叫涛味,排在Tatami之前的原因是它家的口味比 较偏中餐,龙虾膏蟹做的不错(不是每天都有)。最近中午去过一次,东西很少,不推 荐中午去(虽然价格便宜一些)。 Tatami跟南加著名的Todai都是差不多的日式海鲜自助,生鱼片比较新鲜,不过没有 Todai每小时限量的烤龙虾尾。 渔人码头的螃蟹主要的砝码是价格,但跟Boling Crab一比也不见得能便宜多少。有一 家摊位上面写着“我们通晓国、粤、英语”,每次都会去。 川菜: 御食园(San Francisco),金饭碗(Berkeley), 红翻天(Foster City), 吃香喝 辣(Newark), 老赵川菜(Mountain View), 鹿鸣春(Berkeley), 福恩园( Menlo Park),麻辣诱惑(Fremont), 巴山蜀水(Milpitas) , 福恩园(San  Mateo), 大四川(Palo Alto), 麻辣诱惑(San Jose), 山城私房菜(Milpitas ),麻辣帝国(San Mateo) 川菜的菜品基本都是那几样,就不单独推荐了。 排名第一的Z&Y我觉得就不用...

北美 加州 草坪维护 草黄了怎么办

当今中国有句顺口溜, 叫做:穷的时候种稻, 富的时候种草。我虽然 不富,但也种了几年的 草。我对种草其实懂得 不多,虽自学不辍,但 终未成才。不过到底种 了几年的草,心得和体 会总是有的。现在把我 的心得体会写出来,希 望对房前屋后有块小草 坪的朋友们,不管是穷 还是富,都有些帮助。 草地上的草,都属于禾 本科(Grass Family),与竹 子、水稻、小麦、甘蔗 和狗尾巴花是同一个科 的植物。从个体的数量 和分布的范围来讲,禾 本科植物应该是植物界 最大的科了。草本的禾 本科植物通常有两种生 长的形态,一种叫蓬草 (bunch grass),一种叫 坪草(sod grass)。用来做 草坪的草,当然都是坪 草 。坪草的物种和品种很 多,不同地区不同气候 条件种的草不一样,但 也有一些共性。一般来 说,当地商店里买的草 籽(grass seeds)和草皮( sod),都是比较适 合当地的自然条件的。 一.维护和保养草坪必 做的四件事情 1.割草。定期割草, 不仅能使草坪美观,而 且也可防止或减缓坪草 从营养生长到生殖生长 的过渡。营养生长就是 长叶子,生殖生长就是 开花结籽。很多人都知 道,春天的时候有一段 时间不割草,草就开花 结籽了。大家也见过, 边边角角割不到草的地 方,那里的草就会开花 结籽。 2.浇水。对北美大部 分地区来说,春秋天时 可视情况少浇水甚至不 浇水。草地最需要浇水 的时候是夏天,因为夏 天最热最干,水分蒸发 快。至于浇水要多频繁 ,那就看你想草地是保 绿,还是保命。如果想 保绿,那草地每星期得 有一英寸的水量。除非 有自动浇水系统,浇水 是很费时间的,也费钱 。我只想我的草地保命 ,所以我的草地夏天基 本不浇水,只在特别容 易干死的草地或在特别 干旱的年份浇点水。所 以到8-9月份的时候 ,我的草地就黄黄的了 ,有些难看。不过,一 场秋雨来,草地依旧绿 。 3.施肥。草地的肥料 应以氮素为主,钾素得 有一点,但磷的含量可 以很低。我用的最多的 草坪肥料是30-0- 4。现在有一种运动, 推崇不含磷素的草地肥 料,因为磷素施用过多 ,会引起水体(如湖泊 ,池塘)的富营养化。 施肥的话,还是得买个 撒肥机(spread er/broadca ster),手持的或 手推的型号都行,当地 商店都有卖的。没有撒 肥机,肥料会撒得很不 均匀。 4.杂草...

美国买房 房屋类型简介

关于房屋分类的简单介绍 前几天看到一个有关TH和CONDO差别的讨论。现根据本人的知识给大家介绍一下, 也许 有错或者不全, 希望大家补充。如果版主认为此帖对大众有益, 请暂时置顶。 民用房屋一般分三类: 1. SFR (Single Family Residential---独立屋):其特征是有土地,有yard,大部 分没有CC & R和 HOA,个别lot小的有CC & R,甚至有HOA。 进一步划分: a) SFR Detached: 这个就是最典型的别墅房子,其特征是整个建筑前后,左右, 上下 都完全与邻居独立。Zoning code 是 R1。 如果只有一边有side yard, 另一边的墙就是邻居的boundary, 好像当作fence 一样  (所以这一边的墙上不能开窗)。这类房子的zoning code 是 APD, 或者叫zero lot。 每个城市对R1的min lot size有不同的要求, 有的6000尺(譬如说San Jose 或其他大 部分的湾区城市), 有的8000尺(譬如说Saratoga),如果lot小到一定程度, 譬如 说4500 尺或以下, 就zone为PUD (Plan Unit Development)。 b) SFR Attached: 这个就是通常讲的双拼房 (duet home)。 其特征是二家share一 堵墙 (有的时候二家有各自的墙 , 但是连在一起)。与下面要讲的Duplex不同的是 : 二家有各自的门牌号码, 可以独立分开贷款和买卖, 往往没有 CC & R和 HOA, 但有deed restriction 来规定如何维护share wall。 2. Condominium:其特征是你总是和别家share something, 一定有CC & R和 HOA. 进一步划分: a)Town house (镇屋): 其特征是上下building都是归你居住, 往往有独立的门牌 号码。 有的TH legal 上有地(lot),有yard。 但是和SFR还是有很大的不同, 不能随便使 用,要完全遵守CC & R和 HOA的规定。甚至有些TH zone 为PUD的。 b)Condo (共渡公寓):其特征是往往有邻居住在你家的上面或下面,大部分情况下 门牌号码后面还要加一个U...