JAVASE面试题

1.抽象类和接口的区别
抽象类重在对象的本质,接口则是对象的附加行为
抽象类是按需实现 ,接口必须全部实现
一个类只能继承一个抽象类 ,但是能多实现接口
抽象类中能定义普通的方法 ,接口中不能定义普通的方法
应用的场景 :
抽象类:
在设计类时,如果有些方法我们能确定,而有些方法不能确定,这时候我们就可以把该类声明成抽象类
接口: 我们在定义相互调用规则时,可以使用接口。面向接口进行编程的明显好处,就是能极大降低软件系统的相互耦合性,接口的定义者按照接口进行调用,而实现者去实现接口

2.list , set, map 的区别,HashMap和Hashtble
list是有顺序,能重复 ,有索引
set是没有顺序, 不能重复 ,无索引
map 是键值对的方式存储

HashMap效率高,线程不安全
HashTabe效率低 , 线程安全
①ArrayList:底层是数组结构,查询快,增删慢,不同步。
②LinkedList:底层是链表结构,增删快,查询慢,不同步

3 ,值传递 和引用传递
值传递 ,是拷贝了一份 ,原来的数据不会改变
引用传递 , 是共用一份 ,原来的数据 会改变
4 ,Collection和Collections的区别:
Collections:java.util下的工具类,实现对集合的查找、排序、替换、线程安全化等操作。
Collection:是java.util下的接口,是各种单列集合的父接口,实现此接口的有List和Set集合,存储对象并对其进行操作。

5,创建多线程方式
方式一:继承Thread
方式二:实现Runnable

6 ,进程和线程的区别
线程是进程的一个执行单元 ,也是进程调度的实体,一个进程,可以有多个线程

7 ,堆和再的区别
堆存放的是对象,
在存放的是变量 ,

8、线程的同步:
同步代码块:synchronized(对象){},将需要同步的代码放在大括号中,括号中的对象即为锁。
同步函数:放于函数上,修饰符之后,返回类型之前。

9、wait和sleep的区别:(执行权和锁区分)
wait:
可指定等待的时间,不指定须由notify或notifyAll唤醒。
线程会释放锁。(基类是Object)
sleep:
必须制定睡眠的时间,时间到了自动处于临时(阻塞)状态。
仍持有锁,不会释放执行权。(基类是Thread)

时间: 2024-08-25 23:40:09

JAVASE面试题的相关文章

JavaSE 面试题: 方法的参数传递机制

JavaSE 面试题 方法的参数传递机制 import java.util.Arrays; public class Test { public static void main(String[] args) { int i = 1; String str = "hello"; Integer num = 200; int[] arr = {1, 2, 3, 4, 5}; MyData my = new MyData(); change(i, str, num, arr, my); S

JavaSE 笔试题: 自增变量

JavaSE 笔试题 自增变量 public class Test { public static void main(String[] args) { int i = 1; i = i++; int j = i++; int k = i + ++i * i++; System.out.println("i=" + i); System.out.println("j=" + j); System.out.println("k=" + k); }

javaSE面试题总结

目 录 第一章 初识Java 1 1. Java跨平台原理(字节码文件.虚拟机) 1 2. Java的安全性 1 3. Java三大版本 2 4. Java开发运行过程 2 5. Java开发环境配置 2 6. 什么是JVM?什么是JDK? 什么是JRE? 2 7. Java三种注释类型 3 第二章 数据类型和运算符 4 1. 8种基本数据类型及其字节数 4 2. i++和++i的异同之处 4 3. &和&&的区别和联系,|和||的区别和联系 5 4. 用最有效率的方法算出2乘以8

JavaSE编码试题强化练习2

1.编写递归算法程序:一列数的规则如下: 0.1.1.2.3.5.8.13.21.34...... 求数列的第40位数是多少. public class TestRecursion { public static void main(String[] args) { /** * 调用fibo方法并输出结果 */ int n = 40; TestRecursion tr = new TestRecursion(); System.out.println(tr.fibo(n)); } /** * 定

JavaSE编码试题强化练习4

1.编写一个Worker类,为Worker类添加相应的代码,使得Worker对象能正确放入TreeSet中.并编写相应的测试代码. /** * Worker类 */ public class Worker implements Comparable<Worker>{ /** * 私有属性 */ private String name; private int age; private double salary; /** * 构造方法 */ public Worker() { } public

JavaSE编码试题强化练习5

1.不使用函数实现字符串的翻转 /** * 1.不使用函数实现字符串的翻转 */ public class TestStringReverse { public static void main(String[] args) { String s1 = "FEDCBA"; System.out.println("翻转前:"+s1); /** * 此处需注意用s1接收方法的返回值,不然输出的还是没翻转之前的s1 */ s1 = reverseI(s1); System

JavaSE编码试题强化练习6

1.写出选择排序的代码实现,对一个int数组进行排序 public class TestSelectSort { public static void main(String[] args) { int [] arr = {87,65,5,5,43,21}; System.out.print("排序前:[ "); for (int i : arr){ System.out.print(i+" "); } System.out.println("]"

尚学堂Java第一课

今天是北京尚学堂郑州分校开课的第一天,小班面授教学. 我很兴奋,是一个小白对IT大神渴求传道授业解惑的兴奋. 杨老师还是一贯耐心详细的手敲了第一堂课的完整大纲,必须给杨老师赞赞赞!!! 从幽默的制定班规,到教我们用4W1H的方法写博客,并传授我们他身经多年的优质的学习方法和学习方式,再到最后的职业规划. 尤其杨老师的学习方法和学习方式,超级认同,我也会在接下来的学习中以此自律. 最后分享下杨老师的第一课: 班规: 1.保证出勤率上午:9:00~12:00下午:14:00~18:00 晚自习:19

大数据课程学习流程

第一阶段 Java编程基础→oracle/mysql→sql优化→jdbc 第二阶段 JavaScript基础→JavaScript深入→jQuery→jquery easyui→bootstrap 第三阶段 Servlet/jsp→ajax→xml→svn→maven实战项目一 第四阶段 Struts2→hibernate→spring/spring mvc→项目实战二→web serviceshiro→mybatis→项目实战三 第五阶段linux+搜索+hadoop体系 Linux基础→s