java笔试编程题有哪些?java笔试编程题分享

阳光 2021-12-08 17:06:54 java常见问答 6468

作为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工具网。

推荐阅读:

json格式怎么转换成TXT?JS对象如何转为json格式字符串?

面试java学什么?面试java有哪些基础题?

git代码怎么分开?git代码怎么拉取?