【程序源代码】java 每日高频面试题【day3】
共 3597字,需浏览 8分钟
·
2021-07-27 13:22
“ 关键字: java 学习 每日 高频 面试题 每日高频面试题 ,一起冲进大厂"
导读:
大家好,我是程序源代码,算算入行的时候我已算入行10以上的老兵了,毕业在北京北漂8年,13年回到省会石家庄,一直就在河北这块土地上生活着。现在人了快到了中年,感觉现在生活压力都比较多大。梦想着有一天能进入大厂,实现一个大厂梦。其实我感觉大家应该和我一样,都想有进入大厂工作毕竟生活需要理想,还需要苟且(挣高工资),其实现在大厂并不是特别容易进,作为一名好多年的Java选手,其实我感觉进入大厂,首先要把自己的技术和面试这两个重要点做好。
主要涵盖的知识点我简单列了一下,计划从这些方面出发进行学:Java基础知识、集合容器、并发编程、JVM、Spring全家桶、MyBatis等ORMapping框架、MySQL数据库、Redis缓存、RabbitMQ消息队列、Linux操作技巧等。
01
—
int 和integer的区别?
java是面向对象的编程语言,为了编程方便java引入了基本数据类型(8种:byte/short/int/long/float/double/boolean/char)。但为了操作这8种数据类型java从5开始引入了对应的包装类型,通过自动拆箱、装箱实现每种类型间的转换。
public class Main<intger> {
public static void main(String[] args) {
int a = 1;
Integer b = new Integer(1);
Integer c = 1;
System.out.println(a==b);//true
System.out.println(c==b);//flase
System.out.println(a==c);//true
}
}
02
—
ArrayList 和 LinkedList的区别是什么?
ArrayList :基于动态数组,它需要连接内存存储。它比较适合于下标访问,它一般会声明一个固定长度。
LinkedList:基于链表。它可以分散存储到内存。它比较适合于数据插入和删除。不适合于查询。遍历必须使用iterator不能使用for循环。因为for时它是从头到尾进行一一遍历的,这个状态下非常消耗性能。同时它在插入对象时需要创建大量的node对象。
一般在实际使用时建议使用ArrayList ;因为ArrayList 可以通过固定长度,同时结合使用尾部插入法,提高插入性能。
03
—
线程的创建方法有几种?
1、继承Tread 创建线程实例,同时调用start()方法来启动线程。
//定义一个继承Thread类的子类
class SomeThead extends Thraad
{
public void run(){}
}
//构造子类的一个对象:
SomeThread oneThread = new SomeThread();
//启动线程:
oneThread.start();
2、实现runnable 接口,但实现接口只是创建了一个可执行的任务,还需要一个线程对象才能启动线程。
class SomeRunnable implements Runnable
{
public void run()
{
//do something here
}
}
//创建一个类对象:
Runnable oneRunnable = new SomeRunnable();
//由Runnable创建一个Thread对象:
Thread oneThread = new Thread(oneRunnable);
//启动线程:
oneThread.start();
3、实现callable接口
Callable接口(也只有一个方法)定义如下:
public interface Callable<V>
{
V call() throws Exception;
}
//创建实现Callable接口的类SomeCallable<Integer>(略);
//创建一个类对象:
Callable<Integer> oneCallable = new SomeCallable<Integer>()
//由Callable<Integer>创建一个FutureTask<Integer>对象:
//FutureTask<Integer>是一个包装器,它通过接受Callable<Integer>来创建,它同时实现了Future和Runnable接口。
FutureTask<Integer> oneTask = new FutureTask<Integer>(oneCallable);
//由FutureTask<Integer>创建一个Thread对象:
Thread oneThread = new Thread(oneTask);
//启动线程:
oneThread.start();
04
—
联
方
式
公众号ID: itcode
微信ID: itcoder
免
声
明
—————————————
———————————————