首页 > 编程语言 >Java基础面试题收集(1)

Java基础面试题收集(1)

时间:2023-10-31 19:15:14浏览次数:31  
标签:面试题 short Java String 收集 int s1 变量

@

目录

1.一个“.Java"源文件中是否可以包括多个类(不是内部类)?有什么限制?

Java源文件中可以有多个类,但是只能有一个public的类,并且public的类名必须与文件名一致

扩展:内部类是什么?

内部类是指Java定义的类中嵌套的一个分类,如以下代码所示:

/* 公共的OuterClass类 */
public class OuterClass{
    public static void main(String[] args){     //main函数
        
    }
    
    /*************定义一个内部类************/
    private class InnerClass{
        //构造方法
        public InnerClass(){
            
        }
    }
}

内部类可以直接访问外部类的实例的方法和字段内部类的实例只能存在于外部类的实例中

实例化内部类必须先实例化外部类,使用以下语法在外部对象中创建内部对象:

OuterClass.InnerClass innerObject = outerObject.new InnerClass();

2.Java有没有goto?

:Java没有goto,但是goto是Java中的保留字

保留字是指现有Java版本未使用,但以后的版本可能会作为关键字使用

在C语言中,goto是无条件转移语句,可以让程序直接跳转到任意标记的位置。

3.&于&&的区别

:&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。

​ &还可以用作位运算符,当&操作符两边的表达式不是boolean类型时,&表示按位与操作

4.在Java中如何跳出当前的多重嵌套循环?

:方式一:使用break语句; 方式二:让外层的循环条件表达式的结果可以受到里层循环体代码的控制。通常使用的方法是第二种

方式一 : break只能跳出一层循环,想要使用break跳出多重循环,可以在外面的循环语句前定义一个标号然后在里层循环体的代码中使用带有标号的break 语句,即可跳出外层循环。

    ok:
    for (int i = 0; i < 10; i++) {
        for (int j = 0; j < 10; j++) {
            System.out.println("i=" + i + ",j=" + j);
            if (j == 5) break ok;
        }
    }

方式二:让外层的循环条件表达式的结果可以受到里层循环体代码的控制

    int[][] arr = {{1, 2, 3}, {4, 5, 6, 7}, {9}};
    boolean found = false;
    for (int i = 0; i < arr.length && !found; i++) {
        for (int j = 0; j < arr[i].length; j++) {
            System.out.println("i = " + i + ", j = " + j);
            /*控制循环结束条件*/
            if (arr[i][j] == 5) {
                found = true;
                break;
            }
        }
    }

5.Switch语句能否用在byte,long,String上?

:在Switch(expr)中,expr只能是整数表达式或者枚举常量。由于byte,short,char都可以隐式转换成int ,因此可以用在Switch语句上。

long类型不能隐式转换成int类型,因此不可以使用。

java1.7开始支持Switch使用String。

扩展:隐式转换:类型范围小的变量可以直接赋值给类型范围大的变量。

6.short s1 = 1;s1 = s1+1;有什么错?short s1 = 1;s1 += 1;有什么错?

:对于short s1 = 1; s1 = s1 + 1; 由于s1+1运算时会自动提升表达式的类型,所以结果是int型,再赋值给short类型s1时,编译器将报告需要强制转换类型的错误。

对于short s1 = 1; s1 += 1;由于 += 是java语言规定的运算符,java编译器会对它进行特殊处理,因此可以正确编译。

7.char型变量中能不能存储一个中文汉字?为什么?

:char型变量是用来存储Unicode编码的字符的,unicode编码字符集中包含了汉字,所以,char型变量中可以存储汉字。

如果某个特殊的汉字没有被包含在unicode编码字符集中,那么,这个char型变量中就不能存储这个特殊汉字。补充说明:unicode编码占用两个字节,所以,char类型的变量也是占用两个字节。

8.用最有效率的方法算出2*8等于几?

:2 << 3。因为将一个数左移n位,就相当于乘以了2的n次方,那么,一个数乘以8只要将其左移3位即可

9.使用final关键字修饰一个变量时,是引用变量不能变还是引用的对象不能变

:使用final关键字修饰一个变量时,是指引用变量不能变,引用变量所指向的对象中的内容还是可以改变的。例如,对于如下语句:

final StringBuffer a=new StringBuffer("immutable");

执行如下语句将报告编译期错误:

a=new StringBuffer("");

但是,执行如下语句则可以通过编译:

a.append(" broken!");

10."=="和equals方法的区别

: == 操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同,要比较两个基本类型的数据或两个引用变量是否相等,只能用 == 操作符。

equals方法是用于比较两个独立对象的内容是否相同

String a=new String("foo");
String b=new String("foo");
System.out.println(a.equals(b));

标签:面试题,short,Java,String,收集,int,s1,变量
From: https://www.cnblogs.com/sillyfox/p/17801019.html

相关文章

  • java日常记录1
    java学到框架了,发现javaSE的东西忘记的差不多了,故此挂在这里流个记录,方便将来查看,顺便巩固一下学过的知识点,文章可能有点长,我打算利用文章和代码结合的方式记录一下。顺便本文档的参考文献主要来自秦老师,当然还有自己从书本上摘抄的一下东西。java基础java自1991年,由sun公司的工......
  • java日常记录3--方法
    今天,我们来瞧瞧方法:那么什么是方法呢?Java方法是语句的集合,它们在一起执行一个功能。方法是解决一类问题的步骤的有序组合方法包含于类或对象中方法在程序中被创建,在其他地方被引用例如:System.out.println();println()是一个方法。System是系统类。out是标准输出对象。方法的......
  • 软件测试|快速、可靠的JavaScript依赖管理工具——yarn
    简介Yarn是一个由Facebook于2016年推出的JavaScript软件包管理器。它的目标是解决npm(Node.js的默认软件包管理器)在性能和可靠性方面的一些问题。Yarn旨在提供更快、更安全、更稳定的依赖项安装过程,使JavaScript开发人员能够更轻松地管理和构建项目。本文将详细介绍Yarn的特点、......
  • 软件测试|Yarn安装指南:在不同平台上快速启动JavaScript项目
    简介Yarn是JavaScript生态系统中流行的包管理器,它可以加快依赖项的安装速度,提供更好的性能和安全性。本文将为介绍在不同平台上安装Yarn的教程,帮助大家快速启动JavaScript项目。Linux安装Yarn在Linux系统上安装Yarn通常有几种方式,具体取决于我们的系统和包管理器。以下是一些......
  • 转 软件测试面试题100题
    转 软件测试100题转的地址:软件测试常见面试题合集(内附详细答案)-NING的文章-知乎https://zhuanlan.zhihu.com/p/619120396 写文章  软件测试常见面试题合集(内附详细答案)NING ​关注她 你赞同过软件测试和开发相关内容最近看到......
  • 理解 JavaScript 的 async/await
    1.async和await在干什么任意一个名称都是有意义的,先从字面意思来理解。async是“异步”的简写,而await可以认为是asyncwait的简写。所以应该很好理解async用于申明一个function是异步的,而await用于等待一个异步方法执行完成。另外还有一个很有意思的语法规定,awai......
  • Java 通过collectors.groupingBy根据某个字段统计
    要使用Collectors.groupingBy根据某个字段统计,你可以通过提供一个函数来指定分组的条件。假设你有一个包含Person对象的列表,每个对象都有age字段表示年龄,你想要根据年龄分组,并统计每个年龄组的人数。以下是一个使用Collectors.groupingBy的示例代码:importjava.util.Arrays;imp......
  • File --JAVA
    File--JAVA构造方法方法说明publicFile(Stringpathname)根据文件路径创建对象publicFile(Stringparent,Stringchild)根据父路径名字字符串和子路径名字符串创建文件对象publicFile(Stringparent,Stringchild)根据父路径对应文件对象和子路径名字符......
  • java mysql druid mybatis-plus里使用多表删除出错的一种处理方式
    今天在出来多表删除的时候在mapper.xml用了下面的多个delete语句<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEmapperPUBLIC"-//mybatis.org//DTDMapper3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mappernamespa......
  • -bash: java: command not found笔记
    文章目录场景解决方案找java的方法find命令进行查找根据java进程找寻具体位置场景linux系统执行java命令时报错:-bash:java:commandnotfound。解决方案可能是没有安装java(这种情况比较少)或者安装了java但是没有设置环境变量(一般是这种情况)。找java的方法find命令进行查找......