JAVA程序员经验谈

时间:2019-05-14 16:23:22下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《JAVA程序员经验谈》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《JAVA程序员经验谈》。

第一篇:JAVA程序员经验谈

你好,我是JAVA程序员,做手机游戏开发的,已经工作4年了。在这里给你一点建议,希望对你有所帮助。首先作为一个优秀的程序员,数学是十分重要的。数学是自然科学的基础,计算机科学实际上是数学的一个分支。数学主要能让人懂得一种分析问题的方法,然后再通过编程去实现它。计算机内部的许多原理也都牵涉到比较复杂的数学知识。它是我们用来解决现实问题的最高效的工具。很多学习编程的朋友对数学觉得不屑一顾,觉得对于编程没有什么关系。实际上优秀程序员和一般程序员拉开档次很大一个程度上就是取决于对数学的能力。一些项目有时需要很复杂的数学建模和利用数学对于系统效率进行分析,而这些项目对于一般的程序员是很困难的。正确应用数学知识有时候能使你的程序的效率产生质的飞跃。现在的程序员在数学上普遍是薄弱环节,这点是大家应该引起足够重视的。当别人对于这些项目感到无从下手,而你却能够完成,这个时候你的价值也就表现出来了。真正优秀的程序员是能够最基本的一点就是要能够通过自己的知识来解决一般程序员所无法完成的问题。而数学能力就是一个很重要的环节。

其次就是要对数据结构引起足够的重视。如果说计算机专业的学生与非计算机专业的最根本的差别绝对是数据结构(数学大家都一样学了,主要看你自己学得好坏)。对数据结构的掌握与运用能力是衡量你编程能力的一个很重要的指标。有的人对于看了链表,栈,树,广义表这些东西就头痛。然而这些东西往往能使你的程序的效率比别人高出百倍。由于一直搞信息学竞赛,到了大学又搞ACM,所以我对数学和数据结构都掌握得相对较好。这使我在应聘与工作中明显感到胜人一酬。记得自己大学时去一家公司应聘的经历,当时去应凭的还有3个人,有2个大学毕业,有个也工作了一段时间了。他们几个都在大讲自己的能力如何之强,会使用的语言及编程工具如何之多,经验如何之丰富。按理说我应该是资质最浅的。当时也是初生牛X不怕虎,也就硬着头皮去了。当时面试的题目是一个公司的资金管理项目的一个问题,要求每个人都在思考后给出自己的设计方案。其中比较核心的一个问题就是要计算一个资金最小波动值的问题,给出的数据量相当大,对效率要求很高。对于整个程序的面向对象化的分析我们几个都是差不多的,毕竟这些东西在学校里是很重视的,而且不是真正的难点。然而到了最关键的问题时其余的人都卡壳了,有两个是用简单的双重循环,时间复杂度(N^2),惨不忍睹。还有一个在冥思苦想了好一阵以后说用树,具体技术细节又讲不清楚,效率分析也很马虎。只有我当时很快就给出了采取AVL树的方案,并且利用高等数学推导作出了很详细的效率分析和时空换算,并提出了引入汇编的方法。很自然的我得到了这分工作。在这里大家显然可以看到数学和数据结构对于一个优秀程序员是多么重要,它们是和一般的程序员打开档次的最关键的地方。这样向“枣子”碰到的那种情况应该很轻松的就可以想到。

