如果快速分辨一名Java程序员技术功底如何?

dpenglmm 2016-11-21 04:23:57
加精
如果快速分辨Java程序员工的技术功底如何?
技术Lead总说想要那种知晓技术原理的员工,就是不仅知其然也知其所以然的人。
可怎么才能判断何为知晓原理呢?
...全文
18028 41 打赏 收藏 转发到动态 举报
写回复
用AI写文章
41 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 32 楼 lushuaiyin 的回复:
面对2年左右工作经验的小生,我一般只要求他能在2个小时内,把一个什么也没装的电脑能跑起来一个简单的程序。这个过程包括,安装jdk,tomcat,配置eclipse,然后能看到登录页面。做到这种地步,说明这个人起码在写程序。否则的话,真的是什么也不会。我见过N多新招进来的同事,不会配置环境变量,代码里有报错,明显是classpath配置不对,只需要把jar包引进来就行,这种低级错误,居然不知道怎么搞定,还来问同事。所以,连自己电脑都搞不定的程序员,还是别招进来。
额。。。我这种工作不到一年的,其实配环境变量的时候都是根据百度一边看一边配的。。。。好尴尬。。。。
ljheee 2016-12-09
  • 打赏
  • 举报
回复
Java方面东西也多得是啊,光集合和JVM不算什么
猿敲月下码 2016-12-08
  • 打赏
  • 举报
回复
面试别人也是有技巧的,通常的做法就是拿自己的强项去撞击面试者的弱项.
风吹腚腚凉 2016-12-08
  • 打赏
  • 举报
回复
不用那么麻烦,JAVA之父正在找工作呢。
kernelkoder 2016-12-08
  • 打赏
  • 举报
回复
讲一下struts的实现
Haocaibo 2016-12-08
  • 打赏
  • 举报
回复
看着这评论,都是大神级别的啊
爱睡觉的阿狸 2016-12-08
  • 打赏
  • 举报
回复
楼下有些回复挺不错的!不要在意楼主写错了一个字,
ix_fly 2016-12-07
  • 打赏
  • 举报
回复
引用 20 楼 xinfei0803 的回复:
知识点经不起推敲,精力有限,只能顾一方面
xinfei0803 2016-12-01
  • 打赏
  • 举报
