java程序员考核

2024-11-19

java程序员考核(精选8篇)

1.java程序员考核 篇一

考官:java中的反射机制是什么,有什么作用啊?

要点:

JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的以及动态调用对象的方法的功能称为java语言的反射机制。Java反射机制主要提供了以下功能:在运行时判定任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判定任意一个类所具有的成员变量和方法;在运行时调用任意一个对象的方法;生成动态代理。

问题:Java为什么要引入异常处理机制

要点:

程序执行时经常会出现除零溢出、数组越界等运行错误,影响程序的正常执行。错误及异常是不可避免的,一个好的应用程序,在满足用户要求的各种功能的同时,还应具备能预见程序执行过程中可能产生的各种异常的能力,并能为异常情况给予恰当处理。在Java语言中,这种技术就是异常处理 Java语言通过面向对象的异常处理机制来解决运行期间的错误,可以预防错误的程序代码或系统错误所造成的不可预期的结果发生。减少编程人员的工作,增加了程序的灵活性,增加程序的可读性和健壮性.问题:什么是JAVA多线程机制

一.什么是多线程?

多线程是指同时存在几个执行体,按照不同的执行线索共同工作的情况。

二.什么是程序,进程和线程?

程序是一段静态的代码,是应用软件执行的蓝本。

进程是程序的一次动态执行过程,它对应了从代码加载,执行至执行完毕的一个完整的过程。这个过程也是进程本身从生产,发展至消亡的过程。

线程是比进程更小的执行单位。

区别:一个进程在其执行过程中,可以产生多个线程,形成多条执行线索,每条线索即每个线程也有其从生产,发展到消亡的过程。

三.线程的生命周期

线程的生命周期可分为四个阶段,新建,运行,中断和死亡。

新建:当一个Thread类或者其子类的对象被声明并创建时,新生成的线程就处于新建装他,有了相应的内存空间和其他资源。

运行:线程被创建之后,就有了运行的条件了,一旦轮到它来享用CPU资源时,便可以摆脱创建它的主进程开始了自己的生命周期。

中断:一个正在执行的线程可能被认为的中断,让出CPU使用权,进入阻塞状态。线程阻塞时,不能进入排队队列,只有当引起阻塞的原因被撤销时,线程才可转入就绪状态,重新进入排队队列中,等待CPU资源,以便从中止处开始运行。

死亡:线程死亡有2种情况,一是正常运行,完成了它全部的工作。另一种是线程被提前强制终止。死亡状态下的线程,释放了被分配的内存。

四.线程的优先级

在java系统中,线程调度依据优先级基础上的“先到先服务”原则。

Thread类的setPriority(int a)方法可设置线程的优先级,取值有Thread.MIN_PRIORITY,Thread.MAX_PRIORITY, Thread.NORM_PRIORITY三种,默认级别为Thread.NORM_PRIORITY.五.如何实现多线程

Java编程中实现多线程有两种方式:一是继承Thread类,用其子类创建线程,二是实现Runnable接口

六.线程同步

当两个或者多个线程同时访问一个变量,并且一个线程需要改变某个变量时,需要对修改数据的方法修饰为synchronized.当一个线程在使用同步方法时需要用到某个变量,而此变量又需要其他线程修改后才能符合本线程需要,此时用wait(),让本线程等待。

其他线程如果在使用同步方法时不需要等待,那么当它使用完该方法后,用notifyAll()方法通知所有由于使用该同步方法而处于等待的线程结束等待,(notify()方法只能通知第一个处于等待的线程结束等待)

七.Interrupt()方法

一个线程在run方法执行完后便会自动消灭,如果想在run方法执完毕前就消灭线程,可以使用interrupt()方法,此时该线程会捕获InterruptedException异常,在处理该异常的语句里告诉线程立刻结束run方法的执行。

问题:java多线程使用cup是什么机制

要点:java获得cup使用权根据优先级,高优先的先执行,这个和操作系统是一样的,但是优先级别的控制是通过虚拟机控制的,然后在执行的时候是通过操作系统时间片的机制,多线程java有自己的调度算法,虚拟机会自动调度执行的线程,而操作系统处理的是cpu的执行,其实两者都有调度算法,xp的机制我想和

1、main方法是怎么写的public static void main(String [] args){}

2、变量的命名规则是怎么样的?

采用驼峰命名法,见名知意,以小写字母开始。

常量命名:全部大写。

方法命名: 小写字母开始,驼峰命名。

类命名:首字母大写。

3、if„else„和写两个if 有什么区别

if„else„只执行其中一条,写两个if,两个都要执行

4、在JAVA中直接写浮点常数,默认是什么类型?

默认是double类型

5、什么是标识符?它的命名规则是什么?

凡是可以命名的地方都叫标识符。

标识符有两种:

1、系统标识符(关键字);

2、用户标识符

以字母、数字、下划线、$复活组成,不能以数字开头

6、什么是变量?

变量是命了名的内存空间,并且空间的值是可以改变的。

7、JDK与JRE分别是什么?

JDK叫java开发工具集,包括编译环境、运行环境、调试环境以及基础类库。

JRE叫java运行环境,包括虚拟机、核心类库、以及健接文件。

8、try-catch-finally三个基本块的作用?catch里的代码是干什么的?

try块表示此处代码可能引发异常

catch块捕获try块的异常

finally块通常用于资源的回收,连接关闭,清理工作等

try-catch-finally不能单独存在,try块后必须跟catch或finally

catch或finally前必须跟try块

9、继承类和实现接口分别怎么做?

继承用extends关键字继承

定义接口用interface关键字

实现接口用implements10、如何去获得字符串的长度?

调用String类的length()方法

11、Java的基本数据类型有哪些?

int 4字节 整型

byte 1字节 整型

char 2字节 整型

short 4字节 整型

long 8字节 整型

double 8字节 浮点

float 4字节 浮点

boolean 布尔

12、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递

值传递,Java里没有引用传递

13、列出至少5个最常见到的runtime exception并描述在什么情况下出现

IOException在未找到文件时会抛出

NullPointerExecption在对象引用指向空时会抛出

ArrayIndexOutOfBoundsExecption在数组下标越界时会抛出

NumberFormatException在字符串不能转换成数字时会抛出

ArithmeticException在分母为零时会抛出

14、ArrayList和Vector的区别

vector是线程安全的,所以效率低,Arraylist是线程不安全的,但是效率高。

15、在IO中字节流和字符流的父类是什么?

字节流父类是InputStrean和OutputStream

字符流父类是Reader和Writer16、什么是包?定义包有什么好处?

文件夹。

好处:

1、可以有效的组织相关类;

2、可以做到信息的隐藏。

17、怎么样知道磁盘一个目录中有哪些文件?

1、File对象.list()方法;

2、File对象.listFile()方法。

