一、面试五道题
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个人,但蛋糕盒里还必须留有一份。
java面试逻辑算数题 java面试逻辑思维题
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
java面试算法题:如何使用栈去实现队列
java面试算法题:如何使用栈去实现队列
出队 入栈 时间复杂度 -
逻辑思维题(1):
猜凶手问题,杨辉三角,运动员名次
杨辉三角 猜凶手 逻辑思维题 智力题