回复
引用 24 楼 jjcwansui 的回复:
这些都会,也就是高级的程度吧。 [quote=引用 20 楼 xinfei0803 的回复:] 简单啊!自己先看看自己的功底如何吧!别自己滥竽充数却要去面试其他比自己还强的人。以下这些要是都能会的话,就差不多了。 java语言高级特性及框架 1,重要的几个集合的原理,如HashMap,HashTable,ConcurrentHashMap,arrayList,LinkedList,TreeMap 1)hashmap和hashtable,concurrentHashMap实现原理,区别和扩容规则 1:线程安全性和存取速度,HasMap线程不安全,存取速度快;HashTable线程安全,但存取速度很慢,每次存取都加锁;ConcurrentHashMap是锁分段技术,既达到了线程安全,又兼顾存取速度。 2:初始化和扩容,HashMap初始化是16,负载因子为0.75,以原容量2倍的方式扩容;HashTable初始化容量为11,负载因子为0.75,以原容量*2+1的方式扩容;ConcurrentHashMap初始化容量是16,负载因子0.75, 2)vector,arrayList和linkedList实现原理和区别,以及扩容规则 1:arrayList和Vector都是基于数组实现的,LinkedList是基于链表实现的。数组方便于查找,链表方便于插入和删除。 2:Vector线程安全,但操作速度慢。LinkedList和ArrayList线程不安全,操作速度快。 3:ArrayList可以插入重复值且有序,HashSet不能插入重复值且无序,是使用HashMap的keySet来实现的,value用了一个new Object()这种类型。 4:扩容ArrayList以1.5倍的方式进行扩容,Vector以2倍的形式扩容。LinkedList无需扩容,HashSet根据HashMap的扩容规则。 5: 3)TreeMap用什么实现的,用来作为有序的Map和LinkedList孰优孰劣 TreeMap是用红黑树来实现的,用来排序比LinkedList要好,无论是查找还是排序,时间复杂度较低。 2,JVM原理,GC,内存结构,类加载器,多态的实现,调优和监控,反射 1)什么对象会被回收,垃圾回收的算法,Serial,ParNew,Parallel Scavenge,CMS,G1等收集器的特点和用途 1:那些内存需要被回收? 答:通过GC Roots进行可达性分析,如果不可达则证明对象需要被回收。GC Roots包括静态变量(引用)、常量、虚拟机栈、本地方法栈 2:有哪些常用的垃圾回收算法? 标记-清除算法、标记-整理算法、分代收集算法 3:引用的四种类型 强引用(不会被收集)、软引用(内存不够被收集)、弱引用(第一次就被收集)、幽灵引用(仅仅发送通知) 4:安全点和安全区域 安全点:当到达安全点时线程才暂停(进行GC),安全点一般是方法调用、循环跳转、异常跳转等。HotSpot生成一个轮询指令(如test %eax 0x160100),当需要暂停线程时,将地址0x160100设为不可读,这样线程就会陷入异常,在异常处理中等待。 安全区域:是一系列代码,这段代码不会出现引用关系发生变化。线程执行到这段代码时,会标识自己进入安全区域。离开安全区域时会判断GC roots 是否完成。为了解决不在执行状态(非Running)的线程怎么样暂停问题。 4:并发和并行的区别 并发是指多条线程在CPU时间片轮转下交替运行,从外观看起来类似于同时执行。 并行是指多个线程在多个CPU上同时执行,需要多个处理器支持。 5:各垃圾收集器的特点和用途 Serial收集器:单线程回收,对于单CPU不会带来线程上下文切换的开销,只做新生代回收,简单而高效 。对于几十乃至一两百兆的新生代,可以选用。 ParNew收集器:Serial的多线程版本,新生代收集器,CPU越多效率越高。 Parallel Scavenge收集器:新生代收集器,多线程并行执行,吞吐量优先,可以控制GC停顿时间和吞吐量大小,可以开启自适应调解策略。 CMS收集器:老年代收集器,并发收集低停顿。初始标记、并发标记、重新标记、并发清除。1,3花费时间段,2,4花费时间长但可以与用户 线程一起运行。缺点是:1,对CPU资源敏感;2,并发清理产生很多浮动垃圾;3,基于标记清除算法会产生大量空间碎片。 G1收集器: 2)堆内存区域,Eden区,Survivor1,Survivor2,Old,Permanent(方法区和常量池),本地方法栈,虚拟机栈,程序计数器 1:JVM内存结构可分为堆区、java虚拟机栈、本地方法栈、方法区、程序计数器(PC)。 2:堆区可分为年轻代(Young)和老年代(Tenured),年轻代可分为Eden区、Survivor1、Survivor2三个区。 3:永久代包含方法区和运行时常量池,用来存放类加载的信息,可以被GC进行回收,当常量池内容过多,或者类加载过多时,可能OOM。 4:本地内存,基于通道(channel)和缓冲区(Buffer)的I/O方式,可以使用Native函数库直接分配堆外内存,然后通过一个directByteBuffer对象作为这块内存的引用进行操作,可以避免Java堆和Native堆来回复制数据。 5:程序计数器,执行java方法时当前线程所执行字节码的行号,线程独有。执行Native方法是该区域为空(undefined)。 6: 虚拟机栈,运行java字节码。本地方法栈运行本地方法。 3)虚拟机类加载父委托机制,如何实现,这么实现的好处是什么。类加载过程 1:父委托机制是指, 4)多态的实现,重载和重写的区别,静态分派,动态分派,静态解析,动态解析,方法的调用过程 5)jstatk,jstat,jps,jmap,jconsole,visualVM, 3,多线程相关,线程的实现,volatile,final,threadLocal(原理和举例),AQS,CAS,线程池,CountDownLatch,CyclicBarrier,Semaphore实现原理,阻塞队列 1)线程的两种实现方式,那种更好,为什么? 2)volatile两种作用,内存语义,final的作用。 3)threadLocal实现原理,举例说明(spring中用到过) 4)AQS实现原理(同步队列,获取和释放同步状态),ReentrantLock(公平锁和非公平锁),读写锁(实现原理),与sychronized有什么异同 5)CAS如何实现同步(配合volatile),如何解决ABA问题 6)线程池和阻塞队列的实现原理,为什么使用线程池更好些 7)CountDownLatch,CyclicBarrier,Semaphore实现原理,还有没有别的实现方式 4,IO,BIO,NIO,AIO实现原理,会使用mina 1)BIO作为阻塞式IO如何进行数据传输的(结合OS读写缓冲区的阻塞说明) 2)NIO的实现原理,为什么不阻塞?(结合轮训和上下文切换说明) 3)Mina和Netty的原理 5,字符串相关的问题,存储,使用,要兼顾JDK6和JDK7以后的版本有什么不同之处 1)字符串存储方式,string,StringBuffer和Stringbuilder的区别,频繁使用“+”作为连接符的坏处 2)==,equals,intern()判断相等的时候问题 3)字符串的常量池 6,三大框架,SSI 1)SpringMVC架构和实现原理 2)Spring的IOC和AOP原理(动态代理) 3)mybatis实现原理。 4)spring和mybatis的缓存实现
[/quote] 这些也都只是java的基础啊,中高级都应该了解和掌握的,其他需要学习的东西多着呢。比如协议,中间件,数据库,缓存,分布式,服务器,linux,还有前端的一些东西!
danpipi 2016-11-30
  • 打赏
  • 举报
