文档库 最新最全的文档下载
当前位置:文档库 › java字符串特性练习--答案.doc

java字符串特性练习--答案.doc

java字符串特性练习--答案.doc
java字符串特性练习--答案.doc

选择题:

1。下面程序段执行完毕后,cont的值是(C )

String strings[ ]={"string","starting","strong","street","soft"};

int cont=0;

for(int i=0;i

if(strings[i].endsWith("ng"))

cont++;

A. 1

B. 2

C.3

D.4

2.定义字符串:String str=“abcdefg”;则str.indexOf(‘d’)的结果是(C )

A)'d' B) true C) 3 D) 4

3。定义变量b:boolean b=true;则String.valueOf(b)的类型是( B )

A)boolean B) String C) false D) int

4。下面程序段输出的结果是(A )

StringBuffer buf1;

String str=”北京2008”;

buf1=new StringBuffer(str);

System.out.println(buf1.charAt(2));

A. 2

B. 京C0 D.null

5. 下面程序段输出的结果是(D )

String s=”ABCD”;

s.concat(“E”);

s.replace(…C?,?F?);

System.out.println(s);

A) ABCDEF B) ABFDE C) ABCDE D) ABCD

6.下面的语句序列执行完后,n的值是(D )

int n=0;

StringTokenizer st=new StringTokenizer("I wonder should I go,or should I stay?");

while(st.hasMoreTokens())

{ n++; String ss=st.nextToken(); }

A) 9 B) 10 C) 11 D) 8

7. 下面的语句序列执行完后,n的值是(A )

int n=0;

String str=”I wonder,what?”;

StringTokenizer str2=new StringTokenizer(str,“,?”);

while(str2.hasMoreTokens())

{ str2.nextToken(); }

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

A)2 B) 3 C) 4 D) 5

二填空题。

1定义数组:char charArray[]={…a?,?b?,?c?,?d?,?e?,?f?};则String.valueOf(charArray,2,3)的结果是cde 。

2.下面语句序列输出结果是pro 。

String s=new String(“java program!”);

System.out.println(s.substring(5,8));

3.下面语句输出结果是1234abcdef5 。

char charArray[]={…a?,?b?,?c?,?d?,?e?,?f?};

StringBuffer buf1;

String str=”12345”;

buf1=new StringBuffer(str);

buf1.insert(4,charArray);

System.out.println(buf1.toString());

4.如有以下赋值语句:x=new StringBuffer().append(“a”).append(4). append(“c”).toString; x的类型是StringBuffer ;它的值是a4c 。

5.下面程序的功能是统计以“st”开头的字符串有多少个,完成下面程序填空。

public class Class1

{

public static void main(String args[])

{

String strings[]={“string”,”starting”,”strong”,”street”,”soft”};

int cont=0;

for(int i=0; i< strings.length ;i++)

if(strings[i].startsWith(“str”))

cont++;

System.out.println(cont);

}

}

第九章多线程机制

一、判断题

1.如果线程死亡,它便不能运行。(T )

2.在Java 中,高优先级的可运行线程会抢占低优先级线程。(T)

3.一个线程在调用它的start 方法之前,该线程将一直处于出生期。(T )

4.当调用一个正在进行线程的stop( )方法时,该线程便会进入休眠状态。(F )

5.一个线程可以调用yield 方法使其他线程有机会运行。(T )

6. 线程可以调用yield方法使低优先级的线程运行。(F)

二、选择题

1.Java 语言中提供了一个▁D▁线程,自动回收动态分配的内存。

A 异步

B 消费者

C 守护

D 垃圾收集

2.Java语言避免了大多数的▁▁C▁▁错误。

A 数组下标越界

B 算术溢出

C 内存泄漏

D 非法的方法参数

3.有三种原因可以导致线程不能运行,它们是▁ACD▁▁▁。

A 等待

B 阻塞

C 休眠

D 挂起及由于I/O 操作而阻塞

4.当▁A▁方法终止时,能使线程进入死亡状态。

A run

B setPrority

C yield

D sleep

5.用▁B▁方法可以改变线程的优先级。

A run

B setPrority

C yield

D sleep

6.线程通过▁C▁方法可以使具有相同优先级线程获得处理器。

A run

B setPrority

C yield

D sleep

7.线程通过▁D▁方法可以休眠一段时间,然后恢复运行。

A run

B setPrority

C yield

D sleep

8.▁B▁方法使对象等待队列的第一个线程进入就绪状态。

A run

B notify

C yield

D sleep

9.方法resume( )负责重新开始▁D▁线程的执行。

A 被stop( )方法停止

B 被sleep( )方法停止

C 被wait( )方法停止

D 被suspend( )方法停止

10.▁BCD▁方法可以用来暂时停止当前线程的运行。

A stop( )

B sleep( )

C wait( )

D suspend( )

三、简述题

1.简述程序、进程和线程之间的关系?什么是多线程程序?

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

进程是程序的一次动态执行过程,它对应了从代码加载、执行至执行完毕的一个完整过程。每一个进程都有自己独立的一块内存空间、一组系统资源。

线程是比进程更小的执行单位。一个进程在其执行过程中,可以产生多个线程,形成多条执行线索,每个线程都有其产生、发展和消亡的过程。

2.线程有那5 个基本状态?它们之间如何转化?简述线程的生命周期。

答案:线程有“新建”、“就绪”、“阻塞”、“运行”、“死亡”5 个基本状态。线程对象被创建时进入“新建”状态;程序执行语句启动这个线程后,它进入线程队列排列等待CPU 时间片,称为“就绪”状态;等CPU 时间和其他资源齐备时就进入“运行”状态;线程运行完毕或者被强制终止则进入“死亡”状态。上述线程各状态之间的转换就构成了线程的基本生命周期。

