java经典面试题汇总

2024-07-17 版权声明 我要投稿

java经典面试题汇总(推荐9篇)

java经典面试题汇总 篇1

1、如果main方法被声明为private会怎样?

能正常编译,但运行的时候会提示”main方法不是public的”。

2、Java里的传引用和传值的区别是什么?

传引用是指传递的是地址而不是值本身,传值则是传递值的一份拷贝。

3、如果要重写一个对象的equals方法,还要考虑什么?

hashCode。

4、Java的”一次编写,处处运行”是如何实现的?

Java程序会被编译成字节码组成的class文件,这些字节码可以运行在任何平台,因此Java是平台的独立。

5、说明一下public static void main(String args[])这段声明里每个关键字的作用。

public: main方法是Java程序运行时调用的第一个方法,因此它必须对Java环境可见。所以可见性设置为pulic.

static: Java平台调用这个方法时不会创建这个类的一个实例,因此这个方法必须声明为static。

void: main方法没有返回值。

String是命令行传进参数的类型,args是指命令行传进的字符串数组。

6、==与equals的区别

==比较两个对象在内存里是不是同一个对象,就是说在内存里的存储位置一致。两个String对象存储的值是一样的,但有可能在内存里存储在不同的地方。

==比较的是引用而equals方法比较的是内容。public boolean equals(Object obj) 这个方法是由Object对象提供的,可以由子类进行重写。默认的实现只有当对象和自身进行比较时才会返回true,这个时候和==是等价的。String, BitSet, Date, 和File都对equals方法进行了重写,对两个String对象 而言,值相等意味着它们包含同样的字符序列。对于基本类型的包装类来说,值相等意味着对应的基本类型的值一样。

7、如果去掉了main方法的static修饰符会怎样?

程序能正常编译。运行时会抛NoSuchMethodError异常。

8、为什么oracle type4驱动被称作瘦驱动?

oracle提供了一个type 4 JDBC驱动,被称为瘦驱动。这个驱动包含了一个oracle自己完全用Java实现的一个TCP/IP的Net8的实现,因此它是平台的独立,可以在运行时由浏览器下载,不依赖任何客户端 的oracle实现。客户端连接字符串用的是TCP/IP的地址端口,而不是数据库名的tnsname。

9、介绍一下finalize方法

final: 常量声明。 finally: 处理异常。 finalize: 帮助进行垃圾回收。

接口里声明的变量默认是final的。final类无法继承,也就是没有子类。这么做是出于基础类型的安全考虑,比如String和Integer。这样也使得编译器进行一些优化,更容易保证线程的安全性。final方法无法重写。final变量的值不能改变。finalize()方法在一个对象被销毁和回收前会被调用。finally,通常用于异常处理,不管有没有异常被抛出都会执行到。比如,关闭连接通常放到finally块中完成。

10、什么是Java API?

Java API是大量软件组件的集合,它们提供了大量有用的功能,比如GUI组件。

11、GregorianCalendar类是什么东西?

GregorianCalendar提供了西方传统日历的支持。

12、ResourceBundle类是什么?

ResourceBundle用来存储指定语言环境的资源,应用程序可以根据运行时的语言环境来加载这些资源,从而提供不同语言的展示。

13、为什么Java里没有全局变量?

全局变量是全局可见的,Java不支持全局可见的.变量,因为:全局变量破坏了引用透明性原则。全局变量导致了命名空间的冲突。

14、如何将String类型转化成Number类型?

Integer类的valueOf方法可以将String转成Number。

15、SimpleTimeZone类是什么?

SimpleTimeZone提供公历日期支持。

16、while循环和do循环有什么不同?

while结构在循环的开始判断下一个迭代是否应该继续。do/while结构在循环的结尾来判断是否将继续下一轮迭代。do结构至少会执行一次循环体。

17、Locale类是什么?

Locale类用来根据语言环境来动态调整程序的输出。

18、面向对象编程的原则是什么?

主要有三点,多态,继承和封装。

19、介绍下继承的原则

继承使得一个对象可以获取另一个对象的属性。使用继承可以让已经测试完备的功能得以复用,并且可以一次修改,所有继承的地方都同时生效。

