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

答:可以,但只能有一个public,并且public类名与文件名一致

2Java有没有goto?  

答:保留为关键字

3、说说&&&的区别。

答:&&有短路功能,&可以做位运算符

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

答:一、使用带有标号的break 语句,即可跳出外层循环。

  二、循环条件逻辑与布尔标志符,满足条件后取反

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

答: 在switch(expr1)中,expr1只能是一个整数表达式或者枚举常量,整数表达式可以是int基本类型或Integer包装类型,由于,byte,short,char都可以隐含转换为int,所以,这些类型以及这些类型的包装类型也是可以的。

  由于在JDK7.0中引入了新特性,所以witch语句可以接收一个String类型的值,String可以作用在switch语句上

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

答:一、s1+1为int型,转换为short报错,编译器将报告需要强制转换类型的错误。

  二、隐含强制转换,不报错

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

答: char型变量是用来存储Unicode编码的字符的,unicode编码字符集中包含了汉字,所以,char型变量中当然可以存储汉字啦。不过,如果某个特殊的汉字没有被包含在unicode编码字符集中,那么,这个char型变量中就不能存储这个特殊汉字。

  补充说明:unicode编码占用两个字节,所以,char类型的变量也是占用两个字节。

8、用最有效率的方法算出2乘以8等於几?  

答:2<<3。位运算cpu直接支持的,效率最高

9、请设计一个一百亿的计算器

先不考虑long类型,由于int的正数范围为2的31次方,表示的最大数值约等于2*1000*1000*1000,也就是20亿的大小,所以,要实现一个一百亿的计算器,我们得自己设计一个类可以用于表示很大的整数,并且提供了与另外一个整数进行加减乘除的功能,大概功能如下:

()这个类内部有两个成员变量,一个表示符号,另一个用字节数组表示数值的二进制数

()有一个构造方法,把一个包含有多位数值的字符串转换到内部的符号和字节数组中

()提供加减乘除的功能

public class BigInteger

{

int sign;

byte[] val;

public Biginteger(String val)

{

sign = ;

val = ;

}

public BigInteger add(BigInteger other)

{

}

public BigInteger subtract(BigInteger other)

{

}

public BigInteger multiply(BigInteger other)

{

}

public BigInteger divide(BigInteger other)

{

}

}

参看jdk中自带的java.math.BigInteger类的源码。

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

答:a:基本类型 值不能发生改变

  b:引用类型 地址值不能发生改变,但是对象的内容是可以改变的

tips:有人在定义方法的参数时,可能想采用如下形式来阻止方法内部修改传进来的参数对象:public void method(final  StringBuffer  param){   }

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

11"=="equals方法究竟有什么区别?

答:如果一个类没有自己定义equals方法,它默认的equals方法(从Object 类继承的)就是使用==操作符,也是在比较两个变量指向的对象是否是同一对象,这时候使用equals和使用==会得到同样的结果,如果比较的是两个独立的对象则总返回false。如果你编写的类希望能够比较该类创建的两个实例对象的内容是否相同,那么你必须覆盖equals方法,由你自己写代码来决定在什么情况即可认为两个对象的内容是相同的。

12、静态变量和实例变量的区别?

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

public class VariantTest

{

  public static int staticVar = 0;

  public int instanceVar = 0;

  public VariantTest()

  {

  staticVar++;

  instanceVar++;

  System.out.println(“staticVar=” + staticVar + ”,instanceVar=” + instanceVar);

  }

}

13、是否可以从一个static方法内部发出对非static方法的调用?

答:不可以。因为非static方法是要与对象关联在一起的,必须创建一个对象后,才可以在该对象上进行方法调用,而static方法调用时不需要创建对象,可以直接调用。也就是说,当一个static方法被调用时,可能还没有创建任何实例对象,如果从一个static方法中发出对非static方法的调用,那个非static方法是关联到哪个对象上的呢?这个逻辑无法成立,所以,一个static方法内部发出对非static方法的调用。

14Integerint的区别

答:Integer是java为int提供的封装类。int的默认值为0,而Integer的默认值为null,即Integer可以区分出未赋值和值为0的区别,int则无法表达出未赋值的情况。Integer提供了多个与整数相关的操作方法

15Math.round(11.5)等於多少? Math.round(-11.5)等於多少?

答:四舍五入算法为Math.floor(x+0.5),即将原来的数字加上0.5后再向下取整

16、下面的代码有什么不妥之处?

  都是些括号问题

17、请说出作用域publicprivateprotected,以及不写时的区别

只要记住了有4种访问权限(public,protected,friendly,private),4个访问范围(当前类,当前包,子类,不同包),水平和垂直方向上分别按排从小到大排列

18OverloadOverride的区别。Overloaded的方法是否可以改变返回值的类型?  

区别很大

  重写Override:表示子类中的方法可以与父类中的某个方法的名称和参数完全相同,通过子类创建的实例对象调用这个方法时,将调用子类中的定义方法,这相当于把父类中定义的那个完全相同的方法给覆盖了,这也是面向对象编程的多态性的一种表现。子类覆盖父类的方法时,只能比父类抛出更少的异常,或者是抛出父类抛出的异常的子异常,因为子类可以解决父类的一些问题,不能比父类有更多的问题。子类方法的访问权限只能比父类的更大,不能更小。

  (非重写)如果父类的方法是private类型,那么,子类则不存在覆盖的限制,相当于子类中增加了一个全新的方法。

 19、 线程如何同步和通讯。同学回答说synchronized方法或代码块!面试官似乎不太满意!