18、如何获得一定范围的随机整数?

x+Math.random()*y 其中x是位移数,确定最小范围,y是放大系数,确定最大数。

(x-y)*Math.randon()+y19、如何获得java当前的工作目录

使用System.getProperty(“user.dir”)能够获得当前工作目录的字符串地址。

20、怎么样判断一个异常类是checked异常还是unchecked异常?

判断当前异常类,是否是RuntimeException的子类,如果是,则是运行期异常否则是编译期异常。

21、log4j一共有几个级别?分别是哪些?级别的高低有什么样的区别.log4j有五个级别:

DEBUG:调试

INFO:信息

WARN:警告

ERROR:错误

FATAL:崩溃

21、静态变量和成员变量应该怎么访问?

静态变量可以通过对象.和类名.的方式访问

成员变量通过对象.的方式访问

22、如何将一个字符串转成一个基本数据类型

Int x = Integer.parselint(“32”);

Double d = Double.parseDouble(“4.5”);

23、如何让JFrame的初始位置居中(在不同的分辨率中)

窗体对象.setLocationRelativeTo(null);

24、谈谈集合的作用

方便对数据进行 存储,检索,操作,传输。

25、类的修饰符能不能是private、static、protected?

内部类可以,因为内部类相当于外部类的属性

26、Try块中是否所有的语句都一定会执行,为什么?

不是,一但try中发生了异常,那么异常发生处下面的语句就不会执行,专区catch块执行

27、什么时候用继承,什么时候用接口?

当需要重用属性和方法时使用继承

当只需要重用方法时用接口

28、finally是不是什么时候都会执行?

是当虚拟机关闭,System.exit(0),finally内容不会执行;

29、什么是主线程?

当main()方法执行时会产生主线程,1最先开始 2最后结束

3产生其他子线程

4回收资源

30、进行IO流操作时,如果操作的文件不存在会发生什么情况?

读取流在文件不存在时,会抛出文件未找到异常

写入流在文件不存在时,会创建文件,但如果该文件所在目录不存在,同时会抛出文件未找到异常

31、IO流操作的步骤是怎么样的?

创建流 操作流 关闭流

32、finally的作用是什么?

无论是否有异常都会执行的代码块,一般用于资源回收,比如流动关闭、数据库的关闭

34、当一个线程进入一个对象的一个同步方法后,能否进入其它非同步方法? 么?一般在什么时候使用? 可以,但不能进入其他同步方法。

33、try {}里有一个return语句,那么紧跟在这个try后的finally {}里的代码会不会被执行,什么时候被执行?

Finally{}在程序开启时只执行它本身里的代码。

会执行,在方法返回前执行

35、如何启动线程,它直接调用run()方法有什么区别?

启动线程调用start方法,用start方法启动线程后,是多个线程同时进行,使用run()是普通方法,是不会产生新的线程,是单线程。

36、数组有没有length()这个方法? String有没有length()这个方法?

数组有length属性,String有length方法

37、GC是什么? 为什么要有GC?

GC叫做垃圾回收器,为了回收内存不再使用对象,释放内存空间,避免内存溢出。

38、线程同步化会带什么样的结果?

1:可以使数据安全

2:效率会降低

39、什么是线程安全?

当两个或两个以上线程,访问同一个资源时,为了保证数据的安全,只允许同一时间

只能有一个线程访问该资源。

40、服务器类有一个while循环,能否直接while(true)?

可以,但这样缺乏灵活性,没有办法控制循环结束,最好使用boolean变量来控制

循环的运行和结束。

41、java帮助文档是如何生成的?

Javadoc.exe42、什么时候类名和文件名必须一致?

当类的定义为Public时,类名必须与文件名保存一致

43、如何将实现包装类和基本数据类型转化?

包装转基本1:包装类对象.xxxvalue(值);2直接赋值

基本转包装1: Integer = new Integer(90);2直接赋值

44、类InputStream中方法read()的返回值是什么?读出的是什么?

Read()返回的是int,读取的数据

read(byte[])返回int 当前读取的字节数

45、如果一个类实现一个接口,可不可以不实现接口里定义的所有方法?

可以,但这个类只能是抽象类

46、构造方法和方法有什么区别?构造方法能不能被重载,能不能被重写?

构造方法和雷鸣相同,构造方法没有返回类型,在对象创建时,被调用。

构造方法可以重载,不能重写。

47、请列举switch()括号中能接受的所有数据类型。

Char byte short int48、GUI的布局管理器常见的有哪几种?

绝对布局

边界布局管理器

卡片布局管理器

流布局管理器

网格布局管理器

49、断言有什么作用?

断言是一个布尔表达式,当表达式为真继续执行,表达式为假,则抛出一个断言错误,主要用于测试。

50、String和StringBuffer的区别?

String具有长度不可变的特性,当String做添加、删除修改时,会产生一个新对象

StringBuffer是String类的一个改进版,是缓冲区的一个对象,当对该对象进行字符的添加、修改时,不会产生新对象。

51、接口里方法修符是什么?

Public abstract52、接口里可以定义变量吗?

不行,就可中的变量修饰符是public static final 只能定义常量

53、说几个String常用的方法

String.length()split()substring()equals()indexOf()lastundexOf()

54、在Dos界面下如何编译并执行Java程序?

Javac 文件名

Java 类名

55、创建一个线程有几种方法?

集成 thread 类

实现Runnable接口

56、项目开发的流程是怎么样的?

市场调研,需求分析,概要设计,详细设计,编码,测试,维护。

57、java语言的特点是什么?

简单,面向对象,分布式,健壮,可移植,解释性,安全,多线程,垃圾回收

58、main方法中有个参数String[] args。这个参数的值是由谁传递给它的。执行java类时,由控制台传入

59、java中采用什么字符编码集?char类型能不能放入一个中文字? Unicode 该字符集一个字符有2个字节。,char是两个字节可以放一个中文,因为中文是两个字节

60、byte的取值范围

-128~+127(-2的7次方to2的7次方-1)

61、GET方式和POST方式提交时,流有什么不同?

GET和POST是HTTP协议请求服务器的两种方式

GET方式页面参数,是附加在URL后面。/login?userName=XXX

POST方式,页面的参数是放在流最后的其他x86平台的差不多,

2.java程序员考核 篇二

一个美观的图形用户界面是软件成功的一个重要因素.因此大多数高级程序设计语言都提供了图形界面,在Java中主要是通过java.awt包和javax.swing包来创建图形用户界面的。

图形用户界面(Graphics User Interface)简称GUI,是用图形的方式,借肋菜单、按钮等标准界面元素和鼠标操作,帮助用户方便地向计算机系统发出指令、启动相关操作,并将系统运行的结果同样以图形方式显示给用户的技术。图形用户界面美观生动、操作简单,省去了字符界面用户必须记忆各种操作命令的麻烦,已经成为目前几乎所有应用软件的既成标准。

