2017年6月19号YaXin公司Android面试总结

来源:互联网 发布:医疗软件注册证 编辑:程序博客网 时间:2024/06/14 22:01

首先,2-3分钟介绍一下你自己。

(1)JAVA中你经常用到那些类?

问这个问题的时候,我就迷茫了,不知道到底在问些什么,就说了几个最近项目中用到的类,加密类,Socket类。然后面试官提醒我说,MAP类用过么?然后我就想起来,接着说,常用的类还有MAP、HashMap、Collection、Set、list、ArrayList等。

(2)MAP、HashMap是如何操作的?

我就说是通过put.(key,value);进行操作的。

然后接着问了一个问题:HashMap中的key可以重复么?

我回答:不可以。接着问:如果重复了,HashMap是如何解决的?

我回答:如果key相同的话,现在put进去的值,会覆盖原来key中对应的值。

(3)list、ArrayList是如何操作的?

我回答:是通过add(value)进行操作的。

接着问:ArryList中存储的值可以重复么?

我回答:不可以。(这个回答错了)。正解:ArrayList中存储的值可以重复。ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长,类似于C语言中的动态申请内存,动态增长内存。

(4)JAVA中string转换成int类型,如何操作?

我回答:通过Integer.parseInt();

虽然回答正确了,但是感觉自己还是没有发挥好,这个问题。

第一种方法:i=Integer.parseInt(s);//直接使用静态方法,不会产生多余的对象,但会抛出异常第二种方法:i=Integer.valueOf(s).intValue();//Integer.valueOf(s) 相当于 new Integer(Integer.parseInt(s)),也会抛异常,但会多产生一个对象
(5)JAVA中int转换成String类型如何操作?

我的回答:s=i+"";。这道题虽然也是回答正确了,但是还是感觉自己没有回答完整。

第一种方法:s=i+"";   //会产生两个String对象第二种方法:s=String.valueOf(i); //直接使用String类的静态方法,只产生一个对象

(6)如何获得字符串的长度?

我回答:string.length。

接着问:length后边要不要()??

我回答: 不要。这个细节,平时没注意。回答错了。正确答案:

                String str="WO de Blog";System.out.println(str.length());
接着问:字符串如何获得子串??

我回答:通过subSequence()。这个其实也对,就是不常用。感觉面试官想让我说subString()。哎。。。当时没有想起来这个方法。下面我就补充学习一下了:

String str="WO de Blog";String subStr=str.substring(2);//从第二个字符截取,直到最后。String subStr1=str.substring(2, 5);//从第二个字符,截取到第五个字符。String subStr2=str.subSequence(2, 5).toString();//从第二个字符,截取到第五个字符。返回的是CharSequence,需要toString()System.out.println(subStr);System.out.println(subStr1);System.out.println(subStr2);
结果:

 de Blog de de
接着问:如何分割字符串?

我回答:split()。

接着问:里面参数是什么?

我回答:需要分割的标识符。

(7)数组、和集合如何得到长度?

我回答:数组是通过length得到。

接着问:这个length后边有()么??

我回答:没有。这个是瞎蒙对了。真正答案:

int[] a={1,2,3,4,5};System.out.println(a.length);
接着问:list如何得到长度??

我回答:size()。

正确答案:

    ArrayList arrayList=new ArrayList<>();    arrayList.size();

(8)说一下if和else的结构?

我回答:   

if(判断条件){

//执行代码块

}else{

//执行代码块

}

然后面试官,直接写了一个完整的if、else结构让我判断:

