常见的Java上机面试题.docx

上传人:b****7 文档编号:16270812 上传时间:2023-07-12 格式:DOCX 页数:29 大小:541.38KB
下载 相关 举报
常见的Java上机面试题.docx_第1页
第1页 / 共29页
常见的Java上机面试题.docx_第2页
第2页 / 共29页
常见的Java上机面试题.docx_第3页
第3页 / 共29页
常见的Java上机面试题.docx_第4页
第4页 / 共29页
常见的Java上机面试题.docx_第5页
第5页 / 共29页
常见的Java上机面试题.docx_第6页
第6页 / 共29页
常见的Java上机面试题.docx_第7页
第7页 / 共29页
常见的Java上机面试题.docx_第8页
第8页 / 共29页
常见的Java上机面试题.docx_第9页
第9页 / 共29页
常见的Java上机面试题.docx_第10页
第10页 / 共29页
常见的Java上机面试题.docx_第11页
第11页 / 共29页
常见的Java上机面试题.docx_第12页
第12页 / 共29页
常见的Java上机面试题.docx_第13页
第13页 / 共29页
常见的Java上机面试题.docx_第14页
第14页 / 共29页
常见的Java上机面试题.docx_第15页
第15页 / 共29页
常见的Java上机面试题.docx_第16页
第16页 / 共29页
常见的Java上机面试题.docx_第17页
第17页 / 共29页
常见的Java上机面试题.docx_第18页
第18页 / 共29页
常见的Java上机面试题.docx_第19页
第19页 / 共29页
常见的Java上机面试题.docx_第20页
第20页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

常见的Java上机面试题.docx

《常见的Java上机面试题.docx》由会员分享,可在线阅读,更多相关《常见的Java上机面试题.docx(29页珍藏版)》请在冰点文库上搜索。

常见的Java上机面试题.docx

常见的Java上机面试题

上机面试题常见的Java笔试主要考查面试者的主要的考试形式分为笔试和上机编程考试两部分。

在程序员面试中,基础是否牢固;上机考试主要考查面试者的实际开发能力和技术技巧。

编写全部代码并调试使用一种编程工具,上机编程考试,要求面试者能够根据题目的要求,运行。

这主要是考查面试者代码书写和编程的熟练程度。

值得注意的是,这类面试题要求能够命令提示符,而不DOS正确运行,往往要求面试者使用比较原始的JDK编译方式也就是使用希望能本章将经常出现的上机编程题进行分类,JBuilder等快速开发环境。

