- 1、本文档共29页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java核心面试题要点
简答题
Java核心
1.基本语法
1、一个.java源文件中是否可以包括多个类(不是内部类)?有什么限制
答:可以有多个类,但只能有一个 public 的类,并且 public 的类名必须与文件名相一
致。
2、Java 有没有 goto?
java 中的保留字,现在没有在 java 中使用。
3、八种基本数据类型和包装类以及大小。
八种基本数据类型 包装类 大小
byte Byte 8位 -2^7 ~ 2^7-1
short Short 16位 -2^15 ~ 2^15-1
int Integer 32位 -2^31 ~ 2^31-1
long Long 64位 -2^63 ~ 2^63-1
float Float 32位 -2^31 ~ 2^31-1
double Double 64位 -2^63 ~ 2^63-1
char Character 16位 \u0000 ~ \uFFFF
boolean Boolean 1位
4、说说和的区别。
和都可以用作逻辑与的运算符,表示逻辑与( and),当运算符两边的表达式的结果都为 true 时,整个运算结果才为 true,否则,只要有一方为 false,则结果为 false。还具有短路的功能,即如果第一个表达式为 false,则不再计算第二个表达式,例如,对于 if(str != null !str.equals(“”))表达式,当 str 为 null 时,后面的表达式不会执行,所以不会出现 NullPointerException 如果将改为,则会抛出 NullPointerException 异常。
还可以用作位运算符,当操作符两边的表达式不是 boolean 类型时, 我们通常使用0x0f 来与一个整数进行运算,来获取该整数的最低4个 bit 位,例如, 0x31 0x0f 的结果为0x01。
5、用最有效率的方法算出2乘以8等於几?
2 3,
因为将一个数左移n位,就相当于乘以了2的n次方,那么,一个数乘以8只要将其左移3位即可,而位运算cpu直接支持的,效率最高,所以,2乘以8等於几的最效率的方法是2 3。
6.能被Switch的数据类型有哪些?
在 switch( expr1)中, expr1只能是一个整数表达式或者枚举常量,
所以能被Switch的数据类型有: byte,short,int,char。
在jdk1.7之后String也可以。
7、char 型变量中能不能存贮一个中文汉字?为什么?
char型变量是用来存储Unicode编码的字符的,unicode编码字符集中包含了汉字, unicode编码占用两个字节,所以char类型的变量也是占用两个字节。一个char类型的大小为16位也就是两个字节所以能存储一个汉字
2.面向对象
8、Overload和Override(OverWrite)有什么区别?Overload 的方法是否可以改变返回值的类型?
1)重载Overload是方法的重载,表示同一个类中可以有多个名称相同的方法,但这些方法的参数列表各不相同,这些不同包括位置不同,个数不同,类型不同。
2)重写 Override 是方法的重写,表示子类中的方法可以与父类中的某个方法的名称和参数完全相同,通过子类创建的实例对象调用这个方法时,将调用子类中的定义方法,这相当于把父类中定义的那个完全相同的方法给覆盖了,这也是面向对象编程的多态性的一种表现。
3)Override子类覆盖父类的方法时,只能比父类抛出更少的异常和更小的异常,或者抛出父类抛出的异常的子异常。子类方法的访问权限只能和父类相同或者比父类的更大,不能更小。如果父类的方法是 private 类型,那么,子类则不存在覆盖的限制,相当于子类中增加了一个全新的方法。 覆盖的方法的返回值必须和被覆盖的方法的返回一致;
4)Overload 与返回值类型和修饰符以及异常无关只要方法名相同形式参数不同即为重载。
9、成员变量(全局变量)和局部变量的区别?
1,定义的位置。
局部变量定义在函数中,语句内。
成员变量定义在类中。
2,内存中的位置。
局部变量存储在栈内存中。
成员变量存储在堆内存中。
3,初始化值。
局部变量没有默认初始化值,必须赋值才可以使用。
成员变量有默认初始化值。
4,生命周期。
局部变量一旦作用区域结束,就立刻释放。
成员变量也称为实例(对象)变量,随着对象的出现而出现。随着对象的被回收而释放。
10、静态变量 和实例变量的区别?
在
文档评论(0)