作为java程序员,写程序是基本的技能,如果不会写编程,那肯定是无法胜任java这个岗位的,毕竟在经过java面试的时候,也会考核你的编程能力,那java笔试编程题有哪些?下面来我们就来给大家讲解一下java笔试编程题分享。
1.写一段 Java 程序将 byte 转换为 long?
/** * 利用 {@link java.nio.ByteBuffer}实现byte[]转long * @param input * @param offset * @param littleEndian 输入数组是否小端模式 * @return */ public static long bytesToLong(byte[] input, int offset, boolean littleEndian) { // 将byte[] 封装为 ByteBuffer ByteBuffer buffer = ByteBuffer.wrap(input, offset, 8); if (littleEndian) { // ByteBuffer.order(ByteOrder) 方法指定字节序,即大小端模式(BIG_ENDIAN/LITTLE_ENDIAN) // ByteBuffer 默认为大端(BIG_ENDIAN)模式 buffer.order(ByteOrder.LITTLE_ENDIAN); } return buffer.getLong(); }
2. 在不使用 StringBuffer 的前提下,怎么反转一个字符串?
String str = in .nextLine(); char str1[]; char[] chrCharArray; //创建一个字符数组chrCharArray chrCharArray = str.toCharArray(); //将字符串变量转换为字符数组 int len = str.length(); str1 = new char[len]; for (int i = 0, j = len - 1; i < len && j >= 0; j--, i++) { str1[i] = chrCharArray[j]; } System.out.println(str1); str = String.valueOf(str1); //将字符数组转换为字符串 System.out.println(str);
3.Java 中,怎么获取一个文件中单词出现的最高频率?
public static void main(String[] args) { long start = System.currentTimeMillis(); String str = "Look to the skies above London and you'll see the usual suspects rainclouds, plane and pigeons. But by the end of the year, you might just see something else."; str = str.replace('\'', ' '); //将'号用空格替换 str = str.replace(',', ' '); //将逗号用空格替换 str = str.replace('.', ' '); //将句号用空格替换 String[] strings = str.split("\\s+"); // “\\s+”代表一个或多个空格,是正则表达式 // String[] strings = str.split(" +"); // “ +”在我的机器上也能代表一个或多个空格 Mapmap = new HashMap(); Listlist = new ArrayList(); //存储每个不重复的单词 for (String s: strings) { if (map.containsKey(s)) { //如果map中已经包含该单词,则将其个数+1 int x = map.get(s); x++; map.put(s, x); } else { //如果map中没用包含该单词,代表该单词第一次出现,则将其放入map并将个数设置为1 map.put(s, 1); list.add(s); //将其添加到list中,代表它是一个新出现的单词 } } int max = 0; //记录出现次数最多的那个单词的出现次数 String maxString = null; //记录出现次数最多的那个单词的值 /* * 从list中取出每个单词,在map中查找其出现次数 * 并没有真正排序,而只是记录下出现次数最多的那个单词 */ for (String s: list) { int x = map.get(s); if (x > max) { maxString = s; max = x; } } System.out.println(maxString); long end = System.currentTimeMillis(); System.out.println("共耗时:" + (end - start) + "毫秒"); }
4.一个数如果恰好等于它的因子之和, 这个数就称为”完数”,例如 6 = 1+2+3。编程找出0-1000以内的所有完数
package com.test; public class WanShu { private static boolean isWanShu(int shu) { int sum = 0; for (int i = 1; i < shu; i++) { if (shu % i == 0) { sum += i; } } if (sum == shu) { return true; } else { return false; } } public static void main(String[] args) { for (int i = 1; i < 1000; i++) { if (isWanShu(i)) { System.out.println(i); }; } } }
5.题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
//这是一个菲波拉契数列问题 public class lianxi01 { public static void main(String[] args) { System.out.println("第1个月的兔子对数: 1"); System.out.println("第2个月的兔子对数: 1"); int f1 = 1, f2 = 1, f, M = 24; for (int i = 3; i <= M; i++) { f = f2; f2 = f1 + f2; f1 = f; System.out.println("第" + i + "个月的兔子对数: " + f2); } } }
6.利用条件运算符的嵌套来完成此题:学习成绩> =90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
import java.util.*; public class lianxi05 { public static void main(String[] args) { int x; char grade; Scanner s = new Scanner(System.in); System.out.print("请输入一个成绩: "); x = s.nextInt(); grade = x >= 90 ? 'A' : x >= 60 ? 'B' : 'C'; System.out.println("等级为:" + grade); } }
写编程大家一定要知道java相关语法操作,这就要求程序员需要掌握好基本知识,这样才能更好的进行编程!最后大家如果想要了解更多Java面试题知识,敬请关注奇Q工具网。
推荐阅读: