第一篇:java程序员
如何迅速成为Java高手[Tomjava原创]
很多网友问我学习Java有没有什么捷径,我说“无他,唯手熟尔”。但是我却很愿意将自己学习的一些经验写出来,以便后来者少走弯路,帮助别人是最大的快乐嘛!
要想学好Java,首先要知道Java的大致分类。我们知道,自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。J2SE开发桌面应用软件比起VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。所以现在应用最广泛又最好学的就是J2EE了。J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。
那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。然后你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?还好,SUN提供了Javabean可以把你的JSP中的Java代码封装起来,便于调用也便于重用。接着就是EJB了,EJB就是Enterprise JavaBean,看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail了。
好了,对Java和J2EE有了一些基本概念之后,你就应该编一些程序了,千万不要纸上谈兵哦。最好找一些有实例且带光盘的书来看,这样看到好的程序就可以直接Ctrl+C再Ctrl+V,也不用劳您老大架再亲自把它再输一遍吧,再说直接复制还不用怕出错,何乐而不为呢!还有就是要经常上一些好的Java编程文章,有好的文章要Cut下来,有问题尽管问,只要问题不是太傻,一般高手都会回答你的。下面介绍几个好的Java方面的编程网站:
CSDN论坛 http:///那里Java资料比较全;
java.com.cnhttp://.cn/看这域名就知道有多牛,注册用户快接近一万了,同时在线人数也在一千左右,人气很旺的;
IBM的开发者网络http://IBM永远的蓝色巨人;
那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!你现在最缺的是实际的工作经验,而不是书本上那些
凭空想出来的程序。所以你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他还愿意不厌其烦地教你,这样好象有点难哦!
还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。学Java必读的两个开源程序就是Jive和Pet Store.。Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站http:///去下载,或到同济技术论坛的服务器上ftp://nro.shtdu.edu.cn去下,安装上有什么问题,可以到论坛上去提问。Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要错过了。
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体“技术”,它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧,让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。关于设计模式的资料,还是向大家推荐banq的网站http:///,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring(重整)和极限XP编程,相信你又会上一个台阶。
做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧,你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的来了。。。当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
下面介绍两个好的开源项目网站:
湖北省软件公共开发平台http://gro.clinux.org/
共创联盟http://cosoft.org.cn/
哇,好高兴哦,我终于成为高手了!非也,非也。古人云:“识时务者为俊杰”。你知道计算
机界现在的发展形势吗?你知道微软的.NET蓝图和SUN ONE计划之间的明争暗斗吗?你知道计算机技术将向何处发展吗?其实从各大计算机厂商最近的动作,都可以看出来“Web服务将是下一代互联网应用的制高点”,而微软的.NET蓝图和SUN ONE计划的斗争焦点,也就是Web服务。Web服务就是一个崭新的分布式计算模型,它是一系列标准的综合(XML,SOAP,UDDI,WSDL和WSFL等)。它使得不同语言编写的软件能够轻易的集成起来,使网络资源和Web站点变成一种服务而不是混乱的垃圾场。不远的将来,我们就可以在家里点击一下鼠标,就可以完成出门旅游的全部准备工作,包括定飞机票,定旅游线路,定好房间等。请注意,这所有的一切都是Web站点间自动完成的,再也不用象现在一样,表面上是电子商务,实际上很多环节都是人工操作。也许你会觉得这是天方夜谈,不过就近的说,你也很有可能承接一个项目,要集成两个企业的ERP系统。很有可能上游企业的系统是用Dephi编的,而下游企业的系统是用Java编的。你说你是Java高手,大家都看者你怎么做呢。所以啊,你还得学习新技术,如Web服务,而且你Dephi也要懂一点吧(Dephi6现在已经提供Web服务的控件了)。你编的Java系统,可能要和.NET集成,所以你.NET要懂一点吧?到最后,你可能发现你已经成为Java高手了,但很多时间却在搞别的技术。太极张三丰里说,最厉害的招式就是没有招式,可能就是这个道理吧!
因为刚刚兴起,所以网上Web服务的资料不是很多,我还是给大家推荐几个网站吧: 中国UDDI技术联盟http:///developerWorks/cn/xml/index.shtml?csdnIBM可是Web服务的力推者
呜„你费劲千心万苦,总算成为Java高手了,怎叫人不由喜极而泣呢!是啊,真不容易,真不简单,真叫人感动啊!那么打个电话告诉我吧,什么?我的电话号码是多少?昏到,你打电话问不就知道了吗,真是的„„
第二篇:JAVA程序员面试题
JAVA程序员面试题
第一,谈谈final, finally, finalize的区别。
final?修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载。
finally?再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。
finalize?方法名。Java 技术允许使用 finalize()方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize()方法以整理系统资源或者执行其他清理工作。finalize()方法是在垃圾收集器删除对象之前对这个对象调用的。
第二,Anonymous Inner Class(匿名内部类)是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?
匿名的内部类是没有名字的内部类。不能extends(继承)其它类,但一个内部类可以作为一个接口,由另一个内部类实现。
第三,Static Nested Class 和 Inner Class的不同,说得越多越好(面试题有的很笼统)。
Nested Class(一般是C++的说法),Inner Class(一般是JAVA的说法)。Java内部类与C++嵌套类最大的不同就在于是否有指向外部的引用上。注: 静态内部类(Inner Class)意味着1创建一个static内部类的对象,不需要一个外部类对象,2不能从一个static内部类的一个对象访问一个外部类对象
第四,&和&&的区别。
&是位运算符。&&是布尔逻辑运算符。
第五,HashMap和Hashtable的区别。
都属于Map接口的类,实现了将惟一键映射到特定的值上。
HashMap 类没有分类或者排序。它允许一个 null 键和多个 null 值。
Hashtable 类似于 HashMap,但是不允许 null 键和 null 值。它也比 HashMap 慢,因为它是同步的。
第六,Collection 和 Collections的区别。
Collections是个java.util下的类,它包含有各种有关集合操作的静态方法。
Collection是个java.util下的接口,它是各种集合结构的父接口。
第七,什么时候用assert。
断言是一个包含布尔表达式的语句,在执行这个语句时假定该表达式为 true。如果表达式计算为 false,那么系统会报告一个 AssertionError。它用于调试目的:
assert(a > 0);// throws an AssertionError if a <= 0 断言可以有两种形式:
assert Expression1;
assert Expression1 : Expression2;Expression1 应该总是产生一个布尔值。
Expression2 可以是得出一个值的任意表达式。这个值用于生成显示更多调试信息的 String 消息。
断言在默认情况下是禁用的。要在编译时启用断言,需要使用 source 1.4 标记:
javac-source 1.4 Test.java
要在运行时启用断言,可使用-enableassertions 或者-ea 标记。
要在运行时选择禁用断言,可使用-da 或者-disableassertions 标记。
要系统类中启用断言,可使用-esa 或者-dsa 标记。还可以在包的基础上启用或者禁用断言。可以在预计正常情况下不会到达的任何位置上放置断言。断言可以用于验证传递给私有方法的参数。不过,断言不应该用于验证传递给公有方法的参数,因为不管是否启用了断言,公有方法都必须检查其参数。不过,既可以在公有方法中,也可以在非公有方法中利用断言测试后置条件。另外,断言不应该以任何方式改变程序的状态。
第八,GC是什么? 为什么要有GC?(基础)。
GC是垃圾收集器。Java 程序员不用担心内存管理,因为垃圾收集器会自动进行管理。要请求垃圾收集,可以调用下面的方法之一:
System.gc()
Runtime.getRuntime().gc()
第九,String s = new String(“xyz”);创建了几个String Object?
两个对象,一个是“xyx”,一个是指向“xyx”的引用对象s。
第十,Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
Math.round(11.5)返回(long)12,Math.round(-11.5)返回(long)-11;
第十一,short s1 = 1;s1 = s1 + 1;有什么错? short s1 = 1;s1 += 1;有什么错?
short s1 = 1;s1 = s1 + 1;有错,s1是short型,s1+1是int型,不能显式转化为short型。可修改为s1 =(short)(s1 + 1)。short s1 = 1;s1 += 1正确。
第十二,sleep()和 wait()有什么区别? 搞线程的最爱
sleep()方法是使线程停止一段时间的方法。在sleep 时间间隔期满后,线程不一定立即恢复执行。这是因为在那个时刻,其它线程可能正在运行而且没有被调度为放弃执行,除非(a)“醒来”的线程具有更高的优先级(b)正在运行的线程因为其它原因而阻塞。
wait()是线程交互时,如果线程对一个同步对象x 发出一个wait()调用,该线程会暂停执行,被调对象进入等待状态,直到被唤醒或等待时间到。
第十三,Java有没有goto?
Goto?java中的保留字,现在没有在java中使用。
第十四,数组有没有length()这个方法? String有没有length()这个方法? 数组没有length()这个方法,有length的属性。String有length()这个方法。
第十五,Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?
方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写(Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。
第十六,Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
Set里的元素是不能重复的,那么用iterator()方法来区分重复与否。equals()是判读两个Set是否相等。
equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值。第十七,给我一个你最常见到的runtime exception。
ArithmeticException, ArrayStoreException, BufferOverflowException, BufferUnderflowException, CannotRedoException, CannotUndoException, ClassCastException, CMMException, ConcurrentModificationException, DOMException, EmptyStackException, IllegalArgumentException, IllegalMonitorStateException, IllegalPathStateException, IllegalStateException, ImagingOpException, IndexOutOfBoundsException, MissingResourceException, NegativeArraySizeException, NoSuchElementException, NullPointerException, ProfileDataException, ProviderException, RasterFormatException, SecurityException, SystemException, UndeclaredThrowableException, UnmodifiableSetException, UnsupportedOperationException
第十八,error和exception有什么区别?
error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。
第十九,List, Set, Map是否继承自Collection接口? List,Set是
Map不是
第二十,abstract class和interface有什么区别?
声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。
接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。
第二十一,abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized? 都不能
第二十二,接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)?
接口可以继承接口。抽象类可以实现(implements)接口,抽象类是否可继承实体类,但前提是实体类必须有明确的构造函数。
第二十三,启动一个线程是用run()还是start()?
启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行。这并不意味着线程就会立即运行。run()方法可以产生必须退出的标志来停止一个线程。
第二十四,构造器Constructor是否可被override?
构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading。
第二十五,是否可以继承String类? String类是final类故不可以继承。
第二十六,当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?
不能,一个对象的一个synchronized方法只能由一个线程访问。
第二十七,try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后? 会执行,在return前执行。
第二十八,编程题: 用最有效率的方法算出2乘以8等於几? 有C背景的程序员特别喜欢问这种问题。<< 3
第二十九,两个对象值相同(x.equals(y)== true),但却可有不同的hash code,这句话对不对? 不对,有相同的hash code。
第三十,当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
是值传递。Java 编程语言只由值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的引用。对象的内容可以在被调用的方法中改变,但对象的引用是永远不会改变的。
第三十一,swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
switch(expr1)中,expr1是一个整数表达式。因此传递给 switch 和 case 语句的参数应该是 int、short、char 或者 byte。long,string 都不能作用于swtich。
第三十二,编程题: 写一个Singleton出来。
Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。
一般Singleton模式通常有几种种形式:
第一种形式: 定义一个类,它的构造函数为private的,它有一个static的private的该类变量,在类初始化时实例话,通过一个public的getInstance方法获取对它的引用,继而调用其中的方法。public class Singleton {
private Singleton(){}
//在自己内部定义自己一个实例,是不是很奇怪?
//注意这是private 只供内部调用
private static Singleton instance = new Singleton();
//这里提供了一个供外部访问本class的静态方法,可以直接访问
public static Singleton getInstance(){
return instance;
} }
第二种形式:
public class Singleton {
private static Singleton instance = null;
public static synchronized Singleton getInstance(){
//这个方法比上面有所改进,不用每次都进行生成对象,只是第一次
//使用时生成实例,提高了效率!
if(instance==null)
instance=new Singleton();return instance;
} }
其他形式:
定义一个类,它的构造函数为private的,所有方法为static的。一般认为第一种形式要更加安全些 第三十三 Hashtable和HashMap
Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Map interface的一个实现
HashMap允许将null作为一个entry的key或者value,而Hashtable不允许
还有就是,HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因为contains方法容易让人引起误解。
最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在
多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap
就必须为之提供外同步。
Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异。
1:abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?
2:当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的
结果,那么这里到底是值传递还是引用传递?
3:Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们 有何区别?
4:构造器Constructor是否可被override?
5:当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?
6:两个对象值相同(x.equals(y)== true),但却可有不同的hash code,这句话对不对
关于参数传递:
其实JAVA里对参数的传递在国际上都是一直有争论的。包括《Think in java》里都提到了,Bruce Eckel 也没给出定论。我觉得这很大程度上是由于规范不严格造成的。因为大家都知道参数传递的本质是什么,但描述方式不一样,以致造成答案不一致。
现给一些参考:
第一,JAVA 里的参数传递只有值传递,没有所谓的引用传递。(说白了,是因为大家的说法 不统一)
第二,引用一个强人的观点 jamesfancy()边城狂人(James Fancy):
“1.首先明白参数的传递实质是压栈和出栈的过程。即在调用一个方法(或说子程序)之前,先将需要传入的参数压栈,然后执行代码的指针跳转到方法的起始位置,进行出栈操作,原来压入栈中的参数取出置入方法中的局部变量(这里即参数变量)。
2.对于基本类型,传递的参数都是对原变量值的拷贝。每一个基本类型的数据都是以字节形式保存在内存中的(如整型是4个字节,长整型是8个字节等),压栈时会将内存中的变量值按字节存入栈中,而原变量的值(即保存在原位置的内容)并不改变??内存中的数据是保存在堆中的,参数是保存在栈中的,总不可能把内存块搬过来是吧......所以一定是拷贝的!
3.先搞明白引用的实质。当一个对象创建后,它的内容(N个字节)被保存在内存中。它的位置,即一个地址址,被返回,保存在一个引用变量中??所以实际上一个引用变量保存的只是某个类的地址,而引用的类型,并不会改变引用变量的大小,它只是说明一个对象的数据大小。这样,就可以从引用变量找到对象的起始地址,再通过类型,获取对象数据。而通过引用调用的方法,属性这些东西,就是通过在这块内存地址中的位置偏移来寻址的。(当然,实际的操作会比我说的复杂得多,因为还涉及向上向下传型等问题)
4.引用参数的传递,实际上就是传递的引用变量的值,这和传递基本类型的值原理是一样的。但由于引用变量其值的特殊性(只是一个地址,这个地址上保存的才是对象的实际数据),所以,引用变量的值传入参数变量后,通过参数变量对对象的修改(在实际地址上的操作)自然就会影响到同一个对象。??这里,外面的引用变量和参数变量,本身是不同的,但是它们的值相同,都是对象的地址。
第一,谈谈final, finally, finalize的区别。
final?修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载。
finally?再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。
finalize?方法名。Java 技术允许使用 finalize()方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize()方法以整理系统资源或者执行其他清理工作。finalize()方法是在垃圾收集器删除对象之前对这个对象调用的。
第二,Anonymous Inner Class(匿名内部类)是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?
匿名的内部类是没有名字的内部类。不能extends(继承)其它类,但一个内部类可以作为一个接口,由另一个内部类实现。
第三,Static Nested Class 和 Inner Class的不同,说得越多越好(面试题有的很笼统)。
Nested Class(一般是C++的说法),Inner Class(一般是JAVA的说法)。Java内部类与C++嵌套类最大的不同就在于是否有指向外部的引用上。注: 静态内部类(Inner Class)意味着1创建一个static内部类的对象,不需要一个外部类对象,2不能从一个static内部类的一个对象访问一个外部类对象
第四,&和&&的区别。
&是位运算符。&&是布尔逻辑运算符。
第五,HashMap和Hashtable的区别。
都属于Map接口的类,实现了将惟一键映射到特定的值上。HashMap 类没有分类或者排序。它允许一个 null 键和多个 null 值。
Hashtable 类似于 HashMap,但是不允许 null 键和 null 值。它也比 HashMap 慢,因为它是同步的。
第六,Collection 和 Collections的区别。
Collections是个java.util下的类,它包含有各种有关集合操作的静态方法。
Collection是个java.util下的接口,它是各种集合结构的父接口。
第七,什么时候用assert。
断言是一个包含布尔表达式的语句,在执行这个语句时假定该表达式为 true。如果表达式计算为 false,那么系统会报告一个 AssertionError。它用于调试目的:
assert(a > 0);// throws an AssertionError if a <= 0 断言可以有两种形式:
assert Expression1;
assert Expression1 : Expression2;Expression1 应该总是产生一个布尔值。
Expression2 可以是得出一个值的任意表达式。这个值用于生成显示更多调试信息的 String 消息。
断言在默认情况下是禁用的。要在编译时启用断言,需要使用 source 1.4 标记: javac-source 1.4 Test.java
要在运行时启用断言,可使用-enableassertions 或者-ea 标记。
要在运行时选择禁用断言,可使用-da 或者-disableassertions 标记。
要系统类中启用断言,可使用-esa 或者-dsa 标记。还可以在包的基础上启用或者禁用断言。
可以在预计正常情况下不会到达的任何位置上放置断言。断言可以用于验证传递给私有方法的参数。不过,断言不应该用于验证传递给公有方法的参数,因为不管是否启用了断言,公有方法都必须检查其参数。不过,既可以在公有方法中,也可以在非公有方法中利用断言测试后置条件。另外,断言不应该以任何方式改变程序的状态。
第八,GC是什么? 为什么要有GC?(基础)。
GC是垃圾收集器。Java 程序员不用担心内存管理,因为垃圾收集器会自动进行管理。要请求垃圾收集,可以调用下面的方法之一:
System.gc()
Runtime.getRuntime().gc()
第九,String s = new String(”xyz“);创建了几个String Object?
两个对象,一个是”xyx“,一个是指向”xyx“的引用对象s。
第十,Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
Math.round(11.5)返回(long)12,Math.round(-11.5)返回(long)-11;
第十一,short s1 = 1;s1 = s1 + 1;有什么错? short s1 = 1;s1 += 1;有什么错?
short s1 = 1;s1 = s1 + 1;有错,s1是short型,s1+1是int型,不能显式转化为short型。可修改为s1 =(short)(s1 + 1)。short s1 = 1;s1 += 1正确。
第十二,sleep()和 wait()有什么区别? 搞线程的最爱
sleep()方法是使线程停止一段时间的方法。在sleep 时间间隔期满后,线程不一定立即恢复执行。这是因为在那个时刻,其它线程可能正在运行而且没有被调度为放弃执行,除非(a)”醒来“的线程具有更高的优先级(b)正在运行的线程因为其它原因而阻塞。
wait()是线程交互时,如果线程对一个同步对象x 发出一个wait()调用,该线程会暂停执行,被调对象进入等待状态,直到被唤醒或等待时间到。
第十三,Java有没有goto?
Goto?java中的保留字,现在没有在java中使用。
第十四,数组有没有length()这个方法? String有没有length()这个方法? 数组没有length()这个方法,有length的属性。String有length()这个方法。
第十五,Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?
方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写(Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被”屏蔽“了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。
第十六,Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
Set里的元素是不能重复的,那么用iterator()方法来区分重复与否。equals()是判读两个Set是否相等。
equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值。第十七,给我一个你最常见到的runtime exception。
ArithmeticException, ArrayStoreException, BufferOverflowException, BufferUnderflowException, CannotRedoException, CannotUndoException, ClassCastException, CMMException, ConcurrentModificationException, DOMException, EmptyStackException, IllegalArgumentException, IllegalMonitorStateException, IllegalPathStateException, IllegalStateException, ImagingOpException, IndexOutOfBoundsException, MissingResourceException, NegativeArraySizeException, NoSuchElementException, NullPointerException, ProfileDataException, ProviderException, RasterFormatException, SecurityException, SystemException, UndeclaredThrowableException, UnmodifiableSetException, UnsupportedOperationException
第十八,error和exception有什么区别?
error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。
exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。
第十九,List, Set, Map是否继承自Collection接口? List,Set是
Map不是
第二十,abstract class和interface有什么区别?
声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。
接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。
第二十一,abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized? 都不能
第二十二,接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)?
接口可以继承接口。抽象类可以实现(implements)接口,抽象类是否可继承实体类,但前提是实体类必须有明确的构造函数。
第二十三,启动一个线程是用run()还是start()?
启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行。这并不意味着线程就会立即运行。run()方法可以产生必须退出的标志来停止一个线程。
第二十四,构造器Constructor是否可被override?
构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading。
第二十五,是否可以继承String类? String类是final类故不可以继承。
第二十六,当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?
不能,一个对象的一个synchronized方法只能由一个线程访问。
第二十七,try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后? 会执行,在return前执行。
第二十八,编程题: 用最有效率的方法算出2乘以8等於几? 有C背景的程序员特别喜欢问这种问题。<< 3
第二十九,两个对象值相同(x.equals(y)== true),但却可有不同的hash code,这句话对不对? 不对,有相同的hash code。
第三十,当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
是值传递。Java 编程语言只由值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的引用。对象的内容可以在被调用的方法中改变,但对象的引用是永远不会改变的。
第三十一,swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
switch(expr1)中,expr1是一个整数表达式。因此传递给 switch 和 case 语句的参数应该是 int、short、char 或者 byte。long,string 都不能作用于swtich。
第三十二,编程题: 写一个Singleton出来。
Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。
一般Singleton模式通常有几种种形式:
第一种形式: 定义一个类,它的构造函数为private的,它有一个static的private的该类变量,在类初始化时实例话,通过一个public的getInstance方法获取对它的引用,继而调用其中的方法。public class Singleton {
private Singleton(){}
//在自己内部定义自己一个实例,是不是很奇怪?
//注意这是private 只供内部调用
private static Singleton instance = new Singleton();
//这里提供了一个供外部访问本class的静态方法,可以直接访问
public static Singleton getInstance(){
return instance;
} }
第二种形式:
public class Singleton {
private static Singleton instance = null;
public static synchronized Singleton getInstance(){
//这个方法比上面有所改进,不用每次都进行生成对象,只是第一次
//使用时生成实例,提高了效率!
if(instance==null)
instance=new Singleton();return instance;
} }
其他形式:
定义一个类,它的构造函数为private的,所有方法为static的。一般认为第一种形式要更加安全些
第三十三 Hashtable和HashMap
Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Map interface的一个实现
HashMap允许将null作为一个entry的key或者value,而Hashtable不允许
还有就是,HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因为contains方法容易让人引起误解。
最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在
多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap
就必须为之提供外同步。
Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异。
1:abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?
2:当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的
结果,那么这里到底是值传递还是引用传递?
3:Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们 有何区别?
4:构造器Constructor是否可被override?
5:当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?
6:两个对象值相同(x.equals(y)== true),但却可有不同的hash code,这句话对不对
关于参数传递:
其实JAVA里对参数的传递在国际上都是一直有争论的。包括《Think in java》里都提到了,Bruce Eckel 也没给出定论。我觉得这很大程度上是由于规范不严格造成的。因为大家都知道参数传递的本质是什么,但描述方式不一样,以致造成答案不一致。
现给一些参考:
第一,JAVA 里的参数传递只有值传递,没有所谓的引用传递。(说白了,是因为大家的说法 不统一)
第二,引用一个强人的观点 jamesfancy()边城狂人(James Fancy):
”1.首先明白参数的传递实质是压栈和出栈的过程。即在调用一个方法(或说子程序)之前,先将需要传入的参数压栈,然后执行代码的指针跳转到方法的起始位置,进行出栈操作,原来压入栈中的参数取出置入方法中的局部变量(这里即参数变量)。
2.对于基本类型,传递的参数都是对原变量值的拷贝。每一个基本类型的数据都是以字节形式保存在内存中的(如整型是4个字节,长整型是8个字节等),压栈时会将内存中的变量值按字节存入栈中,而原变量的值(即保存在原位置的内容)并不改变??内存中的数据是保存在堆中的,参数是保存在栈中的,总不可能把内存块搬过来是吧......所以一定是拷贝的!
3.先搞明白引用的实质。当一个对象创建后,它的内容(N个字节)被保存在内存中。它的位置,即一个地址址,被返回,保存在一个引用变量中??所以实际上一个引用变量保存的只是某个类的地址,而引用的类型,并不会改变引用变量的大小,它只是说明一个对象的数据大小。这样,就可以从引用变量找到对象的起始地址,再通过类型,获取对象数据。而通过引用调用的方法,属性这些东西,就是通过在这块内存地址中的位置偏移来寻址的。(当然,实际的操作会比我说的复杂得多,因为还涉及向上向下传型等问题)
4.引用参数的传递,实际上就是传递的引用变量的值,这和传递基本类型的值原理是一样的。但由于引用变量其值的特殊性(只是一个地址,这个地址上保存的才是对象的实际数据),所以,引用变量的值传入参数变量后,通过参数变量对对象的修改(在实际地址上的操作)自然就会影响到同一个对象。??这里,外面的引用变量和参数变量,本身是不同的,但是它们的值相同,都是对象的地址。
第三篇:java程序员(笔试)
笔试
一. 选择题
1.从“员工”表的“姓名”字段中找出名字包含“玛丽”的人,下面的哪条select语句正确()
A.Select*from 员工 where姓名 =“__玛丽__” B.Select*from 员工 where姓名 =“%玛丽__” C.Select*from 员工 where姓名 like“__玛丽%” D.Select*from 员工 where姓名 like“%玛丽%”
二. 多选题
6.下面哪两个设置一个jsp页的content type? A.
7.下面描述正确的是()
A.Statement 继承自PreparedStatement B.ResultSet继承自Statement C.CallableStatement继承自PreparedStatement D.PreparedStatement继承自Statement 8.下列属于jsp中注释的有()A.<%----%> B.// C./*
*/ D. 三.排序
9.典型的JDBC程序按()顺序编写。A.释放资源
B.获得与数据库连接
C.创建不同类型的Statement D.如果有结果集,处理结果集
10.以下哪些是定义在ResultSet中用于Cursor定位的方法: A.next()B.beforeFirst()C.afterLast()D.isBeforeFirst()
E.absolute(int)F.relative(int)四.判断题
11.
错误
正确
12.statement 执行query得到resultSet对象,必须执行next方法才可以取出第一条记录
错误
正确
五.解答题
13.如何获得数组的长度?
14.try{}里有一个return语句,那么紧跟在这个try后的finally()里的语句是否执行,何时执行?
15.列出java 基本数据类型
16.在java 中,如何跳出当前的多重嵌套循环?
17.描述使用JDBC连接数据库的过程
18.jsp 中动态INCLUDE与静态INCLUDE的区别?
19.两种跳转方式分别是什么?有什么区别?
20.http 协议默认端口是______tomcat服务器的默认端口是___________
21.HTTP 提交请求的方式有两种,分别是_______和__________
22.简单说明page, request,session, application 的作用范围
23.简单说明Vector 和hashtable 的区别
24.简单阐述几种表单的提交方法(非方式)。
25.如何在HTML页面中嵌套其他页面
26.现有客户信息表如下:
(1).用一条Sql 语句,查询订单大于1000元的用户名
六.程序题(手写代码)
1.现有1,2,3,4几个数字,这几个数字能组成多少个不重复的三位数?分别是多少?
2.输入一个字符串,里面包含英文字母,空格,数字,分割这个字符串,并且计算出英文字母,空格,数字各有多少个?
第四篇:java程序员面试题
1、你怎样理解Struts,又那些配置文件,以及作用? 理解:http://ruixin.iteye.com/blog/899289 配置文件:struts.xml 作用:struts 框架mvc 实现低耦合,便于程序的维护~ 配置文件控制流程的转向 很清晰~ 主要负责具体业务的实现和页面的转向~
2、怎么样来捕获数据库中的异常?
3、如何处理网页中的验证信息,如何友好的进行处理?
4、用javaScript实现java中的监听器功能?
5、你对对日外包的看法?
6、数据库连接方式由哪几种?
Jdbc、连接池、hibernate
7、你清楚哪几种设计模式,谈谈各种设计模式的类结构。
8、谈谈jsp和sevlet的区别,以及它们性能上的区别。
jsp是servlet的一种简化,jsp编译后是“类servlet”。servlet 主要是用来处理业务层;
jsp 则是主要负责 表现层。
servlet完全是java程序代码构成,擅长于流程控制和事务处理,而通过servlet来生成动态网页很不直观; 对于静态的html标签,servlet都必须使用页面输出流逐行输出。Servlet中没有内置对象。Jsp由html代码和jsp标签构成可以方便地编写动态网页,在struts框架中,jsp位于MVC设计模式的视图层,而servlet位于控制层。
总之,使用jsp只需要完成程序员需要输出到客户端的内容,至于jsp中的java脚本如果镶嵌到一个类中,由jsp容器完成,而servlet则是个完整的java类,这个类的service方法用于生成对客户端的响应
9、如何来编写存储过程,如何优化存储过程,以及存储过程和TSQL的区别。
10、提供的培训,CMM-5软件开发流程培训、代码编写规范和业务流程培训、对日语的培训。
1、为什么要选择这个行业,和计算机专业的相比有什么优势?
2、Servlet是什么,以及生命周期?
Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。
与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。
3、怎么理解事务?
4、怎么理解MVC?
自己做自己的事情,主要强调分层,5、同时插入大量数据,使用何种方法优化?Batch
6、多个有关系得怎么样操作?
7、你认为你还有什么优点在前面没有提到?
8、对加班的看法?
9、与上级意见不一致时怎么样处理?10、11、12、13、14、15、16、17、18、19、20、21、22、23、你如何理解团队精神?
你怎样处理学习新技术和项目开发之间的矛盾? 怎样去学习新技术?
作为一个初级程序员怎么样弥补与有经验程序员之间的差距? 你对索引的理解,索引有几种,什么时候用索引? 对Oracle理解?
怎样优化复杂的查询语句? 你对Jdbc理解?
对Finally块的理解和应用? 游标的理解? ResultSet 重载,重写? 签名
EJB的事务,Hibernate的事务? Struts的标签? 重定向和跳转? A、
a.地址栏不改变跳转——服务器端跳转,服务器之间内部转,相同的request,可传参;
b.执行到跳转语句后无条件立刻跳转——之后的代码不再被执行;
注意:如果使用forward跳转,则一定要在跳转之前释放掉全部的资源;
c.使用forward时,request设置的属性依然能保留在下一个页面(setAttribute);d.通过
e.地址中的”/”代表是:http://localhost:8080/Test B、response.sendRedirect(“地址”):效率低,速度慢
a.地址栏改变跳转——客户端跳转(其中地址可以是任意的)
b.所有代码执行完毕之后再跳转,跳转语句后面的代码还是会执行,除非在其后面加上return(return)需复杂一些。
<% Response.sendRedirect(“aa.jsp”);boolean b = true;
if(b){ Return;} System.out.println(“aaaaaaaaaa”);%>
c.不能保存request属性——地址改变了,客户端跳转,不同的request d.通过对URL地址的重写传递参数:
response.sendRedirect(“responseDemo04.jsp?id=mldn”);
e.地址中的”/”代表是:http://localhost:8080/
下面是两种比较重要的跳转,我还是与上次的一次,把我做的笔记贴出来:24、25、Hibernate的左联结和右连接,缓存,数据加载? 面向对象如何理解?
26、EJB中CMP和BMP,SessionBean的机制?27、28、29、对日外包是否有抵触情绪? 如何减少Servlet的请求? 对设计模式了解多少?作过的项目中用过那些设计模式? 30、31、32、33、34、35、36、37、38、39、40、41、42、43、44、45、怎样看待团队合作,在团队合作中你扮演什么样的角色,遇到技术难题时怎么解决? Exception的层次结构? EJB对数据库的访问机制? Struts中是否有事务处理? Hibernate的其它功能(除了ORM)? 如何提高数据库中的数据查询效率? 作为项目经理如何对组内成员分工? 描述一下你做过项目的流程。
加班到12点,突然有人来问你技术上的难题,你会如何处理? Oracle的冷备份、热备份 Strurs中怎样实现 Hibernate怎样实现ORM Spring 的事务处理机制
Strurs的验证方式,Javascript的验证的方式
一个是服务器端验证,一个是客户端验证
Struts的工作机制 Delete/trancate的区别
trancate与delete都是删除数据,不同的是trancate是将表的所有数据都删除,而delete可以有选择地删除数据; delete删除数据是记录在日志中的,可以通过其将数据恢复,而trancate则是将整个表截断,其操作是不记录在日志里的。46、47、48、作为项目组长,你遇到的最大问题是什么?如何解决?
Ajax/内嵌框架实现局部刷新,有什么差别?
Exception/Error的区别,在什么情况下可以抛出RuntimeException 父类不同
知道异常和错误最本质的区别就是异常能被开发人员处理而错误时系统本来自带的,一般无法处理也不需要我们程序员来处理。
在程序运行时候出错而又不是系统原因差生的,一般是由于程序原因产生,比如程序写的不够严谨、完善
典型的RuntimeException
有
ArithmeticException、ClassCastException、IndexOutOfBoundsException、NullPointerException、UnsupportedOperationException 等.49、50、51、52、53、54、55、56、57、58、59、Orcale 物化视图(MV)
业务处理模块中,是如何处理事务? Sql语句如何优化 数据库右连接
JDBC的连接关闭在哪?
Finally语句块内
错误处理模块是放在哪个层的。接口能否继承接口。
接口可以继承接口..但是要使用extends~而不是用implements 抽象类能否继承实体类。
抽象类是可以继承实体类,但前提是实体类必须有明确的构造函数 答案很明确,可以继承。
项目中查询时怎么样实现的?
作为项目负责人你是管理这个团队的?
在你做项目过程中遇到些什么问题,是怎么样解决的?
Jquery中的几种选择器:
Javascript如何进行数字和字符串之间的转换?
数字类型转换成String类型用 对象=对象.toString()方法,字符串转换成数字类型则是对象=Number(对象);
第五篇:java程序员招聘
职位描述:
1、参加基于 JAVA 技术的门户网站的开发;
2、负责公司的网站开发维护及新产品的研发;
3、书写技术文档和制定开发规范;
4、从系统层面去合理析网站产品,并提供开发工程师构架建议;
任职资格:
1、计算机相关专业大专或以上学历; 2、2年以上电子商务平台开发经验;
3、精通Java、JSP开发;熟悉Eclipse开发工具,熟悉J2EE架构以及servlet、javaBean等相关技术;
4、熟悉Weblogic、Tomcat等WEB应用服务器,有相关应用部署经验;
5、熟悉Mysql、Sqlserver数据库;
6、精通Linux环境WEB服务器开发与部署;
7、熟悉HTML、css等;
8、头脑灵活、思维敏捷、性格开朗。
具体要求:
熟悉J2EE架构,有Java开发经验二年以上.透彻理解MVC模式,能熟练运用Spring做项目。熟悉Jsp,JavaScript开发,有B/S开发经验.熟悉SQLServer,Oracle,MySql,任何一种.有应用软件开发背景或对抽像思想有深刻认识或有MVC框架开发经历优先.有良好的沟通能力和独立的工作能力,能出差。有数据库方面专长优先。
工作职责:负责产品的设计、开发、测试和维护工作,并进行相关文档的编写。职位要求:
1.具有使用Java开发项目的经验,工作经验1-2年;
2.熟悉面向对象编程原理,熟悉J2EE、Servlet,JavaBean、JSP、javascript、XML、Spring、ibatis、Struts、WebService等技术; 3.熟悉Struts、ibatis等MVC架构; 4.熟悉并能熟练使用CORBA; 5.熟练掌握Oracle等数据库应用;
6.熟悉三层架构并熟练应用Apache,Tomcat等;
7.工作认真,细心,有条理;积极性高,求知欲强;具有较强的责任心,沟通能力及团队合作精神。
注:可年后到岗
岗位职责
1、进行产品需求分析;
2、负责公司新产品的研发和设计;
3、负责公司现有产品的维护和升级;
4、负责对软件进行单元测试、集成测试;
5、负责解决开发过程中的技术问题;
6、负责对系统测试和验收测试报告的问题进行回复;
7、负责软件更改说明、功能特性说明等开发文档编写工作;
任职资格
1、计算机及相关专业毕业,大学本科以上学历
2、一年以上相关工作经验;
3、熟悉软件技术文档的编写;具备良好的文档编制习惯和代码书写规范;
4、熟悉Visual C++开发环境;精通C/C++语言编程;良好的C/C++功底;
5、积极上进,善于学习,具备良好的分析、解决问题的能力
6、英语听、说、读、写能力强;
7、良好的沟通能力和团队协作精神;
基本要求
(1)学历要求:专科以上学历,计算机及其相关专业,2年以上相关岗位经验;
(2)工作经验要求:一年以上java开发工作经验;B/S项目开发经验1年以上;1年以上的Java, J2EE, XML等开发经验,1年以上架构设计经验(Windows环境);
(3)项目开发要求:具有一定规模的项目开发经验; 其它要求:
(1)有较强的学习能力。
(2)具有良好的表达和交流能力,较强的沟通能力,富有进取心;
(3)具有阅读相关技术需求文档能力;具有一定的软件设计及文档编写能力。
Java硬性技术要求:
(1)精通JAVA开发语言、熟练掌握Eclipse开发工具;熟悉HTML、精通Apache、JSP、Servlet等Web开发相关技术;熟悉主流数据库,熟练掌握SQL。
(2)熟悉使用struts、spring、hibernate等常用开发框架;查看、分析前述和其它Java开源项目源代码者优先。
(3)熟练使用JavaScript和Ajax技术;具有一年及以上Ajax开发经验或熟悉Javascript。
应用过UML、重构、软件设计模式者优先……
工作职责:
参与系统设计,进行产品开发
岗位要求:
1.具备Web开发技能,精通JSP、HTML、JAVA语言开发;
2.熟悉TOMCAT安装与Web应用程序部署;
3.会使用数据库中间件:JDBC,Hibernate;
4.大学本科以上,至少2年以上的相关工作经验;
5.有基于GIS系统开发WEB应用经验者优先。
注:工作地点在北四环保福寺桥
职位描述:
要求:
1、有2年以上J2EE相关技术架构的中小型项目开发经验;
2、精通IBM WebSphere或Bea Weblogic平台下的J2EE开发。最好是用IBM WebSphere5.0进行过为期一年以上的J2EE应用开发。并且在开发过程中,大量运用了JSP、JSTL、JNDI、JDBC、XML、AJAX技术和Spring、Struts、Hibernate框架以及Web Services;
3、熟息Web程序开发流程,包括对架构设计、模块设置、代码编写、页面制作、调试、测 试和布署;
4、精通Web Services体系和Web服务体系,能熟练运用在开发过程之中;
5、JS面向对象
pvototype.js,精通JAVA script
6、至少精通Oracle、SQLServer、Sybase数据库中的一种,能熟练编写存储过程和综合查询 视图;
7、有丰富的团队协作开发经验,熟悉CVS管理等团队协作工具。
8、熟悉民航机务维修业务或有类似行业经验者优先。
1.一年以上Web开发开发经验,熟练使用JAVA开发语言,熟悉B/S结构网站开发流程,熟悉HTML,JAVASCRIPT,JQUERY;
2.良好的编程能力,掌握J2EE平台JAVA编程技术,有开源项目hibernate、struts,spring中的两种以上使用经验;
3.熟悉Grails开发有相关经验者优先;
4.熟练掌握主流的应用服务器,如TomcatWeblogicApache等的使用和管理;
5.熟悉SQL语言,熟悉MySQL数据库,熟悉SQL脚本;有ORACLE、SQLSERVER等大型数据库开发经验优先;
6.有WAP网站开发经验者优先;
7.有较强的学习与自学能力; 有良好的合作性和沟通能力,高度的奉献精神及敬业精神;
职位描述:
基本要求
1、年龄 22-33岁
2、计算机应用等相关专业
职位要求
1、精通JAVA开发,熟悉JSP,有一年以上JAVA开发经验,熟练JBuilder等开发工具;
2、熟悉BJB规范、J2EE体系,Weblogic,WebSphere等主流的中间件产品;
3、对MVC模式有较深入的理解,熟悉Struts架构;
4、熟悉XML技术;
5、熟悉数据库技术;
6、能够适应外地出差;
7、有BIP/EAI方面经验者优先;
8、逻辑表达能力强;
9、具备独立开发和运维能力;
10、熟悉电子商务与网上交易研发的JAVA工程师优先(1名)。岗位职责:
1、参加开发和实施公司各类软件项目;
2、参加负责项目后期运行维护;
3、服从软件经理的其他开发任务安排。
职位描述: 岗位职责: 1.程序开发 2.网站的日常维护 任职要求: 1.精通J2EE技术;
2.熟练使用java,JSP,JavaScript等开发语言,熟悉AJAX;
3.精通SQL语法及mysql数据库应用开发;
4.精通HTML,XML,CSS等超文本标记语言;
5.精通B/S三层结构开发模式,熟练各种中间件;
6.精通spring,hibernate;
7.精通Apache、Tomcat;
8.精通Eclipse、JBuilder、Ant等开发工具; 9.重视实践能力。
1、大专或者本科以上学历 2、1年以上大型B/S结构应用软件系统(J2EE架构)开发经验。
3、熟悉一些知名开源项目的框架,如Structs、Spring、Hibernate;并且有实际运用其开发的经验。
4、熟悉Oracle/MYSQL/SQLServer等主流数据库管理系统、相关技术及工具。
5、熟悉B/S模式的应用开发,能灵活使用HTML/DHTML、XML、JavaScript;
6、精力充沛,能承受工作压力,有团队开发经验者优先考虑。
任职要求:
1、本科以上学历,理工科相关专业;
2、精通面向对象设计方法,逻辑能力佳;
3、精通J2EE,掌握XML、HTML、JSP、AJAX等技术; 4、2年以上J2EE开发经验,至少熟悉MySQL、Oracle、SQL Server中的一种数据库开发;
5、有Websphere开发经验者优先;
6、具备极强的团队精神和合作精神,对工作有热情。
上海沃克软件有限公司成立于2001年,是由中外专业人士创立的软件服务公司。公司面向银行领域,为国内银行提供一流的IT咨询和产品解决方案。
目前公司能够提供的解决方案包括: 1.银行核心业务系统解决方案。2.银行EAI/ESB解决方案。3.银行综合前端解决方案。4.银行卡系统解决方案。5.银行现代化支付解决方案。6.银行统一应用系统监控解决方案。7.银行信贷管理系统解决方案。
“ 应用为本,专注行业 ”的发展战略,使上海沃克软件有限公司形成了 “以行业用户为中心” 的
管理体制,将解决方案、市场销售、技术支持等业务,进行一体化整合。尤其在金融领域,形成了银行应用系列及开发工具系列等,为用户提供了完善的解决方案和优质服务,同时公司成立了一个相对独立的技术服务中心,为客户提供全面的技术支持。
上海沃克软件有限公司致力于成为银行业信息化建设的咨询专家、应用软件解决方案及相关软件产品的优秀提供商及服务商,成为国内这一领域最有价值的企业。
基本要求:
1、一年以上工作经验;
2、专业要求:计算机,通信,自动化;
3、踏实、勤奋、开朗、富有责任心、注重细节; 岗位要求:
1、至少参与过两个基于J2EE的WEB项目的开发;
2、能够基于详细设计文档独立完成模块的编码实现;
3、熟悉基于B/S架构的应用软件开发流程;
4、扎实的JAVA基础功底;
5、熟悉J2EE基于开源框架的开发;
6、webwork、spring、ibatis、struts、hibernate等主流框架至少使用过三种;
7、熟练应用Eclipse、svn等常用开发平台和版本控制工具;
8、熟悉ORACLE,能够熟练编写常用SQL语句;
9、熟悉WEBLOGIC、webspere、tomcat等应用服务器;
10、熟悉常用JAVASCRIPT;
11、熟悉公安业务者优先; 报道时间要求:一个月内。
欢迎有项目经验的优秀毕业生加入!
注:本公司检查学历,执假学历者请勿浪费时间
工作要求
1.有两年软件开发经验。
2.熟练掌握Oracle+Java开发技术,熟练掌握Eclipse开发工具。3.熟悉Spring+Hibernate+Struts+Ibatis等Java开源框架。4.熟悉JavaScript、HTML、JSP、CSS等页面相关技术。5.熟悉Linux操作系统。
6.能独立完成数据库和程序设计。工作内容
1.负责公司业务系统的编写和修改 2.负责公司网站开发及设计 3.公司数据分析
岗位职责
1、参与新项目整体开发和计划;
2、参与项目系统架构设计,负责系统模块分析和系统接口设计;
3、核心代码与组件编写,共享重用代码库开发;
4、项目代码审查与确认,制定代码编写的规范;
5、负责系统性能优化和技术攻关;
任职资格
1、计算机相关专业,本科以上学历;
2、3年以上软件开发工作经历;
3、精通JAVA语言,熟练使用组件技术,数据库,相关开发工具,能独立承担项目的模块开发任务;
4、熟悉相关框架知识,熟练应用服务器配置;
5、有良好的编码习惯和技术文档编写能力;熟练阅读英文技术文档,具有很强的沟通、组织和协调能力;
6、能够承受较强的工作压力和强度,有极强的工作责任心。
1.一年以上Web开发开发经验,熟练使用JAVA开发语言,熟悉B/S结构网站开发流程,熟悉HTML,JAVASCRIPT,JQUERY;
2.良好的编程能力,掌握J2EE平台JAVA编程技术,有开源项目hibernate、struts,spring中的两种以上使用经验;
3.熟悉Grails开发有相关经验者优先;
4.熟练掌握主流的应用服务器,如TomcatWeblogicApache等的使用和管理;
5.熟悉SQL语言,熟悉MySQL数据库,熟悉SQL脚本;有ORACLE、SQLSERVER等大型数据库开发经验优先;
6.有WAP网站开发经验者优先;
7.有较强的学习与自学能力; 有良好的合作性和沟通能力,高度的奉献精神及敬业精神;
软件工程师(java)
职位描述
1、B/S项目开发经验2年以上
2、熟悉使用struts、spring、hibernate
3、查看、分析上述活其它Java开源项目源代码者优先
职位要求:
3年以上的Java, J2EE, XML等开发经验,1年以上架构设计经验(Windows环境);
熟练掌握Structs、Spring、Hibernate,等常用开发框架; 精通Transaction、Security、Persistence等机制及实现,IOC、AOP、SOA等理念及实现 熟悉主流数据库系统、应用服务器和开发工具,如SQLServer, Oracle、WebLogic、WebSphere、JBoss、Tomcat、JBuilder、Eclipse, 熟悉 HTML/JAVASCRIPT/CSS 等WEB技术;
熟练掌握面向对象的分析设计技术和工具,包括UML等。两年以上大型J2EE架构的门户网站项目经验者优先;良好的表达和交流能力,富有进取心;
了解Web应用的性能瓶颈和调优方式 专业: 计算机相关专业本科以上
公司介绍
1997年,一个人才的摇篮在上海诞生—新世界教育,这个由海外资金注入,国内精英支持的教育集团,正式扬起了航行的风帆。新世界教育旗下已拥有新世界进修中心、樱花国际日语、新贝青少儿教育、爱马德汉语培训、智赢国际雅思等数家知名专业培训机构,在不同的教育领域取得了非凡的成绩。
新世界教育集团立足于上海,走向全国。经过十年发展,在上海已经建立了46个学习中心,遍布沪上繁华商圈的涉外办公楼。在北京、广州、深圳、大连、青岛、杭州、南京、苏州、绍兴、无锡、常州、南通、温州等18个城市建立了98个学习中心,扩展了外地教育市场,成为全国闻名的培训学校。
现在全国范围内诚聘英才。
我们将提供完善的培训,和良好的职业发展机会。
1.要求计算机软件、通信及相关专业的本科或硕士毕业; 2.具有二年以上在J2EE架构下开发大型项目的经验;
3.精通java开发工具,熟悉Oracle、Informix等数据库的使用和开发;
4.精通J2EE技术架构,具备较强的独立开发能力;
5.具备较强的沟通能力以及团队协作精神,具有出色的分析判断能力。
工作职责:
1、依据项目要求和相关规范,完成系统的详细设计和相应文档的编写
2、根据项目要求和编码规范,完成基于J2EE平台的相应编码(Java、JSP、Servlet、EJB、XML等)任务
3、根据项目要求和单体测试规范,完成系统的单体测试Case设计、实施和总结
4、根据项目要求,配合项目人员完成结合测试、系统测试和系统交付等工作
职位要求:
1、计算机相关专业,重点大学本科以上学历,精通Java,3年以上编程开发经验,有较好的面向对象的程序设计思想和应用经验;
2、熟悉Flex,熟悉IBM Websphere、Eclipse、Jboss、Tomcat等系列产品;
3、熟悉Oracle,SQLServe、DB2数据库开发,精通SQL语言;
4、对J2EE开发体系架构有较深的理解和丰富的项目实践经验,熟练掌握Web Service、Web组件、EJB组件的相关开发
5、熟悉和精通用于Java Web开发的各种流行的开发框架、数据库框架及其设计思想,比如:Struts、Spring、Hibernate等;
6、具备较强的逻辑思维能力和学习能力;或许会有项目出差。
7、对工作认真负责,肯吃苦;积极主动;具备较好的语言表达和沟通能力;
8、有HIS系统开发经验优先。
工作职责:
1、依据项目要求和相关规范,完成系统的详细设计和相应文档的编写
2、根据项目要求和编码规范,完成基于J2EE平台的相应编码(Java、JSP、Servlet、EJB、XML等)任务
3、根据项目要求和单体测试规范,完成系统的单体测试Case设计、实施和总结
4、根据项目要求,配合项目人员完成结合测试、系统测试和系统交付等工作
职位要求:
1、计算机相关专业,重点大学本科以上学历,精通Java,3年以上编程开发经验,有较好的面向对象的程序设计思想和应用经验;
2、熟悉Flex,熟悉IBM Websphere、Eclipse、Jboss、Tomcat等系列产品;
3、熟悉Oracle,SQLServe、DB2数据库开发,精通SQL语言;
4、对J2EE开发体系架构有较深的理解和丰富的项目实践经验,熟练掌握Web Service、Web组件、EJB组件的相关开发
5、熟悉和精通用于Java Web开发的各种流行的开发框架、数据库框架及其设计思想,比如:Struts、Spring、Hibernate等;
6、具备较强的逻辑思维能力和学习能力;或许会有项目出差。
7、对工作认真负责,肯吃苦;积极主动;具备较好的语言表达和沟通能力;
8、有HIS系统开发经验优先。