3.什么是线程调度?Java 的线程调度采用什么策略?

答案:安排线程队列中CPU 时间的线程被称为线程调度。Java 的线程调度采用优先级基础上的“先到先服务”策略。

4.如何在Java 程序中实现多线程?

答案:在Java 程序中实现多线程最关键是要定义子线程的操作,即定义子线程的run( )方法。具体可以通过派生Thread 类的子类或实现Runnable 接口两种方式来实现。

5.试简述Thread类的子类或实现Runnable 接口两种方法的异同?

答案:派生Thread 子类时通过重载父类的方法run( )来定义子线程的具体操作,然后在主线程中创建并启动该子类的对象为子线程。实现了Runnable 接口的类必须要实现接口中的

run( )方法,其中同样定义了子线程的操作。但是这个方法中的子线程不是Thread 子类的对象,而是Thread 类的对象;在创建Thread 类对象时把实现了Runnable 接口和run( )方法的类作为参数传递给该对象,从而规定它的具体操作。

四、编程题

1.利用多线程技术编写Applet 程序,其中包含一个滚动的字符串。字符串从左向右运动,当所有的字符都从屏幕的右边消失后,字符串重新从左边出现并继续向右移动。

[Xianch.java]

import java.awt.*;

import java.applet.*;

public class Xianch extends Applet implements Runnable

{

final String rollingMessage = "SAILING, SAILING, I AM SAILING...";

Thread m_Draw = null;

int beginX;

public void init()

{

m_Draw = new Thread(this);

}

public void paint(Graphics g)

{

g.drawString(rollingMessage, beginX, 40);

}

public void start()

{

m_Draw.start();

try{

Thread.sleep(50);

}catch(InterruptedException e){}

}

public void stop()

{

if(m_Draw.isAlive())

m_Draw.stop();

}

public void run()

{

try

{

while(true)

{

beginX = ++beginX % getWidth();

repaint();

Thread.sleep(100);

}

}

catch(InterruptedException e)

{

}

}

}

第七章图形用户界面

一、判断题

1.BorderLayout 是面板的缺省布局管理器。(F )

2.当鼠标指针位于一个GUI构件的边上时,发生一个MouseOver 事件。(F )

3.一个面板(Panel)不能被加入到另一个面板(Panel)中。(F )

4.在BorderLayout 中,添加到NORTH 区的两个按钮将并排显示。(F )

5.在使用BorderLayout 时,最多可以使用5 个构件。(F )

6.Swing 构件经常被称为轻量构件。(T )

7.在GUI 上输出文本或提示信息的方法是使用标签。(T )

8.为了处理图形用户界面的事件,程序员必须注册一事件监听器。(T )

9.用户在TextField输入数据后键入回车键,可以激活一个事件。(T )

11.程序员在创建一个Frame 时,至少必须创建一个菜单,并将它加入Frame 中。(F )

二、选择题

1.鼠标被移动时会调用▁C▁方法,并且注册一个事件监听器处理此事件。

A actionPerformed

B addItemListener

C mouseMove

D add

2.用户不能修改的文本是▁D▁。

A word 文档

B txt 文档

C 可编辑的

D 不可编辑的

3.▁D▁用来在Container 上排列GUI构件。

A BorderLayout 类

B Component 类

C 事件控制

D 布局管理器

4.为添加一个构件的add 方法是▁C▁类方法。

A BorderLayout

B Component

C Container

D ButtonGroup

5.使用方法▁B▁为构件容器设置布局管理器。

A BorderLayout

B setLayout

C Container

D Component

6.GUI 是▁D▁的缩写。

A 布局管理器

B 资源管理器

C 用户界面布局

D 图形用户界面

7.当构件中按钮的位置可以被自动调整,应使用哪种布局管理器:B

A BorderLayout

B FlowLayout

C CardLayout

D GridLayout

8.使用▁B▁类创建菜单对象。

A Dimension

B JMenu

C JMenuItem

D JTextArea

9.使用▁D▁方法创建菜单中的分隔条。

A setEditable

B ChangeListener

C add

D addSeparator

10.向JTextArea 的▁A▁方法传递false 参数可以防止用户修改文本。

A setEditable

B ChangeListener

C add

D addSeparator

11.下面哪个布局管理器是非法的:C

A FlowLayout

B BorderLayout

C CardBagLayout

D GridLayout

12.实现下列哪个接口可以对TextField 对象的事件进行监听和处理?___C_

A MouseMotionListener

B FocusListener

C ActionListener

D WindowListener

13.Frame 的默认的布局管理器是下列哪一个?_D___

A FlowLayout

B CardLayout

C GridLayout

D BorderLayout

14.请问如下哪个方法可以将MenuBar 加入Frame 中? B

A setMenu()

B setMenuBar()

C add()

D addMenuBar()

三、简述题与编程题

1、文本框与文本区域在创建方法、常用方法和事件响应上有何异同?什么操作将引发文本事件?如何响应文本事件?编写Applet 包括一个文本框、一个文本区域和一个按钮,当用户单击按钮时,程序将文本区域中被选中的字符串复制到文本框中。

2、简述Java的事件处理机制,什么是事件源?什么是监听器?

3、动作时间的事件源可以有哪些?如何响应动作事件?

异常处理练习题

一、选择题

1.java中用来抛出异常的关键字是

A、try

B、catch

C、throw

D、finally

2.关于异常,下列说法正确的是

A、异常是一种对象

B、一旦程序运行,异常将被创建

C、为了保证程序运行速度,要尽量避免异常控制

D、以上说法都不对

3.()类是所有异常类的父类。

A、Throwable

B、Error

C、Exception

D、AWTError

4.java语言中,下列哪一子句是异常处理的出口

A、try{…}子句

B、catch{…}子句

C、finally{…}子句

D、以上说法都不对

