【程序源代码】java 每日高频面试题【day3】

程序源代码

共 3597字,需浏览 8分钟

 ·

2021-07-27 13:22

“ 关键字: java 学习 每日 高频 面试题 每日高频面试题 ,一起冲进大厂"


导读:

    大家好,我是程序源代码,算算入行的时候我已算入行10以上的老兵了,毕业在北京北漂8年,13年回到省会石家庄,一直就在河北这块土地上生活着。现在人了快到了中年,感觉现在生活压力都比较多大。梦想着有一天能进入大厂,实现一个大厂梦。其实我感觉大家应该和我一样,都想有进入大厂工作毕竟生活需要理想,还需要苟且(挣高工资),其实现在大厂并不是特别容易进,作为一名好多年的Java选手,其实我感觉进入大厂,首先要把自己的技术和面试这两个重要点做好。

    最近这几天我一直在看java相关的基础,也在看一些面试相关的资源和视频,其实感觉不管什么技术面试,其实基础是很重要的。现在正好暑假了,天气炎热,作为宅男的我本来就不想出去,所以还不如呆在家里,静下心来好好准备下基础的面试。所以这个暑假(虽然我没有暑假)我准备用60天时间,把Java面试中的面试题看一看,从头复习一遍。计划是每天1-3题的形式学一遍(希望自己能坚持下来)。

   主要涵盖的知识点我简单列了一下,计划从这些方面出发进行学: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

微信二维码, 扫一扫吧




【写作说明】以上文章属于此公众号原创所有,如需转载请注明出处。【免责申明】本公众号不是广告商,也没有为其他三方网站或者个人做广告宣传。文章发布源代码和文章均来源于各类开源网站社区或者是小编在项目中、学习中整理的一些实例项目。主要目的是将开源代码分享给喜欢编程、有梦想的程序员,希望能帮助到你们与他们共同成长。其中用户产生的一些自愿下载、打赏或者付费行为,原则与平台没有直接关系。如果涉及开源程序侵犯到原作者相关权益,可联系小编进行相关处理。
【投稿邮箱】315997972@qq.com

—————————————

目前已有1000000+优秀的程序员加入我们
                          
                         

——————————————

【你的每一份打赏就是对我最真诚的鼓励】


浏览 28
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报