20、什么是隐式的类型转化?

隐式的类型转化就是简单的一个类型赋值给另一个类型,没有显式的告诉编译器发生了转化。并不是所有的类型都支持隐式的类型转化。

21、sizeof是Java的关键字吗?

不是。

22、native方法是什么?

native方法是非Java代码实现的方法。

23、在System.out.println()里面,System, out, println分别是什么?

System是系统提供的预定义的final类,out是一个PrintStream对象,println是out对象里面一个重载的方法。

24、封装,继承和多态是什么?

简单来说,多态是指一个名字多种实现。多态使得一个实体通过一个通用的方式来实现不同的操作。具体的操作是由实际的实现来决定的。

多态在Java里有三种表现方式:方法重载通过继承实现方法重写通过Java接口进行方法重写。

25、显式的类型转化是什么?

显式的类型转化是明确告诉了编译器来进行对象的转化。

26、什么是Java虚拟机?

Java虚拟机是能移植到不同硬件平台上的软件系统。

27、类型向下转换是什么?

向下转换是指由一个通用类型转换成一个具体的类型,在继承结构上向下进行。

28、Java的访问修饰符是什么?

访问权限修饰符是表明类成员的访问权限类型的关键字。使用这些关键字来限定程序的方法或者变量的访问权限。它们包含:

public: 所有类都可以访问 protected: 同一个包内以及所有子类都可以访问 private: 只有归属的类才能访问默认: 归属类及相同包下的子类可以访问。

29、所有类的父类是什么?

Object.

30、Java的基本类型有哪些?

java程序员面试必备问答汇总 篇2

所谓对象就是真实世界中的实体,对象与实体是一一对应的,也就是说现实世界中每一个实体都是一个对象,它是一种具体的概念。

类是具备某些共同特征的实体的集合,它是一种抽象的概念,用程序设计的语言来说,类是一种抽象的数据类型,它是对所具有相同特征实体的抽象。

属性与方法?

不同对象具有相同特点,就可能抽象为一定的类,那么这些特点基本上可以分为两类,一类是描述对象静态状态的,就是对象的属性,在程序设计中,可以称之为变量;另一类是描述对象的动作,就是对象的方法,在程序设计中我们称之为函数。属性和方法是一个对象所具备的两大基本要素,也是我们后面编程工作的核心。

什么是封装?

只要有足够的方法,就没必要直接去操作对象属性,只要调用这些方法就可以实现要完成的任务,这种现象称为封装,它通过对象方法对其属性的操作把对象属性封装在一个对象内部,对象与外界打交道全部通过其自身的方法来实现,有效的把对象属性隐藏在对象内部。

编写 java文件的注意事项?

在记事本中编写java文件,在保存时一定要把文件名和扩展名用双引号括起来,否则将默认保存为文本文件,如果要保存的java 文件名为Program1.java,则在保存时在文件名文本框中一定要输入”Program1.java”。

如何编译java程序?

单击开始|运行命令,在命令行上输入cmd,按回车键(在 window98中输入command,按回车键),即可打开一个命令窗口,将目录转换到编写java源程序所在的目录,输入javac filename.java

如何执行java程序?

同样在命令窗口中输入java filename,基本数据类型?

JAVA达内面试题 篇3

JAVA面试题-CORE JAVA部分

--感谢SD0501班毕业学员李晓宾的提供,希望对面试学员和在校学员有所帮助。

1. 在main(String[] args)方法内是否可以调用一个非静态方法?

答案:不能

2. 同一个文件里是否可以有两个public类?

答案:不能

3. 方法名是否可以与构造器的名字相同?答案:可以。

4.初始化了一个没有run()方法的线程类,是否会出错?

答案:不会。

第一种方法:直接继承Thread类。

public class Test

{

public static void main(String[] args)

{

ThreadClass t = new ThreadClass();

t.start();

System.out.println(“end”);//输出“end”

}

}

class ThreadClass extends Thread//Thread类已经实现了空的run()方法。

{

}

第二种方法:实现Runnable接口

public class Test