只有多个synchronized代码块使用的是同一个监视器对象,这些synchronized代码块之间才具有线程互斥的效果,假如a代码块用obj1作为监视器对象,假如b代码块用obj2作为监视器对象,那么,两个并发的线程可以同时分别进入这两个代码块中。 …这里还可以分析一下同步的原理。

  对于同步方法的分析,所用的同步监视器对象是this

接着对于静态同步方法的分析,所用的同步监视器对象是该类的Class对象

  接着对如何实现代码块与方法的同步进行分析。

 20、ClassLoader如何加载class

jvm里有多个类加载,每个类加载可以负责加载特定位置的类,例如,bootstrap类加载负责加载jre/lib/rt.jar中的类, 我们平时用的jdk中的类都位于rt.jar中。extclassloader负责加载jar/lib/ext/*.jar中的类,appclassloader负责classpath指定的目录或jar中的类。除了bootstrap之外,其他的类加载器本身也都是java类,它们的父类是ClassLoader。

Java复习题的更多相关文章

  1. JAVA复习题(一)基础知识

    类的构造方法描述正确的是( )A. 类中的构造方法不能省略B. 构造方法必须与类同名,但方法不能与class同名C. 构造方法在一个对象被new时执行D. 一个类只能有一个构造方法我的答案:C正确答案 ...

  2. Spark案例分析

    一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

  3. Java 程序设计总复习题

    Java程序设计总复习题 1.编写一个Java程序在屏幕上输出“你好!”. //programme name Helloworld.java public class Helloworld { pub ...

  4. java面试复习题四

    一.redis最大缓存和回收策略 二.常用的数据库Druid线程池的参数设置 三.Spring的几大特性和应用 参考 Spring的核心特性就是IOC和AOP,IOC(Inversion of Con ...

  5. 面试复习题(一)Java系列

    (根据自己的理解和根据黑马资料总结—意见不统一我会写上自己的理解) 一.Java面向对象 1.面向对象都有哪些特性以及你对这些特性的理解 继承.封装.多态.(抽象) 2.public,private, ...

  6. Java实现简易联网坦克对战小游戏

    目录 介绍 本项目的Github地址 基础版本 游戏的原理, 图形界面(非重点) 游戏逻辑 网络联机 客户端连接上服务器 定义应用层协议 TankNewMsg TankMoveMsg MissileN ...

  7. 故障重现(内存篇2),JAVA内存不足导致频繁回收和swap引起的性能问题

    背景起因: 记起以前的另一次也是关于内存的调优分享下   有个系统平时运行非常稳定运行(没经历过大并发考验),然而在一次活动后,人数并发一上来后,系统开始卡. 我按经验开始调优,在每个关键步骤的加入如 ...

  8. Elasticsearch之java的基本操作一

    摘要   接触ElasticSearch已经有一段了.在这期间,遇到很多问题,但在最后自己的不断探索下解决了这些问题.看到网上或多或少的都有一些介绍ElasticSearch相关知识的文档,但个人觉得 ...

  9. 论:开发者信仰之“天下IT是一家“(Java .NET篇)

    比尔盖茨公认的IT界领军人物,打造了辉煌一时的PC时代. 2008年,史蒂夫鲍尔默接替了盖茨的工作,成为微软公司的总裁. 2013年他与微软做了最后的道别. 2013年以后,我才真正看到了微软的变化. ...

随机推荐

  1. rediscluster安装

    Redis 3.2.1集群搭建   一.概述 Redis3.0版本之后支持Cluster. 1.1.redis cluster的现状 目前redis支持的cluster特性: 1):节点自动发现 2) ...

  2. 实现Linux下od -tx -tc XXX的功能

    实现Linux下od -tx -tc XXX的功能 一.od命令 (1)功能 od命令用于将指定文件内容以八进制.十进制.十六进制.浮点格式或ASCII编码字符方式显示,通常用于显示或查看文件中不能直 ...

  3. 阿里云服务器 centos7 中继邮箱+转发服务 详细配置

    阿里云centos7 邮箱转发服务配置 一.文档编写目的: 网络拓扑图: 阿里云服务器屏蔽掉25端口后,内网服务器如何通过跳板机发送邮件到外网邮箱. 如果是可联网的阿里云机器,可以直接配置mailx使 ...

  4. springBoot的第一个程序

    创建一个springBoot工程 然后输入工程名字 然后选择要导入的依赖jar包,这里只勾选了web 然后目录结构 创建一个controller必须在aplication.properties的同级目 ...

  5. 学习oracle存储过程

    --创建存储过程create or replace procedure BCPS.getApplyDate(applyno varchar2)as a_date date;begin select a ...

  6. petapoco模板修改

    [Reference(ReferenceType.Many, ColumnName = "OneId", ReferenceMemberName = "OneId&quo ...

  7. bootstrap-treeview 如何实现全选父节点下所有子节点及反选

    转(https://www.augsky.com/992.html) 选中父节点时,父节点下所有子节点也都全部选中 1,HTML代码 <h2>TreeView Checkable</ ...

  8. 解决TensorFlow程序无限制占用GPU

    今天遇到一个奇怪的现象,使用tensorflow-gpu的时候,出现内存超额~~如果我训练什么大型数据也就算了,关键我就写了一个y=W*x.......显示如下图所示: 程序如下: import te ...

  9. windows环境下安装rabbitmq及配置可视化管理界面

    1.环境 windows7 64位 rabbitmq3.7.9 erlang10.22.先安装erlang,后安装rabbitmq.下载地址: rabbitmq http://www.rabbitmq ...

  10. dubbo . dubbo Please check registry access list (whitelist/blacklist) 错误

    dubbo Please check registry access list (whitelist/blacklist) dubbo服务调用provider失败.解决办法: 再consumer的服务 ...