如果你是一位想学习编程的朋友,我经过多年的学习总结出来了一个学习的线路希望对你有所帮助。要学习编程是要有很大恒心和毅力的,首先你要明确自己的目标,想好自己编程是为了干什么。如果你学习仅仅只是一时想编出QUAKE和成为比尔盖次的冲动,那么我劝你还是应该还是不要开始学习,应为这样的目标很难支持你日后大量的学习。而且你的年龄不能太大(最好是中学或者大学生)。如果你想好目标并决定开始奋斗,那就让我们开始吧。如果你一开始对电脑一无所知,那么你应该先熟悉一些电脑的一些最基本的原理和操作,这个不需要特别细致的学习,只要大概知道二进制和一些基本操作就可以了。接下来你应该先学习BASIC语言,这个语言并不会耽误你太多的时间,学习它完全是为了入门,让你对电脑编程有一个比较初步的认识。这时候你应该多编一些小的程序,知道一些最基本每条语句的功能,搞清楚一些基本的数据结构(尤其是数组)对于一些其余用途的函数最好不要做任何学习,因为这样只会分散你的注意力。当你能够可以熟练的运用BASIC编出猴子选大王,以及电脑出题考试之类的程序时,你就可以开始后面的学习了。接下来如果觉得自己接受能力强的话就可以开始学C了(注意不是C++),如果感觉有困难也可以先学Pascal过度一下。还有很重要的一点就是千万不要一开始就学VB,DELPHI,VC之类的东西,这些东西在一开始学会对你造成很坏的影响。有可能会把你引入另外一个错误的学习方向而忽略了真正应该掌握的东西。学C主要是学过程话的程序设计,学会把自己的程序分成许多的函数(或过程),养成良好的编程习惯。这时可以多看一下高人的程序,不一定要懂意思,主要是学会别人程序的格式(比如变量如何起名,怎么划分函数)。除开掌握基本的控制流语句外,应该学习一些很简单的I/O函数和数学函数。C的学习主要是你舍弃原来BASIC程序那种把所有语句积成一大堆的风格,要学会使用函数,提高代码重用性。对于指针之类的东西如果实在看不懂可以先不去管,到后面会有办法。当你能够比较自如的用C编写一些小的计算程序时,你就可以开始你的数据结构的学习了(数学的学习主要是在学校,自己要多用心)。数据结构你可以一点一点漫漫看,并不需要专门空出一段时间来专门研究,这样的目的是让你能够很好的掌握它,要学会用数据结构的知识来规范自己的程序设计和提高程序的效率。学完C我认为接着最好学习汇编。这个或许有许多人都会反对,然而我个人认为这样是很好的。从最基本的DOS汇编开始,买本《IBM PC汇编程序设计》(清华黄皮)一定要一点一点吃透,实在看不懂就跳,反复的严读是一定可以看懂的。汇编是一定要掌握的,因为它涉及到很多最基本的知识。掌握了汇编和对I/O有了个很彻底的认识后,应该去学编译原理。这个东西并不要精通,但是一定要知道,在大脑里要有一个这样的概念,这对你对程序语言的控制能力都有很大的帮助。这样最基本的学习就算完成了。一般智力正常的人前一段东西应该都是可以掌握的。接着后面的学习就要看你自身的造化了。这个时候你应该研究一下数据结构,不要分散自己学习的注意力,要知道数据结构是异常重要的(相信我,绝对没错)如果你觉得自己已经对于树,连表,堆栈之类的东西和排序,递归之类的算法已经十分清楚,就可以开始学习C++了。学习前一定要有个正确的认识,那就是C和C++是两个不同的东西。学习C++是为了学习面向对象的程序设计,这个时候你对于指针应该也能够掌握了(有汇编的基础),主要抓住C++和C相比的一些新特性,对于多态之类的特性要注意理解掌握,如果没有搞懂就坚决不要往下学习。一些基本的概念掌握以后可以看一些别人设计的程序,学习别人怎么利用面向对象的方法来设计程序的。这个东西也是人之间拉开档次的一个环节,可以和数据结构放在同等重要的地位。我就见过有的人都大学毕业了还搞不懂virtual到底是怎么一回事情。其实我认为学到这里你已经为你成为一个优秀的程序员打下了很好的基础,你已经能够应用C++,懂得面向对象程序设计,对数据结构掌握很好,掌握汇编和编译原理。接下来的学习就是基于操作平台的了,一般是先学windows(Microsoft毕竟是老大),先学win32 api,搞请windows基本消息机制和原理,有汇编基础基本上不会碰到什么困难。其实只要会了API,其余什么MFC,VCL都是囊中之物了,都不过是对于API的封装而已。VC,C++Builder都可轻松拿下,这只是开发工具的问题。以后的OLE(ActiveX),.NET,数据库就要看自己的发展方向而定了。我在这里强调的是前面的基本能力的学习,后面操作平台虽然知识体系庞大,然而毕竟比较死,更好掌握。最后编程能力的高低主要还是有以下几点决定:1。编程的习惯 2。数学能力(包括逻辑思维,分析问题的能力)3。对数据结构的认识能力 4。经验的多少(包括多使用语言的掌握能力)最后,祝你学有所成!

第二篇: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. B.<%@ contentType “text/plain”%> C.<% response.setContentType(“text/plain”);%> D.<% @page contentType=”text/plain”%>

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系统开发经验优先。

下载JAVA程序员经验谈word格式文档
下载JAVA程序员经验谈.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    java程序员之路

    JAVA程序员之路- - 每个人的学习方法是不同的,一个人的方法不见得适合另一个人,我只能是谈自己的学习方法。因为我学习Java是完全自学的,从来没有问过别人,所以学习的过程基本......

    JAVA程序员求职信

    JAVA程序员求职信范文 尊敬的领导: 您好!十分感谢您在百忙之中能翻阅我的自荐信。与公司是一种选择,与我则是一种机会。在上千份大同小异的求职信中,我期望你手中的这份能给您......

    Java程序员简历

    个人简历 ********************************************************************* 基本信息 ********************************************************************* 姓......

    java程序员面试题

    姓名: 年龄: 工作年限: 1.int和Integer有什么区别?2.抽象类(abstract class)和接口(interface)有什么异同?3.List、Set、Map的区别?4.Spring支持的ORM有哪些,哪些是你用过的?5.使用Spri......

    java程序员简历

    x x x 个 人 简 历 个人资料: 姓 名:xxx 性 别:男 出生日期:199x年xx月xx日 年 龄:25 电 话:137xxxxxxxx 住 址:xxxxxxx 毕业院校:xxxxxxxxxxxxxxxxxxxxxx 学 历:本科 E-mail: x xxxx......

    JAVA程序员求职信

    JAVA程序员求职信范文 JAVA程序员求职信范文应该怎么写?求职信的格式有一定的要求,内容要求简练、明确,切忌模糊、笼统、面面俱到。 JAVA程序员求职信范文篇一尊敬的领导: 您......

    JAVA程序员简历

    个人简历姓名:****性别:***** 民族:*******出生日期:****** 学历:******毕业院校:********* 手机:*********邮箱:******** 现居地:**********个人专业技能: ● 熟练掌握基于MVC模式的s......

    java程序员辞职报告

    java程序员辞职报告 java程序员辞职报告1 敬爱的.it部经理:您好!我是it专员xx-x,很遗憾在年底向公司提出辞职申请,递交辞职报告我也是迫于无奈。一方面,it部门在公司确实是一个......