{

public static void main(String[] args)

{

ThreadClass t = new ThreadClass();

Thread thread = new Thread(t);

thread.start();

System.out.println(“end”);

}

}

class ThreadClass implements Runnable

{

public void run()//必须有此方法否则编译报错。它是Runnable接口中的抽象方法。{

System.out.println(“Threads”);

}

}

4. 局部内部类是否可以访问非final变量?

答案:不能访问局部的,可以访问成员变量(全局的)。

class Out

{

private String name = “out.name”;

void print()

{

final String work = “out.local.work”;//若不是final的则不能被Animal 使用.int age=10;

class Animal

//定义一个局部内部类.只能在print()方法中使用.//局部类中不能使用外部的非final的局部变量.全局的可以.{

public void eat()

{

System.out.println(work);//ok

//age=20;error not final

System.out.println(name);//ok.}

}

Animal local = new Animal();

local.eat();

}

}

5. 选择语句case中,允许使用的值有哪些?答案:int,short,char,byte(都在int范围之内,且是整

数)

6. Math,String是不可继承的。(final类)

Instanceof 后面跟的应该是OBJECT。

构造器可以是私有的。(private)

=与==意义是完全不同的。一个是赋值,一个是等于。

全局变量可以不进行初始化,如果使用一个局部变量,则这个局部变量要被初始化。

7. 下面都是正确的main方法签名。

public static void main(String[] args)

public static final void main(String[] args)

static public void main(String[] args)

static public synchronized void main(String[] args)

static public abstract void main(String[] args)//错误

8. if(-0.0 == 0.0)是相等还是不等?

答案:相等。

10.一个抽象类是否可以没有抽象方法?

答案:可以。

14.数组,无论是当前的,还是类等级的,都会被初始化。

String 是被初始化为 null,不是空字符。

null,““,” “,都是不同的。

“continue”只能在一个循环里(如for,do,while),它不能在case语句中出现。

Primitive(int,char,long等)数组是不能互相赋值的,即使它们本身可以。

一个Constructor可以抛出任何异常。

初始化块是按照声明的顺序执行的。

所有关于 NaN(Not a Number)和 non-NaN 的比较,都返回false.这条很重要。

==会产生编译错误,如果两边类型不匹配的话。

equals()返回 false 如果对象类型不同,但不产生 编译错误。

15. 16.integer和long 操作 /和% 的话,可能会抛出ArithmeticException,比如除0。但是 float与

double不会,即使是除以0。

double a=0;a=a/0;则a等于NaN。

18.面向对象的特征有哪些方面 ?

答案:最基本特征:封装,继承,多态。

其他特征:抽象关联,聚合,组合,内聚,耦合24.设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。

注:因为这4个线程共享J,所以线程类要写到内部类中。

加线程:每次对j加一。

减线程:每次对j减一。

public class TestThreads

{

private int j=1;

//加线程

private class Inc implements Runnable

{

public void run()

{

for(int i = 0;i < 10;i++)

{

inc();

}

}

}

//减线程

private class Dec implements Runnable

{

public void run()

{

for(int i = 0;i < 10;i++)

{

dec();

}

}

}

//加1

private synchronized void inc()

{

j++;

System.out.println(Thread.currentThread().getName()+“-inc:”+j);

}

//减1

private synchronized void dec()

{

j--;

System.out.println(Thread.currentThread().getName()+“-dec:”+j);

}

//测试程序

public static void main(String[] args)

{

TestThreads test = new TestThreads();

//创建两个线程类

Thread thread = null;

Inc inc = test.new Inc();

Dec dec = test.new Dec();

//启动4个线程

for(int i = 0;i < 2;i++)

{

thread = new Thread(inc);

thread.start();

thread = new Thread(dec);

thread.start();

}

}

}

25.数组转换问题。

Object[] object=new Person[2];

Person [] person=new Person [3];

person=(Person [])object;//可以转换

int[] i = new int[2];

long[] l = new int[3];

i =(long[])l;//不可以转换

26.用socket通讯写出客户端和服务器端的通讯,要求客户发送数据后能够回显相同的数据。Server.java:源代码

import java.net.*;

import java.io.*;

classServer