是提供Eclipse或者够给读者带来帮助和启示。

)基础编程试题(117.1Java在上机编程类的面试题中,大部分涉及基础编程,例如算法、语法、常用的类等知识点。

怎样截取字符串面试题1

考题题干但输出为按字节截取的字符串。

编写一个截取字符串的函数,输入为一个字符串和字节数,,应该汉DEF,输入我ABC我是要保证汉字不被截半个,如ABC,应该截为我?

我ABC+汉的半个?

屃输出我,而不是试题分析在这里需要考虑汉字和英文字符的占用字本面试题容易产生困惑的是中文字符和英文字符,节数问题,中文字符占两个字节,英文字符占一个字节,理解了这个,就很容易完成本题了。

参考答案具体代码实现如下:

1.packagecore_java;

import2.java.util.Scanner;

public3.classInterceptionStr{

staticStringss;

4.

//要进行截取操作的字符串

5.staticintn;

//截取的字符串的字节数

6.publicstaticvoidmain(String[]args){

7.System.out.println(请输入字符串:

);

ScannerscStr=8.newScanner(System.in);

//从键盘获取字符串

9.ss=scStr.next();//

将Scanner对象中的内容以字符串的形式取出来

10.System.out.println(请输入字节数:

);

11.ScannerscByte=newScanner(System.in);

//从键盘获取字符串

12.n=scByte.nextInt();

对象中的内容以数值的形式取出来Scanner将//

13.Interception(setValue());

//方法与方法间的套用

14.}

15.publicstaticString[]setValue(){

//此方法的作用是将字符串转换成字符串数组

16.String[]string=newString[ss.length()];

//创建一个字符数组string

17.for(inti=0;i

18.string[i]=ss.substring(i,i+1);

19.//将字符串ss中的

第i个字符取出,放入字符数组中string中

20.}

21.returnstring;

//将这个字符数组返回

22.}

23.publicstaticvoidInterception(String[]string){

24.intcount=0;

25.Stringm=孜╜?

づ?

╜?

慦崵;

//汉字的正则表达试

26.System.out.println(以每+n+字节

划分的字符串如下所示:

);

27.for(inti=0;i

28.if(string[i].matches(m)){

29.//将字符数组中的每一

个元素与表则表达式进行匹配,如果相同则返回true

30.count=count+2;

//如果当前字符是汉字,计数器count就加2

31.}else{

32.count=count+1;

//如果当前字符不是汉字,计数器count就加1

33.}

34.if(count

//如果当前计数器count的值小于n,则输出当前字符

35.System.out.print(string[i]);

36.}elseif(count==n){

//如果当前计数器count的值等于n,则输出当前字符

37.System.out.print(string[i]);

38.count=0;

39.System.out.println();

//内循环结果,则需要换行,起到控制打印格式的作用

40.}else{

41.count=0;//如果当前计数器count的

值大于n,则计数器count清零,接着执行外部循环

System.out.println();

42.

}43.

}44.

}45.

}

46.

程序的输出结果如图17.1所示。

)基础编程试题(2Java17.1

怎样实现元素互换面试题2

考题题干个元素55个元素与后从键盘上输入10个整数,并将其放入一个一维数组中,然后将其前65个元素与第个元素互换…第个元素与第对换,即:

第1个元素与第10个元素互换,第29个元素互换。

分别输出数组原来各元素的值和对换后各元素的值。

试题分析

由于本题的要求是实现头尾元素互换,所以可以釆用取利用临时变量的方法来进行元素交换。

参考答案

具体代码实现如下:

1.packageprograme;

2.

import3.java.io.BufferedReader;

importjava.io.IOException;4.importjava.io.InputStreamReader;5.6.

public7.classHuHuanDemo{

main(Stringargs[]){

voidstaticpublic8.

9.print();

10.

11.}

12.

13.publicstaticint[]write(){

14.BufferedReader[]buf=new

BufferedReader[10];/*申请缓冲数组*/

15.intn;/*开关量和中间量*/

16.intarray[]=newint[10];

17.for(inti=0;i<10;i++)/*赋值*/

18.{

19.buf[i]=newBufferedReader(new

InputStreamReader(System.in));

20./*给每个缓冲区定义*/

21.do/*判断是否是空串,如是则重新输入*/

22.{

23.n=1;

24.System.out.print(请输入第+(i+1)+个整数尺);

25.try/*建立一个异常捕获*/

26.{

27.array[i]=Integer.parseInt

(buf[i].readLine());/*执行串变整数*/

28./*

29.*Integer.parseInt(str)-str

转成int型buf[i].readLine()-

30.*从系统输入缓冲区读入字符流给

buf缓冲区并返回字符串

31.*/

32.}catch(NumberFormatExceptione)/*捕获异常*/

33.{

34.System.out.println(数据输入

错误请重新输入);/*处理异常*/

35.n=0;

36.}catch(IOExceptione){

37.e.printStackTrace();

38.}

39.}while(n==0);

40.}

41.returnarray;

42.

43.}

44.

print(){voidpublicstatic45.[]ary=write();int46.

s;

int47.);尺\

你输入的数组是48.System.out.println(输出原数组*/;i<10;i++)/*49.for(inti=0{

50.

51.System.out.print(ary[i]+?

);

52.}

53.for(inti=0;i<5;i++)/*对换*/

54.{

55.s=ary[i];

56.ary[i]=ary[9-i];

57.ary[9-i]=s;

58.}

59.

60.System.out.println(\

对换后的数组是尺);

61.for(inti=0;i<10;i++)/*输出对换后数组*/

62.{

63.System.out.print(ary[i]+?

);

64.}

65.System.out.println();

66.}

67.

68.}

69.程序输出的结果如图17.2所示。

17.1Java基础编程试题(3)

怎样实现元素排序3面试题.

考题题干COLLECTION在(3)实现一种排序。

(2)Java类实现序列化的方法是什么?

1()用Java框架中,如果实现自然比较方法,则需要实现什么样的接口?

试题分析

排序是程序员经常遇到的,也是基本的技巧之一,一般的排序方法有插入排序、冒泡排序、选择排序、Shell排序、快速排序、归并排序、堆排序、SortUtil等。