回复
都是老司机,我们没法混了
  • 打赏
  • 举报
回复
还是多问些编程中遇到的问题和解决方法,这个比较实际点,问jvm10个估计没一个能答的上来
丰王十 2016-11-30
  • 打赏
  • 举报
回复
ssh、ssm原理,io、多线程,socket精通,前端各类框架熟悉,分布式、负载均衡、soa、rpc熟练应用并部署,这是高级。
索隆 2016-11-30
  • 打赏
  • 举报
回复
面对2年左右工作经验的小生,我一般只要求他能在2个小时内,把一个什么也没装的电脑能跑起来一个简单的程序。这个过程包括,安装jdk,tomcat,配置eclipse,然后能看到登录页面。做到这种地步,说明这个人起码在写程序。否则的话,真的是什么也不会。我见过N多新招进来的同事,不会配置环境变量,代码里有报错,明显是classpath配置不对,只需要把jar包引进来就行,这种低级错误,居然不知道怎么搞定,还来问同事。所以,连自己电脑都搞不定的程序员,还是别招进来。
yanqingshang 2016-11-29
  • 打赏
  • 举报
回复
1)SpringMVC架构和实现原理 2)Spring的IOC和AOP原理(动态代理) 3)mybatis实现原理。 4)spring和mybatis的缓存实现
qq_34508037 2016-11-29
  • 打赏
  • 举报
回复
原来是个搞软件培训班的 哈哈哈 列了那么多牛逼的知识点 吓唬人呢 一会通晓各类语言,一会通晓各类平台,一会要写个gui,一会要写个编程语言。一会要写个数据库
qq_34508037 2016-11-29
  • 打赏
  • 举报
回复
1.7.加强版,是否可以自己实现常见的三大功能(gui,编程语言,数据库) 是否可以使用比如canvas等绘图像素级api实现gui控件体系。 是否可以自己开发编程语言。词法分析,语法分析,语义分析,编译器,ide开发等 是否可以自己开发数据库,比如一套oodb。。 =============== 自己实现一套gui 自己开发个数据库 自己开发个编程语言 这个面试好 不想招人就用这个,搞死他
qq_34508037 2016-11-29
  • 打赏
  • 举报
回复
以下是我们团队的一些标志建议可以参考啊 1.1. 是否掌握多语言 sql java php c# js python c++ 汇编等满分 1 1.2. 多平台的背景(pc,手机,嵌入式,cs,bs架构) 1 =================== 这个牛
jjcwansui 2016-11-29
  • 打赏
  • 举报