1.1 Java.awt包和Javax.swing包

在Java 2 SDK中提供了两个API工具包用于创建图形界面,他们分别是AWT包和Swing包。AWT(Abstract Windowing Toolkit),被打包为Java.awt,它一般被称作“重量级组建包”,这是相对于Swing的“轻量级”而言的。Swing包被打包为Javax.swing。需要注意的是Swing保重的组建大部分是从AWT中继承过来的,所以它们本质上一样。

1.2 布局、容器和组建

组件(Component)是允许用户同应用程序用备种方式进行交互的组件。例如,一个常用的控件是按钮。常见的组件还包括文本框、标签、复选框等等。

除了这些常规组件以外,框架窗口也能包含一个标准形式的菜单栏。每进入一个菜单栏就会激发一个下拉式菜单选项,用户可以从中选择,菜单栏总是位于窗口的顶都。虽然外观不同,但菜单栏与其他组件的处理方式是大致相同的,因此一般将其也列入组件范畴。

布局管理器(Layout Manager自动安排组件在容器中的位置。这样,窗口的外观就可以由它所包含的组件来决定,并可以通过布局管理器来排放各个组件。Java中待用的布局管理器有BorderLayout、FlowLayout等等。

1.3 事件驱动编程方法

事件驱动(Event Driven)编程方法是一种随着GUI的风行而产生的一种程序设计方法。它的最基本的思想就是通过“事件———响应”对用户事件或者系统事件进行处理响应。

正常的情况下,存在一个监听器监听事件的发生,一旦监听器检测到事件,即转入处理该事件。在多线程技术的支持下.事件驱动模式可以实现前后台程序的并行运行处理。

Java语言支持事件驱动模式,在Java 2的类库中Java.awt.event中包含了可监听的事件类型,而且Java还支持自定义的事件类型监听。在Java中,事件驱动是通过Listener-Handler机制实现的。

2 Java与VC界面编程比较

Java是由C++发展而来的,它保留了C++的大部分内容,类似于C++,但句法更清晰,规模更小,更易学。它是在对多种程序设计语言进行了深入细致研究的基础上,摒弃了其他语言的不足之处,从根本上解决了C++的固有缺陷,而产生的一种新的完全面向对象的语言。Java和C++都是能够实现面向对象思想。

而由于C++为了照顾大量的C语言使用者,而兼容了C,使得自身仅仅成为了带类的C语言,多少影响了其面向对象的彻底性Java则是完全的面向对象语言,它句法更清晰,规模更小,更易学。它是在对多种程序设计语言进行了深入细致研究的基础上,据弃了其他语言的不足之处,从根本上解决了C++的固有缺陷。两者的界面编程区被主要有以下几部分。

2.1 指针

Java程序没有指针,Java程序更安全。

Java语言让编程者无法找到指针来直接访问内存无指针,并且增添了自动的内存管理功能,从而有效地防止了C/C++语言中指针操作失误,如野指针所造成的系统崩溃。但也不是说Java没有指针,虚拟机内部还是使用了指针,只是外人不得使用而已。

2.2 多重继承

Java是通过接口来实现多重继承的,Java类只能单一的继承C++支持多重继承,这是C++的一个特征,它允许多父类派生一个类。Java不支持多重继承,但允许一个类继承多个接口,实现了C++多重继承的功能,又避免了C++中的多重继承实现方式带来的诸多不便。

2.3 数据类型

Java是完全面向对象的语言,所有函数和变量部必须是类的一部分。除了基本数据类型之外,其余的都作为类对象,包括数组。对象将数据和方法结合起来,把它们封装在类中,这样每个对象都可实现自己的特点和行为。而C++允许将函数和变量定义为全局的。此外,Java中取消了C/C++中的结构和联合,消除了不必要的麻烦。

2.4 内存管理

Java程序中所有的对象都是用new操作符建立在内存堆栈上,这个操作符类似于C++的new操作符。Java自动进行无用内存回收操作,不需要程序员进行删除。而C++中必须由程序贝释放内存资源,增加了程序设计者的负担。Java中当一个对象不被再用到时,无用内存回收器将给它加上标签以示删除。Java里无用内存回收程序是以线程方式在后台运行的,利用空闲时间工作。

2.5 操作符重载

Java不支持操作符重载。操作符重载被认为是C++的突出特征,在Java中虽然类大体上可以实现这样的功能,但操作符重载的方便性仍然丢失了不少。Java语言不支持操作符重载是为了保持Java语言尽可能简单。

2.6 缺省函数参数

在C中,代码组织在函数中,函数可以访问程序的全局变量。C++增加了类,提供了类算法,该算法是与类相连的函数,C++类方法与Java类方法十分相似,然而,由于C++仍然支持C,所以不能阻止C++开发人员使用函数,结果函数和方法混合使用使得程序比较混乱。Java没有函数,作为一个比C++更纯的面向对象的语言,Java强迫开发人员把所有例行程序包括在类中,

2.7 字符串

C和C++不支持字符串变量,在C和C++程序中使用null终止符代表字符串的结束,在Java中字符串是用类对象(string和stringBuffer)来实现的,这些类对象是Java语言的核心。

2.8 类型转换

在C和C++中有时出现数据类型的隐含转换,这就涉及了自动强制类型转换问题。

2.9 异常

C++异常处理很弱,Java支持异常功能强大。

3 Java界面编程的环境和配置

3.1 Java运行平台安装

Java不仅提供了一个运行环境,而且还提供了一个免费的Java软件开发工具集JSDK(Java Software。Development kit),有了这个工具集就可以在Java标准平台(J2se)上进行Java代码程序的开发。JSDK包括生成Java中最基本的小应用程序和应用程序所需要的所有工具和标准Java类库。

下面主要以JSDK1.4版本为例,读者可以到Sun公司站点Http://java.sun.com下载,安装JSDK的同时也建立了Java标准平台。

3.2 Java环境设置

(1)环境变量

对于“Java”代码的Javac编译器所执行的操作一般在Windows操作系统中的命令提示符窗口下运行,若要执行Javac、Java、Javadoc等命令,则需要进行额外的环境变量的设置。

(2)右键点击我的电脑,选择属性,选择高级选项卡,然后选择“环境变量”项进入环境变量设置窗口。

(3)配置用户变量:

1)新建Java_home如C:Program FilesJavajdk1.5.0(JDK的安装路径)。Java_home环境变量。它指向jdk的安装目录,Eclipse/NetBeans/Tomcat等软件就是通过搜索Java_home变量来找到并使用安装好的jdk。