5.下列程序的执行,说法正确的是

public class MultiCatch

{

public static void main(String args[])

{

try

{

int a=args.length;

int b=42/a;

int c[]={1};

c[42]=99;

System.o ut.println(“b=”+b);

}

catch(ArithmeticException e)

{

System.out.println(“除0异常:”+e);

}

catch(ArrayIndexOutOfBoundsException e)

{

System.out.println(“数组超越边界异常:”+e);

}

}

}

A、程序将输出第15行的异常信息

B、程序第10行出错

C、程序将输出“b=42”

D、程序将输出第15和19行的异常信息

6.下列程序的执行,说法正确的是

class ExMulti{

static void procedure(){

try{

int c[]={1};

c[42]=99;

}

catch(ArrayIndexOutOfBoundsException e){

System.out.println(“数组超越界限异常:”+e);

}

}

public static void main(String args[]){

try{

procedure();

int a=args.length;

int b=42/a;

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

}catch(ArithmeticException e){

System.out.println(“除0异常:”+e);

}

}

}

A、程序只输出第12行的异常信息

B、程序只输出第26行的异常信息

C、程序将不输出异常信息

D、程序将输出第12行和第26行的异常信息

7.下面程序抛出了一个“异常”并捕捉它。请在横线处填入适当内容完成程序。class TrowsDemo