{

public Server()

{

BufferedReader br = null;

PrintWriter pw = null;

try

{

ServerSocket server = new ServerSocket(8888);//建立服务器端

Socket socket = server.accept();//监听客户端

//得到该连接的输入流

br = new BufferedReader(new InputStreamReader(socket.getInputStream()));//得到该连接的输出流

pw = new PrintWriter(socket.getOutputStream(),true);

//先读后写

String data = br.readLine();

System.out.println(data);//输出到控制台

pw.println(data);//转发给客户端

}catch(Exception e)

{

e.printStackTrace();

}

finally

{try{//关闭读写流br.close();pw.close();}catch(Exception e){}}}public static void main(String[] args){Server server = new Server();}

}

Client.java:源代码

import java.net.*;

import java.io.*;

classClient

{

public Client()

{

BufferedReader br = null;

PrintWriter pw = null;

try

{

Socket socket = new Socket(“localhost”,8888);//与服务器建立连接,服务器要先启//得到Socket的输入与输出流

br = new BufferedReader(new InputStreamReader(socket.getInputStream()));

pw = new PrintWriter(socket.getOutputStream(),true);

//先写后读

pw.println(“Client:你好!”);

String data = null;

while(true)

{

data = br.readLine();

if(data!=null)break;

}

System.out.println(data);

}catch(Exception e)

{

e.printStackTrace();

}

finally

{

try

{

br.close();

pw.close();

}catch(Exception e)

{}

}

}

public static void main(String[] args)

{

Client c = new Client();

}

}

37.sleep()和 wait()有什么区别?

答案:sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间(休息),把执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复,时间到了会继续运行。调用sleep不会释放对象锁。

wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。

50.启动一个线程是用run()还是start()?有什么区别?

答案:启动一个线程是调用start()方法,这并不意味着线程就会立即运行,只是进入了可运行状态。直接调用run()方法不会产生线程,而是把它当作普通的方法调用,马上执行。

73.当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?

金华业Java面试题 篇4

1.请指出哪些声明和初始化数组是正确的?

A.Array a = new Array(5)B.int[] a = {23,22,21,20,19}C.int[] array

D.int array[] = new int[5] E.int a[] = new int(5)F.int[5] array

2.阅读以下代码,选择正确的答案,并说明原因?

public class TestDogs

{

Dog[][] theDogs = new Dog[3][];

System.out.println(theDogs[2][0].toString());

}

class Dog

{

}

A.null B.theDogs C.Compilation fails D.An exception is thrown at runtime

3.请选择你认为不正确的声明,并说明原因?

A.final abstract class Test {}B.public static interface Test{}

C.final public class Test{}D.protected interface Test{}E.protected abstract class Test{} F.abstract public class Test{}

4.阅读以下代码,选择正确的答案,并说明原因?

Interface Count

{

short counter = 0;

void countUp();

}

public class TestCount implements Count

{

public static void main(String[] args)

{

TestCount t = new TestCount();

t.countUp();

}

public void countUp()

{

for(int x = 6;x>counter;x--, ++counter)

{

System.out.print(“ ” + counter);

}

}

A.0 1 2B.1 2 3C.0 1 2 3D.1 2 3 4

E.Compilation failsF.An exception is thrown runtime

5.阅读以下代码,选择正确答案,并说明原因?

class Test

{

public static void main(String[] args)

{

int x = 0;

int y = 0;

for(int z = 0;z < 5;z++)

{

if((++x > 2)&&(++y > 2))

{

x++;

}

}

System.out.println(x + “ ” + Y);

}

}

A.5 2 B.5 3 C.6 3 D.6 4 E.7

56.阅读以下代码,选择程序的输出结果。

class A

{

public void baz()

{

System.out.println(“A”);

}

}

public class B extends A

{

public static void main(String[] args)

{

A a = new B();

a.baz();

}

public void baz()

{

System.out.println(“B”);F.8 5

}

A.AB.BC.Compilation fails D.An exception is thrown at runtime

7.阅读以下代码,选择程序的输出结果。

Class ParentClass

{

public int doStuff(int x)

{

return x * 2;

}

}

public class ChildClass extends ParentClass

{

public static void main(String[] args)

{

ChildClass cc = new ChildClass();

Long x = cc.doStuff(7);

System.out.println(“x = ” + x);

}

public long doStuff(int x)

{

return x * 3;

}

}

A x = 14B.x = 21C.Compilation fails

D.An exception is thrown at runtime

8.阅读以下代码,选择程序的输出结果。

class Parent

{

public Parent()

{

System.out.println(“instantiate a parent”);

}

}

class Child extends Parent

{

public Child()

{

System.out.println(“instantiate a child”);

}

super();

}

public class TestPoly

{

public static void main(String[] args)

{

Parent p = new Child();

}

}

A.instantiate a child B.instantiate a parent C.instantiate a child

instantiate a parent

D.instantiate a parent E.Compilation fails F.An exception is thrown at runtimeinstantiate a child

9.ArrayList、LinkedList、Vector在存储特性、性能、效率上有什么区别?

10.请说出InputStream流和Reader流的区别。

11.JDBC中PreparedStatement比Statement执行效率高的原因?

12.手写一个简单的xml文件,并使用此文件描述一个通讯录,包含 姓名,电话,email三个字段。

13.编写一个简单的xml访问程序,在上面的xml文件中增加一个地址字段。

14.请简述struts的工作流程。

15.有一个表(COUNTRIES),此表中有一字段(COUNTRY_REGION)用于存储国家的所属区域,要求写一条SQL语句用于统计每个区域中的国家数量。

16.请简述软件工程中标准的开发流程,详细说明每个环节对项目的作用及影响。

java经典面试题汇总 篇5

那么java程序员到底是一个什么类型的工作,他们需要掌握什么技能呢,而他们在企业面试中又会遇到什么考题呢?经欧泊泰克就业小编总结,在java程序员面试时经常会遇到String类问题,下面就让我们一起分析解决这些问题,让我们程序员们轻松应对。问题1:

String s1 = “abc”;

String s2 = “abc”;

System.out.println(s1 == s2);

这里的结果是true.由于字符串是常量(内存中创建对象后不能修改), 而且字符串在程序中经常使用.所以Java对其提供了缓冲区.缓冲区内的字符串会被共享.使用双引号的形式定义字符串常量就是存储在缓冲区中的.使用“abc”时会先在缓冲区中查找是否存在此字符串, 没有就创建一个, 有则直接使用.第一次使用“abc”时会在缓冲区中创建, 第二次则是直接引用之前创建好的了.问题2:

String s1 = new String(“abc”);

String s2 = new String(“abc”);

System.out.println(s1 == s2);

这里的结果是false.使用构造函数创建的字符串都是在缓冲区外面创建一个新的.所以只要是使用构造函数创建的字符串, 和任何字符串都不会相等.问题3:

String s1 = “abc”;

String s2 = “a”;

String s3 = “bc”;

String s4 = s2 + s3;

System.out.println(s1 == s4);

这里的结果是false.Java中字符串的相加其内部是使用StringBuilder类的append()方法和toString()方法来实现的.而StringBuilder类toString()方法返回的字符串是通过构造函数创建的.问题4:

String s1 = “abc”;

String s2 = “a” + “bc”;

System.out.println(s1 == s2);

这里的结果是true.其实这里的s2并没有进行字符串相加, 两个双引号形式的字符串常量相加, 在编译的时候直接会被转为一个字符串“abc”.问题5:

String str = “abc”;

str.substring(3);

str.concat(“123”);

System.out.println(str);

这里结果是“abc”.由于字符串是常量(内存中创建对象后不能修改), 该类中所有方法都不会改变字符串的值.如果希望使用一个可变的字符串, 可以使用StringBuilder或StringBuffer类。

java设计模式面试题 篇6

你用过哪种设计模式?

设计:design

模式:pattern

框架:framework

创建模式,结构模式和行为模式

GoF设计模式

A.创建模式

设计模式之Factory(工厂模式)

使用工厂模式就象使用new一样频繁.

设计模式之Prototype(原型模式)

用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象,

设计模式之Builder

汽车由车轮 方向盘 发动机很多部件组成,同时,将这些部件组装成汽车也是一件复杂的工作,Builder模式就是将这两种情况分开进行。

设计模式之Singleton(单态模式)

保证一个类只有一个实例,并提供一个访问它的全局访问点

B.结构模式

设计模式之Facade

可扩展的使用JDBC针对不同的`数据库编程,Facade提供了一种灵活的实现.

设计模式之Proxy

以Jive为例,剖析代理模式在用户级别授权机制上的应用

设计模式之Adapter

使用类再生的两个方式:组合(new)和继承(extends),这个已经在“thinking in java”中提到过.

设计模式之Composite

就是将类用树形结构组合成一个单位.你向别人介绍你是某单位,你是单位中的一个元素,别人和你做买卖,相当于和单位做买卖。文章中还对Jive再进行了剖析。

设计模式之Decorator

Decorator是个油漆工,给你的东东的外表刷上美丽的颜色.

设计模式之Bridge

将“牛郎织女”分开(本应在一起,分开他们,形成两个接口),在他们之间搭建一个桥(动态的结合)

设计模式之Flyweight

提供Java运行性能,降低小而大量重复的类的开销.

C.行为模式

设计模式之Template

实际上向你介绍了为什么要使用Java 抽象类,该模式原理简单,使用很普遍.

设计模式之Memento

很简单一个模式,就是在内存中保留原来数据的拷贝.

设计模式之Observer

介绍如何使用Java API提供的现成Observer

设计模式之Chain of Responsibility

各司其职的类串成一串,好象击鼓传花,当然如果自己能完成,就不要推委给下一个.

设计模式之Command

什么是将行为封装,Command是最好的说明.

设计模式之State

状态是编程中经常碰到的实例,将状态对象化,设立状态变换器,便可在状态中轻松切换.

设计模式之Strategy

不同算法各自封装,用户端可随意挑选需要的算法.

设计模式之Mediator

Mediator很象十字路口的红绿灯,每个车辆只需和红绿灯交互就可以.

设计模式之Interpreter

主要用来对语言的分析,应用机会不多.

设计模式之Visitor

访问者在进行访问时,完成一系列实质性操作,而且还可以扩展.

设计模式之Iterator

上海爱立信java面试题 篇7

第一套:1.SAX解析xml的方式,与dom4j的区别 2.http和https之间的不同

3.浏览器发起请求到页面展现有那几个步骤 4.linux部署项目出现过什么问题 5.怎么解决线程死锁

6.final 类,方法,变量代表的含义 7.TCP和UDP 8.MapReduce介绍

8.讲一下垃圾回收机制

9.什么时候会引起OutOfMemory异常 10.互斥和同步 11.启动线程的方法

第二套:

1、Filter涉及了哪些设计模式

2、单例模式中的内部静态类为什么能够懒加载

3、ClassLoader相关(2),tomcat中有哪些类加载器

4、线程单例;线程synchronized(静态和非静态有什么区别)

5、一个先递增后递减的数列,如何找到最大值?(使用二叉树,lgn/log2)

6、二叉树的非递归算法(不用栈)

7、Java中的heap和stack

8、事务的传播性

9、找出数组中出现次数为1的数字(其他的出现偶数次)

现场面试

1.ServletDispather 2.Filter是什么模式的体现 3.线程wait和sleep的区别 4.线程的状态

5.除jquery用过什么网页脚本语言 6.在工作中有没有用过设计模式

7.在工作中有没有遇到过难题,怎么解决的 8.servlet同步异步

9.有没有用过远程调试页面 10.linux查看流量的指令

重点考察

1-面向对象思想

java经典面试题汇总 篇8

1.HTML全称,和XML的相同点和不同点。

2.什么是JSP,JSP执行原理,并解释JSP第一次执行慢的原因。

3.JSP页面中代码混乱,如何顺利调试一个页面。在JSP网页开发中,include包含的好处是什么。要注意些什么问题?

4.谈谈jsp jsp+javabean,MVC,框架技术(比如DWR)的优缺点。

5.简述application session request生命周期与作用域

6.servlet转页面的两种方式,不同点是什么。JS能转页吗。如果能

怎么写?

7.谈谈SQL中在写分组是的要领?

8.谈谈你在写SQL语句时的分析步骤

9.描述PreparedStatement和Statement的区别

10.数据库中索引的作用。索引是否越多越好,为什么?

11.简述笛卡尔乘积与多表连接查询

12.你如何看待编码规范。

13.“在一个团队中要么付出你的汗水,要么付出你的智慧,如果都没

java程序员面试题及答案 篇9

表a和表b具有完全相同的结构,主键为indexid。写出一个sql语句把表b中不存在而表a中存在的数据插入到表b中。

2、javascript部分

页面中有一个名称都为unitprice的type=text对象。要求输入的数据不能为空,写一个函数实现该功能,如果为空时给出提示。

3、JSP部分

①session中存储一个String变量,变量名称为studentname,写出在jsp中如何得到这个session变量的值的语句。

②在jsp中引用使用来引用javabean.

Ⅰscope的值有哪些,这些值的区别是什么?

Ⅱ不同的jsp页面中引用javabean时,id能否相同,如果能相同,对scope的值有什么要求?

4、JAVA部分

①输入一个维数,输出以下形式的矩阵和数列,以维数n=4为例:

0000

0111

0122

0123

②写出下面这段程序的运行结果

int a=2,b=3,c=1

a+=Cb+c;

c-=b+a++;

System.out.println(“a=”+a+”,b=”+b+”,c=”+c);

5、有一个Vector对象,其中每一个元素都是一个String对象,请用for循环或while循环输出Vector中的元素,要求格式为:”第i个元素为:aaa”

6、有一个HashMap其中key为String对象,value为Integer对象,写一个方法打印出此Map中的所有键值 对形如 keyCvalue

7、有一个String str=”001,A001;002,A002;003,A003″的串,写一个方法,把此串存入列 一个HashMap或Hashtable中,说明:如001为key,A001则为value。

8、面向对象概念:

①面向对象基本特征

②什么叫多态和重载,它们有什么区别?

③用你自己的话描述你理解的j2ee的本质特征是什么?

第一题: 写一个方法,实现删除链表中某个节点的操作(其他条件自己假设,补充)

public void

{

if(front>=rear)

{

s[front] =0;

frontC;

System.out.println(“ successful”);

}

else

{

System.out.println(“the link is empty ,can’t ”);

}

}

第二题: 写一个方法,实现堆栈的入栈操作 (其他条件自己假设,补充)

public class stack{

private int[] s;

int top,bottom;

public stack(int size){

s = new int[size];

top = size-1;

bottom = size-1;

System.out.println(“Size of the stack is:”+size);

}

public boolean isEmpty()

{

if(top==s.length-1)

return true;

else

return false;

}

public void push(int n)

{

if(top<0)

{

System.out.println(“The stack is full now,you can’t push your data!”);

return;

}

else

{

s[top] = n;

topC;

return ;

}

}

public void pop()

{

if(top>=s.length-1)

{

System.out.println(“The stack is empty,Can’t pop now!”);

return;

}

else

{

top++;

}

}

public void print()

{

System.out.println(“State of the stack:”);

for(int i=s.length-1;i>top;iC)

{

System.out.print(s[i]+” ”);

}

}

public static void main(String[] a)

{

stack st = new stack(5);

System.out.println(“List of the action to the stack:”);

System.out.println(“push(3):”);

st.push(3);

st.print();

System.out.println(” ”);

System.out.println(“push(6)”);

st.push(6);

st.print();

System.out.println(” ”);

System.out.println(“push(10)”);

st.push(10);

st.print();

System.out.println(” ”);

System.out.println(“pop()”);

st.pop();

st.print();

System.out.println(” ”);

}

}

第三题: 使用任意排序算法,写一个排序示例程序

import java.io.*;

class SelectionSort{

public static void main(String[] args){

int[] a={4,54,8,7,6,98,42,};

sort(a);

for(int i=0;i

System.out.print(a[i]+” “);

}

System.out.println(“”);

}

static void sort(int[] data){

int next, indexOfNext=0,n;

for (next=0;next

{

indexOfNext=min(data,next,(data.length)-1);

swap(data,indexOfNext,next);

}

}

static int min(int[] data,int start,int end){

int indexOfMin=start;

for (int i=start+1;i<=end;i++)

if(data[i]

indexOfMin=i;

return indexOfMin;

}

static void swap(int[] data,int first,int second){

int temp;

temp=data[first];

data[first]=data[second];

data[second]=temp;

}

}

第四题:

编写一个servlet,把servlet源码和此servlet在服务器上的配置文件web.xml作为附件发送到指定的邮箱

servlet的功能要求:记录访问该servlet的客户端的ip和访问时间,把记录写入client_ip.log文件。 client_ip.log里的格式大致如下:

9:36 -4-8 192.168.0.1

9:36 2005-4-8 127.0.0.1

获取客户的IP地址

第五题

数据库中有两个表tableA和tableB,他们都有一个int型的字段id,请写出一个sql语句,实现查询id在tableA中有,而tableB中没有的记录

例如tableA中有如下记录

―――――――――-

tableA.id tableA.name

3 Mary

4 Jack

5 Lily

―――――――――-

tableB.id

3

5

查询的结果应该是

―――――――――-

tableA.id tableA.name

4 Jack

select *

from tableA

where not exists

(select *

from tableB

where tableA.id=tableB.id)

第六题 简述jsp和servlet的联系

Java Servlet是JSP技术的基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。现在许多Web服务器都支持Servlet,即使不直接支持Servlet的Web服务器,也可以通过附件的应用服务器和模块来支持Servlet,这得益于Java的跨平台特性。另外,由于Servlet内部以线程方式提供提供服务,不必对于每个请求都启动一个进程,并且利用多线程机制可以同时为多个请求服务,因此Servlet的效率非常高。

第七题 什么是sql注入漏洞,采用什么方法来堵住sql注入漏洞

随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于这个行业的入门门槛不高,程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入

第八题:简述你对xml的认识,举例说明xml能干什么,应该怎么做

XML是Extensible Markup Language的缩写,意思是可扩展置标语言没有于置标电子文档,使起数据具有结构化的置标语言。在我目前浅显的认识里:,

XML 是用来传递数据的 ,

XML 让这些数据有了结构 ― 一个树型结构 ,

xml 有全套的操作这种结构的方法

xml 规范(或者说的实际点,xml parser)帮你确定你创建的字符串是合法的

xml 规范(或者说的实际点,xml parser)中有办法验证这个合法性

对于XML能用来做什么,我觉得XML可以用来下面几个方面

1:有利于开发灵活的web应用软件

使用XML来描述数据,可以使数据具有同意的组织结构,其他应用软件,对象,中间层和服务器都可以对使用XML描述的数据做进一步的处理。并可以提交到浏览器中让读者阅读

2:可以轻松的实现数据在web上发布

因为XML本身是纯文本格式的,它可以不做任何修改就和HTML文档一样在网络中传输。

3:有利于信息的集成

因为使用XML,可以把不同来源的结构化数据很容易地组织到一起。应用软件可以在中间层的服务器上对来自于后段数据库和其他的数据进行集成。最后,数据以XML格式发送到客户端或者是在其他服务器做进一步处理。

4:可以使用丰富的样式来显示数据

XML采用结构化的方式来组织数据,描述的是数据本身,不涉及到数据的表现形式。通常来说,使用CSS和 XSL以及XSLT为数据的显示提供分布的机制,也就是说数据的显示方式可以根据客户的要求制定。

5:可大大增强服务器的可伸缩性

XML将数据本身和数据的显示完全分离,从而可以在结构化的数据中嵌套数据的显示方式描述。这样,能尽可能地减少客户端与服务器之间的数据交换,减少服务器的工作量才能大大提高服务器的性能。

6:采用统一的XML文档格式来描述多种应用的数据

7:支持本地数据处理

因为XML文档中的数据格式是统一的,当客户受到数据后,便可以使用客户自己的应用软件来解析数据,并对数据进行进一步的编辑和处理。

8:可以使搜索变得更加简单

上一篇:小学英语考试分析及反思范文下一篇:委托银行代发业务协议