Java面试——基础
2016-07-27 15:18
411 查看
1,作用域,Java只有public,protect,private,默认是default相当于friendly
值得注意的是默认default,同一个package下的其它类可以访问,当如果是子类就不可以访问。
2,String
String str = new String("hello");究竟做了什么,与String str="hello"
输出是false. == 比较的是对象的地址,str1是指向hello的引用,而str2是指向he的和llo地址的地址的引用。
equals()比较的是对象的内容。
3,基本数据类型
boolean:false
byte: 0,-128-127
int:0,4个字节,-2的31次方-2147483648,2的31次方
short:0,2个字节,-2的15次方-32768,2的15次方-1,-1:32767
long:0L.64位
float:0.0,
初始化时:float f = 1.0f;
double:0.0,
object:null,
char:/u0000
char a = 10;//打印a,什么都没有
char s = '2';//打印s,2
自动装箱和自动拆箱:
0.6332的数据类型是()
A float B double C Float D Double
答案:B
解析:默认为double型,如果为float型需要加上f显示说明,即0.6332f
存在使i + 1 < i的数吗()
答案:存在
解析:如果i为int型,那么当i为int能表示的最大整数时,i+1就溢出变成负数了,此时不就<i了吗。
扩展:存在使i > j || i <= j不成立的数吗()
答案:存在
解析:比如Double.NaN或Float.NaN
下面程序的输出结果
View Code
new Child("mike")
输出:132
执行顺序:总之,一句话:子类没有显示调用父类构造函数,不管子类构造函数是否带参数都默认调用父类无参的构造函数,若父类没有则编译出错。
7,Java关键字
transient:不会被序列化
static:Java中是否可以覆盖(override)一个private或者是static的方法?
"static"关键字表明一个成员变量或者是成员方法可以在没有所属的类的实例变量的情况下被访问。
Java中static方法不能被覆盖,因为方法覆盖是基于运行时动态绑定的,而static方法是编译时静态绑定的。
static方法跟类的任何实例都不相关,所以概念上不适用。
8,GC
名词解释:
年轻代空间(包括 Eden 和 Survivor 区域)回收内存被称为 Minor GC
Major GC 是清理永久代。
Full GC 是清理整个堆空间—包括年轻代和永久代。
垃圾回收机制在什么时候运行?
系统自身决定,不可预测的时间/调用System.gc(),具体来讲,新生代对象区满时,当升级的老年代对象大于老年代占用的空间,
从gcroot搜索已经不可达标记过重新扫描仍然没有复活,
垃圾回收的对象是什么?
从gcroot搜索不到,而且经过第一次标记、清理后,仍然没有复活的对象。垃圾回收回收的是无任何引用的对象占据的内存空间而不是对象本身
垃圾回收的机制?
9,JDK JRE
JDK:开发环境,有各种工具包,包括jre
JRE:运行环境,包括jvm.
10,java控制语句
switch:case如果没有break,从适合的条件下依次运行。输入为2时,case2开始执行,case3执行。最后返回10。
作用域 | 当前类 | 同一package | 子类 | 其它package |
public | T | T | T | T |
protect | T | T | T | F |
private | T | F | F | F |
default | T | T | F | F |
2,String
String str = new String("hello");究竟做了什么,与String str="hello"
String str = "hello"; 如果内存中已经为hello字符串分配了内存,那么str指向hello内存对象的地址; String str = new String("hello"); 内存中重新分配一片内存区域存放hello, 然后str指向hello,也就是内存中实际有2个hello对象,而且存放的地址不一样
String str1 = "hello"; String str2 = "he" + new String("llo"); System.err.println(str1 == str2);
输出是false. == 比较的是对象的地址,str1是指向hello的引用,而str2是指向he的和llo地址的地址的引用。
equals()比较的是对象的内容。
3,基本数据类型
boolean:false
byte: 0,-128-127
int:0,4个字节,-2的31次方-2147483648,2的31次方
short:0,2个字节,-2的15次方-32768,2的15次方-1,-1:32767
long:0L.64位
float:0.0,
初始化时:float f = 1.0f;
double:0.0,
object:null,
char:/u0000
char a = 10;//打印a,什么都没有
char s = '2';//打印s,2
自动装箱和自动拆箱:
Integer i =
10
;
//装箱
0.6332的数据类型是()
A float B double C Float D Double
答案:B
解析:默认为double型,如果为float型需要加上f显示说明,即0.6332f
存在使i + 1 < i的数吗()
答案:存在
解析:如果i为int型,那么当i为int能表示的最大整数时,i+1就溢出变成负数了,此时不就<i了吗。
扩展:存在使i > j || i <= j不成立的数吗()
答案:存在
解析:比如Double.NaN或Float.NaN
下面程序的输出结果
class People { String name; public People() { System.out.print(1); } public People(String name) { System.out.print(2); this.name = name; } } class Child extends People { People father; public Child(String name) { System.out.print(3); this.name = name; father = new People(name + ":F"); } public Child() { System.out.print(4); } }
View Code
new Child("mike")
输出:132
执行顺序:总之,一句话:子类没有显示调用父类构造函数,不管子类构造函数是否带参数都默认调用父类无参的构造函数,若父类没有则编译出错。
7,Java关键字
transient:不会被序列化
static:Java中是否可以覆盖(override)一个private或者是static的方法?
"static"关键字表明一个成员变量或者是成员方法可以在没有所属的类的实例变量的情况下被访问。
Java中static方法不能被覆盖,因为方法覆盖是基于运行时动态绑定的,而static方法是编译时静态绑定的。
static方法跟类的任何实例都不相关,所以概念上不适用。
8,GC
名词解释:
年轻代空间(包括 Eden 和 Survivor 区域)回收内存被称为 Minor GC
Major GC 是清理永久代。
Full GC 是清理整个堆空间—包括年轻代和永久代。
垃圾回收机制在什么时候运行?
系统自身决定,不可预测的时间/调用System.gc(),具体来讲,新生代对象区满时,当升级的老年代对象大于老年代占用的空间,
从gcroot搜索已经不可达标记过重新扫描仍然没有复活,
垃圾回收的对象是什么?
从gcroot搜索不到,而且经过第一次标记、清理后,仍然没有复活的对象。垃圾回收回收的是无任何引用的对象占据的内存空间而不是对象本身
垃圾回收的机制?
9,JDK JRE
JDK:开发环境,有各种工具包,包括jre
JRE:运行环境,包括jvm.
10,java控制语句
switch:case如果没有break,从适合的条件下依次运行。输入为2时,case2开始执行,case3执行。最后返回10。
public static int getValue(int i) { int result = 0; switch (i) { case 1: result = result + i; System.out.println(1+":"+result); case 2: result = result + i * 2; System.out.println(2+":"+result);//打印 case 3: result = result + i * 3; System.out.println(3+":"+result);//打印 } return result; }
相关文章推荐
- 怎么面试架构师
- android studio 程序员有福了—从layout自动生成viewholder类
- java基础语法面试题
- 航旅事业群面试(li)
- 以IT培训起家的达内科技,如今半壁江山是非IT培训的其他职业教育了
- @property面试整理
- 直击中小互联网企业痛点,程序员客栈推出短期雇佣功能
- 前端面试
- PHP程序员的技术成长规划
- 程序员如何快速上手一个自己不太熟悉的新项目?有什么技巧?
- 男人35岁前要做好的几件事
- 鱼是最后一个看到水的
- IT职业技能图谱:IT工程师学习路线
- 《HelloGitHub月刊》第 04 期(秋招临近,本期加入了面试相关的项目)
- 面试中你必须要知道的语言陷阱
- 对程序员来说,提高薪水最好的建议是什么?
- 会写工作经历,面试就有戏了!
- 面试题55:字符流中第一个不重复的字符
- 工作了3年的JAVA程序员应该具备什么技能
- 面试心得与总结---BAT、网易、蘑菇街