常见的Java上机面试题

常见的

Java

上机面试题

在程序员面试中,

主要的考试形式分为笔试和上机编程考试两部分。

笔试主要考查面试者的

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

上机编程考试,要求面试者能够根据题目的要求,

使用一种编程工具,

编写全部代码并调试

运行。这主要是考查面试者代码书写和编程的熟练程度。值得注意的是,这类面试题要求能够

正确运行,往往要求面试者使用比较原始的

JDK

编译方式也就是使用

DOS

命令提示符,而不

是提供

Eclipse

或者

JBuilder

等快速开发环境。

本章将经常出现的上机编程题进行分类,

希望能

够给读者带来帮助和启示。

17.1

Java

基础编程试题(

1

)

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

面试题

1

怎样截取字符串

考题题干

编写一个截取字符串的函数,输入为一个字符串和字节数,

输出为按字节截取的字符串。

是要保证汉字不被截半个,如

"

ABC"4

,应该截为

"

AB"

,输入

"

ABC

DEF"6

,应该

输出

"

ABC"

,而不是

"

ABC+

汉的半个

"

试题分析

本面试题容易产生困惑的是中文字符和英文字符,

在这里需要考虑汉字和英文字符的占用字

节数问题,中文字符占两个字节,英文字符占一个字节,理解了这个,就很容易完成本题了。

参考答案

具体代码实现如下:

### Java 编程上机面试题目 以下是几个常见Java 编程上机面试题目,这些问题通常涉及基础知识、算法设计以及实际编码能力: #### 1. **最大公约数计算** 编写一个程序,输入两个整数 `a` 和 `b`,输出它们的最大公约数。 ```java import java.util.Scanner; public class MaxGYS { public static void main(String[] args) { Scanner reader = new Scanner(System.in); int a = reader.nextInt(); int b = reader.nextInt(); System.out.println(maxGYS(a, b)); } private static int maxGYS(int a, int b) { while (b != 0) { int temp = a % b; a = b; b = temp; } return Math.abs(a); } } ``` 此代码实现了欧几里得算法来求解两数的最大公约数[^3]。 --- #### 2. **字符串反转** 给定一个字符串,将其字符顺序反转后返回。 ```java public class StringReverse { public static String reverseString(String s) { StringBuilder sb = new StringBuilder(s); return sb.reverse().toString(); } public static void main(String[] args) { String input = "hello world"; System.out.println(reverseString(input)); // 输出:dlrow olleh } } ``` 上述方法利用了 `StringBuilder` 的内置函数实现字符串反转[^1]。 --- #### 3. **数组去重** 给定一个整型数组,移除其中重复的元素,并保持原数组中的相对顺序不变。 ```java import java.util.ArrayList; import java.util.List; public class RemoveDuplicates { public static List<Integer> removeDuplicates(List<Integer> nums) { List<Integer> result = new ArrayList<>(); for (Integer num : nums) { if (!result.contains(num)) { result.add(num); } } return result; } public static void main(String[] args) { List<Integer> list = List.of(1, 2, 2, 3, 4, 4, 5); System.out.println(removeDuplicates(list)); // 输出:[1, 2, 3, 4, 5] } } ``` 该解决方案通过遍历列表并检查新列表中是否存在当前项完成操作[^2]。 --- #### 4. **判断回文串** 写一段代码,用于检测某个字符串是否为回文(正读反读都一样)。 ```java public class PalindromeChecker { public static boolean isPalindrome(String str) { int left = 0; int right = str.length() - 1; while (left < right) { if (str.charAt(left) != str.charAt(right)) { return false; } left++; right--; } return true; } public static void main(String[] args) { String testStr = "racecar"; System.out.println(isPalindrome(testStr)); // 输出:true } } ``` 这段逻辑逐位比较字符串两端字符直至中心位置[^1]。 --- #### 5. **BLOB 或 TEXT 数据类型的选用场景分析** 在数据库表设计过程中遇到需要存储大量数据的情况时,请说明何时应选择 BLOB 类型而非 TEXT 类型? 当目标是保存诸如图片、音频或其他二进制对象形式的内容时应当采用 BLOB;而针对较长文本资料比如新闻报道或者博客文章,则更适合运用 TEXT 字段类型[^4]。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值