看到大家对上篇<Java面试中遇到的坑>一文表现出强力的关注度,说明大家确实在面试中遇到了类似的难题.大家在文章留言处积极留言探讨面试中遇到的问题,其中几位同学还提出了自己的见解,我感到非常高兴,还有几位同学强烈要求给出题目答案,那我很乐意跟大家一起探讨分享这些题目. 我将题目答案写下来,这个并非标准答案,有不准确的地方请大家辩证补充. 1.StringBuilder替代String拼接,面试中经常会问到String,StringBuilder,StringBuffer的区别. 解答:Stri…
俗话说早起的鸟儿有虫吃,现在临年关越来越近,有跳槽的想法的同事也都打算年前做好功课年后入职,所谓年终奖拿了,工作换的也是水到渠成. 说到这里想必有同学要说了,年底了放着年终奖不拿为何要跳槽呢?这个就要听听我这个老司机的见解了,因为年底很多公司会为明年的宏伟计划储备人才,打算来年大干一场,此时跳槽(俗称入坑)相对比较容易,企业真可谓求贤若渴,那么这会你去面试入职是不是就相对容易一些,我身边一个老司机刚去了平安金融. 反观年后,大批怀抱理想之士奔赴面试场地,企业顺利择优录取,故而年后入职入坑较难.刚…
Java开发中很多人都不愿意修改自己以前的代码,看别人的代码更是无法忍受,当看到别人代码里面一些匪夷所思的写法实现时,恨不得找到负责人好好跟他谈谈心,那么你在开发中是不是也使用到以下几种实现呢. 1.StringBuilder替代String拼接面试中经常问 String,StringBuilder,StringBuffer的区别. 1.对参数未做空验证,就做判断值相等 下面的写法将常量放到方法左边,能防止NPE. 2.这个坑很多兄弟都踩过,知道为什么? 打印结果为false,而下面结果为tru…
问题 (1)AQS的定位? (2)AQS的重要组成部分? (3)AQS运用的设计模式? (4)AQS的总体流程? 简介 AQS的全称是AbstractQueuedSynchronizer,它的定位是为Java中几乎所有的锁和同步器提供一个基础框架. 在之前的章节中,我们一起学习了ReentrantLock.ReentrantReadWriteLock.Semaphore.CountDownLatch的源码,今天我们一起来对AQS做个总结. 状态变量state AQS中定义了一个状态变量state…
JAVA编码中存在一些容易被人忽视的陷阱,稍不留神可能就会跌落其中,给项目的稳定运行埋下隐患.此外,这些陷阱也是面试的时候面试官比较喜欢问的问题. 本文对这些陷阱进行了统一的整理,让你知道应该如何避免落入陷阱中,下面就一起来了解下吧. 循环中操作目标list 遍历List然后对list中符合条件的元素进行删除操作,这是项目里面非常常见的一个场景. 先看下两种典型的错误写法: 错误写法1: for (User user : userList) { if ("男".equals(user.…
[1]您确定真正了解后缀表达式与前缀表达式的区别吗? public class IncrementDemo{ public static void main(String[] args) { int i = 0; int j = 0; i = i++; j = ++j; System.out.printf("i=%d,j=%d \n",i,j); } } 输出结果是什么呢? 关于前缀表达式与后缀表达式,JLS中是这样解释的: 1.The value of the postfix inc…
1.数组 a.特点:同种数据类型:数组类型一旦确定就不能改变. 连续空间存放:数据空间是连续的. 空间长度:数组有自己的长度,初始化的时候需要定义. 数组的下标:从0开始,第一个数组元素下标为0,最后一个元素的下标为总长度减一. 数组存储:可以保存"基本"与"引用"两种类型. b.语法:方法一: int [] sum; //声明 sum = new int [3]; //初始化并定长度 方法二: int [] sum = new int [3]; 方法三: int…
1. Table 'my_data_base.gjp_zhangwu' doesn't exist Query: select * from gjp_zhangwu Parameters: 数据库中的表不存在 2.java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory 需要导入commons-logging jar包…
什么是Scatter/Gather scatter/gather指的在多个缓冲区上实现一个简单的I/O操作,比如从通道中读取数据到多个缓冲区,或从多个缓冲区中写入数据到通道: scatter(分散):指的是从通道中读取数据分散到多个缓冲区Buffer的过程,该过程会将每个缓存区填满,直至通道中无数据或缓冲区没有空间: gather(聚集):指的是将多个缓冲区Buffer聚集起来写入到通道的过程,该过程类似于将多个缓冲区的内容连接起来写入通道: scatter/gather接口 如下是Scatte…
前面一个说了怎么把这个包引用进来,这一节说怎么做一个简单的例子出来,我也是照着别人的例子写的,然后慢慢改就行了,做好的效果如下图 1.在我们的activity_main中把recyclerview填加进来. <android.support.v7.widget.RecyclerView android:id="@+id/recy_list" android:dividerHeight="1dp" android:layout_width="match…