java中级面试题及答案2020_java面试题及答案2020 java最新面试题及答案2020 一

java中级面试题及答案2020_java面试题及答案2020 java最新面试题及答案2020 一java最新面试题及答案20201.一个”.java”源文件中是否可以包括多个类(不是内部类)?有什么限制?一个“.java”源文件里面可以包含多个类,但是只允许有一java最新面试题及答案个public类,并且类名必须和文件名一致。每个编译单元只能java最新面试题及答案有一个public类。这么做的意思是,每个编译单元只能有一个公开的接口,而这个接口就由其public类来表示。你可以根据…

大家好,又见面了,我是你们的朋友全栈君。

java最新面试题及答案2020

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

一个“.java”源文件里面可以包含多个类,但是只允许有一java最新面试题及答案个public类,并且类名必须和文件名一致。

每个编译单元只能java最新面试题及答案有一个public 类。这么做的意思是,每个编译单元只能有一个公开的接口,而这个接口就由其public 类来表示。你可以根据需要,往这个文件里面添加任意多个提供辅助功能的package 权限的类。但是如果这个编译单元里面有两个或两个以上的public 类的话,程序就不知道从哪里导入了,编译器就会报错。

2. Java有没有goto?

goto 是Java中的保留字,在目前版本的Java中没java最新面试题及答案有使用。(根据James Gosling(Java之父)编写的《The Java Programming Language》一书的附录中给出了一个Java关键字列表,其中有goto和const,但是这两个是目前无法使用的关键字,因此有些地方将其称之为保留字,其实保留字这个词应该有更广泛的意义,因为熟悉C语言的程序员都知道,在系统类库中使用过的有特殊意义的单词或单词的组合都被视为保留字)。

3.说说&和&&的区别。

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

&&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式,例如,对于if(str!= null&& !str.equals(s))表达式,当str为null时,后面的表达式不会执行,所以不会出现NullPointerException如果将&&改为&,则会抛出NullPointerException异常。If(x==33 &++y>0) y会增长,If(x==33 && ++y>0)不会增长

&还可以用作位运算符,当&操作符两边的表达式不是boolean类型时,&表示按位与操作,我们通常使用0x0f来与一个整数进行&运算,来获取该整数的最低4个bit位,例如,0x31 & 0x0f的结果为0x01。

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

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

例如:

for(int i=0;i<10;i++){

for(intj=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

for(intj=0;j

System.out.println(“i=” + i + “,j=” + j);

if(arr[i][j] ==5) {

found =true;

break;

}

}

}

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

在switch(e)中,e只能是一个整数表达式或者枚举常量(更大字体),整数表达式可以是int基本类型或Integer包装类型,由于byte,short,char都可以隐含转换为int,所以,这些类型以及这些类型的包装类型也是可以的。显然,long和String类型都不符合switch的语法规定,并且不能被隐式转换成int类型,所以,它们不能作用于swtich语句中。

switch语句能否作用在String上说错了,Java1.7之后已经支持这种写法了!

6. short s1= 1; s1 = (s1+1是int类型,而等号左边的是short类型,所以需要强转)1 + 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; 表示 2向左移 3位:2 * 2^3(2的3次方) = 2 * 8;

因为一个数左移 n位,就相当于 2的 n次方,那么一个数乘以 8只要将其左移 3位即可,而为运算符的效率最高,所以 2乘以 8等于几的最有效方法是 2<<3。

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

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

finalStringBuffer a=new StringBuffer(“immutable”);执行如下语句将报告编译期错误:

a=new StringBuffer(“”);但是,执行如下语句则可以通过编译:

a.append(” broken!”);

有人在定义方法的参数时,可能想采用如下形式来阻止方法内部修改传进来的参数对象:

public void method(final StringBuffer param){

}

实际上,这是办不到的,在该方法内部仍然可以增加如下代码来修改参数对象:

param.append(“a”);

10. 静态变量和实例变量的区别?

在语法定义上的区别:静态变量前要加static关键字,而实例变量前则不加。

在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。静态变量不属于某个实例对象,而是属于类,所以也称为类变量,只要程序加载了类的字节码,不用创建任何实例对象,静态变量就会被分配空间,静态变量就可以被使用了。总之,实例变量必须创建对象后才可以通过这个对象来使用,静态变量则可以直接使用类名来引用。

例如,对于下面的程序,无论创建多少个java最新面试题及答案实例对象,永远都只分配了一个staticVar变量,并且每创建一个实例对象,这个staticVar就会加1;但是,每创建一个实例对象,就会分配一个instanceVar,即可能分配多个instanceVar,并且每个instanceVar的值都只自加了1次。

public class VariantTest{

publicstatic int staticVar = 0;

publicint instanceVar = 0;

publicVariantTest(){

staticVar++;

instanceVar++;

System.out.println(staticVar +instanceVar);

}

}java最新面试题及答案

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/151126.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • FindWindowEx函数

    FindWindowEx函数当你想控制一个现有的窗口程序时,就需要获取那个程序的窗口句柄。比如有一些黑客软件需要查找到窗口,然后修改窗口的标题。在外挂流行的今天,惊奇地发现它们也可以修改输入窗口的文字。这其中,就需要使用到FindWindowEx函数来定位窗口。下面就来使用这个函数来实现控制Windows里带的计算器程序。打开计算器程序,最小化在状态下面,运行本例子,点击创建按钮后,就可以点按钮,就会把计算器显示在最前面。

    2022年5月31日
    98
  • AnalyticDB MySQL_tidb和mysql

    AnalyticDB MySQL_tidb和mysqlDLA一键建仓上线之后陆续收到很多反馈,其中一个就是RDS的数据能不能投递到AnalyticDBforMySQL里面去,以达到极致的分析速度,最近我们实现了这一特性,今天给大家介绍一下。一键建仓首先打开DLA的解决方案页面,点击“一键建仓(AnalyticDBforMySQL)”的“进入向导”按钮进入主页面,这里因为要列出您的RDS列表方便您操作,因此需要您授予DLARDSAPI的权限…

    2025年12月14日
    5
  • 搭建rsyslog日志服务器_syslog服务器

    搭建rsyslog日志服务器_syslog服务器文章目录1.rsyslog介绍2.实验目的3.实验环境4.配置服务端5.配置客户端6.在服务端验证效果1.rsyslog介绍  rsyslog是一个快速处理收集系统日志的开源程序,提供了高性能、安全功能和模块化设计。rsyslog是syslog的升级版,它将多种来源输入输出转换结果到目的地,rsyslog被广泛用于Linux系统以通过TCP/UDP协议转发或接收日志消息。  rsyslog守护进程可以被配置成两种环境,一种是配置成日志收集服务器,rsysl

    2022年9月25日
    7
  • 数据库复制(一)–复制介绍

    数据库复制(一)–复制介绍

    2021年11月25日
    40
  • 诺基亚面向开发商推出下一代手机游戏平台

    诺基亚面向开发商推出下一代手机游戏平台转自:新浪游戏http://tech.sina.com.cn/t/2005-12-21/1748799015.shtml 北京时间12月21日消息,在下一代手机游戏研讨会上,芬兰移动通信巨头诺基亚公司首次向16家诺基亚第一批游戏开发商展示了其下一代手机游戏开发平台。下一代手机游戏研讨会于2005年12月1日到2日在赫尔辛基举行,于12月7日到8日在温哥华举行。 通过下一代手机游

    2022年5月18日
    40
  • Delphi 2010 新增功能之: 手势编程[2] – 通过 OnGesture 识别手势

    Delphi 2010 新增功能之: 手势编程[2] – 通过 OnGesture 识别手势

    2021年8月31日
    83

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号