当前位置: 首页 > article >正文

Java基础:笔试题

在这里插入图片描述

文章目录

  • Java 基础
    • 题目
      • 1. 如下代码输出什么?
      • 2. 当输入为2的时候返回值是多少?
      • 3. 如下代码输出值为多少?
      • 4. 给出一个排序好的数组:{1,2,2,3,4,5,6,7,8,9} 和一个数,求数组中连续元素的和等于所给数的子数组
    • 解析
      • 第一题
      • 第二题
      • 第三题
      • 第四题
        • 方案一:给定数为:10
        • 方案二:即给定数字限定为:7

Java 基础

题目

1. 如下代码输出什么?

public classTest {
public void change(String str,char[] ch) {
	str= "test ok";
	ch[0] = 'g';
}

public static voidmain(String[] args) {
	String str= new String("good");char[] ch = {'a','b','c'};
	Test te= newTest();
	te.change(str,ch);
	System.out.print(str+ "and");
	System.out.print(ch);

	}
}

2. 当输入为2的时候返回值是多少?

public static int getValue(int i) {
	int result = 0;
	switch (i) {
		case 1:
		result = result + i;
		case 2:
		result = result + i * 2;
		case 3:
		result = result + i * 3;
	}
	return result;
}

3. 如下代码输出值为多少?


public class Base
{
    private String baseName = "base";
    
    public Base(){
        callName();
    }

    public void callName() {
        System. out. println(baseName);
    }

    static class Sub extends Base{
    
        private String baseName = "sub";
        public void callName(){
            System.out.println(baseName) ;
        }
    }
    public static void main(String[] args){
        Base b = new Sub();
    }
}

4. 给出一个排序好的数组:{1,2,2,3,4,5,6,7,8,9} 和一个数,求数组中连续元素的和等于所给数的子数组

解析

第一题

  • 答案:goodandgbc
  • 这个题目很简单其主要细节在于输出语句: print,看清楚他是不换行的

第二题

  • 答案:14
  • 细节:没有 break ,所以他会继续执行下面的条件

第三题

  • 答案:null
  • 这一道题来自携程的笔试题,点击此处:答案解析

第四题

方案一:给定数为:10

  • 使用两层循环必定可以解决这个问题,但是因为是两个数据求和,在集合有序的情况下使用一次循环就可以解决这个问题。
  • 思路如下:因为数组有序这,可以让数组从两头开始向加
 public static void main(String[] args) {
 
        int[] num = {1,2,2,3,4,5,6,7,8,9};
        int sum = 10;
        int i = 0;
        int j = num.length - 1;
 
        while (i < j){
            if( num[i] + num[j] > sum){
                j --;
            }
            if( num[i] + num[j] < sum){
                i ++;
            }
            if( num[i] + num[j] == sum){
                System.out.println(num[i]  + "---" + num[j]);
            }
            i ++;
         
        }
    }

方案二:即给定数字限定为:7

 public static void main(String[] args){
        int[] num = {1,2,2,3,4,5,6,7,8,9};
        int sum = 7;
        findSum(num,sum);
    }

    private static void findSum(int[] num,int sum){
        int left=0;
        int right=0;

        for(int i=0;i<num.length;i++){
            int curSum = 0;
            left = i;
            right = i;
            while(curSum<sum){
                curSum += num[right++];
            }
            if(curSum==sum){
                for(int j=left;j<right;j++){
                    System.out.print(num[j]+" ");
                }
                System.out.println();
            }
        }
	}	

http://www.kler.cn/a/1721.html

相关文章:

  • 安卓系统主板_迷你安卓主板定制开发_联发科MTK安卓主板方案
  • 家用电器销售系统|Java|SSM|JSP|
  • wpf 基于Behavior库 的行为模块
  • C#:多线程 简单示例
  • 2025:OpenAI的“七十二变”?
  • 单元测试3.0+ @RunWith(JMockit.class)+mock+Expectations
  • sharding-jdbc四种分片策略
  • 复制带随机指针的复杂链表
  • 【二】一起算法---队列:STL queue、手写循环队列、双端队列和单调队列、优先队列
  • 【微信小程序】-- 分包 - 独立分包 分包预下载(四十五)
  • MySQL高级功能:存储过程、触发器、事务、备份和恢复
  • windows安装包管理工具Chocolatey
  • Java 到底是值传递还是引用传递?
  • java基础面试题(一)
  • Windows安装部署nginx
  • 【JavaEE】进程和线程
  • 自动驾驶TPM技术杂谈 ———— 超声波雷达系统测距
  • C++修炼之筑基期第一层——认识类与对象
  • 函数指针->回调函数
  • 大环境不好,找工作太难?三面阿里,幸好做足了准备,已拿offer
  • 【Java web】-转发和重定向
  • C++单继承和多继承
  • 智能生活垃圾检测与分类系统(UI界面+YOLOv5+训练数据集)
  • Kubernetes学习(七)补充:基于自定义指标进行扩缩容
  • 浅析“面向对象编程思想”
  • 【C语言】字符串函数和内存函数