java面试数据结构
『壹』 Java面试笔试,数据结构和算法考到什么程度
你说的那个数据结构不一定考的。 Java面试就那么点东西,各个公司也不一回样。 答有的分笔试和机试。这些公司想看看实际面试人员的能力,节省了以后的时候。 笔试中,无非就是一些概念性的东西巴了。 比如:jsp是servlet吗? servlet的生存周期;还有一些面向对象的知识。这些平常用心的话都没问题,即使临阵磨枪也行。 那么机试就的要看你自己的能力了,对框架的属性程度。还有就是在也不能常见的对数据 库的CRUD也就是增删改查操作。机试都好这口。 其实面试如果也没笔试机试那么就问几道题的话,如果是技术人,几道题下来就知道你的底子了,在问些逻辑上的也就知道要你还是不要你了。 在有你要对一些数据库知识了解一些。 做java的 oracle 得达到掌握 sql server 了解就行 基本语法啥的就可以了 mysql 这个也得达到掌握 别的就不要会用到
『贰』 面试java程序员时被问到:如果你要写一个俄罗斯方块的游戏,每种方块你会考虑用什么数据结构怎么答
我是新手抄
我所想到的方法袭是把屏幕分割成N个小块 然后按照每种方块的形状来绘制
把小格子用一个数组储存 比如 a[100] 那么绘制一个条状块就是 a[0] a[1] a[2] a[3]
什么数据结构。。。 用得着么?
『叁』 面试java一般问到数据结构的知识有哪些。
看你面的是什来么公司了源 单纯web的话 一般不会问 因为基本用不到这些东西 顶多就是各种排序
做应用的话 那就多了吧 各种排序 各种实现
总之 排序还是很重要的 最起码把名记住 让你写个冒泡 这个必须得会。。。
我感觉这样的问题也有可能遇上:怎么在java中实现队列出队进队的操作(或者的栈的进栈和出栈)
『肆』 大家有什么java面试的有关的书籍推荐
书的话我不知道,不过应该是没有的,面试知识点可以自己去网上找一找,有很多面试过的人分享的面试题。而且面试难易看公司和应聘岗位的,有的公司水平低或者岗位专业性要求不高,面试就容易,有的公司水平高专业要求高,那就面试难。我贴一下我找的一些面试知识点。
3.1.1 Java基础
此时一般会问到一些Java的基础知识,比如
l synchronized static修饰类和方法有什么区别
l HashMap的原理,底层数据结构,rehash的过程,指针碰撞问题
l HashMap的线程安全问题,为什么会产生这样的线程安全问题
l ConcurrentHashMap的数据结构,底层原理,put和get是否线程安全
l Java IO的一些内容,包括NIO,BIO等
3.1.2 Java高级特性
此时问到的问题一般包含JVM,多线程的一些内容,这块建议大家多看看源码,大致如下:
l Java线程池的构造方法,里面参数的含义,以及原理
l volatile和ThreadLocal解决了什么问题
l CAS在Java中的具体实现
l Java虚拟机的构成,以及一个Java对象的生命周期,还有堆栈和方法区中存储的内容
l JVM的GC过程,包括一些实际问题的分析,比如说明一个现象,让你分析可能是什么原因会导致这样的问题,应该如何对JVM参数进行调优
l synchronized和Lock的区别,以及底层实现原理
l Full GC和Minor GC触发的条件
l GC Roots的选择
l jmap,jstat,jstack等的使用场景,MAT等
l ClassLoader的加载过程
l CountDownLatch、CyclicBarrier和Semaphore等
l Java 8 的新特性等
3.1.3 数据库
这里的数据库包含两种,一种一般是MySQL,另外是NoSql数据库,包括Redis、MongoDB等。一般会问的问题有:
l inner join和left join等的区别
l SQL调优,explain,profile等
l InnoDB和Myisam的区别
l ACID
l 数据库的事务隔离级别,以及他们分别能解决什么问题
l Redis的几种数据结构
l Redis是单线程还是多线程
l Redis的持久化
l 悲观锁和乐观锁的含义
l 最左前缀索引,索引的数据结构,聚簇索引等(这块还没搞明白)
3.1.4 框架
3.1.4.1 Spring
因为spring是我们常用的框架,所以这块的内容会问的比较多,也会比较细。
l Spring的两大特性(IoC和AOP)
l Spring的bean的生命周期
l Spring是如何解决Bean的循环引用问题的
l AOP的两种实现方式,以及两者的区别(这里其实使用了动态代理,具体动态代理分为两种,一种是JDK的动态代理,主要使用的是JDK的反射,还有一种是CGLib,两者区别可以自己搜索,文章比较多)
l AOP一般的使用场景
l Spring的事务原理
3.1.4.2 MyBatis
这块问到的比较简单些:
l $和#的区别
l MyBatis和Hibernate的区别
l 源码,一般问的比较少
3.1.4.3 Dubbo
因为平时自己用到了Dubbo,所以这块会有问到:
l RPC的原理
l Dubbo是如何完成远程调用的
l Dubbo如何进行调优
l Dubbo的通信协议
l Dubbo是如何实现负载均衡的
3.1.4.4 ZooKeeper
l ZK的使用场景
l ZK的选举机制
l ZK的节点类型
l 一致性Hash原理
3.1.5 数据结构和算法
这块的内容是基础,如果面试官怀疑你的能力,一般一会问到这部分内容,比如树的遍历、快速排序等。
3.1.6 linux
一般会问一些命令的使用,然后会举一个实际的场景,让你用命令去排查问题,这块自己不是很熟,需要尽快加强。
3.1.7 综合题
这块的题目,面试官一般会问的比较深入。比如如何设计一个抢购系统,String转Integer等,这部分需要考验的就是一个人的临场应变能力,以及在平时工作中系统设计能力的积累,以及考虑问题是否周到等。也有可能会对你简历上面写的系统的设计进行详细的询问,所以在你写简历的时候,千万不能把自己不熟悉的内容写上去,而且自己又讲不清,这样一般会被直接pass掉。
当然也会问一些常用的maven的命令,设计模式的题目(这部分问的比较多的就是单例模式)。
『伍』 新手初学Java有必要去学习数据结构与算法吗
还是有些必要的,大公司笔试面试基本都是靠计算机网络及数据结构与算法。
建议找回些基答础的算法如排序查找等入门就可以了,java新人用不到多深层次的算法,
新人初学Java的话建议还是讲基础知识弄通弄透比较好。
『陆』 面试java开发,问到数据结构怎么答
面试的事就是会就会不会就不会,别上去装会被问住了。然后关于这点的知识那么多只内能靠你的积累。比如我容问你java的集合类有哪些,都有什么特点,在多线程情况下怎么用。这想问的问题能问出几百个,只能看你知识储备
『柒』 我同学在java面试中,出了好多关于数据结构的题目。自学数据结构改怎么学啊,各位提供一些方法.
数据结构的原理都是通的,只是根据各编程语言的特点实现起来有所区别。建议你选内自己一门比较容熟悉的编程语言,然后看用该语言实现的数据结构就行。数据结构无非就一下几种:列表,树,图。只要知道如何构造,遍历,插入,删除,查询这些数据结构就没问题了。
『捌』 java面试时的一个数据结构问题
importjava.util.Random;
publicclassShuiji{
String[]result;
intindex=0;
Randomran=newRandom();
publicShuiji(){
result=newString[100];
getResult();
for(inti=0;i<result.length;i++){
if(i%10==9){
System.out.println(""+result[i]+",");
}else{
System.out.print(""+result[i]+",");
}
}
}
publicstaticvoidmain(String[]args){
newShuiji();
}
publicvoidgetResult(){
for(inti=0;i<result.length;i++){
StringaddValue=getString();
if(containsValue(addValue)==true){
i--;
}else{
result[i]=addValue;
index++;
}
}
}
publicbooleancontainsValue(StringpValue){
booleancont=false;
for(inti=0;i<index;i++){
if(result[i].equals(pValue)){
cont=true;
break;
}
}
returncont;
}
publicStringgetString(){
intfirst=ran.nextInt(36);
StringBuffersb=newStringBuffer();
if(first<10){
sb.append((char)(48+first));
}else{
sb.append((char)(87+first));
}
intsecond=ran.nextInt(36);
if(second<10){
sb.append((char)(48+second));
}else{
sb.append((char)(87+second));
}
returnsb.toString();
}
}
我也不知道这种算法是不是够简单,可以参考一下。
『玖』 面试题 java数据结构有哪些
数据结果可以根复据自己制的实际情况,随意创造,比如你问世界上装水的瓶子有多少种?那就根据实际情况自己生产就好了,不过常用的一般就那么多。
数组, 各种类型的数组
集合, list, set 等
堆、栈、列表
树:二叉树、多叉树、森林
图
学习java,初级的话只要熟练使用数组和集合就基本能解决大部分问题。