Java面试
Mr.chen108
本人毕业于华南师范大学软件工程。希望可以多与大家进行学术上的交流!
展开
-
触发Full gc条件
1.调用System.gcimport java.util.ArrayList;import java.util.List;/** * * created by: gaoxingliang@outlook.com * created:2016年3月20日 *//** * -XX:+UseSerialGC -Xms200M -Xmx200M -Xmn32m -XX:Survi...转载 2019-03-05 04:48:56 · 299 阅读 · 0 评论 -
Java中HashMap底层实现原理(JDK1.8)源码分析
网址:https://blog.csdn.net/tuke_tuke/article/details/51588156原创 2019-03-04 12:49:03 · 217 阅读 · 0 评论 -
2018.8.22日阿里巴巴java实习生面试答案整理
java基础:1.基本数据类型Java基本类型共有八种,基本类型可以分为三类,字符类型char,布尔类型boolean以及数值类型byte、short、int、long、float、double。2.基本数据类型所占字节长度类型 占用字节 占用位数 byte 1 8 short 2 16 i...转载 2019-03-07 02:51:30 · 357 阅读 · 0 评论 -
linux基本命令大全
基本命令关机:shutdown -h halt init 0 poweroff重启:shutdown -r reboot init 6pwd:查看工作目录ls:查看指定目录的内容-l:列表显示-a:显示所有,包括隐藏文件-h:人性化的显示-d:只显示目录,不查看内容cd:切换工作目录.:当...转载 2019-03-07 08:46:05 · 419 阅读 · 0 评论 -
面试必备之乐观锁与悲观锁
何谓悲观锁与乐观锁 乐观锁对应于生活中乐观的人总是想着事情往好的方向发展,悲观锁对应于生活中悲观的人总是想着事情往坏的方向发展。这两种人各有优缺点,不能不以场景而定说一种人好于另外一种人。悲观锁总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给...转载 2019-03-04 19:57:28 · 84 阅读 · 0 评论 -
深入学习 FutureTask
链接: http://www.importnew.com/25286.html转载 2019-03-10 23:07:24 · 109 阅读 · 0 评论 -
Java并发编程:Callable、Future和FutureTask
传统的创建线程的两种方式:一种是直接继承Thread,另外一种就是实现Runnable接口。这2种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果。如果需要获取执行结果,就必须通过共享变量或者使用线程通信的方式来达到效果,这样使用起来就比较麻烦。而自从Java 1.5开始,就提供了Callable和Future,通过它们可以在任务执行完毕之后得到任务执行结果。今天我们就来讨论一下Ca...转载 2019-03-11 01:06:39 · 79 阅读 · 0 评论 -
Java复制数组的四种方法:arraycopy()方法、clone() 方法、copyOf()和copyOfRange()方法
所谓复制数组,是指将一个数组中的元素在另一个数组中进行复制。在 Java 中实现数组复制有 4 种方法,分别为使用 Arrays 类的 copyOf() 方法和 copyOfRange() 方法、System 类的 arraycopy() 方法和 Object 类的 clone() 方法。下面来详细介绍这 4 种方法的使用。使用 copyOf() 方法和 copyOfRange() 方法...转载 2019-03-07 18:58:13 · 3193 阅读 · 0 评论 -
如何在面试中介绍自己的项目经验
在面试时,经过寒暄后,一般面试官会让介绍项目经验 。常见的问法是,说下你最近的(或最拿得出手的)一个项目。 根据我们的面试经验,发现有不少候选人对此没准备,说起来磕磕巴巴,甚至有人说出项目经验从时间段或技术等方面和简历上的不匹配,这样就会造成如下的后果。第一印象就不好了,至少会感觉该候选人表述...转载 2019-03-25 02:50:33 · 565 阅读 · 0 评论 -
为何stop()和suspend()方法不推荐使用???
stop()方法作为一种粗暴的线程终止行为,在线程终止之前没有对其做任何的清除操作,因此具有固有的不安全性。 用Thread.stop()方法来终止线程将会释放该线程对象已经锁定的所有监视器。如果以前受这些监视器保护的任何对象都处于不连贯状态,那么损坏的对象对其他线程可见,这有可能导致不安全的操作。 由于上述原因,因此不应该使用stop()方法,而应该在自己的Thread类中置入一个标志,用于控制...转载 2019-03-22 20:50:16 · 166 阅读 · 0 评论 -
@Autowired 与@Resource的区别(详细)
很详细的解释,大赞!!https://blog.csdn.net/weixin_40423597/article/details/80643990原创 2019-04-02 13:49:46 · 6932 阅读 · 1 评论 -
什么是JDBC?
JDBC(Java DataBase Connectivity),是一套面向对象的应用程序接口(API),制定了统一的访问各类关系数据库的标准接口,为各个数据库厂商提供了标准的实现。通过JDBC技术,开发人员可以用纯Java语言和标准的SQL语句编写完整的数据库应用程序,并且真正地实现了软件的跨平台性。通常情况下使用JDBC完成以下操作:1.同数据库建立连接;2.向数据库发送SQL语句;3...转载 2019-03-04 01:14:30 · 236 阅读 · 0 评论 -
Java中Exception和Error有什么区别?
Error类和Exception类的父类都是throwable类,他们的区别是:Error类一般是指与虚拟机相关的问题,如系统崩溃,虚拟机错误,内存空间不足,方法调用栈溢等。对于这类错误的导致的应用程序中断,仅靠程序本身无法恢复和和预防,遇到这样的错误,建议让程序终止。Exception类表示程序可以处理的异常,可以捕获且可能恢复。遇到这类异常,应该尽可能处理异常,使程序恢复运行,而不应该随意...原创 2019-03-03 23:32:53 · 257 阅读 · 0 评论 -
2016届阿里实习生java研发岗一面二面三面四面经验分享
转自:http://mp.weixin.qq.com/s?__biz=MjM5MTAzMTE4Nw==&mid=203817016&idx=2&sn=b79c7b079912cee8681090c4a30795b1&scene=5#rd研二是需要找实习的时候了,因阿里有同学内推就直接参加了电话面试,不说...转载 2019-03-06 14:48:29 · 1390 阅读 · 0 评论 -
数据库-锁(概念、分类、粒度)
(1)概念:数据库是一个多用户使用的共享资源。当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。加锁是实现数据库并发控制的一个非常重要的技术。当事务在对某个数据对象进行操作前,先向系统发出请求,对其加锁。加锁后事务就对该数据对象有了一定的控制,在该事务释放锁之前,其他的事务不能对此数据对象进行更...转载 2019-03-05 09:01:55 · 1041 阅读 · 0 评论 -
数据库的锁机制
开发过程中一直听别人说死锁,可有不理解,今天看了一篇博文讲解的非常详细,简单易懂,所以,转载下来。首先感谢原博主,转载地址:点击打开链接http://blog.csdn.net/samjustin1/article/details/52210125#reply这里做个简明解释,为下面描述方便,这里用T1代表一个数据库执行请求,T2代表另一个请求,也可以理解为T1为一个线程,T2 为另一个线程。...转载 2019-03-05 10:19:16 · 216 阅读 · 0 评论 -
MYSQL的四种事务隔离级别
一、事务的基本要素(ACID)1、原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。也就是说事务是一个不可分割的整体,就像化学中学过的原子,是物质构成的基本单位。2、一致性(Consistency):事务开始前和结束后,数据库的完整性约束没有被破坏 。比如A向B转账,不可...转载 2019-03-05 15:21:14 · 93 阅读 · 0 评论 -
MySql索引实现原理
MySQL索引背后的数据结构及算法原理前两天经历了武汉一行腾讯面试,数据库索引是一个面试热点,在此搜集相关资料,以备学习之用。下面是一位牛人写得关于数据库索引的精品之作,因为很好,不敢修饰,转载至此与博友共享。原文链接:MySQL索引背后的数据结构及算法原理本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别...转载 2019-03-05 23:11:31 · 396 阅读 · 0 评论 -
IP地址的分类
A类地址(1~126):网络号占前8位,以0开头,主机号占后24位。B类地址(128~191):网络号占前16位,以10开头,主机号占后16位。C类地址(192~223):网络号占前24位,以110开头,主机号占后8位。D类地址(224~239):以1110开头,保留位多播地址。E类地址(240~255):以1111开头,保留位今后使用。注意:(1) 网络号剩余字段全为0的IP地址是保...原创 2019-03-06 01:08:58 · 668 阅读 · 0 评论 -
了解交换机、路由器、网关的概念,并知道各自的用途
(1) 中继器中继器工作在物理层,用来连接两个速率相同且数据链路层协议也相同的网段,连接起来的几个网段仍然是一个局域网。中继器功能是消除数字信号在基带传输中由于经过一长段电缆而造成的失真和衰减,使信号的波形和强度达到所需的要求,其原理是信号再生。中继器既不能隔离冲突域,也不能隔离广播域。(2) 集线器集线器也工作在物理层,相当于一个多接口的中继器,可以将多个节点连接成一个共享式局域网,但...原创 2019-03-06 10:09:15 · 1135 阅读 · 0 评论 -
Java8的HashMap详解(存储结构,功能实现,扩容优化,线程安全,遍历方法)
Java 8系列之重新认识HashMap,有删改。 JDK1.8对HashMap底层的实现进行了优化,例如引入红黑树的数据结构和扩容的优化等。本文结合JDK1.7和JDK1.8的区别,深入探讨HashMap的结构实现和功能原理,文章末尾附有HashMap的put方法和resize方法的源码解析。简介Java为数据结构中的映射定义了一个接口java.util.Map,此接口主要有四个常用的实现...转载 2019-03-08 15:54:35 · 674 阅读 · 0 评论 -
进程和线程的区别是什么?
进程是执行着的应用程序,而线程是进程内部的一个执行序列。一个进程可以有多个线程。线程又叫做轻量级进程。线程与进程的区别归纳:a.地址空间和其它资源:进程间相互独立,同一进程的各线程间共享。某进程内的线程在其它进程不可见。b.通信:进程间通信IPC,线程间可以直接读写进程数据段(如全局变量)来进行通信——需要进程同步和互斥手段的辅助,以保证数据的一致性。c.调度和切换:线程上下文切换比进程上...原创 2019-03-03 15:28:31 · 533 阅读 · 0 评论 -
什么是死锁(deadlock)?
所谓死锁是指多个进程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程都将无法向前推进。死锁产生的4个必要条件:互斥条件:进程要求对所分配的资源(如打印机)进行排他性控制,即在一段时间内某 资源仅为一个进程所占有。此时若有其他进程请求该资源,则请求进程只能等待。不剥夺条件:进程所获得的资源在未使用完毕之前,不能被其他进程强行夺走,即只能 由获得该资源的进程自己来释放(只能是主动释放...原创 2019-03-03 16:18:28 · 9268 阅读 · 0 评论 -
Redis 总结精讲 看一篇成高手系统-4
转载自: https://blog.csdn.net/hjm4702192/article/details/80518856 本文围绕以下几点进行阐述1、为什么使用redis2、使用redis有什么缺点3、单线程的redis为什么这么快4、redis的数据类型,以及每种数据类型的使用场景5、red...转载 2019-03-06 14:27:09 · 131 阅读 · 0 评论 -
为什么说Redis是单线程的以及Redis为什么这么快
一、前言近乎所有与Java相关的面试都会问到缓存的问题,基础一点的会问到什么是“二八定律”、什么是“热数据和冷数据”,复杂一点的会问到缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题,这些看似不常见的概念,都与我们的缓存服务器相关,一般常用的缓存服务器有Redis、Memcached等,而笔者目前最常用的也只有Redis这一种。如果你在以前面试的时候还没有遇到过面试官问你《为什么说Red...转载 2019-04-15 09:42:04 · 156 阅读 · 0 评论