回复
这些都会,也就是高级的程度吧。
引用 20 楼 xinfei0803 的回复:
简单啊!自己先看看自己的功底如何吧!别自己滥竽充数却要去面试其他比自己还强的人。以下这些要是都能会的话,就差不多了。 java语言高级特性及框架 1,重要的几个集合的原理,如HashMap,HashTable,ConcurrentHashMap,arrayList,LinkedList,TreeMap 1)hashmap和hashtable,concurrentHashMap实现原理,区别和扩容规则 1:线程安全性和存取速度,HasMap线程不安全,存取速度快;HashTable线程安全,但存取速度很慢,每次存取都加锁;ConcurrentHashMap是锁分段技术,既达到了线程安全,又兼顾存取速度。 2:初始化和扩容,HashMap初始化是16,负载因子为0.75,以原容量2倍的方式扩容;HashTable初始化容量为11,负载因子为0.75,以原容量*2+1的方式扩容;ConcurrentHashMap初始化容量是16,负载因子0.75, 2)vector,arrayList和linkedList实现原理和区别,以及扩容规则 1:arrayList和Vector都是基于数组实现的,LinkedList是基于链表实现的。数组方便于查找,链表方便于插入和删除。 2:Vector线程安全,但操作速度慢。LinkedList和ArrayList线程不安全,操作速度快。 3:ArrayList可以插入重复值且有序,HashSet不能插入重复值且无序,是使用HashMap的keySet来实现的,value用了一个new Object()这种类型。 4:扩容ArrayList以1.5倍的方式进行扩容,Vector以2倍的形式扩容。LinkedList无需扩容,HashSet根据HashMap的扩容规则。 5: 3)TreeMap用什么实现的,用来作为有序的Map和LinkedList孰优孰劣 TreeMap是用红黑树来实现的,用来排序比LinkedList要好,无论是查找还是排序,时间复杂度较低。 2,JVM原理,GC,内存结构,类加载器,多态的实现,调优和监控,反射 1)什么对象会被回收,垃圾回收的算法,Serial,ParNew,Parallel Scavenge,CMS,G1等收集器的特点和用途 1:那些内存需要被回收? 答:通过GC Roots进行可达性分析,如果不可达则证明对象需要被回收。GC Roots包括静态变量(引用)、常量、虚拟机栈、本地方法栈 2:有哪些常用的垃圾回收算法? 标记-清除算法、标记-整理算法、分代收集算法 3:引用的四种类型 强引用(不会被收集)、软引用(内存不够被收集)、弱引用(第一次就被收集)、幽灵引用(仅仅发送通知) 4:安全点和安全区域 安全点:当到达安全点时线程才暂停(进行GC),安全点一般是方法调用、循环跳转、异常跳转等。HotSpot生成一个轮询指令(如test %eax 0x160100),当需要暂停线程时,将地址0x160100设为不可读,这样线程就会陷入异常,在异常处理中等待。 安全区域:是一系列代码,这段代码不会出现引用关系发生变化。线程执行到这段代码时,会标识自己进入安全区域。离开安全区域时会判断GC roots 是否完成。为了解决不在执行状态(非Running)的线程怎么样暂停问题。 4:并发和并行的区别 并发是指多条线程在CPU时间片轮转下交替运行,从外观看起来类似于同时执行。 并行是指多个线程在多个CPU上同时执行,需要多个处理器支持。 5:各垃圾收集器的特点和用途 Serial收集器:单线程回收,对于单CPU不会带来线程上下文切换的开销,只做新生代回收,简单而高效 。对于几十乃至一两百兆的新生代,可以选用。 ParNew收集器:Serial的多线程版本,新生代收集器,CPU越多效率越高。 Parallel Scavenge收集器:新生代收集器,多线程并行执行,吞吐量优先,可以控制GC停顿时间和吞吐量大小,可以开启自适应调解策略。 CMS收集器:老年代收集器,并发收集低停顿。初始标记、并发标记、重新标记、并发清除。1,3花费时间段,2,4花费时间长但可以与用户 线程一起运行。缺点是:1,对CPU资源敏感;2,并发清理产生很多浮动垃圾;3,基于标记清除算法会产生大量空间碎片。 G1收集器: 2)堆内存区域,Eden区,Survivor1,Survivor2,Old,Permanent(方法区和常量池),本地方法栈,虚拟机栈,程序计数器 1:JVM内存结构可分为堆区、java虚拟机栈、本地方法栈、方法区、程序计数器(PC)。 2:堆区可分为年轻代(Young)和老年代(Tenured),年轻代可分为Eden区、Survivor1、Survivor2三个区。 3:永久代包含方法区和运行时常量池,用来存放类加载的信息,可以被GC进行回收,当常量池内容过多,或者类加载过多时,可能OOM。 4:本地内存,基于通道(channel)和缓冲区(Buffer)的I/O方式,可以使用Native函数库直接分配堆外内存,然后通过一个directByteBuffer对象作为这块内存的引用进行操作,可以避免Java堆和Native堆来回复制数据。 5:程序计数器,执行java方法时当前线程所执行字节码的行号,线程独有。执行Native方法是该区域为空(undefined)。 6: 虚拟机栈,运行java字节码。本地方法栈运行本地方法。 3)虚拟机类加载父委托机制,如何实现,这么实现的好处是什么。类加载过程 1:父委托机制是指, 4)多态的实现,重载和重写的区别,静态分派,动态分派,静态解析,动态解析,方法的调用过程 5)jstatk,jstat,jps,jmap,jconsole,visualVM, 3,多线程相关,线程的实现,volatile,final,threadLocal(原理和举例),AQS,CAS,线程池,CountDownLatch,CyclicBarrier,Semaphore实现原理,阻塞队列 1)线程的两种实现方式,那种更好,为什么? 2)volatile两种作用,内存语义,final的作用。 3)threadLocal实现原理,举例说明(spring中用到过) 4)AQS实现原理(同步队列,获取和释放同步状态),ReentrantLock(公平锁和非公平锁),读写锁(实现原理),与sychronized有什么异同 5)CAS如何实现同步(配合volatile),如何解决ABA问题 6)线程池和阻塞队列的实现原理,为什么使用线程池更好些 7)CountDownLatch,CyclicBarrier,Semaphore实现原理,还有没有别的实现方式 4,IO,BIO,NIO,AIO实现原理,会使用mina 1)BIO作为阻塞式IO如何进行数据传输的(结合OS读写缓冲区的阻塞说明) 2)NIO的实现原理,为什么不阻塞?(结合轮训和上下文切换说明) 3)Mina和Netty的原理 5,字符串相关的问题,存储,使用,要兼顾JDK6和JDK7以后的版本有什么不同之处 1)字符串存储方式,string,StringBuffer和Stringbuilder的区别,频繁使用“+”作为连接符的坏处 2)==,equals,intern()判断相等的时候问题 3)字符串的常量池 6,三大框架,SSI 1)SpringMVC架构和实现原理 2)Spring的IOC和AOP原理(动态代理) 3)mybatis实现原理。 4)spring和mybatis的缓存实现
宁波朱超 2016-11-29
  • 打赏
  • 举报