{

static void procedure() throws IllegalAccessException

{

System.out.println(“inside procedure”);

throw____new___IllegalAccessException(“demo”);

}

public static void main(String args[])

{

try

{

procedure();

}

___catch (IllegalAccessException e)________

{

System.out.println(“捕获:”+e);

}

}

8.对于catch子句的排列,下列哪种是正确的( )

A、父类在先,子类在后

B、子类在先,父类在后

C、有继承关系的异常不能在同一个try程序段内

D、先有子类,其他如何排列都无关

9.在异常处理中,如释放资源、关闭文件、关闭数据库等由( )来完成。

A、try子句

B、catch子句

C、finally子句

D、throw子句

10.当方法遇到异常又不知如何处理时,下列哪种说法是正确的( )

A、捕获异常

B、抛出异常

C、声明异常

D、嵌套异常

11.哪个关键字可以抛出异常?

A、transient

B、 finally

C、 throw

D、 static

12.一个异常将终止( )

A、整个程序

B、只终止抛出异常的方法

C、产生异常的try块

D、×上面的说法都不对

二、填空题

1、catch子句都带一个参数,该参数是某个异常的类及其变量名,catch用该参数去与__异常____对象的类进行匹配。

2、java虚拟机能自动处理_____RuntimeException_______异常。

3、捕获异常要求在程序的方法中预先声明,在调用方法时用try-catch-__finally____语句捕获并处理。

4、java语言认为那些可预料和不可预料的出错称为____Throwable___

5、按异常处理不同可以分为运行异常、捕获异常、声明异常和__自定义异常____几种。

6、抛出异常、生成异常对象都可以通过__throws句实现。

7、捕获异常的统一出口通过___finally____语句实现。

8、java语言的类库中提供了一个__Throwable___类,所有的异常都必须是它的实例或它子类的实例。

9、Throwable类有两个子类:_____Error_____类和Exception类。

10、对程序语言而言,一般有编译错误和____运行_____错误两类。

11、下面程序定义了一个字符串数组,并打印输出,捕获数组超越界限异常。请在横线处填入适当的内容完成程序。

public class HelloWorld

{

int i=0;

String greetings[]= {

“Hello world!”,

“No,I mean it!”,

“HELLO WORLD!!”

};

while(i<4)

{

___try______

{

System.out.println(greeting[i]);

}

____catch____(ArrayIndexOutOfBoundsException e)

{

System.out.println(“Re-setting Index Value”);

i=-1;}

finally

{

System.out.println(“This is always printed”);

}

i++;

}

}

三、判断题

1. ( n ) 程序中抛出异常时(throw …),只能抛出自己定义的异常对象。

2. ( y ) 一个异常处理中finally语句块只能有一个或者可以没有。

3.( y)异常类对象代表当前出现的一个具体异常。

4.( y )java语言中的所有异常类都是https://www.wendangku.net/doc/fa18568303.html,ng.Throwable的子类。

5.( n ) 如果异常发生时,没有捕获异常的代码,程序会正常执行。

四、编程题

1.参考下面的程序,试修改程序,捕获相关异常,使得程序能正常运行。[提示:用错误数据测试,即可得到异常类名,运行时主方法参数输入 abc 测试]

public class StringIndexOutOf

{

public static void main(String args[])

{

System.out.println("字符串索引越界异常");

String str=args[0]; System.out.println(“第四个字符为”+str.charAt(3));

int aa=Integer.parseInt(args[0]); System.out.println(“平方为”+aa*aa);

}

}

2.从命令行得到5个整数,放入一整型数组,然后打印输出,要求:如果输入数据不为整数,要捕获Integer.parseInt()产生的异常,显示“请输入整数”,捕获输入参数不足5个的异常(数组越界),显示“请输入至少5个整数”。

3.写一个方法void sanjiao(int a,int b,int c),判断三个参数是否能构成一个三角形,如果不能则抛出异常IllegalArgumentException,显示异常信息a,b,c+”不能构成三角形”,如果可以构成则显示三角形三个边长,在主方法中得到命令行输入的三个整数,调用此方法,并捕获异常。

1、public class StringIndexOutOf{

public static void main(String args[]){

System.out.println("字符串索引越界异常");

String str=args[0];

try{

System.out.println("第四个字符为"+str.charAt(2));

int aa=Integer.parseInt(args[0]);

System.out.println("平方为"+aa*aa);

}catch(StringIndexOutOfBoundsException e){

System.out.println("字符串索引越界"+e);

}

catch(NumberFormatException e){

System.out.println("格式转换异常"+e);

}

}

}

2、class test{

public static void main(String args[]){

try{

if(args.length<5) throw new Exception();

int intarray[]=new int[args.length];

for(int i=0;i

intarray[i]=Integer.parseInt(args[i]);

for(int i=0;i

System.out.print(intarray[i]+" ");

}catch(NumberFormatException e){

System.out.println("请输入整数");

}

catch(Exception e){

System.out.println("请输入至少5个整数");

}

}

3、class test{

void sanjiao(int a,int b,int c) throws IllegalArgumentException{

if(a+b>=c && a+c>=b && b+c>=a)

System.out.println("三角形的三个边长为:"+a+" "+b+" "+c);

else throw new IllegalArgumentException();

}

public static void main(String args[]){

int intarray[]=new int[args.length];

for(int i=0;i

intarray[i]=Integer.parseInt(args[i]);

test t=new test();

try{

t.sanjiao(intarray[0],intarray[1],intarray[2]);

}catch(IllegalArgumentException e){

System.out.println(e.getClass().getName()+" "+intarray[0]+" "+intarray[1]+" "+intarray[2]+"不能构成三角形");

}

}

Java基础强化练习题2(附答案)

1. 下列代码的输出结果是: public class Yikes { public static void go(Long n) { System.out.println("Long "); } public static void go(Short n) { System.out.println("Short "); } public static void go(int n) { System.out.println("int "); } public static void main(String[] args) { short y = 6; long z = 7; go(y); go(z); } } A. Long Long B. Short Long C. int Long D. int int 正确答案:C 2. 下面不属于接口的是:()。 A. java.sql.Connection B. java.sql.Driver C. java.sql.DriverManager D. java.sql.ResultSet 正确答案:C 3. synchronized关键字做同步,可以使用在:()。 A. 方法上 B. 接口上 C. 变量上 D. 类上

正确答案:A 4. 类A的定义如下: class A { protected void f() throws FileNotFoundException { ……… } } 下列代码段没有编译错误的是:()。 A. class B extends A { public void f() throws Exception { ……… } } B. class B extends A { public void g() throws IOException { f(); } } C. class B extends A { public void g() { try{ f(); ……… } catch(IOException e) { ……… } catch(FileNotFoundException e1) { ……… } } } D. class B extends A { public void g() { try { f(); } catch(FileNotFoundException e) {

JAVA字符串格式化-String.format()的使用

JAVA字符串格式化-String.format()的使用 常规类型的格式化 String类的format()方法用于创建格式化的字符串以及连接多个字符串对象。熟悉C语言的同学应该记得C语言的sprintf()方法,两者有类似之处。format()方法有两种重载形式。 format(String format, Object... args) 新字符串使用本地语言环境,制定字符串格式和参数生成格式化的新字符串。 format(Locale locale, String format, Object... args) 使用指定的语言环境,制定字符串格式和参数生成格式化的字符串。 显示不同转换符实现不同数据类型到字符串的转换,如图所示。 转换符说明示例 %s 字符串类型"mingrisoft" %c 字符类型'm' %b 布尔类型true %d 整数类型(十进制)99 %x 整数类型(十六进制)FF %o 整数类型(八进制)77 %f 浮点类型99.99 %a 十六进制浮点类型FF.35AE %e 指数类型9.38e+5 %g 通用浮点类型(f和e类型中较短的) %h 散列码 %% 百分比类型% %n 换行符 %tx 日期与时间类型(x代表不同的日期与时间转换符 测试用例 [java]view plaincopy 1.public static void main(String[] args) { 2. String str=null;

3. str=String.format("Hi,%s", "王力"); 4. System.out.println(str); 5. str=String.format("Hi,%s:%s.%s", "王南","王力","王张"); 6. System.out.println(str); 7. System.out.printf("字母a的大写是:%c %n", 'A'); 8. System.out.printf("3>7的结果是:%b %n", 3>7); 9. System.out.printf("100的一半是:%d %n", 100/2); 10. System.out.printf("100的16进制数是:%x %n", 100); 11. System.out.printf("100的8进制数是:%o %n", 100); 12. System.out.printf("50元的书打8.5折扣是:%f 元%n", 50*0.85); 13. System.out.printf("上面价格的16进制数是:%a %n", 50*0.85); 14. System.out.printf("上面价格的指数表示:%e %n", 50*0.85); 15. System.out.printf("上面价格的指数和浮点数结果的长度较短的 是:%g %n", 50*0.85); 16. System.out.printf("上面的折扣是%d%% %n", 85); 17. System.out.printf("字母A的散列码是:%h %n", 'A'); 18.} 输出结果 [plain]view plaincopy 1.Hi,王力 2.Hi,王南:王力.王张 3.字母a的大写是:A 4.3>7的结果是:false 5.100的一半是:50 6.100的16进制数是:64 7.100的8进制数是:144 8.50元的书打8.5折扣是:42.500000 元 9.上面价格的16进制数是:0x1.54p5 10.上面价格的指数表示:4.250000e+01 11.上面价格的指数和浮点数结果的长度较短的是:42.5000 12.上面的折扣是85% 13.字母A的散列码是:41 搭配转换符的标志,如图所示。 标志说明示例结果+ 为正数或者负数添加符号("%+d",15) +15 ?左对齐("%-5d",15) |15 | 0 数字前面补0 ("%04d", 99) 0099 空格在整数之前添加指定数量的 空格 ("% 4d", 99) | 99| , 以“,”对数字分组("%,f", 9999.99) 9,999.990000

Java常用类

常用类 (1)字符串相关类(String,StringBuffer) 1)https://www.wendangku.net/doc/fa18568303.html,ng.String类代表不可变得字符序列; 2)"***"为该类的一个对象; 3)String类的常见构造方法:String(String original)//创建一个String对象为original 的拷贝;String(char[] value)//用一个字符数组创建一个String对象;String(char[] value,int offset,int count); 4)String 类的常用方法:char charAt(int index)//返回第index个字符、int length()//返回字符串的长度、int indexOf(String str)//返回字符串中出现Str的第一个位置;int indexOf(String str,int fromIndex)//返回字符串中从fromindex开始出现Str的第一个位置;boolean equalsIgnoreCase(string another)//比较是否相等,忽略大小写;String replace(char olochar,char newchar);boolean startswith(String prefix)//判断字符串是否以prefix字符串开头;boolean endsWith(String suffix);String toUpperCase()//返回一个字符串为该字符串的大写形式;String toLowerCase();String substring(int beginIndex0)//返回该字符串从beginindex开始到结尾的子字符串;String substring(int beginindex,int endindxt);String trim()//返回将该字符串去掉开头和结尾空格后的字符串。静态重载方法:public static String valueOf(。。。)//将基本类型数据转换为字符串。String[] split(String regex)//将一个字符串按照指定的分隔符分隔,返回分隔后的字符串数组。 (2)StringBuffer类:可变的字符串序列; 1)构造方法:StringBuffer();StringBuffer(string str); 2)常用方法:StringBuffer append();insert();delete();indexOf();rerverse(); (2)基本数据类型包装类:Integer,Double将基本数据类型包装成一个对象; (2)Math类:方法 (3)File类:各类的方法 (4)枚举类Enum:只能够取特定值中的一个,使用enum关键字,是https://www.wendangku.net/doc/fa18568303.html,ng.Enum类型;

java 试题练习题(第5套)

学 —— 学年第 学期 《 Java 程序设计 》课程试题 课程号: √ 考试 □ A 卷 √ 闭卷 □ 考查 □ B 卷 □ 开卷 一、单项选择题(20题;每题2分,共40分) 1、如果x=4,y=2,则z=x&y 值是 。 A )z=0 B )z=1 C )z=2 D ) z=4 答案A 难度系数 B 知识点:逻辑表达式运算 2、接口中定义的数据成员是 。 A )整型数据 B ) 字符型数据 C )常量型数据 D )任何数据 答案C 难度系数 B 知识点:接口,数据成员 3、Java 语言具有许多优点和特点,_______反映了Java 程序并行机制的特点。 A) 安全性 B) 多线性 C) 跨平台 D) 可移植 答案:B ;难度系数:C ;知识点:java 特性。 4、_______的类声明是正确的。 A )abstract final class HI{???} B )abstract private move(){???} C )protected private number; D )public abstract class Car{???} 答案:D ;难度系数:B ;知识点:语法基础。 5、Character 流与Byte 流的区别是_______。 A) 每次读入的字节数不同 B) 前者带有缓冲,后者没有 C) 前者是块读写,后者是字节读写 班 级 : 姓名: 学号: 试题共 页 加 白纸 张 密 封 线