下面详细介绍3种排序方法。

1.冒泡排序(BubbleSort)

最简单的排序方法是冒泡排序法。

这种方法的基本思想是,将待排序的元素看作是竖着排列的气泡,较小的元素比较轻,从而要往上浮。

在冒泡排序算法中要对这个气泡序列处理若干遍。

所谓一遍处理,就是自底向上检查一遍这个序列,并时刻注意两个相邻元素的顺序是否正确。

如果发现两个相邻元素的顺序不对,即轻的元素在下面,就交换它们的位置。

显然,处理一遍之后,最轻的元素就浮到了最高位置;处理两遍之后,次轻的元素就浮到了次高位置。

在进行第二遍处理时,由于最高位置上的元素已是最轻元素,所以不必检查。

一般地,第i遍处理时,不必检查第i高位置以上的元素,因为经过前面i-1遍的处理,它们已正确地排序。

2.选择排序(SelectionSort)

选择排序的基本思想是,对待排序的记录序列进行n-1遍的处理,第1遍处理是将L[1..n]中最小者与L[1]交换位置,第2遍处理是将L[2..n]中最小者与L[2]交换位置,……,第i遍处理是将L[i..n]中最小者与L[i]交换位置。

这样,经过i遍处理之后,前i个记录的位置就已经按从小到大的顺序排列好了。

当然,在实际操作时,也可以根据需要,通过从待排序的记录中选择最大者与其首记录交换位置,按从大到小的顺序进行排序处理。

3.插入排序(InsertionSort)

插入排序的基本思想是,经过i-1遍处理后,L[1..i-1]已排好序。

第i遍处理仅将L[i]插入L[1..i-1]的适当位置,使得L[1..i]还是排好序的序列。

要达到这个目的,可以用顺序比较的方法。

首先比较L[i]和L[i-1],如果L[i-1]≤L[i],则L[1..i]已排好序,第i遍处理就结束了;否则交换L[i]与L[i-1]的位置,继续比较L[i-1]和L[i-2],直到找到某一个位置(j1≤j≤i-1),使得L[j]≤L[j+1]时为止。

简言之,插入排序就是每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕。

参考答案

(1)具体代码实现如下:

1.packageprograme;

import2.java.util.*;

class3.InsertionSort{

ArrayListlist;

4.

5.//num指的是数据的个数,mod指的是可以

产生随机数的范围在1~mod之间

6.publicInsertionSort(intnum,intmod){

7.list=newArrayList(num);

Randomdom=newRandom();

8.

9.System.out.println(排序之前的数组尺);

10.for(inti=0;i

11.list.add(newInteger(Math.abs

(dom.nextInt())%mod+1));

12.System.out.println(汜獩孴+i

+嵜尽+list.get(i));

13.}

14.}

15.publicvoidSortIt(){

16.IntegertempInt;

17.intMaxSize=1;

18.for(inti=1;i

19.tempInt=(Integer)list.remove(i);

20.if(tempInt.intValue()>=((Integer)

list.get(MaxSize-1))

21..intValue()){

22.list.add(MaxSize,tempInt);

23.MaxSize++;

24.}else{

25.for(intj=0;j

26.if(((Integer)list.get(j))

.intValue()>=tempInt

27..intValue()){

28.list.add(j,tempInt);

29.MaxSize++;

30.break;

31.}

32.}

33.}

34.}

35.System.out.println(排序之后的数组尺);

36.for(inti=0;i

37.System.out.println(汜獩孴+i+嵜尽+list.get(i));

38.}

39.}

40.publicstaticvoidmain(String[]args){

41.InsertionSortis=newInsertionSort(10,100);

is.SortIt();

42.

}43.}

44.

17.3所示。

程序的输出结果如图

