
java面试
文章平均质量分 92
Happywuw
学习如逆水行舟,不近则退!
由于目前公司有很不错的学习平台,以及个人笔记平台,暂停博客更新。但也会定期把笔记批量更新到博客。
展开
-
Java NIO 系列教程
Java NIO 系列教程Java NIO提供了与标准IO不同的IO工作方式: Channels and Buffers(通道和缓冲区):标准的IO基于字节流和字符流进行操作的,而NIO是基于通道(Channel)和缓冲区(Buffer)进行操作,数据总是从通道读取到缓冲区中,或者从缓冲区写入到通道中。Asynchronous IO(异步IO):Java N转载 2017-08-10 14:24:23 · 340 阅读 · 0 评论 -
java线程-面试
创建线程的方式及实现继承Thread类创建线程类(1)定义Thread类的子类,并重写该类的run方法,该run方法的方法体就代表了线程要完成的任务。因此把run()方法称为执行体。(2)创建Thread子类的实例,即创建了线程对象。(3)调用线程对象的start()方法来启动该线程。通过Runnable接口创建线程类(1)定义runnable接口的实现类,并重写该接口的run()方法,该run(...原创 2018-03-22 10:29:44 · 358 阅读 · 0 评论 -
JVM专题—java类的加载过程
类加载过程类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)和卸载(Unloading)7个阶段。其中准备、验证、解析3个部分统称为连接(Linking)。如图所示。加载、验证、准备、初始化和卸载这5个...转载 2018-05-09 11:34:38 · 355 阅读 · 0 评论 -
2018面试——4.JVM&多线程&锁
1、聊一下垃圾收集器,如果对象太大会在哪里分配内存? 垃圾收集器主要 CMS垃圾收集器与G1收集器2、创建线程池有几种方法?其中一个最大线程数参数是做什么的?Java线程池的分析和使用美团线程池面试题3、内置锁的实现原理synchronized?原理4、notify的实现原理是什么?跟park unpark有什么区别通常,多线程之间需要协调工作。例如,浏览器的一个显示图片的线程display...原创 2018-04-25 16:20:35 · 368 阅读 · 0 评论 -
2018面试——6.Zookeeper专题
1、有了解过zookeeper吗?讲一下你对分布式事物的理解?如果要你实现分布式事务你怎么做?2 、如何用zookeeper实现分布式锁的? 3、分布式一致性是啥?原理?几种实现的优缺点4、zk的选主过程,脑裂问题如何解决...原创 2018-04-25 16:23:06 · 495 阅读 · 0 评论 -
2018面试——8.设计模式专题
不知道大家有木有遇到手写设计模式的情况,反正楼主遇到了,这东西一段时间不看还真想不起来。1、写一下单例模式2、写一下工厂模式3、写一下代理模式4、写一下装饰者模式5、写一下模板模式...原创 2018-04-25 16:26:45 · 468 阅读 · 0 评论 -
2018面试——10.Java细节方面专题
1、了解equal()和hashCode()吗?如果equal()重写了,hashCode()会有问题吗?在java应用程序执行期间,如果在equals方法比较中所用的信息没有被修改,那么在同一个对象上多次调用hashCode方法时必须一致地返回相同的整数。如果多次执行同一个应用时,不要求该整数必须相同。如果两个对象通过调用equals方法是相等的,那么这两个对象调用hashCode方法必须返回相...原创 2018-05-10 09:51:39 · 397 阅读 · 0 评论 -
MySQL—1、数据库索引的实现原理及查询优化
MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。使用索引的目的在于提高查询效率,这篇文章梳理一下索引的实现原理和应用。不同的存储引擎索引实现的数据结构不同MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如B-Tree索引,哈希索引,全文索引等,主要存储引擎有MyISAM、InnoDB、MEMORY和ME...转载 2018-04-26 10:19:53 · 900 阅读 · 0 评论 -
多线程&JVM&锁相关—乐观的并发策略——基于CAS的自旋
悲观者与乐观者的做事方式完全不一样,悲观者的人生观是一件事情我必须要百分之百完全控制才会去做,否则就认为这件事情一定会出问题;而乐观者的人生观则相反,凡事不管最终结果如何,他都会先尝试去做,大不了最后不成功。这就是悲观锁与乐观锁的区别,悲观锁会把整个对象加锁占为自有后才去做操作,乐观锁不获取锁直接做操作,然后通过一定检测手段决定是否更新数据。这一节将对乐观锁进行深入探讨。上节讨论的Synchron...转载 2018-05-04 16:08:00 · 287 阅读 · 0 评论 -
多线程&JVM&锁相关—深入学习java同步器AQS
介绍:AQS(AbstractQueuedSynchronizer类)是一个用来构建锁和同步器的框架,它在内部定义了一个int state变量,用来表示同步状态.在LOCK包中的相关锁(常用的有ReentrantLock、 ReadWriteLock)都是基于AQS来构建.然而这些锁都没有直接来继承AQS,而是定义了一个Sync类去继承AQS.那么为什么要这样呢?because:锁面向的是使用用户...原创 2018-05-04 16:21:08 · 280 阅读 · 0 评论 -
实现redis的key失效所引发的一系列问题
如何实现redis的key失效, 主动失效的流程,如何保证下一轮可以继续上一轮的检测,默认的通过检验的比例是多少,让你来实现,你打算怎么做。1.通过设置过期时间使redis的key失效 EXPIRE key 30上面的命令即为key设置30秒的过期时间,超过这个时间,我们应该就访问不到这个值了,到此为止我们大概明白了什么是缓存失效机制以及缓存失效机制的一些应用场景,接下来我们继续深入探究这个问题...原创 2018-03-26 12:06:26 · 8693 阅读 · 0 评论 -
mysql并发操作引发的一些思考
最近公司项目中用到了关系型数据库mysql,其中会涉及到并发操作,之前也用过mysql,但是只是停在了简单的用上面(老大搭好架子、写好demo,我模仿),趁放假好好看看相关的资料,解决一下我一直以来的疑惑。在网上查阅文章的过程中,我对mysql有了新的认识,对锁、事务等有了了解。感觉要深入理解mysql锁还是需要花费很多时间的,在这里我先浅尝辄止,只记录一下自己的理解。我的疑惑:一、应用程序转载 2018-02-05 11:41:52 · 618 阅读 · 0 评论 -
Get请求和Post请求的区别
Get请求和Post请求的区别 (1)使用Get请求时,参数在URL中显示,而使用Post请求,则不会显示出来; (2)Post传输的数据量大,可以达到2M,而Get方法由于受到URL长度的限制,只能传递大约1024字节. (3)Get请求请求需注意缓存问题,Post请求不需担心这个问题; (4)Post请求必须设置Content-Type值为application/x-form-原创 2018-02-01 13:32:11 · 423 阅读 · 0 评论 -
阿里、百度、搜狐等公司社招面试记录与总结
转载自:http://www.cnblogs.com/binyue/p/4015884.html这个跳槽季大概面试了近十家公司,也拿到了几个Offer,现在面试告一段落,简单总结下面经,我现在主要的方向是Java服务端开发,把遇到的问题和大家分享一下,也谈谈关于技术人员如何有方向的提高自己,做到有的放矢。一、面试遇到的问题 1.百度转载 2017-08-17 16:54:57 · 970 阅读 · 0 评论 -
《淘宝技术这十年》读书笔记
从工程师的角度讲述了淘宝的成长历程,还有几次技术变革的前因后果。1.淘宝的技术升级淘宝建立之初对外是以个人网站作宣传,第一版一个月上线,采用LAMP架构。是修改了国外的一个拍卖系统源码,主要对数据库进行分库,读写分离(存储容量增加,备份,安全性增加,读写效率提升—写要比读更加消耗资源,分开后互不干扰);最初只有一台服务器,随着访问量的增加,将数据库服务器独立出来,同时,增加转载 2017-08-24 18:03:45 · 520 阅读 · 0 评论 -
《淘宝技术这十年》读书笔记
很有价值又很好玩的一本书,可以全面的了解淘宝的技术升级路线。豆瓣读书从工程师的角度讲述了淘宝的成长历程,还有几次技术变革的前因后果。1.淘宝的技术升级淘宝建立之初对外是以个人网站作宣传,第一版一个月上线,采用LAMP架构。是修改了国外的一个拍卖系统源码,主要对数据库进行分库,读写分离(存储容量增加,备份,安全性增加,读写效率提升—写要比读更加消耗资源,分开后互不干扰转载 2017-10-12 23:08:17 · 509 阅读 · 0 评论 -
Java开发中程序和代码性能优化
现在计算机的处理性能越来越好,加上JDK升级对一些代码的优化,在代码层针对一些细节进行调整可能看不到性能的明显提升,但是在开发中注意这些,更多的是保持一种性能优先的意识,养成良好的编码习惯。 一 条件控制语句中的优化1.在循环中应该避免使用复杂的表达式。在循环中,循环条件会被反复计算,应该避免把一些计算放在循环进行的部分中,程序将会运行的更快。比如:转载 2017-10-13 11:07:35 · 340 阅读 · 0 评论 -
设计模式应用相关面试题目
设计模式理论1.什么是设计模式?你是否在你的代码里面使用过任何设计模式?在软件工程中,设计模式(design pattern)是对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案。平时用的比较多有单例模式(在内存中仅实例化一个对象时使用),适配器模式(典型的就是ListView和GridView的适配器),建造者模式(AlertDialog.Builder),观察者模式可转载 2017-10-13 11:15:55 · 3566 阅读 · 0 评论 -
Java并发编程相关面试问题
基础概念1.什么是原子操作?在Java Concurrency API中有哪些原子类(atomic classes)?原子操作(atomic operation)意为"不可被中断的一个或一系列操作" 。处理器使用基于对缓存加锁或总线加锁的方式来实现多处理器之间的原子操作。在Java中可以通过锁和循环CAS的方式来实现原子操作。 CAS操作——Compare & Set,或是转载 2017-10-15 23:38:31 · 491 阅读 · 0 评论 -
数据库和MySQL相关面试题目
数据库理论1.触发器的作用?触发器是一种特殊的存储过程,主要是通过事件来触发而被执行的。它可以强化约束,来维护数据的完整性和一致性,可以跟踪数据库内的操作从而不允许未经许可的更新和变化。可以联级运算。如,某表上的触发器上包含对另一个表的数据操作,而该操作又会导致该表触发器被触发。2.什么是存储过程?用什么来调用?存储过程是一个预编译的SQL语句,优点是允许模块化转载 2017-10-15 23:39:31 · 506 阅读 · 0 评论 -
Java语言基础相关的面试题目
1.CGLIB 和 JDK生成动态代理类的区别。JDK动态代理只能对实现了接口的类生成代理,而不能针对类 CGLIB是针对类实现代理,主要是对指定的类生成一个子类,覆盖其中的方法2.HashMap、HashTable和concurrentHashMap的区别,HashMap的底层实现。1.HashTable的方法是同步的,HashMap未经同步,所以在多线程场合要手动同步H转载 2017-10-15 23:54:27 · 296 阅读 · 0 评论 -
kafka分布式消息队列 — 基本概念介绍
【http://www.inter12.org/archives/818】这个应该算是之前比较火热的词了,一直没时间抽出来看看。一个新东西出来,肯定是为了解决某些问题,不然不会有它的市场。先简单看下。官方介绍:分布式、分区、支持复制的日志提交系统适用场景:顾名思义,特别适合用于系统日志的异步记录,对于数据稳定性、一致性、可靠性要求不高的场景,追求的是高吞吐量。非传统的MQ产品!转载 2017-11-30 21:34:22 · 417 阅读 · 0 评论 -
Redis技能——Codis
其实codis原理和官方cluster基本一致,但是:codis是选用了一系列已证明靠谱的方案来构建(如zk选主/存放元数据;采用无状态proxy,而不是smart client等)为方便运维提供了一系列工具/接口再加上公司内部的一定规模应用所以大家用它更多。作者:CafeBabe链接:https://www.zhihu.com/question/30857837/answer/169207128...原创 2018-05-14 23:22:54 · 1415 阅读 · 0 评论