D) 二者没有区别,可以互换使用 答案:C;难度系数:B;知识点:文件IO。 6、Java语言中,_________是Japplet的默认布局管理器。 A)BoederLayout B)FlowLayout C)GridLayout D)CardLayout 答案:A(难度系数C)知识点:GUI编程 7、下列语句正确的是________。 A)int a={1,2,3} B)int b=(1,2,3); C)int c[]={1,2,3} D)int []d={1 2 3} 答案:C(难度系数C)知识点:数组 8、当需要在文件中写入字符而不是字节时,最好选用的类是_______。 A)java..io.RandomAccessFile B)java..io.Printwriter C)java..io.PrintStream D)java..io.PrintOutputWriter 答案:B(难度系数B)知识点:GUI编程 9、_________事件监听器可以处理在文本框中输入回车键的事件 A)ItemListener B)ActionListener C)MotionListener D)AdjustListener 答案:B(难度系数B)知识点:事件处理 10、下列陈述正确的是_________。 A)一个组件只能发生一种事件B)一个监听器处理一种事件 C)多个事件监听器被注册到一个组件会引起编译错误 D)如果多个事件监听器被注册到一个组件上,这些事件监听器一般都会起作用,但各个事件的处理顺序不确定 答案:D(难度系数A)知识点:事件处理 11、以下描述正确的是___。 A)JAVA不可以用来开发手机程序 B)在JAVA程序中java.awt包是唯一自动引入的类库 C)java.io包是JAVA语言的输入输出类库 D)JAVA的包中可以有相同的类名

Java统计字符串中每个字符出现次数