4)17.1Java基础编程试题(Singleton模式编程面试题4怎样实现考题题干Singleton模式的程序。

请编写一个试题分析只有一个实例存在。

在应用程序中,一个类ClassSingleton模式的主要作用是保证在Java的好处还在于很多操作中,比如建立目录数据库连接都需要这样的单线程操作。

使用SingletonJava垃圾回收。

可以节省内存,因为它限制了实例的个数,有利于static它有一个它的构造函数为private的,一般Singleton模式通常的形式为:

定义一个类,方法获取对它的引用,getInstance变量,在类初始化时实例化,通过一个public的的private继而调用其中的方法。

参考答案(两种实现方法,取一即可)1.packageprograme;

2.

public3.classSingleton{

4.privateSingleton(){

}

5.//注意这是private6.只供内部调用

privatefinal7.staticSingletoninstance=newSingleton();

8.

9.//这里提供了一个供外部访问本class的静态方法,可以直接访问

10.publicstaticSingletongetInstance(){

11.returninstance;

12.}

}

13.

或者:

programe;1.package2.Singleton{

3.publicclass;staticSingletoninstance=4.nullprivate

5.

SingletongetInstance(){synchronizedpublic6.static使用时生成实例,提高了效率!

7.//

(instance==null8.ifSingleton();

instance=new9.instance;return10.}11.}

12.5哥德巴赫猜想的近似证明面试题考题题干程序,请编写一个Java哥德巴赫猜想是说任何一个大于2的偶数都能表示为两个素数之和。

100内哥德巴赫猜想的正确性,也就是近似证明哥德巴赫猜想。

验证1~试题分析然后逐一验证每个偶数是否满足哥德巴赫100内的所有偶数。

可以应用枚举的方法列出1~猜想的论证。

如果有一个不符合,就意味着哥德巴赫猜想不成立。

由m=m/2+m/2,……,可以表示成mm=1+(m-1),m=2+(m-2),m=3+(m-3)一个正偶数的后半部分和前半部分的结果是一样的,只是加数顺序不同,所以可以忽略。

于m/2参考答案具体代码实现如下:

1.packageprograme;

2.

public3.classGuess{

public4.staticvoidmain(String[]args){

System.out.println(在5.1~100范围内,

现在开始证实哥德巴赫猜想:

);

6.if(Testify_Guess(1,100)){

7.System.out.println(在1~100范围内,

哥德巴赫猜想是正确的。

);

8.}else{

9.System.out.println(哥德巴赫猜想是错误的);

10.}

11.

12.}

13.

14.publicstaticbooleanTestify_Guess(intlow,inthigh){

15.//判断1~100范围内的所有偶数是否符合哥德巴赫猜想,

符合则返回true,反之则返回false

16.inti,j=0;

17.booleanflag=true;

18.for(i=low;i<=high;i++)

19.if(i%2==0&&i>2)//

在1~100之间选取大于2的偶数进行猜想测试

20.if(isGoldbach(i)){

21.j++;//

j用来控制输出格式,每行输出5个数据

22.if(j==5){

23.System.out.println();

24.j=0;

25.}

26.}else{

27.flag=false;

28.break;

29.}

30.

31.returnflag;

32.}

33.

34.publicstaticbooleanisGoldbach(inta){

//判断参数a是否符合哥德巴赫猜想

35.inti;

36.booleanflag=false;

37.for(i=1;i<=a/2;i++){

38.if(isPrime(i)&&isPrime(a-i)){

//根据试题分析中的表达式,传入相关的两个参数

39.flag=true;

40.System.out.print(a+?

+i+?

+(a-i)

+?

尠);

41.break;

42.//只要有一个符合条件的就可以退出循环,判断下一个偶数

43.}

44.}

45.

46.returnflag;

47.}

48.

49.publicstaticbooleanisPrime(inti){

falsetrue判断参数i是否是素数,是则返回反之则返回50.//

n;

int51.

;

flag=true52.boolean//1本身(1==i)53.if不是素数,因此需把这个特殊的数字抛出

;

false54.flag=

;n++)

1(n=2;n<=i-55.for之间有其因子~i-1i/*判断是否是素数的一个方法是看2true*/false,反之则返回(能被2整除),有则不是素数返回){(i%n==056.if57.flag=false;

58.break;

59.}

60.returnflag;

61.}

62.}

程序的输出结果如图17.4所示。

17.1Java基础编程试题(5)

面试题6怎样实现金额转换

考题题干

金额转换,阿拉伯数字的金额转换成中国传统的形式如:

(¥1011)→(壹仟零壹拾壹元整)输出。

试题分析

金额转换,在开发财务相关软件时会经常用到,也是软件本地化的一个需要。

一般开发公司或者团队都有相应的金额转换类或者是模块,配合报表工具,可以实现良好的本地化。

这里给出一个简单的金额转换代码,供读者参考。

参考答案.

具体代码实现如下:

1.packageprograme;

impo

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2