「java笔试编程题库」java笔试题编程题
今天给各位分享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++嵌套类最大的不同就在于是否有指向外部的引用上。具体可见http: //;page=1
注: 静态内部类(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背景的程序员特别喜欢问这种问题。
2 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算法都大概一样,所以性能不会有很大的差异。
java笔试选择题,求解。。
primitive主数据类型。java等编程语言中的默认基本数据类型,如:int,long等等。
不选A是因为java语言中没有指针的概念,只有引用,引用的作用类似指针。
使用哪种方法由Servlet来将其会话ID在被写入到一个URL
servlet的响应输出流?
在HttpServletRequest接口A的encodeURL方法。
在HttpServletResponse的接口B的encodeURL方法。
在HttpServletRequest接口的C的rewriteURL方法。
在HttpServletResponse的接口D的rewriteURL方法。
Map是个接口,Map没有继承Collection接口,Map提供key到value的映射。
List 是标准类库中的一个类,可以简单视之为双向链表,以线性列的方式管理物件集合。
求java考题,笔试题
Java面向对象
1. super()与this()的区别?
This():当前类的对象,super父类对象。
Super():在子类访问父类的成员和行为,必须受类继承规则的约束
而this他代表当前对象,当然所有的资源都可以访问.
在构造函数中,如果第一行没有写super(),编译器会自动插入.但是如果父类没有不带参数的构造函数,或这个函数被私有化了(用private修饰).此时你必须加入对父类的实例化构造.而this就没有这个要求,因为它本身就进行实例化的构造.
而在方法中super和this使用的方法就差不多了.只不过super 要考虑是否能访问其父类的资源.
2. 作用域public,protected,private,以及不写时的区别?
Public:不同包、 同一包、 类内都可用
Private: 类内
Protected:不同包的子类、同一包、 类内都可用
不写时: 同一包内、类内
3. 编程输出如下图形。
* * * * *
* * * *
* * *
* *
*
代码如下:
public class Print {
publicstatic void main(String[] args) {
for(int i = 0; i 5; i++) {
for(int j = 5; j i; j--) {
System.out.print("*");
}
System.out.println();
}
}
}
4. JAVA的事件委托机制和垃圾回收机制
Java事件委托机制的概念,一个源产生一个事件并将它送到一个或多个监听器那里。在这种方案中,监听器简单的等待,直到它收到一个事件。一旦事件被接受,监听器将处理这个事件,然后返回。
垃圾回收机制垃圾收集是将分配给对象但不再使用的内存回收或释放的过程。如果一个对象没有指向它的引用或者其赋值为null,则次对象适合进行垃圾回收
5. 在JAVA中,如何跳出当前的多重嵌套循环?
用break; return 方法。
6. 什么是java序列化,如何实现java序列化?(写一个实例)
序列化:处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。
序列化的实现:将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法,implementsSerializable只是为了标注该对象是可被序列化的,然后使用一个输出流(如:FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,接着,使用ObjectOutputStream对象的writeObject(Object obj)方法就可以将参数为obj的对象写出(即保存其状态),要恢复的话则用输入流。
7. 一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?
可以。如果这个类的修饰符是public,其类名与文件名必须相同。
8. 排序都有哪几种方法?请列举。用JAVA实现一个快速排序?
排序的方法有:插入排序(直接插入排序、希尔排序),交换排序(冒泡排序、快速排序),选择排序(直接选择排序、堆排序),归并排序,分配排序(箱排序、基数排序)
快速排序的伪代码。
9. Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?
重写Override,子类覆盖父类的方法,将子类传与父类的引用调用的还是子类的方法。
重载Overloading 一个类多个方法,名称相同,参数个数类型不同。
两者都是Java多态性的不同表现。
Overloaded的方法是可以改变返回值的类型。
1, public class Ctest(){
Public static void main(){
System.out.prinln(8+8+”88”+8+8);
}
} 168888
(方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。
Overloaded的方法是可以改变返回值的类型。)
10. Final类有什么特点?
属性常量 方法不可以overridding 类不可以继承
11. 继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么?
答:父类:
package test;
public class FatherClass {
public FatherClass() {
System.out.println("FatherClassCreate");
}
}
子类:
package test;
import test.FatherClass;
public class ChildClass extends FatherClass{
public ChildClass() {
System.out.println("ChildClassCreate");
}
public static void main(String[] args) {
FatherClass fc = new FatherClass();
ChildClass cc = new ChildClass();
}
}
输出结果:
C:java test.ChildClass
FatherClass Create
FatherClass Create
ChildClass Create
12. 内部类的实现方式?
package test;
public class OuterClass {
private class InterClass {
Public Interlass(){
System.out.println("InterClassCreate");
}
}
public OuterClass(){
InterClass ic = new InterClass();
System.out.println("OuterClassCreate");
}
public static void main(String[] args){
OuterClass oc = new OuterClass();
}
}
输出结果:
C:java test/OuterClass InterClass Create OuterClass Create
13. 用JAVA实现一种排序,JAVA类实现序列化的方法(二种)?
14. 如在COLLECTION框架中,实现比较要实现什么样的接口?
15. 用插入法进行排序代码如下
package test;
import java.util.*;
class InsertSort {
ArrayList al;
public InsertSort(int num,int mod) {
al = new ArrayList(num);
Random rand = new Random();
System.out.println("The ArrayList SortBefore:");
for (int i=0;inum ;i++ ){
al.add(new Integer(Math.abs(rand.nextInt())% mod + 1));
System.out.println("al["+i+"]="+al.get(i));
}
}
public void SortIt(){
Integer tempInt;
int MaxSize=1;
for(int i=1;ial.size();i++){
tempInt = (Integer)al.remove(i);
if(tempInt.intValue()=((Integer)al.get(MaxSize-1)).intValue()){
al.add(MaxSize,tempInt);
MaxSize++;
System.out.println(al.toString());
} else {
for (int j=0;jMaxSize ;j++ ){
if(((Integer)al.get(j)).intValue()=tempInt.intValue()){
al.add(j,tempInt);
MaxSize++;
System.out.println(al.toString());
break;
}
}
}
}
System.out.println("The ArrayList SortAfter:");
for(int i=0;ial.size();i++) {
System.out.println("al["+i+"]="+al.get(i));
}
}
public static void main(String[] args) {
InsertSort is = new InsertSort(10,100);
is.SortIt();
}
}
JAVA类实现序例化的方法是实现java.io.Serializable接口
Collection框架中实现比较要实现Comparable 接口和 Comparator 接口
16. 编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。但是要保证汉字不被截半个,如"我ABC"4,应该截为"我AB",输入"我ABC汉DEF",6,应该输出为"我ABC"而不是"我ABC+汉的半个"。
public static void split(String source,intnum) throws Exception{
intk=0;
Stringtemp="";
for(int i = 0; i source.length(); i++){
byte[]b=(source.charAt(i)+"").getBytes();
k=k+b.length;
if(knum){
break;
}
temp=temp+source.charAt(i);
}
System.out.println(temp);
}
15、Java编程,打印昨天的当前时刻
public class YesterdayCurrent{
public void main(String[] args){
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, -1);
System.out.println(cal.getTime());
}
}
16、文件读写,实现一个计数器
public int getNum(){
int i = -1;
try{
String stri="";
BufferedReader in = new BufferedReader(newFileReader(f));
while((stri=in.readLine())!=null){
i = Integer.parseInt(stri.trim());
}
in.close();
}catch(Exception e){
e.printStackTrace();
}
return i;
}
public void setNum(){
int i = getNum();
i++;
try{
PrintWriter out=new PrintWriter(newBufferedWriter(new FileWriter(f,false)));
out.write(String.valueOf(i)); //可能是编码的原因,如果直接写入int的话,将出现java编码和windows编码的混乱,因此此处写入的是String
out.close() ;
}catch(Exception e){
e.printStackTrace();
}
}
17、指出下面程序的运行结果。
class A{
static{
System.out.print("1");
}
public A(){
System.out.print("2");
}
}
class B extends A{
static{
System.out.print("a");
}
public B(){
System.out.print("b");
}
}
public class Hello{
public static void main(String[] ars){
A ab = new B(); //执行到此处,结果: 1a2b
ab = new B(); //执行到此处,结果: 1a2b2b
}
}注:类的static 代码段,可以看作是类首次加载(被虚拟机加载)执行的代码,而对于类的加载,首先要执行其基类的构造,再执行其本身的构造
18、抽象类和接口的区别?
(1)接口可以被多重implements,抽象类只能被单一extends(2)接口只有定义,抽象类可以有定义和实现(3)接口的字段定义默认为:publicstatic final, 抽象类字段默认是"friendly"(本包可见)
当功能需要累积时用抽象类,不需要累积时用接口。
19、什么是类的反射机制?
通过类(Class对象),可以得出当前类的fields、method、construtor、interface、superClass、modified等,同是可以通过类实例化一个实例、设置属性、唤醒方法。Spring中一切都是返射、struts、hibernate都是通过类的返射进行开发的。
20、类的返射机制中的包及核心类?
①java.lang.Class②java.lang.refrection.Method③java.lang.refrection.Field
④java.lang.refrection.Constructor⑤java.lang.refrection.Modifier⑥java.lang.refrection.Interface
21、得到Class的三个过程是什么?
①对象.getClass()②类.class或Integer.type(int) Integer.class(java.lang.Integer)③Class.forName();
22、如何唤起类中的一个方法?
①产生一个Class数组,说明方法的参数②通过Class对象及方法参数得到Method③通过method.invoke(实例,参数值数组)唤醒方法
23、如何将数值型字符转换为数字(Integer,Double)?
Integer.parseInt(“1234”) Double.parseDouble(“123.2”)
24、如何将数字转换为字符?
1+”” 1.0+””
25、如何去小数点前两位,并四舍五入。
double d=1256.22d; d=d/100; System.out.println(Math.round(d)*100);
26、如何取得年月日,小时分秒?
Calendar c=Calendar.getInstance();
c.set(Calendar.YEAR,2004);
c.set(Calendar.MONTH,0);
c.set(Calendar.DAY_OF_MONTH,31);
System.out.println(c.get(Calendar.YEAR)+" "+(c.get(Calendar.MONTH)+1)+" "+c.get(Calendar.DAY_OF_MONTH));
27、如何取得从1970年到现在的毫秒数
Java.util.Date dat=new Date(); long now=dat.getTime();
或System.currentTimeMillis()
28、如何获取某个日期是当月的最后一天?
当前日期加一天,若当前日期与结果的月份不相同,就是最后一天。
取下一个月的第一天,下一个月的第一天-1
public static void main(String[] args){
Calendarc=Calendar.getInstance();
c.set(Calendar.YEAR,2004);
c.set(Calendar.MONTH,0);
c.set(Calendar.DAY_OF_MONTH,30);
Calendarc1=(Calendar)c.clone();
System.out.println(c.get(Calendar.YEAR)+""+(c.get(Calendar.MONTH)+1)+" "+c.get(Calendar.DAY_OF_MONTH));
c.add(Calendar.DAY_OF_MONTH,1);
if(c.get(Calendar.MONTH)!=c1.get(Calendar.MONTH)){
System.out.println("是最后一天");
}else{
System.out.println("不是取后一天");
}
}
29、如何格式化日期?
Import java.text. SimpleDateFormat;
SimpleDateFormat sdf=newSimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date dat=new Date();
String str=sdf.format(dat); //把日期转化为字符串
System.out.println(str);
Java.util.Date d1=sdf.parse(“yyyy-mm-dd”); //将字符串转化为日期
30、编码转换,怎样实现将GB2312编码的字符串转换为ISO-8859-1编码的字符串。
String a=new String("中".getBytes("gb2312"),"iso-8859-1");
String a=new String("中".getBytes("iso-8859-1"));
应该是String a=new String("中".getBytes("gb2312"),"iso-8859-1");
String a1=newString(a.getBytes("iso-8859-1"));
一套JAVA的初级题目,跪求各位大虾帮帮忙
1、 JAVA语言是由哪个软件公司开发?( B )
A、 sum B、sun C、IBM D、联想
2、 以下描述错误的是?( C )
A、 JAVA能编写独立运行的应用程序
B、 JAVA支持多线程
C、 JAVA是一网络应用软件
D、 JAVA能运行于windows 系统
3、程序中添加注释的作用?( B )
A、使得程序运行更高效
B、 增加程序的可读性和可理解性
C、 可以使用#号来注释
D、 提高程序编译的速度
4、HelloWorld.java编译成功后会在当前目录中生成一个什么文件?(B )
A、 Hello.java B、HelloWorld.class C、Helloworld.class D、helloWorld.class
5、编写一个java application程序,其中类声明为public class StringDemo,那么该程序应该以什么文件名来保存?( A )
A、StringDemo.java B、StringDemo.class C、Strindemo.java D、StringDemo.txt
6、以下描述正确的是?( C )
A、 JAVA不可以用来开发手机程序
B、 在JAVA程序中java.awt包是唯一自动引入的类库
C、 java.io包是JAVA语言的输入输出类库
D、 JAVA的包中可以有相同的类名
7、在声明变量时以下那个选项是不允许使用?( A )
A、char B、Int C、Hello D、Public
8、以下语句错误的是?( B )
A、int a=10; B、int ab=10.4f; C、float b=10; D、double c=10.0;
9、以下产生信息丢失的类型转换是?( B )
A、float a=10; B、int a=(int)884656565.0f; C、byte a=10;int b=a; double d=100;
10、以下运行符中属三元运算符的是?( C )
A、+ B、% C、条件运算符 D、*
11、以下关于数组的描述有误的是?( D)
A、 整型数组中的各元素的值必须是整型
B、 数组是有序数据的集合
C、 如数组名为ab,即ab.length可以取得该数组的长度
D、 数组的下标从1开始
12、以下对于标识符的描述有误的是?( D )
A、 常量用大写字母,变量用小写字母
B、 JAVA的标识符严格区分大小写
C、 第一个字符不是数字
D、 标识符中任何位置都不能用数字
13、以下描述有误的是?( B )
A、 package 包名;这个语句必须在程序的第一行。
B、 当方法用void声明时,方法必须返回一个整型的值
C、 return语句执行后,当前方法将被终止执行
D、 当方法用int声明时,方法必须返回一个整型的值
14、以下语句正确的是?( D)
A、x+1=5; B、i++=1; C、a++b=1; D、 x+=1;
15、以下结果为真(true)的是?( B )
A、10’a’ B、’a’20 C、 !true D、(35) (410)
16、int a=’2’; a的值是多少?(B )
A、1 B、50 C、49 D、2
17、’a’%3的值是多少?( D )
A、1 B、97 C、3 D、2
18、以下关于循环语句描述正确的是?( D )
A、 for循环不可能产生死循环
B、 while循环不可能产生死循环
C、 for循环不能嵌套while循环
D、 即使条件不满足do……while循环体内的语句也至少执行一次
19、以下对选择语句的描述错误的是?( )
A、 根据某一条件重复执行一部分代码直到满足终止循环条件为止
B、 可以根据条件控制程序流程,改变程序执行的顺序
C、 选择语句可以嵌套使用
D、 当条件满足时就会执行相应的语句
20、能判断出年份是否是闰年的选项是?( A )
A、 能被4整除且不能被100整除
B、 不能被4整除但能被100整除
C、 能4整除
D、 被100整除
一、 程序阅读题(每题6分)
1、
public class Kao
{
public static void main(String args[])
{
int a;
int i=1;
a=++i;
System.out.println("a="+a);
System.out.println("i="+i);
}
}
a的值是多少?i的值是多少?
a=2;i=2;
2、
public class Kao1
{
public static void main(String args[])
{
int a=7;
System.out.println(a+”的平方是:”+a*a);
}
}
输出结果是什么? 7的平方是:49
3、
public class Kao2
{
public static void main(String args[])
{
int sum=0;
for(int i=1;i=100;i+=2)
sum+=i;
System.out.println(sum);
}
}
sum的值最后是多少?2500
4、
public class Kao3
{
public static void main(String args[])
{
int a[]=new int[5];
for(int i=0;ia.length;i++)
a[i]=i+2;
for(int j=0;j4;j++)
System.out.println("a["+j+"]="+a[j]);
}
}
运行后程序显示结果是?
a[0]=2
a[1]=3
a[2]=4
a[3]=5
a[4]=6
5、
public class Kao4
{
public static void main(String args[])
{
int a=0650;
System.out.println(a);
}
}
在屏幕上输出的值是多少?424 //为什么是这样的情况呢?
二、 编程题 编写程序计算一个年份是否是闰年。
return ((year%4 == 0) (year%100 != 0)) || (year%400 == 0) ? true : false;
};
java面试/笔试题
1.JSP、Servlet、JavaBean技术的出现给我们构建强大的企业应用系统提供了可能。但用这些技术构建的系统非常的繁乱,所以在此之上,我们需要一个规则、一个把这些技术组织起来的规则,这就是框架,Struts便应运而生。
经过长达五年的发展,Struts已经逐渐成长为一个稳定、成熟的框架,并且占有了MVC框架中最大的市场份额。但是Struts某些技术特性上已经落后于新兴的MVC框架。面对Spring MVC、Webwork2 这些设计更精密,扩展性更强的框架,Struts受到了前所未有的挑战。但站在产品开发的角度而言,Struts仍然是最稳妥的选择。
Struts2.0为其它框架提供了更好的集成。
使得与Spring的集成非常的容易。
2.Struts的工作流程:
在web应用启动时就会加载初始化ActionServlet,ActionServlet从
struts-config.xml文件中读取配置信息,把它们存放到各种配置对象
当ActionServlet接收到一个客户请求时,将执行如下流程.
-(1)检索和用户请求匹配的ActionMapping实例,如果不存在,就返回请求路径无效信息;
-(2)如果ActionForm实例不存在,就创建一个ActionForm对象,把客户提交的表单数据保存到ActionForm对象中;
-(3)根据配置信息决定是否需要表单验证.如果需要验证,就调用ActionForm的validate()方法;
-(4)如果ActionForm的validate()方法返回null或返回一个不包含ActionMessage的ActuibErrors对象,就表示表单验证成功;
-(5)ActionServlet根据ActionMapping所包含的映射信息决定将请求转发给哪个Action,如果相应的Action实例不存在,就先创建这个实例,然后调用Action的execute()方法;
-(6)Action的execute()方法返回一个ActionForward对象,ActionServlet在把客户请求转发给ActionForward对象指向的JSP组件;
-(7)ActionForward对象指向JSP组件生成动态网页,返回给客户;
3.在struts配置文件中配置具体的错误提示,再在FormBean中的validate()方法具体调用。
4.(1) 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。
(2) Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作
(3)hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。
(4)hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系。
5.原理:
(1).读取并解析配置文件
(2).读取并解析映射信息,创建SessionFactory
(3).打开Sesssion
(4).创建事务Transation
(5).持久化操作
(6).提交事务
(7).关闭Session
(8).关闭SesstionFactory
6.
Hibernate的最大的好处就是简化数据库的操作,允许你的代码以对象模式来访问数据库内容,
比如通常我们找一个User的资料需要select出所需要的资料,而通过hibnate我们可以把这个User的资料作为一个对象来看待
,通过User.getName()或者User.getId()等操作来获得,这样就完全统一了上层JAVA或者C#等OO语言中对于数据库的非OO操作的不和谐了.
另外对于复杂的表和表之间的关联我们也不用去使用复杂的Select等SQL来操作,而使用对象可以方便获得,
比如多对多关系某用户属于的部门的名称,虽然底层数据库使用了3个表的主键关联操作,
但是我们可以通过User.getDep().getName()来简单的获得,这个就是持久化对象的好处了
7.
(1)、spring能简化企业级开发, spring可以用简单的java bean来代替实现复杂的EJB。(大部分情况下)
(2)、spring是一个轻量级的IOC和AOP框架,可以spring的IOC实现松耦合,而作为一个AOP框架他又能分离系统服务,实现内聚开发
(3)、spring是非侵入式,基于spring的系统可以不依赖于spring的类。
良好的spring运用可以使程序代码清晰,容易维护,容易测试。
8.
Spring是个很不错的框架。内部最核心的就是IOC了,
动态注入,让一个对象的创建不用new了,可以自动的生产,这其实就是利用java里的反射
反射其实就是在运行时动态的去创建、调用对象,Spring就是在运行时,跟xml Spring的配置
文件来动态的创建对象,和调用对象里的方法的 。
Spring还有一个核心就是AOP这个就是面向切面编程,可以为某一类对象 进行监督和控制(也就是
在调用这类对象的具体方法的前后去调用你指定的 模块)从而达到对一个模块扩充的功能。这些都是通过
配置类达到的。
Spring目的:就是让对象与对象(模块与模块)之间的关系没有通过代码来关联,都是通过配置类说明
管理的(Spring根据这些配置 内部通过反射去动态的组装对象)
要记住:Spring是一个容器,凡是在容器里的对象才会有Spring所提供的这些服务和功能。
Spring里用的最经典的一个设计模式就是:模板方法模式。(这里我都不介绍了,是一个很常用的设计模式)
Spring里的配置是很多的,很难都记住,但是Spring里的精华也无非就是以上的两点,把以上两点跟理解了
也就基本上掌握了Spring.
9.
(1).spring mvc请所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责负责对请求进行真正的处理工作。
(2).DispatcherServlet查询一个或多个HandlerMapping,找到处理请求的Controller.
(3).DispatcherServlet请请求提交到目标Controller
(4).Controller进行业务逻辑处理后,会返回一个ModelAndView
(5).Dispathcher查询一个或多个ViewResolver视图解析器,找到ModelAndView对象指定的视图对象
(6).视图对象负责渲染返回给客户端。
java编程题
1.package test;
import java.util.Iterator;
import java.util.Map;
import java.util.TreeMap;
public class Test {
public static void main(String[] args) {
String str = "afdjasdg$$jfsjdfjdjjdjdjdjdjdj";
int max=0;
Object chars=null;
Map tree = new TreeMap();
for (int i = 0; i str.length(); i++) {
char ch = str.charAt(i);
if ((ch = 1 ch = 255) ) {
if (!tree.containsKey(ch)) {
tree.put(ch, new Integer(1));
} else {
Integer in = (Integer) tree.get(ch) + 1;
tree.put(ch, in);
}
}
}
Iterator tit = tree.keySet().iterator();
while (tit.hasNext()) {
Object temp = tit.next();
if(max=Integer.parseInt(tree.get(temp)+""))
{
max=Integer.parseInt(tree.get(temp)+"");
chars=temp;
}
}
System.out.print(chars.toString() + "出现" + max + "次");
}
}
只要用assic码做范围就可以了.任何字符都可以过滤.
2.方法很多,hashmap或是arraylist,数组都可以的.就是对应关系而已.
package test;
public class ListTest {
static String[] to_19 = { "zero", "one", "two", "three", "four", "five",
"six", "seven", "eight", "nine", "ten", "eleven", "twelve",
"thirteen", "fourteen", "fifteen", "sixteen", "seventeen",
"eighteen", "nineteen" };
static String[] tens = { "twenty", "thirty", "forty", "fifty", "sixty",
"seventy", "eighty", "ninety" };
static String[] denom = { "", "thousand ", "million", "billion",
"trillion", "quadrillion", "quintillion", "sextillion",
"septillion", "octillion", "nonillion", "decillion", "undecillion",
"duodecillion", "tredecillion", "quattuordecillion",
"sexdecillion", "septendecillion", "octodecillion",
"novemdecillion", "vigintillion" };
public static void main(String[] argv) throws Exception {
long tstValue = 12345;
ListTest itoe = new ListTest();
System.out.println(itoe.english_number(tstValue));
}
private String convert_nn(int val) {
if (val 20) return to_19[val];
int flag = val / 10 - 2; if (val % 10 != 0)
return tens[flag] + "-" + to_19[val % 10];
else return tens[flag];
}
private String convert_nnn(int val) {
String word = "";
int rem = val / 100;
int mod = val % 100;
if (rem 0) {word = to_19[rem] + " hundred ";}
if (mod 0) {word = word + convert_nn(mod);}
return word;
}
public String english_number(long val) {
if (val 100) {System.out.println((int) val);return convert_nn((int) val);}
if (val 1000) {return convert_nnn((int) val); }
for (int v = 0; v denom.length; v++) {
int didx = v - 1;
long dval = new Double(Math.pow(1000, v)).longValue();
if (dval val) {
long mod = new Double(Math.pow(1000, didx)).longValue();
int l = (int) (val / mod);
long r = (long) (val - (l * mod));
String ret = convert_nnn(l) + " " + denom[didx];
if (r 0) {ret = ret + ", " + english_number(r);}
return ret;
}
}
return null;
}
}
java笔试编程题库的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java笔试题编程题、java笔试编程题库的信息别忘了在本站进行查找喔。