Java统计字符串中每个字符出现次数package com.perry.test; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; /** * * @author perry_zhao * 统计一个字符串中每个字符出现的次数(不忽略大小写) */ public class CountStr { public Map count(String str){ System.out.println("需要统计的字符串:"+str+"准备开始统计每个字符出现的次数..."); Map map = new HashMap(); String temp =""; for(int i=0; i

Java练习题及答案

Java 练习题答案 一、填空 1、对象的状态和行为是对象的主要属性;前者对应类的变 量,行为又称为对象的操作,对应着类的方法。类的定义包括变量声明和方法声明。 2、要嵌入在HTML文件中运行的程序是Java Applet (Java Application 、Java Applet )。 3、安装JDK后,Java 开发工具在Bin 目录。 4、声明接口的保留字是interface 。 5、类的声明“ public class Test extends Applet implements Runable{} ” 中,定义的类名是Test ,其父类是Applet ;实现了Runable 接口。这个类的源程序必须保存为Test.java (写出包括扩展名的文件名)。 6、一个完整的Java 应用程序由一个或多个类组成;其中Java Application 至少有一个主类,这个类中包含一个名为main 的方法 7、JDK下解释执行Java 的程序是java.exe 。 8、语句如下: int[] c1=int[10]; int[] c2={1,2,3,4,5,6,7,8,9,0}; 数组c1 中的元素有10 个;c2 中的元素有10 个; 已初始化赋 值的是c2 (c1 c2 )。 9、执行完下列程序后i 的值为5

int i=0; while(i<5) { i++; 10、运行下列程序段后,结果 c 的取值为120 int a = 100, b = 20,c; char oper ='+'; switch(oper) { case '+': c = a+b; break; case '-': c = a - b; break; default: c = a * b; break; } 11、为了能使用Java 中已提供的类,我们需要用import 语句来引入所需要的类。语句import java.io.* ;中引入了java.io 包的所有类。 二、选择题 1、属于访问控制的关键字是( D )。 A、static B 、final C、abstract D 、private 2、对成员的访问控制保护最强的是(C ) A、public 、 B、缺省、 C private D protected 3、可用做Java 标识符的是( B )。 A、try B_isYour C 2time D my name

Java分割字符串

https://www.wendangku.net/doc/fa18568303.html,ng.String 的 split() 方法, JDK 1.4 or later public String[] split(String regex,int limit) 示例代码 public class StringSplit { public static void main(String[] args) { String sourceStr = "1,2,3,4,5"; String[] sourceStrArray = sourceStr.split(","); for (int i = 0; i < sourceStrArray.length; i++) { System.out.println(sourceStrArray[i]); } // 最多分割出3个字符串 int maxSplit = 3; sourceStrArray = sourceStr.split(",", maxSplit); for (int i = 0; i < sourceStrArray.length; i++) { System.out.println(sourceStrArray[i]); } } } 输出结果: 1 2 3 4 5 1 2 3,4,5

split 的实现直接调用的 matcher 类的 split 的方法。在使用String.split方法分隔字符串时,分隔符如果用到一些特殊字符,可能会得不到我们预期的结果。在正则表达式中有特殊的含义的字符,我们使用的时候必须进行转义,示例: public class StringSplit { public static void main(String[] args) { String value = "192.168.128.33"; // 注意要加\\,要不出不来,yeah String[] names = value.split("\\."); for (int i = 0; i < names.length; i++) { System.out.println(names[i]); } } } split分隔符总结 1.字符"|","*","+"都得加上转义字符,前面加上"\\"。 2.而如果是"\",那么就得写成"\\\\"。 3.如果一个字符串中有多个分隔符,可以用"|"作为连字符。 比如:String str = "Java string-split#test",可以用Str.split(" |-|#")把每个字符串分开。这样就把字符串分成了3个子字符串。 java.util.Tokenizer JDK 1.0 or later StringTokenizer StringTokenizer 类允许应用程序将字符串分解为标记。StringTokenizer 是出于兼容性的原因而被保留的遗留类(虽然在新代码中并不鼓励使用它)。建议所有寻求此功能的人使用String 的 split 方法或 java.util.regex 包。 代码示例 public class StringSplit { public static void main(String[] args) { String ip = "192.168.128.33"; StringTokenizer token=new StringTokenizer(ip,"."); while(token.hasMoreElements()){

JAVA中常用类的常用方法

JAVA屮常用类的常用方法 一.java?丨ang.Object 类 1、clone()方法 创建丼返M此对象的一个副木。要进行“克隆”的对象所属的类必须实现https://www.wendangku.net/doc/fa18568303.html,ng. Cloneable 接口。 2、equals(Objectobj)方法 0 功能:比较引用类型数据的等价性。 0 等价标准.?引用类型比较引用,基木类型比较值。 0 存在特例.?对File、String、Date及封装类等类型来说,是比较类型及对象的内稃而+ 考虑引用的是否为同一实例。 3、finalize〇方法 当垃圾丨"丨收器确定>(、存在对该对象的更多引用时,由对象的垃圾丨"丨收器调用此方法。 4、hashCode〇方法返 回该对象的哈希码值。 5、notify〇方法 唤醒在此对象监视器上等待的中?个线祝。 6、notifyAII〇方法 唤醒在此对象监视器上等待的所有线程= 7、toString()方法 返W该对象的字符串表示。在进行String与其它类型数据的连接操作时,&动调用tostringo 方法。可以根据耑要重写toStringO方法。 8、wait()方法 在其他线程调用此对象的n〇tify()方法或notifyAIIO方法前,异致当前线程等待。 二、字符串相关类 I String 类 charAt(int index)返回指定索引处的char值。compareTo{String anotherString)按字

典顺序比较两个字符串。compareTolgnoreCase(Stringstr)按字典顺序比较两个字 符串,不考虑人小写。concat(String str)将指定字符串连接到此字符串的结尾。 endsWith(String suffix)测试此字符串是否以指定的〗?缀结束。equals{Object anObject)将此字符串与指定的对象比较。 equalslgnoreCase(String anotherString)将此String 与另一个String 比较,考虑人小'与’。indexOf(int ch)返H指定字符在此字符串屮第一次出现处的索引。 indexOf(String str)返回第一次出现的指定子字符串在此字符串屮的索引, lastlndexOf(intch)返回指定字符在此字符串中最后??次出现处的索引。 length()返|n丨此字符串的长度。 replace(char oldChar, char newChar) 返回一个新的字符串,它是通过用newChar替换此字符串中出现的所有oldChar得到的。 split(String regex)根据给定正则表达式的匹配拆分此字符串。startsWith{String prefix)测试此字符 串是否以指定的前缀开始。substring(int beginlndex) 返回一个新的字符串,它是此字符串的一个子字符串。该子字符串始于指定索引处的字符,一直到此字符串末尾。 substring(int beginlndex, int endlndex) 返回一个新字符串,它是此字符串的一个子字符串。该子字符串从指定的beginlndex 处开始,一直到索引endlndex-1处的字符。 t〇CharArray()将此字符串转换为一个新的字符数组。

Java练习题附答案

练习题: 一、读程序,写出和程序输出格式一致的输出结果。1、class J_SuperClass { void mb_method() { System.out.println("J_SuperClass::mb_method"); } static void mb_methodStatic() { System.out.println("J_SuperClass::mb_methodStatic"); } } public class J_Test extends J_SuperClass { void mb_method() { System.out.println("J_Test::mb_method"); } static void mb_methodStatic() { System.out.println("J_Test::mb_methodStatic"); } public static void main(String[] args) { J_SuperClass a = new J_Test(); a.mb_method(); a.mb_methodStatic(); J_Test b = new J_Test(); b.mb_method(); b.mb_methodStatic(); } } 输出结果: 3 2 3 4 2、 class ValHold { public int i = 10; } public class ObParm { public static void main(String[] args) { ObParm o = new ObParm(); o.amethod(); } public void amethod() { int i = 99; ValHold v = new ValHold(); v.i = 30;

Java字符串查找

Java中字符串中子串的查找共有四种方法,如下: 1、int indexOf(String str) :返回第一次出现的指定子字符串在此字符串中的索引。 2、int indexOf(String str, int startIndex):从指定的索引处开始,返回第一次出现的指定子字符串在此字符串中的索引。 3、int lastIndexOf(String str) :返回在此字符串中最右边出现的指定子字符串的索引。 4、int lastIndexOf(String str, int startIndex) :从指定的索引处开始向后搜索,返回在此字符串中最后一次出现的指定子字符串的索引。 indexof()用法说明 indexof() 返回String 对象内第一次出现子字符串的字符位置。 string.indexOf(subString[, startIndex]) 参数 string 必选项。String 对象或文字。 subString 必选项。 要在String 对象中查找的子字符串。 starIndex 可选项。 该整数值指出在String 对象内开始查找的索引。如果省略,则从字符串的开始处查找。 说明 indexOf 方法返回一个整数值,指出String 对象内子字符串的开始位置。如果没有找到子字符串,则返回-1。 如果startindex 是负数,则startindex 被当作零。如果它比最大的字符位置索引还大,则它被当作最大的可能索引。 从左向右执行查找。否则,该方法与lastIndexOf 相同。 示例 下面的示例说明了indexOf 方法的用法。 function IndexDemo(str2){ var str1 = "BABEBIBOBUBABEBIBOBU" var s = str1.indexOf(str2); return(s); }

JAVA语言复习题及答案

14年(下)程序设计(JAVA语言)复习题 第一:单选 1. 若有定义int x=3,y;则执行语句y=(++x)+(++x)+(++x);后y=()。 (A) 12 (B) 18 (C) 9 (D) 15 2. 下列选项中,不是Java关键字的是()。 (A) double (B) Integer (C) float (D) default 3. 在成员变量与局部变量重名时,若想在方法使用成员变量,要使用的关键字是()。 (A) super (B) import (C) this(D) return 4. 下列说法中错误的是( B )。 (A) 一个类中的实例方法可以调用其他实例方法 (B) 静态方法可以调用实例方法 (C) 实例方法可以调用静态方法 (D) 静态方法可以调用静态方法 5. 下列关于super的说法中错误的是()。 (A) 用来访问父类被隐藏的成员变量 (B) 用于调用父类中被重写的方法 (C) 用于定义父类 (D) 用于调用父类的构造函数 6. 下列选项属于接口中方法默认访问控制方式的是()。 (A) public (B) private (C) protected(D) default 7. 定义一个名为key的类,下列选项中使其不能被继承的定义是()。 (A) class key{} (B) native class key{} (C) class key{ final;} (D) final class key{} 8. 若有定义String tom=""我们是学生"";则tom.length()的值是()。 (A) 5 (B) 10 (C) 6 (D) 11 9. 调用repaint()方法,会出现什么情况( C )。 (A) 清除以前pain()方法所画的容 (B) 保留原来pain()所画的容 (C) 清除pain()以前所画的容,再一次调用pain()方法 (D) 在pain()以前所画容基础上,再一次调用pain()画新的容 10. 从下面的main()调用java lyrics a kiss is but a kiss 中可以访问单词“kiss”的是()。 (A) args[0] (B) args[5] (C) args[4] (D) args[3] 11. 使一个线程放弃处理器并休眠1.5秒,应调用的方法是()。 (A) sleep(1.5) (B) sleep(1500) (C) suspend(1.5) (D) suspend(1500) 12. 如要使处于等待状态的线程恢复到运行状态,应调用的方法是()。 (A) start() (B) run() (C) resume() (D) notify() 13. 如果想获得一个InetAddress对象的主机域名,可调用的方法是()。 (A) getName() (B) getHostName() (C) getAddress() (D) getHostAddress()

java代码_去掉重复字符

注:此篇文档是转载别人的,对原作者表示感谢。 import java.util.ArrayList; import java.util.LinkedHashSet; import java.util.List; import java.util.Set; //去掉重复字符串的工具类 public class RemoveDuplicateChar { static StringBuffer sb = new StringBuffer(); // 普通的方法,不使用集合 static void removeDuplicateByOriginalMethod(String str) { System.out.println("方法一:普通方法"); char[] cy = str.toCharArray(); String temp = ""; for (int i = 0; i < cy.length; i++) { if (temp.indexOf(cy[i]) == -1) { temp += cy[i]; } } System.out.println("去除重复字符后:" + temp); sb.setLength(0); } // 方法二,使用LinkedHashSet可以在去掉重复字符后按照原字符顺序排列字符 static void removeDuplicateByLinkedHashSet(String str, String[] ss, int len) { System.out.println("方法二:LinkedHashSet"); Set set = new LinkedHashSet(); iterate(set, ss, len); System.out.println("去除重复字符后:" + sb.toString()); // 清空StringBuffer对象sb sb.setLength(0); } // 方法三,使用ArrayList可以在去掉重复字符后按照原字符顺序排列字符 static void removeDuplicateByArrayList(String str, String[] ss, int len) { System.out.println("方法三:ArrayList"); List list = new ArrayList<>(); iterate(list, ss, len); System.out.println("去除重复字符后:" + sb.toString());

java 字符串常用函数及其用法

java中的字符串也是一连串的字符。但是与许多其他的计算机语言将字符串作为字符数组处理不同,Java将字符串作为String类型对象来处理。将字符串作为内置的对象处理允许Java提供十分丰富的功能特性以方便处理字符串。下面是一些使用频率比较高的函数及其相关说明。 String相关函数 1)substring() 它有两种形式,第一种是:String substring(int startIndex) 第二种是:String substring(int startIndex,int endIndex) 2)concat() 连接两个字符串 例:String s="Welcome to "; String t=s.concat("AnHui"); 3)replace() 替换 它有两种形式,第一种形式用一个字符在调用字符串中所有出现某个字符的地方进行替换,形式如下: String replace(char original,char replacement) 例如:String s=”Hello”.replace(’l',’w'); 第二种形式是用一个字符序列替换另一个字符序列,形式如下: String replace(CharSequence original,CharSequence replacement) 4)trim() 去掉起始和结尾的空格 5)valueOf() 转换为字符串 6)toLowerCase() 转换为小写 7)toUpperCase() 转换为大写 8)length() 取得字符串的长度 例:char chars[]={’a',’b’.’c'}; String s=new String(chars); int len=s.length(); 9)charAt() 截取一个字符 例:char ch; ch=”abc”.charAt(1); 返回值为’b’ 10)getChars() 截取多个字符 void getChars(int sourceStart,int sourceEnd,char target[],int targetStart) sourceStart 指定了子串开始字符的下标 sourceEnd 指定了子串结束后的下一个字符的下标。因此,子串包含从sourceStart到sourceEnd-1的字符。

