面试题+Java基础整理+逻辑思维题(基础:数组)

一、面试五道题
    1、String和StringBuffer、StringBuilder的区别是什么?String为什么是不可变的
        (1)String类型需要在栈堆内存中开辟空间,不管你改变了String的值(改变的),它也要堆积内存,占用内存空间。
        (2)StringBuffer:多线程操作字符串缓冲区下操作大量数据 StringBuffer;线程安全,执行速度慢。
        (3)单线程操作字符串缓冲区下操作大量数据 StringBuilder。线程不安全,执行速度慢。
        如果要操作少量的数据用String。
    2、自动装箱与拆箱
        (1)装箱:将基本数据类型用他们的包装类进行包装。
        (2)拆箱:将包装类型转换成基本类型。
    3、int和Integer有什么区别
        int的包装类就是Integer。在Java 5开始引入了自动装箱/拆箱机制,使得二者可以互相转换。
    4、Java为每个原始类型提供了哪些包装类型
        原始类型:boolean,char,byte,short,int,long,float,double。
        包装类型:Boolean,Character,Byte,Short,Integer,Long,Float,Double。
    5、ArrayList、LinkedList、Vector的区别:
        ArrayList,Vector 底层是由数组实现,LinkedList 底层是由双线链表实现,从底层的实现可以得出它们的性能问题。
        ArrayList,Vector 插入速度相对较慢,查询速度相对较快,而LinkedList 插入速度较快,而查询速度较慢。
        再者由于 Vevtor 使用了线程安全锁,所以ArrayList 的运行效率高于 Vector。
二、Java数组
    1、数组的结构和基本要素:
        (1)标识符:数组的名称,用于区分不同的数组。
        (2)数组元素:向数组中存放的数据。
        (3)元素下标:对数组元素进行编号。
        (4)元素类型:数组元素的数据类型。
        购物类型-->标识符
        代购物品-->数组元素
        物品编号-->元素下标
    2、使用数组四步走:
        (1)声明数组:int[] a;
        (2)分配空间:a = new int[5];
        (3)赋值:a[0] = 8;
        (4)处理数据:a[0] = a[0] * 10;
    3、创建数组的两种方式:
        (1)先声明后赋值:int[] score = new int[5];(5为长度长度从1开始)。
        (2)声明并赋值:int[] nuber = {1,2,3,4,5};
        注意:下标从零开始!!!
三、逻辑思维:
    1、每个飞机只有一个油箱,飞机之间可以相互加油(注意是相互,没有加油机)一箱油可供一架飞机绕地球飞半圈。问题:为使至少一架飞机绕地球一圈回到起飞时的飞机场,至少需要出动几架飞机?(所有飞机从同一机场起飞,而且必须安全返回机场,不允许中途降落,中间没有飞机场)
    2、有3箱水果,一箱是苹果,一箱是橘子,一箱是两种水果的混装三个箱子上都贴了标签,但所有的标签都贴错了现在你只拿出一个水果来判断3个箱字里的情况.
    3、请把一盒蛋糕切成8份,分给8个人,但蛋糕盒里还必须留有一份。
 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值