2)在PATH变量前面加%Java_home%bin;(注意要有分号)。path环境变量。作用是指定命令搜索路径,在命令行下面执行命令如Javac编译Java程序时,它会到path变量所指定的路径中查找到相应的命令程序。需要把jdk安装目录下的bin目录增加到现有的PATH变量中,bin目录中包含经常要用到的可执行文件如javac/java/javadoc等待,设置好path变量后,就可以在任何目录下执行Javac/Java等工具了。

3)新建classpth;%Java_home%lib;(注意分号和点号)。classpth环境变量。作用是指定类搜索路径,要使用已经编写好的类,前提当然是能够找到它们,JVM就是通过classpth来寻找类的。需要把jdk安装目录下的lib子目录中的dt.jar和tools.jar设置到classpth中,当然,当前目录“.”也必须加入到该变量中。

(4)测试环境变量配置是否成功:

开始———〉运行———〉CMD

键盘敲入:Javac Java

出现相应的命令,而不是出错信息,即表示配置成功。

4 Java界面程序

一些软件的帮助菜单中的“关于”对话框中有连接到软件公司的标签,本章将实现一个具有Web连接功能的标签。要求打开一个标签,在标签的中间有“网易”两个字,然后通过建立连接,使通过点击“网易”这两个字,自动跳转到www.163.com首页。

4.1 实现方法

运用Java.Lang包中的Runtime类可以实现标签的Web连接功能。Runtime类提供了大量能够的方法用于应用程序与其运行环境的交互。本例实用的方法原形如下:

Runtime.getRuntime.exec(“cmd/c start http://www.163.com”);

因为Runtime类中的getRuntime()方法是静态方法,所以不必创建Runtime类的实例,直接调用Runtime.getRuntime()就可以得到一个Runtime对象的引用。接着,调用exec()方法就可以执行参数command的命令。由于采用Windows XP系统,则command=“cmd/c start http://www.163.com.”;具体代码如下:

4.2 部分代码

(1)新建一个Project,取名为Jlink。

(2)新建一个Application,取名为Jlink;主窗口名为MainFrame,标题为Jlink。

(3)向MainFrame的设计窗口中每天加一个JLabel组建,并设置相关属性。

5 结语

3.java程序员考核 篇三

关键词: Java; 面向对象; 程序设计课程; 教学方法

中图分类号:G642 文献标志码:A 文章编号:1006-8228(2013)01-37-03

Pondering over teaching of “java programming designing”

Lan Wenfei, Li Zimao

(School of Computer Science, South-central University of Nationalities, Wuhan, Hubei 430074, China)

Abstract: Java is becoming one of the most popular object-oriented programming languages in developing areas based on Internet and one of the core programming curriculums for universities. In this paper, some Java teaching problems are discussed, such as the choice of teaching materials, the choice of developing environment, filtering of teaching content, using of teaching method, design of the teaching cases. The feasible ideas for above are given.

Key words: Java; object-oriented; programming curriculum; teaching method

0 引言

在Java面世短短的十来年间,Java以其简单易学、安全可靠、面向对象、多线程及平台独立性等许多特点[1-3],被越来越多地推广和使用,它已成为Internet上最受欢迎的开发语言之一。

目前,许多高校已将“Java程序设计”列为程序设计的核心课程之一,肯定了它在培养计算机开发类人才中的地位和作用。

本人已连续多年担任高校计算机专业Java程序设计课程的主讲教师,针对Java教学中存在的问题,积累了一些教学经验,希望能与同仁共同探讨。

本文就Java语言的教学,包括教学时数的安排、教材的选择、开发环境的选取、教学内容的筛选、教学方法的运用、教学实例的选用等方面[4,5],给出了一些自己的做法,实践证明,这些方法是可行的。

1 教学准备环节

首先讨论Java程序设计课程教学的准备工作。

1.1 合理安排教学时数

我们授课的对象是软件工程实验班本科学生,该课程安排在大一第二学期,鉴于学生在大一第一学期已具备基本的计算机原理及专业基础知识,这样来安排教学计划是比较合理的。考虑到学生在大一已具备C/C++高级语言程序设计的基础,而多数学生在国内修完本科课程后会选择到国外继续深造学习,所以Java语言程序设计课程的教学设计必须考虑全方位,此外Java语言衍生自C++,它的基本语法同C语言,而其面向对象的基本特征同C++。鉴于此,我们将Java程序设计课程的上课时数设置为48个授课学时,18个实践学时,这样设置是比较合适的。

1.2 精选教材

选择合适的教材,是保证有效教学的重要手段之一[6]。合适的Java教材, 应具有较好的知识覆盖面,难度适中,适合学生的具体情况[4]。由于我们讲授的对象是实验班学生,需要使用全英文教学,此外,他们已具备一定的面向对象程序设计基础,所以诸如《Thinking in Java》、《Objects First with Java》、 《The Java Programming Language》等经典书籍都适合作为该课程的教材。

选择国外经典教材,能保证我们的教学内容与国外接轨[7]。学生在阅读英文原版教材的同时,可同时参考对应的中文翻译本,能使学生加强对所学知识的理解。

1.3 选择合适的实验环境

由于JDK(Java Development Kit)是命令行的编程环境,需要用编辑器建立Java源程序。如果选用Windows自带的记事本notepad来编辑程序,首先程序中若出现语法错误是很不容易被发现的;其次每次必须打开cmd窗口并输入一大堆命令,如编译命令、运行命令等;再就是对于applet小程序还要自编html文件,非常麻烦。但是,如果选用超智能、傻瓜型的集成开发环境,如JBuilder、NetBeans,因其耗内存,所以速度慢,慢到不能忍受;更重要的是不利于入门级的学生掌握Java的基本语法。因为Java上机实践的一个重要训练内容就是熟练使用Java编译器(java.exe)去检查语法错误,并能修改错误,这样做的目的是使学生能较快地掌握Java语法。

本文简要介绍一种既简单又方便入门者使用的Java编辑器TextPad。TextPad作为Java编辑器需要做简单配置,首先把TextPad装上(先装JDK),安装完毕就可按下面的方法配置:在菜单的Configure中选择Preference,选择Tools,点add下拉菜单,选择Java SDK commands。之后Tools中多了3项:Compile Java、Run Java Application、Run Java Applet。从这一点来看它确实比其他的Java编辑器更容易配置,如EditPlus。

按上述方法配置TextPad Java编辑器后,还可适当优化TextPad Java IDE环境,使它更适合编写、执行Java程序。优化环境方法在此省略,有兴趣的作者可参见文献[2]。

2 教学内容

根据多年的Java程序设计课程教学经验,我们认为讲授该课程的内容主要包括三个方面:一是Java语言基础;二是Java语言的新特性;三是在讲授上述内容时穿插介绍JDK类库的常用类。

Java语言基础包括:数据类型、表达式、基本语句、类和对象、继承和多态、异常处理机制、小程序、图形用户界面设计、输入/输出、多线程、网络编程和数据库编程。考虑到我们面授的学生已经掌握了C++面向对象程序设计基础内容,而且Java教学内容偏多、教学时数较少[8],因此对于衍生自C++的Java语言,它和C++类似的部分,包括数据类型和表达式、基本语句、类和对象、继承和多态及异常处理机制等,应讲授较少的学时数;而对于Java语言特有的部分,如小程序、图形用户界面设计、输入/输出、多线程、网络编程和数据库编程,则应讲授较多的学时数。由于篇幅有限,在此省去对每个章节学时数的具体编排。

1996年Sun公司发布了JDK1.0,在短短的十年时间里,JDK从1.0版本升级到6.0版本。特别值得一提的是2004年发布的JDK5.0版本,它在旧版本的基础上增加了一些非常有意义的新特性,比如,泛型编程、增强的for循环、自动装包/拆包、类型安全的枚举、可变参数和静态导入等,使用这些特性有助于我们编写更加清晰、精悍、安全的Java代码。为了与时俱进,让学生掌握较新的Java特性,我们认为很有必要在课堂上向学生传授新技术,以拓宽学生的知识面。

一方面为了节约有限的学时数,另一方面为了鼓励学生在课余积极使用、查阅JDK帮助文档,我们不安排专门的章节介绍JDK类库的使用,而是在讲授Java程序例子时,将重点介绍一些重要类的使用,比如,在讲授图形用户界面这一章时,则会讲授一些重要包的使用,包括java.awt、java.awt.event、java.applet、javax.swing等,概述这些包的类层次结构。这样做既节约了时间,也使学生通过对例子的学习较好地掌握了一些常用类的使用。特别需要说明的是,容器类很重要,这些类在程序设计中会普遍使用到。

总之,在教学内容的选择上,我们推崇简化的原则,忽略一些不常用的知识点,如带标号的跳转语句、复杂的表达式运算规则、嵌套类等,这样做既节约了课时,也能充分引导学生编写简单、可读性好的程序代码[4]。

3 教学方法

充分利用多媒体教学设施,为上课讲述的例子做编译、运行演示。对于学生编程时常常出现的错误,在编辑程序时可设置类似的错误障碍,让学生修改错误,以杜决今后再出现此类错误,此外还能现场教会学生如何使用JDK TextPad开发环境。到了学期的中后期,鉴于学生们已基本掌握Java的语法,上课可适当减少演示例子的次数。

对于Java基本类库的授课,根据多年的Java开发经历和教学实践,我们认为学生应该对基本类库有个整体了解,要重点掌握 Java类库中的Java.lang和Java.util两个包,特别是容器类的应用是难点,需要结合实际例子阐述。这两个包提供的是Java编程要用到的基本类,学生需要清楚这些类或接口的继承关系、主要功能[5]。我们在授课时适当介绍JDK API文档的使用和阅读,提倡使用最新版本的英文API文档;在教学中注意总结相关类的联系和区别,如String和StringBuffer在使用上的区别,以及FileInputStream和RandomAccessFile在用于读文件时的区别。

在实施Java教学时,应注意Java和C++的区别。Java和C++都是面向对象的语言,而且Java衍生自C++,在基本语法及面向对象特征方面均有很多相同之处。比如,我们在讲授Java的数据类型、常量、变量、表达式、语句、类和对象、继承和多态等内容时,应着重指出它和C++的区别,简略细节知识。这样既能节约课时,也能使学生快速掌握Java的基本语法和面向对象特征。

在学生掌握了Java的基本语法及面向对象特征的基础上,我们会考虑将重点放在图形用户界面、多线程、网络编程和数据库编程上,以使学生能进行一般的Java应用编程。

如果课堂教学时数比较宽裕,则可介绍Java和UML、Java和设计模式相关的知识,强调软件开发新技术,特别是对于软件工程专业的学生,更应该这么做。

4 教学实例

可将程序例子分为非算法型和算法型两种类型。在介绍Java基本语法时,我们提倡用非算法型的例程,利于学生对例子程序的阅读和理解。而在讲授计算机典型问题,如排序、查找、递归时,则使用算法型的例程,以加强学生对一些典型问题的掌握。

在选择例程时,以例程中是否含有JDK类作为筛选原则,目的在于能让学生掌握更多的JDK类。

此外,在期中阶段,可选择一两个游戏项目作为综合的例程,如用于Java学习的Robocode游戏实验项目。Robocode是IBM的一位工程师MatNelson用Java语言所创造的机器战斗仿真引擎,是一款专门为程序员设计的游戏半成品。利用该引擎,只要编写几行简单的代码,就可以创造出一个在屏幕上四处疾驰的机器人坦克,参加游戏对战[4]。这样能增强例子的实用性和趣味性,调动学生学习Java的积极性。在此基础上,再布置一个游戏项目,作为学生在课余时间的练兵题。

5 结束语

衍生于C++的Java语言,作为一种面世较晚的语言,它集中体现和充分利用了若干当代软件技术新成果,如面向对象、多线程、平台无关等[9],使其拥有众多优秀的特性,从而成为面向对象软件开发的首选语言。

出于“Java程序设计”这门课的重要性和教学中存在的问题,本文提出了“Java程序设计”教学实施的诸多方面,并在作者施教的班级进行了多次实践,实践表明,上述教学思路是可行的,能在一定程度上提高教学效果。

下一步我们将在“Java程序设计”实践教学和后续课程改革方面进行实践探讨。

作者多年从事Java教学和Java软件开发工作,积累了一些教学经验,本文将它提练总结,希望能给Java同仁一些启示。

参考文献:

[1] 秦学礼,汪迎,郑淑红.Java程序设计实用教程[M].清华大学出版社,2012.

[2] 刘正林等.Java技术基础(第2版)[M].华中科技大学出版社,2004:30-40

[3] 印旻.Java语言与面向对象程序设计(第二版)[M].清华大学出版社,2007.

[4] 叶恒舟.Java程序设计教学探讨[J].科技信息,2007.1:23-25

[5] 李纯玉,胡丽娜.Java语言程序设计教学中的几点思考[J].科技信息,2007.2:10-13

[6] 张延军,乔德军,温炎耿等.构建Java教学体系[J].邯郸学院学报,2007.17(9):41-44

[7] 蓝雯飞,郑波尽.高级语言程序设计课程建设思路[J].计算机教育,2012.6:30-32

[8] 陆萍.浅议Java程序设计教学改革[J].电脑知识与技术,2007.27:32-35

4.java程序员考核 篇四

成都java程序员培训哪个好?Java前景如何

中国每年有大量的计算机类毕业生进入企业,企业会把那些程序员列入优秀人才加以重视呢?斩获高薪的程序员需要哪些素质呢?

模块化思维能力

经常可以听到一些程序员有这样的抱怨,写了几年程序,变成了熟练工,每天都是重复写 一些没有任何新意的代码,这其实是中国软件人才最大浪费的地方,一些重复性工作变成 了熟练程序员的主要工作,而这些其实是完全可以避免的。

模块化思维就是要程序员在完成任何一个功能模块或函数的时候,要多想一 些,不要局限在完成当前任务的简单思路上,想想看该模块是否可以脱离这个系统存在,是否可以通过简单的修改参数的方式在其他系统和应用环境下直接引用,这样就能极大避免重复性的开发工作,如果一个软件研发单位和工作组能够在每一次研发过程中都考虑到 这些问题,那么程序员就不会在重复性的工作中耽误太多时间,就会有更多时间和精力投 入到创新的代码工作中去。一些好的程序模块代码,即便是70年代写成的,拿到现在放到一些系统里面作为功能模块都能适合的很好,而现在我看到的是,很多小公司软件一升级或改进就动辄全部代码重 写,大部分重复性工作无谓的浪费了时间和精力。四川地处中国大西南,肥沃的土地,丰富的自然资源,悠久的历史和绚烂多彩的少数民族文化,构成了多样性的自然和文化旅游资源。随着社会竞争的日益激烈,在很多大城市中,毕业就意味着失业。在大本生遍地的今天,本科甚至更低学历的毕业证书,早已不是求职的敲门砖了。工作经验和掌握的技术成为现在应届生的求职“利器”,难道要面“对剑未配妥,出门已是江湖”的窘境吗,赶紧抓紧时间,找一个自己感兴趣、适合自己的技术进行学习吧~

一说起it培训,很多人都表示苦不堪言,总有人被虚假信息坑过。很多人表示自己对其一窍不通,实在不知道怎么办才好。别着急,让小编为你奉上这些必备小技巧,带你快速简单的上手。那么,实用的攻略有哪些?一般会选择哪家呢?哪个是最实用呢?下面就随小编来看一看吧~

如何学习学好Java编程,学完后尽快成为一个可以参加工作的Java开发者。如何准备转行学习Java。相信很多初学Java者都在考虑这个问题。

如果你是在校学生,务必要在学好基础(比如计算机系统、算法、编译原理等等)的前提下,再考虑去进行下面的学习。第一部分:对于尚未做过Java工作的同学,包括一些在校生以及刚准备转行Java的同学。

Java基础首先去找一个Java的基础教程学一下,这里推荐国信安基础教学视频,学习Java基础的时候,应该尽量多动手,很多时候,你想当然的事情,等你写出来运行一下,你就会发现不是这么回事儿,不信你就试试。学完以上内容后,你应该对Java有一个基本的了解了,你可以用Java语言写出一些简单的程序,并且你用的是最简单的编辑器,比如记事本。这个时候,不要急于进入下一部分,留下几天好好写一些程序,尽可能熟悉这些基础内容。

java开发等你写上几天程序以后,你往往会比较迷茫,因为你写的东西似乎看起来毫无用处,比如实现一个简单的计算器,读取一个文件等。这个时候你就

应该去学着写一些让你觉得有意思的东西了,所以你应该学习更多的知识。这些内容主要是Web开发相关的内容,包括HTML/CSS/JS(前端页面)、Servlet/JSP(J2EE)以及Mysql(数据库)相关的知识。它们的学习顺序应该是从前到后,因此最先学习的应该是HTML/CSS/JS(前端页面)

你可以试着自己写一些页面,当然,你可以尽你最大的努力让它变得最漂亮。这部分内容对于后端Java来说,理论上不是特别重要,但至少要达到可以自己写出一些简单页面的水平。接下来,你需要学习的是Servlet/JSP(J2EE)部分,这部分是Java后端开发必须非常精通的部分,因此这部分是这三部分中最需要花精力的,而且这个时候,你要学会使用开发工具,而不能再使用记事本了,可以选择eclipse。当你下载安装好eclipse以后,看视频中的教程一步一步去学习,一定要多动手。关于Servlet/Jsp部分视频的选择,业界比较认可王勇老师的Java视频教程,因此推荐给大家。

当你完成开发框架的学习以后,你就该找工作了,在校的找实习,毕业的找全职。与此同时,在找工作的同时,你不应该停下你的学习,准确的说,是你在以后都不能停下学习。上面这些内容你只是囫囵吞枣的学会了使用,你可以逐步尝试着去了解更多的东西,网络是你重要的老师。好了,说了这么多了,就到此为止吧,希望本文可以帮助到作为程序猿或即将成为程序猿的你。

5.java程序员考核 篇五

相当程序员的朋友,必定有个高薪的梦,当下薪资比较高的程序员非Java程序员莫属,很多朋友已经开展Java的学习,已经走向把当Java程序员梦转变为现实之路,那么成为Java程序员需要多长时间?你有预测过吗?今天就跟广州兄弟连小编一起来探讨下答案吧。

成为一名Java程序员,首先要掌握Java程序员所需的Java技能,那么首先得看看学Java要多长时间?学Java一般是自学和培训,自学Java时间因人而定,Java培训一般是3-5个月,除去学Java的时间,Java成功学成后真的就能成为Java程序员吗?

没有那么容易的事,Java学成后一般还得经历一段Java实习生的阶段,刚进入Java职场你什么都不懂,就想被称为Java程序员是不是想象的太美好了,一般来说Java实习生要当多久呢?那么得看你的上手能力有多快,还得看你选择公司对你有多大的锻炼。

一般而言成为一个Java程序员要多久?1-2年初级Java程序员,成为一个初级Java程序员你自然不可以就此止步,还得不断保持求知欲,还得努力向更高级别的Java程序员发起进攻,你若成为Java架构师,那么在Java行业的确成就大大,钱途和前途皆在手。

6.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、对工作认真负责,肯吃苦;积极主动;具备较好的语言表达和沟通能力;

7.java程序员考核 篇七

目前纯粹的繁体字符主要由BIG5编码所规定, BIG5码中共规定了13053个繁体字;而纯粹的简体字符主要由GB2312编码所规定, 仅有6763个简体字。

设计思路是:先参照BIG5码的规范, 生成13053个繁体字 (每个繁体字都有一个唯一的Unicode编码) , 再由诸如Word等权威软件, 完成13053个繁体字到简体字 (每个简体字也都有一个唯一的Unicode编码) 的转换, 从中找出每个字在转换前后所对应的Unicode编码是否有发生变化。

如果前后有发生变化, 则在繁体字的Unicode编码和对应的简体字的Unicode编码之间建立映射关系, 并将该映射关系存入一张Hash表中, 以便于将来进行繁体到简体映射的查找。如果前后没有发生变化, 说明当前繁体字与简体字的字形是一致的, 不需要映射。

2 根据BIG5字符集产生繁体汉字

2.1 BIG5编码中的汉字

BIG5码使用了双字节储存方法, 以两个字节来编码一个字。第一个字节称为“高位字节”, 第二个字节称为“低位字节”。高位字节的编码范围0Xa1~0Xf9, 低位字节的编码范围0x40~0x7E及0Xa1~0Xfe。

在上面的基本编码规则下, 各编码范围对应的字符类型如下:0Xa140~0Xa3BF为标点符号、希腊字母及特殊符号, 另外于0Xa259~0Xa261, 存放了双音节度量衡单位用字:兙兛兞兝兡兣嗧瓩糎;高字节0Xa4~0Xc6, 低字节0x40~0x7E及0Xa1~0Xfe, 其中0Xc6A1~0Xc6FE为日文字符要除外, 共5401个常用繁体汉字, 先按笔划再按部首排序;高字节0x C9~0x F9, 低字节0x40~0x7E及0Xa1~0Xfe, 其中0x F9D6~0Xc6FE字符要除外, 共7652个非常用繁体汉字, 亦是先按笔划再按部首排序。因此, BIG5码共有5401+7652=13053个繁体汉字, 第一个繁体汉字为“一”, 最后一个繁体汉字为“龘” (读dá, 意思:龙腾飞的样子) 。

2.2 代码实例

下面是根据BIG5编码字符集生成所有繁体汉字的部分代码实例:

2.3 编码输出格式

在输出的繁体字符文档中, 规定字符串格式:先是每个字符连续输出, 最后加上一个换行回车, 这样是为了保证该文件被Word转换后, 能保持前后大小一致。因为Word在转换后保存时, 会默认加上换行回车。如果转换之前的文档结尾没有换行回车, 那么将导致转换后的文档大小不一致。如果已经有了, 则不必再增加。

生成的文件如果使用GBK编码格式输出, 文件大小为26108个字节 (13053*2+2, 其中两个字节分别为换行和回车) , 因为GBK是使用两个字节表示一个汉字, 用一个字节表示换行, 一个字节表示回车。使用Word进行转换后, 大小不变。

生成的文件如果使用UTF-8编码格式输出, 文件大小为39161个字节 (13053*3+2, 其中两个字节分别为换行和回车) , 因为UTF-8对于汉字需要使用3个字节来表示, 但是对于换行回车各只需要一个字节。使用Word进行转换后, 大小变为39164个字节。

因此, 在输出繁体汉字到文件时, 最好是使用GBK编码, 而不要使用UTF-8编码, 因为如果使用UTF-8编码进行文件输出, 在利用Word进行繁体到简体的转换后, 文件大小前后会发生变化, 将不利于后期建立Hash表。

另外一个重要的原因是:由于使用的是中文操作系统, 其默认编码是GBK, 所以如果输出文档是用GBK编码, 那么在用Word打开时, 不需要进行格式转换;如果使用UTF-8编码输出, Word文档在读取该文档时, 会对其进行格式转换, 除了会导致文件转换前后大小不一外, 在后续的比较过程中, 也会出现问题。

3 利用Word进行文档转换

将前文中所得的繁体字符文档复制为两份, 用Word打开其中的一份, 进行繁体到简体的转换。整个文档转换完毕需要大约1分钟, 完成后保存。

这里有一点要特别说明:Word在进行繁/简体转换时, 默认情况并不是仅仅对单个字进行转换, 而是会对词进行转换。如:繁体词组“全形”经过转换后就会变为简体词组“全角”!因此在使用Word进行转换前, 应对Word进行必要的设置, 保证Word在进行转换时, 不会对词组进行转换, 而只会对单个字符进行转换。在Word的“工具”、“语言”、“简体繁体转换”中可以设置是否对词汇进行转换。

4 生成映射Hash表

通过Word转换后, 就会得到包含全部繁体字符的文档和与之对应的简体字符的文档。下面的工作就是找出两个文档中, 繁体和简体不同的汉字, 并以此为参照, 建立HashMap, 用于快速繁体到简体的映射。

因为两个文档中共有13053个汉字和两个字节的换行加回车, 所以最终结果是共比较了13055个字符, 其中相同个数:10163;不相同个数:2892;HashMap大小:2892。这表明BIG5编码所定义的繁体字中, 实际上只有2892个繁体字与其对应的简体字不同, 需要进行映射。

下面是生成HashMap的部分代码实例:

5 繁/简体转换

生成Hash表后, 就可以利用该Hash表进行繁/简体映射转换。进行映射转换前, 一定要判断当前字符是否为Unicode汉字, 如果是汉字, 才进行映射转换, 毕竟映射转换需要查找HashMap。

判断语句如下:

通过上述方法, 判断当前字符是否为广义Unicode汉字。接下来就可以进行映射转换了, 部分代码如下:

6 结语

通过Java实现的是从繁体转换到简体汉字, 这也是实际中最常用的功能。而在某些特定情况下则是要将汉字从简体转换到繁体, 但从实际情况来看, 从简体转换为繁体, 相对于繁体转换为简体来说更为复杂。因为往往一个简体字会对应多个繁体字, 即为一对多的映射, 如:简体的“发”字就对应繁体的“發”和“髮”两个字, 这也是为何简体字中有大量多音字的原因。因此, 在进行简/繁体转换时, 如果只是简单地进行字与字之间的转换映射, 必然有一部分转换是错误的。这时候就需要对要转换的文档进行分词, 建立简体词组到繁体词组的映射关系, 这个问题将留待以后继续研究。

摘要:在实际应用中, 为了方便读者阅读, 常常需要进行繁/简体汉字之间的字形转换。这里所说的转换, 准确意义应该称之为映射。即两者都对应各自的Unicode编码, 在不同编码之间构筑一个映射关系。主要研究了在编写的Java程序中实现繁/简体转换映射。

8.Java编程语言程序的认识误区 篇八

软件的生命性

软件是有生命的,这可能是老调重弹了,但是因为它事关分层架构,反复强调都不过分。

一个有生命的软件首先必须有一个灵活可扩展的基础架构,其次才是完整的功能。

目前,很多人对软件的思想焦点还是落在后者:完整的功能,觉得一个软件功能越完整越好,其实关键还是架构的灵活性,就是前者,基础架构好,功能添加只是时间和工作量问题,但是如果架构不好,功能再完整,也不可能包括未来所有功能,软件是有生命的,在未来成长时,更多功能需要加入,但是因为基础架构不灵活不能方便加入,死路一条。

正因为普通人对软件存在短视误区,对功能追求高于基础架构,很多吃了亏的老程序员就此离开软件行业,带走宝贵的失败经验,新的盲目的年轻程序员还是使用老的思维往前冲。其实很多国外免费开源框架如ofbiz compiere和slide也存在这方面陷阱,貌似非常符合胃口,其实类似国内那些几百元的盗版软件,扩展性以及持续发展性严重不足。

那么选择现在一些流行的框架如Hibernate、Spring/Jdonframework是否就表示基础架构打好了呢?其实还不尽然,关键还是取决于你如何使用这些框架来搭建你的业务系统。

存储过程和复杂SQL语句的陷阱

首先谈谈存储过程使用的误区,使用存储过程架构的人以为可以解决性能问题,其实它正是导致性能问题的罪魁祸首之一,打个比喻:如果一个人频临死亡,打一针可以让其延长半年,但是打了这针,其他所有医疗方案就全部失效,请问你会使用这种短视方案吗?

为什么这样说呢?如果存储过程都封装了业务过程,那么运行负载都集中在数据库端,要中间J2EE应用服务器干什么?要中间服务器的分布式计算和集群能力做什么?只能回到过去集中式数据库主机时代。现在软件都是面向互联网的,不象过去那样局限在一个小局域网,多用户并发访问量都是无法确定和衡量,依靠一台数据库主机显然是不能够承受这样恶劣的用户访问环境的。

从分层角度来看,现在三层架构:表现层、业务层和持久层,三个层次应该分割明显,职责分明,持久层职责持久化保存业务模型对象,业务层对持久层的调用只是帮助我们激活曾经委托其保管的对象。所以,不能因为持久层是保管者,我们就以其为核心围绕其编程,除了要求其归还模型对象外,还要求其做其复杂的业务组合。打个比喻:你在火车站将水果和盘子两个对象委托保管处保管,过了两天来取时,你还要求保管处将水果去皮切成块,放在盘子里,做成水果盘给你,合理吗?

上面是谈过分依赖持久层的一个现象,还有一个正好相反现象,持久层散发出来,开始挤占业务层,腐蚀业务层,整个业务层到处看见的是数据表的影子(包括数据表的字段),而不是业务对象。

当然适量使用存储过程,使用数据库优点也是允许的。按照Evans DDD理论,可以将SQL语句和存储过程作为规则Specification一部分。

Hibernate等ORM问题

现在使用Hibernate人也不少,但是他们发现Hibernate性能缓慢,所以寻求解决方案,其实并不是 Hibernate性能缓慢,而是我们使用方式发生错误:

“最近本人正搞一个项目,项目中我们用到了struts1.2+hibernate3,由于关系复杂表和表之间的关系很多,在很多地方把lazy都设置false,所以导致数据一加载很慢,而且查询一条数据更是非常的慢。”

Hibernate是一个基于对象模型持久化的技术,因此,关键是我们需要设计出高质量的对象模型,遵循DDD领域建模原则,减少降低关联,通过分层等有效办法处理关联。如果采取围绕数据表进行设计编程,加上表之间关系复杂(没有科学方法处理、侦察或减少这些关系),必然导致系统运行缓慢,其实同样问题也适用于当初对EJB的实体Bean的CMP抱怨上,实体Bean是Domain Model持久化,如果不首先设计Domain Model,而是设计数据表,和持久化工具设计目标背道而驰,能不出问题吗?关于这个问题N多年前就争论过。

这里同样延伸出另外一个问题:数据库设计问题,数据库是否需要在项目开始设计?

如果我们进行数据库设计,那么就产生了一系列问题:当我们使用Hibernate实现持久保存时,必须考虑事先设计好的数据库表结构以及他们的关系如何和业务对象实现映射,这实际上是非常难实现的,这也是很多人觉得使用ORM框架棘手根本原因所在。

当然,也有脑力相当发达的人可以实现,但是这种围绕数据库实现映射的结果必然扭曲业务对象,这类似于两个板块(数据表和业务对象)相撞,必然产生地震,地震的结果是两败俱伤,软的一方吃亏,业务对象是代码,相当于数据表结构,属于软的一方,最后导致业务对象变成数据传输对象DTO,DTO满天飞,性能和维护问题随之而来。

领域建模解决了上述众多不协调问题,特别是ORM痛苦使用问题,关于 ORM/Hibernate使用还是那句老话:如果你不掌握领域建模方法,那么就不要用Hibernate,对于这个层次的你:也许No ORM 更是一个简单之道。

Spring分层矛盾问题

Spring是以挑战EJB面貌出现,其本身拥有的强大组件定制功能是优点,但是存在实战的一些问题,Spring作为业务层框架,不支持业务层Session 功能。

具体举例如下:当我们实现购物车之类业务功能时,需要将购物场合保存到 Session中,由于业务层没有方便的Session支持,我们只得将购物车保存到 HttpSession,而HttpSession只有通过HttpRequest才能获得,再因为在Spring业务层容器中是无法访问到 HttpRequest这个对象的,所以,最后我们只能将“购物车保存到HttpSession”这个功能放在表现层中实现,而这个功能明显应该属于业务层功能,这就导致我们的Java项目层次混乱,维护性差。 违背了使用Spring和分层架构最初目的。

领域驱动设计DDD

现在回到我们讨论的重点上来,分层架构是我们使用Java的根本原因之一,域建模专家Eric Evans在他的“Domain Model Design”一书中开篇首先强调的是分层架构,整个DDD理论实际是告诉我们如何使用模型对象oo技术和分层架构来设计实现一个Java项目。

我们现在很多人知道Java项目基本有三层:表现层、业务层和持久层,当我们执着于讨论各层框架如何选择之时,实际上我们真正的项目开发工作还没有开始,就是我们选定了某种框架的组合(如Struts+Spring+Hibernate或Struts+EJB或Struts+ JdonFramework),我们还没有意识到业务层工作还需要大量工作,DDD提供了在业务层中再划分新的层次思想,如领域层和服务层,甚至再细分为作业层、能力层、策略层等等。通过层次细化方式达到复杂软件的松耦合。DDD提供了如何细分层次的方式

当我们将精力花费在架构技术层面的讨论和研究上时,我们可能忘记以何种依据选择这些架构技术?选择标准是什么?领域驱动设计DDD 回答了这样的问题,DDD会告诉你如果一个框架不能协助你实现分层架构,那就抛弃它,同时,DDD也指出选择框架的考虑目的,使得你不会人云亦云,陷入复杂的技术细节迷雾中,迷失了架构选择的根本方向。

现在也有些人误以为DDD是一种新的理论,其实DDD和设计模式一样,不是一种新的理论,而是实战经验的总结,它将前人使用面向模型设计的方法经验提炼出来,供后来者学习,以便迅速找到驾驭我们软件项目的根本之道。

上一篇:《石钟山记》第一课时教学设计(教师中心稿)下一篇:技术与技术1教学设计