JAVASE经典面试问题(必须熟背),你Get到了吗?
JAVASE经典面试问题(必须熟背)
1. 编译java程序使用什么命令?运行java使用什么命令?
- javac *.java
- java 类名
2. 什么是JDK,什么是JRE,JDK与JRE有什么区别?
JDK:Java Development Toolkit Java开发工具包
JRE:Java Runtime Enviorment Java运行时环境
区别:开发JAVA程序必须安装JDK,运行JAVA程序必须安装JRE。
3. 为什么说JAVA语言的跨平台的?JAVA虚拟机JVM是跨平台的吗?
因为JAVA程序编译后生成的字节码文件(class文件)是跨平台的。JVM不是跨平台,在不同的操作系统上开发JAVA程序,必须安装该操作系统版本的JVM。
4. Java当中如何跳出多重循环?
使用break label;
在java中,使用break可以跳出循环,默认情况下是跳出最里层的循环,假如我们要跳出多层循环怎么办呢,Java替我们已经做好了这一点,就是用循环标签 :即是对某个循环定义一个名字,然后在 break 后面加上这个名字,当符合 break 条件时,程序就会跳到规定的循环那。下面来一个例子吧,说明下这个问题。
public static void main(String[] args){
lableB:
for(int i=0;i<3;i++){
lableA:
for(int j=0;j<3;j++){
System.out.println(j);
if(j==1){
break lableB;
}
}
}
System.out.println("over!");
}
复制代码
标签名的命名方法是:java命名规则 和 半角冒号: , 比如: lableA:
lableB标签的定义需要在使用break lableB语句之前定义。
break只跳出当前for循环
return是结束当前方法的执行
continue是终止当前循环语句的执行,继续下一条循环语句
5. JAVA的数据类型分为哪几类?
基本数据类型和引用数据类型
6. String/StringBuffer/StringBuilder的区别是什么?
- String:不可变
- StringBuffer:可变,并且线程安全,效率差。
- StringBuilder:可变,线程不安全,效率高
7. 面向对象的三大特征是什么?]
封装、继承、多态
8. Java实现多态性的机制是什么?
- 有继承
- 有方法重写
- 父类引用指向子类对象
9. 什么是方法重载?什么是方法重写?方法重载与方法重写的区别?
- 方法重载(Overload):是指方法名字相同,参数的个数、类型、次序不同。
- 方法重写(Override/Overwrite):是指子类重写了从父类继承过来的方法。
区别:
- 方法重载没有继承、属于一种静态联编技术。
- 方法重写有继承、属于动态联编技术。
- 什么是抽象类?什么是接口?抽象类与接口的区别?
声明为abstract的类是抽象类,抽象类不能实例化。
接口也是种特殊的抽象类,接口里的属性都是public static final类型的。接口里的方法都是public abstract 类型的。
区别一:
- 相同点:接口和抽象类都不能实例化对象,都只能实例化它们的子类。
- 不同点:接口是用来实现的、抽象类是用来继承的。接口适合描述XXX has a XXX的关系,侧重于事物的功能。抽象类适合描述 XXX is a XXX的关系,侧重于事物的本质。
区别二:
- 抽象类中的方法可以有方法体,就是能实现方法的具体功能,但是接口中的方法不行。
- 抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是 public static final 类型的。
- 接口中不能含有静态代码块以及静态方法(用 static 修饰的方法),而抽象类是可以有静态代码块和静态方法。
- 一个类只能继承一个抽象类,而一个类却可以实现多个接口。
11. 分析List/Set/Map这三种集合类型的异同点。
不同点:
- List:序列,有顺序,可重复
- Set:集合、无顺序,不可重复
- Map:键值对,适合用作索引。
相同点:都是集合类型。
12. 什么是进程?什么是线程?进程与线程的区别有哪些?
进程是正在运行当中的程序,是操作系统最小的调度单位。
线程是进程不同的执行线路,从进程中派生。是CPU最小的调度单位。
13. JAVA创建线程类有哪几种方法?
两种方式:继承Thread类、实现Runnable接口
14. 什么是泛型?使用泛型有什么好处?
泛型是约束集合的各种数据类型的一种机制。使用泛型的好处是规定集合里存放的数据类型,提高使用集合的安全性和健壮性、方便集合遍历。
15. ==与equals究竟有什么区别?
- ==:判断两个对象是否相等
- equals:判断两个对象的内容是否相等。
16. Integer与int有什么区别?
Integer:是int类型的封装类型,是引用类型,指向一个对象。在堆内存中分配空间。
int:是基本数据类型,不创建对象。在栈内存中分配空间
17. final,finally,finalize的区别?
final:是一种修饰符,可以用来修饰对象、方法和类。
finally:通常try{} catch(){}finally{};使用。finally语句块里的代码无论是否抛出异常,一定会被执行。
finalize:是Object类的一个方法,销毁一个对象前会默认调用这个对象的finalize()方法。
18. error和exception的区别?
error:错误,无需捕获。
exception:异常,必须捕获。
19. String s = “a”+”b”+”c”+”d”;一共创建了几个对象?
赋值号的右边都是字符串常量,编译阶段直接解析为”abcd”,所以创建了一个对象。
20.Java多线程中的sleep()与wait()有什么区别?
sleep():表示让当前线程休眠多少毫秒,不会放弃CPU的使用权利,更不会释放对象的锁。
wait():表示当前线程进入阻塞状态,会放弃CPU的使用权利,也会立刻释放对象的锁。直到notify()方法把该线程唤醒。
JAVASE经典面试问题(必须熟背),你Get到了吗?的更多相关文章
- 33条C#、.Net经典面试题目及答案
33条C#..Net经典面试题目及答案[zt] 本文集中了多条常见的C#..Net经典面试题目例如".NET中类和结构的区别"."ASP.NET页面之间传递值的几种方式? ...
- 33条C#、.Net经典面试题目及答案[zt]
33条C#..Net经典面试题目及答案[zt] 本文集中了多条常见的C#..Net经典面试题目例如“.NET中类和结构的区别”.“ASP.NET页面之间传递值的几种方式?”,并简明扼要的给出了答案,希 ...
- Angular 2的12个经典面试问题汇总(文末附带Angular测试)
Angular作为目前最为流行的前端框架,受到了前端开发者的普遍欢迎.不论是初学Angular的新手,还是有一定Angular开发经验的开发者,了解本文中的12个经典面试问题,都将会是一个深入了解和学 ...
- 经典面试题目——250M内存处理10G大小的log文件
前言 周末逛知乎的时候,看到的一个经典面试题目:http://www.zhihu.com/question/26435483.非常经典的一道分而治之的题目. 题目描写叙述例如以下: 有次面试遇到一个问 ...
- Angular 2的12个经典面试问题汇总(文末附带Angular測试)
Angular作为眼下最为流行的前端框架,受到了前端开发者的普遍欢迎.不论是初学Angular的新手.还是有一定Angular开发经验的开发者,了解本文中的12个经典面试问题,都将会是一个深入了解和学 ...
- Web前端经典面试试题(二)
上次由于时间有限只分享了一部分的前端面试题,所以本篇继续分享前端经典面试试题 一. 栈和队列的区别? 栈的插入和删除操作都是在一端进行的,而队列的操作却是在两端进行的. 队列先进先出,栈先进后出. 栈 ...
- TCP/IP协议的经典面试知识点总结
前言 大家好啊,我是汤小圆. 今天给大家推荐的是,TCP/IP协议的经典面试知识点总结,希望对大家有帮助,谢谢. 简介 我们平时经常听到的TCP/IP协议,其实是一个协议族: 只不过因为TCP.IP是 ...
- JAVA基础经典面试
[前言] 整理好久,这篇总结写的超级好,很全面.要全部背下来,至于框架应用那块,一定要有针对的,多写项目,照着慕课的对应项目. 链接:http://www.importnew.com/22083.ht ...
- C语言经典面试题目(转的,不过写的的确好!)
第一部分:基本概念及其它问答题 1.关键字static的作用是什么? 这个简单的问题很少有人能回答完全.在C语言中,关键字static有三个明显的作用: 1). 在函数体,一个被声明为静态的变量在这一 ...
随机推荐
- Spring AOP学习笔记02:如何开启AOP
上文简要总结了一些AOP的基本概念,并在此基础上叙述了Spring AOP的基本原理,并且辅以一个简单例子帮助理解.从本文开始,我们要开始深入到源码层面来一探Spring AOP魔法的原理了. 要使用 ...
- springmvc无法进入controller,且报错404
今天搭建一个springmvc项目时,前台一直报错404,在controller中调试发现程序没有进入controller. 通过多次刷新前台页面,发现第一次进入是会弹出错误提示,第二次之后就直接40 ...
- 解决intellij idea卡顿的方法
使用idea越用越卡,即使是16G内存也是卡,多开几个微服务卡死了!! 解决方案 参考网路资源整理如下几条 1. 卸载不需要用的插件 我是Java开发,对于一些默认安装的什么安卓的google的app ...
- 怒肝俩月,新鲜出炉史上最有趣的Java小白手册,第一版,每个 Java 初学者都应该收藏
这么说吧,在我眼里,Java 就是最流行的编程语言,没有之一(PHP 往一边站).不仅岗位多,容易找到工作,关键是薪资水平也到位,不学 Java 亏得慌,对吧? 那可能零基础学编程的小伙伴就会头疼了, ...
- @hdu - 5822@ color
目录 @description@ @solution@ @accepted code@ @details@ @description@ 给定一个每个点出度都为 1 的有向连通图以及 m 种颜色.求本质 ...
- 最全面的SourceTree账号注册教程
前言: 作为一个国内开发者而言使用Git操作神器SoureTree最大的问题就是账号注册问题,因为注册账号的链接在不翻墙的情况下基本上是打不开的(弄过的童鞋应该都体会过),所以有的时候我们需要借助一些 ...
- Python format格式化函数
参考资料:https://www.runoob.com/python/att-string-format.html 在学习Python的时候碰到了一个很有趣的格式化输入的技巧,下面记录在此. Pyth ...
- 力扣:二叉树着色游戏(DFS详解)
有两位极客玩家参与了一场「二叉树着色」的游戏.游戏中,给出二叉树的根节点 root,树上总共有 n 个节点,且 n 为奇数,其中每个节点上的值从 1 到 n 各不相同. 游戏从「一号」玩家开始(「一号 ...
- Java 多线程基础(八)线程让步
Java 多线程基础(八)线程让步 yield 一.yield 介绍 yield()的作用是让步.它能让当前线程由“运行状态”进入到“就绪状态”,从而让其它具有相同优先级的等待线程获取执行权:但是,并 ...
- 总结下c/c++的一些调试经验
工作2年,干了一年ARM平台嵌入式,一年后台,总结下这两年开发中调试的经验.我把调试手段分成2种:打印日志和用工具分析.因为平时主要开发在Linux平台,就以GDB为例 一.打印日志 1. 合理设置日 ...