if(true){//代码块A}else if(false) {//代码块B}else if(true){//代码块C}else {//代码块D}
程序会执行哪一个代码块?

我回答:A。这个问题也回答正确了。

(9)说一下for循环的结构?

我回答:for(int i=0;i<5;i++){ }

到这里,面试官给我挖了一个坑,他说,for(int i=0,i<5,i++){ }你确定???

我当时没有多想,直接说确定。这真是一个大坑。面试完的时候,直接把这个问题给我指出来了。

接着问:程序如何跳出for循环??

我回答:continue是跳过本次循环。break是跳过这个for循环体。

接着问:程序是如何结束函数体的?

我回答: return。

(10)JAVA中如何实现线程??

我回答:两种方法:(1)继承Runable接口。(2)实现Thread类。

----------------------------------------------------------------------下面时数据库的东西-------------------------------------------------

接下来,问到了数据库的东西,心里有点慌,好久没看数据库的东西了,心虚。

(11)数据库是如何查询一条数据的??

我回答:select * from 表名;后面还可以有一些条件where..... order by......  group by.......

接着问:如何筛选重复的数据??

我回答:有一个关键字,记不清楚了,好像是distinct。

现在,翻了一下,以前的课本,Distinct短语,表示:在查询是不显示重复的数值。SELECT DISTINCT ID,COL1,COL2 FROM TABLE

接着问:两个表如何做连接查询??

这个问题,真的忘了,我也不记得当时扯了点啥。好尴尬啊......这个问题隐隐约约面试官给了我好多提示啊!

面试官提示:两个表连接查询条件是什么??

我回答:两个表有相同的属性。

最后还是坑坑挖挖的回答正确了。没看书,去面试,感觉好难啊!

补充:数据库中连接查询:

(1)等值与非等值连接查询:

  连接查询的Where子句中用来连接两个表的条件称为连接条件或者连接谓词。

当连接运算符为=时,称为等值连接。使用其他运算符称为非等值连接。

例子:学生情况存放在Student表中,学生选课情况存放在SC表中,所以本查询实际上涉及Student与SC两个表。这两个表之间的联系是通过公共属性Sno实现的。

Select Student.*,SC.*from Student,SCWHERE Student.Sno=SC.Sno; /*将Student与SC中同一个学生的元组连接起来*/
若在等值连接中把目标列中重复的属性列去掉则为自然连接。

(2)自身连接

连接操作不仅可以在两个表之间进行,也可以是一个表与其自己进行连接,称为表的自身连接。


(3)外连接


(4)复合条件连接 


(12)如何进行数据的插入操作?

我的回答:insert 表名 into(值)。这个回答错了。

正确答案: 

insertinto 表名(属性列1,属性列2,属性列3)values(值1,值2,值3)

(13)如何更新和修改数据?

我的回答:update on 表名。这个回答错的太离谱了。哎。。。面试之前,真的得好好看看书呢!

正确答案:

update 表名set 列名=值where  条件

(14)如何删除数据??

我的回答:delete 表名。删除的是整个表的数据,但是数据库中,这个表还存在,只是数据没有了。

接着问:如何删除符合某个条件的数据??

我的回答:delete 表名 where 条件。。。

正确答案:

delete from 表名where 条件
例子:

delete from Studentwhere Sno='20170619';

(15)你对JS和Jquery熟悉么??

我回答:对js比较熟悉,JQuery了解。

接着问:js如何声明一个函数?

我回答:function 函数名(){      }

接着问:js如何声明一个变量??

我的回答:var ,因为js是弱类型语言。

接着问:给你一个页面里面放了一个label,上面有文字,如何获取这个文字??

我的回答:需要先通过getElementById()找到这个label,然后在用getValue()得到文本。

(16)对SpringMVC、struct2、Hibernate 这些框架熟悉么??

我的回答:之前做微信公众号的时候用过SpringMVC、Hibernate,只是会用,不是很清楚其中的原理。其他都是了解过,没使用过。

目前就想到这些。

----------------------------------------------------------------------------结束-------------------------------------------------------------------------------------

问题问完之后,给我简单介绍一下,他们公司给实习生的工资。

然后问我,还有什么问题问他的么?

我问:您感觉我今天面试表现怎么样??

面试官说:基础掌握不牢固,面试之前没有复习。数据库问的基本上都回答错了,JAVA基础不是很牢固。回去等通知吧!

END。



原创粉丝点击