回复
面试的时候 我就说 写出8个基本类型 能写得出 我觉得 基础还可以的。 然而情况并不那么乐观。。。
最爱中国风 2016-11-28
  • 打赏
  • 举报
回复
作为十年的老程序猿,我表示我还是搬砖去吧
引用 20 楼 xinfei0803 的回复:
简单啊!自己先看看自己的功底如何吧!别自己滥竽充数却要去面试其他比自己还强的人。以下这些要是都能会的话,就差不多了。 java语言高级特性及框架 1,重要的几个集合的原理,如HashMap,HashTable,ConcurrentHashMap,arrayList,LinkedList,TreeMap 1)hashmap和hashtable,concurrentHashMap实现原理,区别和扩容规则 1:线程安全性和存取速度,HasMap线程不安全,存取速度快;HashTable线程安全,但存取速度很慢,每次存取都加锁;ConcurrentHashMap是锁分段技术,既达到了线程安全,又兼顾存取速度。 2:初始化和扩容,HashMap初始化是16,负载因子为0.75,以原容量2倍的方式扩容;HashTable初始化容量为11,负载因子为0.75,以原容量*2+1的方式扩容;ConcurrentHashMap初始化容量是16,负载因子0.75, 2)vector,arrayList和linkedList实现原理和区别,以及扩容规则 1:arrayList和Vector都是基于数组实现的,LinkedList是基于链表实现的。数组方便于查找,链表方便于插入和删除。 2:Vector线程安全,但操作速度慢。LinkedList和ArrayList线程不安全,操作速度快。 3:ArrayList可以插入重复值且有序,HashSet不能插入重复值且无序,是使用HashMap的keySet来实现的,value用了一个new Object()这种类型。 4:扩容ArrayList以1.5倍的方式进行扩容,Vector以2倍的形式扩容。LinkedList无需扩容,HashSet根据HashMap的扩容规则。 5: 3)TreeMap用什么实现的,用来作为有序的Map和LinkedList孰优孰劣 TreeMap是用红黑树来实现的,用来排序比LinkedList要好,无论是查找还是排序,时间复杂度较低。 2,JVM原理,GC,内存结构,类加载器,多态的实现,调优和监控,反射 1)什么对象会被回收,垃圾回收的算法,Serial,ParNew,Parallel Scavenge,CMS,G1等收集器的特点和用途 1:那些内存需要被回收? 答:通过GC Roots进行可达性分析,如果不可达则证明对象需要被回收。GC Roots包括静态变量(引用)、常量、虚拟机栈、本地方法栈 2:有哪些常用的垃圾回收算法? 标记-清除算法、标记-整理算法、分代收集算法 3:引用的四种类型 强引用(不会被收集)、软引用(内存不够被收集)、弱引用(第一次就被收集)、幽灵引用(仅仅发送通知) 4:安全点和安全区域 安全点:当到达安全点时线程才暂停(进行GC),安全点一般是方法调用、循环跳转、异常跳转等。HotSpot生成一个轮询指令(如test %eax 0x160100),当需要暂停线程时,将地址0x160100设为不可读,这样线程就会陷入异常,在异常处理中等待。 安全区域:是一系列代码,这段代码不会出现引用关系发生变化。线程执行到这段代码时,会标识自己进入安全区域。离开安全区域时会判断GC roots 是否完成。为了解决不在执行状态(非Running)的线程怎么样暂停问题。 4:并发和并行的区别 并发是指多条线程在CPU时间片轮转下交替运行,从外观看起来类似于同时执行。 并行是指多个线程在多个CPU上同时执行,需要多个处理器支持。 5:各垃圾收集器的特点和用途 Serial收集器:单线程回收,对于单CPU不会带来线程上下文切换的开销,只做新生代回收,简单而高效 。对于几十乃至一两百兆的新生代,可以选用。 ParNew收集器:Serial的多线程版本,新生代收集器,CPU越多效率越高。 Parallel Scavenge收集器:新生代收集器,多线程并行执行,吞吐量优先,可以控制GC停顿时间和吞吐量大小,可以开启自适应调解策略。 CMS收集器:老年代收集器,并发收集低停顿。初始标记、并发标记、重新标记、并发清除。1,3花费时间段,2,4花费时间长但可以与用户 线程一起运行。缺点是:1,对CPU资源敏感;2,并发清理产生很多浮动垃圾;3,基于标记清除算法会产生大量空间碎片。 G1收集器: 2)堆内存区域,Eden区,Survivor1,Survivor2,Old,Permanent(方法区和常量池),本地方法栈,虚拟机栈,程序计数器 1:JVM内存结构可分为堆区、java虚拟机栈、本地方法栈、方法区、程序计数器(PC)。 2:堆区可分为年轻代(Young)和老年代(Tenured),年轻代可分为Eden区、Survivor1、Survivor2三个区。 3:永久代包含方法区和运行时常量池,用来存放类加载的信息,可以被GC进行回收,当常量池内容过多,或者类加载过多时,可能OOM。 4:本地内存,基于通道(channel)和缓冲区(Buffer)的I/O方式,可以使用Native函数库直接分配堆外内存,然后通过一个directByteBuffer对象作为这块内存的引用进行操作,可以避免Java堆和Native堆来回复制数据。 5:程序计数器,执行java方法时当前线程所执行字节码的行号,线程独有。执行Native方法是该区域为空(undefined)。 6: 虚拟机栈,运行java字节码。本地方法栈运行本地方法。 3)虚拟机类加载父委托机制,如何实现,这么实现的好处是什么。类加载过程 1:父委托机制是指, 4)多态的实现,重载和重写的区别,静态分派,动态分派,静态解析,动态解析,方法的调用过程 5)jstatk,jstat,jps,jmap,jconsole,visualVM, 3,多线程相关,线程的实现,volatile,final,threadLocal(原理和举例),AQS,CAS,线程池,CountDownLatch,CyclicBarrier,Semaphore实现原理,阻塞队列 1)线程的两种实现方式,那种更好,为什么? 2)volatile两种作用,内存语义,final的作用。 3)threadLocal实现原理,举例说明(spring中用到过) 4)AQS实现原理(同步队列,获取和释放同步状态),ReentrantLock(公平锁和非公平锁),读写锁(实现原理),与sychronized有什么异同 5)CAS如何实现同步(配合volatile),如何解决ABA问题 6)线程池和阻塞队列的实现原理,为什么使用线程池更好些 7)CountDownLatch,CyclicBarrier,Semaphore实现原理,还有没有别的实现方式 4,IO,BIO,NIO,AIO实现原理,会使用mina 1)BIO作为阻塞式IO如何进行数据传输的(结合OS读写缓冲区的阻塞说明) 2)NIO的实现原理,为什么不阻塞?(结合轮训和上下文切换说明) 3)Mina和Netty的原理 5,字符串相关的问题,存储,使用,要兼顾JDK6和JDK7以后的版本有什么不同之处 1)字符串存储方式,string,StringBuffer和Stringbuilder的区别,频繁使用“+”作为连接符的坏处 2)==,equals,intern()判断相等的时候问题 3)字符串的常量池 6,三大框架,SSI 1)SpringMVC架构和实现原理 2)Spring的IOC和AOP原理(动态代理) 3)mybatis实现原理。 4)spring和mybatis的缓存实现
加载更多回复(21)

590

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