Java练习题及答案

Java练习题答案 一、填空 1、对象的状态和行为是对象的主要属性;前者对应类的变 量,行为又称为对象的操作,对应着类的方法。类的定义包括变量声明和方法声明。 2、要嵌入在HTML文件中运行的程序是Java Applet( Java Application、 Java Applet)。 3、安装JDK后,Java开发工具在Bin目录。 4、声明接口的保留字是interface。 5、类的声明“public class Test extends Applet implements Runable{}”中,定义的类名是Test ,其父类 是Applet ;实现了Runable 接口。这个类的源程序必须保存为Test.java(写出包括扩展名的文件名)。 6、一个完整的Java应用程序由一个或多个类组成;其中Java Application 至少有一个主类,这个类中包含一个名 为main的方法 7、JDK下解释执行Java的程序是java.exe 。 8、语句如下: int[] c1=int[10]; int[] c2={1,2,3,4,5,6,7,8,9,0}; 数组c1中的元素有10个;c2中的元素有10个;已初始化赋值的是c2(c1 c2)。

9、执行完下列程序后i的值为5。 int i=0; while(i<5) { i++; } 10、运行下列程序段后,结果c的取值为120。 int a = 100, b = 20,c; char oper ='+'; switch(oper) { case '+': c = a+b; break; case '-': c = a - b; break; default: c = a * b; break; } 11、为了能使用Java中已提供的类,我们需要用import语句来引入所需要的类。语句import java.io.*;中引入了java.io 包的所有类。 二、选择题 1、属于访问控制的关键字是( D )。 A、static B、final C、abstract D、private 2、对成员的访问控制保护最强的是(C)。

Java中截取字符串

Java中截取字符串——经本人验证通过 考题题干 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。但是要保证汉字不被截半个,如"我ABC"4,应该截为"我AB",输入"我ABC汉DEF"6,应该输出"我ABC",而不是"我ABC+汉的半个"。 试题分析 本面试题容易产生困惑的是中文字符和英文字符,在这里需要考虑汉字和英文字符的占用字节数问题,中文字符占两个字节,英文字符占一个字节,理解了这个,就很容易完成本题了。参考答案 具体代码实现如下: //package core_java; import java.util.Scanner; public class jiequzichuan { static String ss; // 要进行截取操作的字符串 static int n; // 截取的字符串的字节数 public static void main(String[] args) { System.out.println("请输入字符串:"); Scanner scStr = new Scanner(System.in); // 从键盘获取字符串 ss = scStr.next(); // 将Scanner对象中的内容以字符串的形式取出来 System.out.println("请输入字节数:"); Scanner scByte = new Scanner(System.in);// 从键盘获取字符串 n = scByte.nextInt(); // 将Scanner对象中的内容以数值的形式取出来 Interception(setValue()); // 方法与方法间的套用 } public static String[] setValue() { // 此方法的作用是将字符串转换成字符串数组 String[] string = new String[ss.length()];// 创建一个字符数组string for (int i = 0; i < string.length; i++) { string[i] = ss.substring(i, i + 1); // 将字符串ss中的第i个字符取出,放入字符数组中string中 } return string; // 将这个字符数组返回 } public static void Interception(String[] string) { int count = 0; String m = "[\u4e00-\u9fa5]"; // 汉字的正则表达试 System.out.println("以每" + n + "字节划分的字符串如下所示:"); for (int i = 0; i < string.length; i++) { if (string[i].matches(m)) {

Javaweb练习题1(含答案)

Javaweb ?选择题 o 1. 页面中需要增加链接,正确的HTML代码是_A_____。 A. 百度 B. 百度 C. D. 百度 o 2. 以下选项中,哪个全部都是表格标签___ B___。 A.

B.
C.
D.