
java面试
文章平均质量分 61
程序员乔戈里
微信qiaogeli12342
知乎 乔戈里
展开
-
零基础学习一年拿到BAT三家offer
背景1、本人本科一本双非垫底的那种,硕士211。本硕电子通信,完全0基础,转行一年。2、研一上第一学期上课+外派到老师合作公司写MATLAB。去年4月开始学习Java。起步1、实话说,刚决定转行的时候完全零基础一开始真的啥也不会,甚至不知道怎么去学习。的确,计算机资源很多,自学足够的但是完全不知道怎么去用去学习啊!啥是leetcode?啥是github?啥是IDEA?啥是牛客...转载 2019-09-06 00:51:54 · 732 阅读 · 0 评论 -
牛客网剑指offer java 全部题解
经过数月的努力,终于更完了牛客网的66道剑指offer,以下的顺序和大家在牛客网的顺序是一样的(排序也花了不少时间),希望对大家找工作/提高算法能力能起到些许帮助。每天一道剑指offer-二维数组中的查找https://mp.weixin.qq.com/s?__biz=MzI5MzYzMDAwNw==&mid=2247484262&idx=2&sn=83fb17...原创 2019-02-22 23:27:01 · 1475 阅读 · 0 评论 -
求职面试的几点建议(肺腑之言)
考试结束,班级平均分只拿到了年级第二,班主任于是问道:大家都知道世界第一高峰珠穆朗玛峰,有人知道世界第二高峰是什么吗?正当班主任要继续发话,只听到角落默默想起来一个声音:”乔戈里峰”前言 我的室友看了我在做公众号在给大家传授一些经验,他(已拿百度后台开发offer)也想着给大家分享一下他秋招踩过的坑,这里是我的室友的一些经验之谈,望与诸君共勉~零、我踩的坑 这一节是本文精髓,后面的...原创 2018-11-08 23:47:20 · 542 阅读 · 1 评论 -
一道百度java面试题的多种解法
考试结束,班级平均分只拿到了年级第二,班主任于是问道:大家都知道世界第一高峰珠穆朗玛峰,有人知道世界第二高峰是什么吗?正当班主任要继续发话,只听到角落默默想起来一个声音:”乔戈里峰”前言 文章出自:https://www.cnblogs.com/dudu19939/p/9784116.html这道题是群里的朋友的投稿,上面是这位朋友的原文博客链接,这道题目我在百度的面试也遇到过,...转载 2018-11-06 23:55:38 · 234 阅读 · 0 评论 -
如果时光倒流,我会这样学java
文章首发于我的个人公众号 程序员乔戈里 从一开始刚接触java,兜兜转转看过不少书和视频,当时也没有人指导,所有的东西都是自己摸索,看过不少晦涩难懂的书,走过不少的弯路,虽然目前还在学习当中,但把我一些经验教训分享给大家,帮助大家少走一些弯路。Java入门看到这里,你可能以为我要推荐《Java编程思想》或者《Java核心技术卷1》,这两本书我都有看过,我要说的是NO!NO!NO!如果有人对你推...原创 2018-10-18 19:45:35 · 715 阅读 · 1 评论 -
volatile的原理和实现机制 系统级别原理 MESI协议 总结笔记
https://blog.youkuaiyun.com/jjavaboy/article/details/77164474 http://www.infoq.com/cn/articles/ftf-java-volatilevolatile原理底层是靠一个lock指令来保证顺序性和 可见性 1.lock指令会引起处理器中的工作缓存的数据强制写回到工作内存 2.lock指令会令其它CPU的工作...原创 2018-08-16 15:30:54 · 1192 阅读 · 0 评论 -
Java面试通关要点汇总 答案参考
原文:Java面试通关要点汇总1.基本功~GET和POST两种基本请求方法的区别答:https://www.cnblogs.com/logsharing/p/8448446.html 1.GET和POST本质上就是TCP链接,并无差别。但是由于HTTP的规定和浏览器/服务器的限制,导致他们在应用过程中体现出一些不同。 GET和POST还有一个重大区别,简单的说: GET产...原创 2018-08-16 14:51:36 · 350 阅读 · 0 评论 -
线程的生命周期 笔记
1.新建 new Thread()进入此状态 2.Thread.start()进入就绪状态 或者 在运行状态执行yield()放弃CPU的执行转到就绪状态 或者是阻塞状态转入 3.阻塞状态 sleep() 同步锁获取失败进入阻塞状态 执行了wait方法进入一个等待状态(图中没有 https://blog.youkuaiyun.com/watering_sea/article/detail...原创 2018-08-16 09:31:47 · 210 阅读 · 0 评论 -
HashMap? ConcurrentHashMap? 相信看完这篇没人能难住你!
前言Map 这样的 Key Value 在软件开发中是非常经典的结构,常用于在内存中存放数据。本篇主要想讨论 ConcurrentHashMap 这样一个并发容器,在正式开始之前我觉得有必要谈谈 HashMap,没有它就不会有后面的 ConcurrentHashMap。HashMap众所周知 HashMap 底层是基于 数组 + 链表&nbs...转载 2018-08-13 21:53:55 · 315 阅读 · 0 评论 -
【BATJ面试必会】Java 基础篇(一)
一、数据类型包装类型缓存池二、String概览不可变的好处String, StringBuffer and StringBuilderString Poolnew String(“abc”)三、运算参数传递float 与 double隐式类型转换switch四、继承访问权限抽象类与接口super重写与重载五、Object 通用方法...转载 2019-02-27 18:54:10 · 509 阅读 · 0 评论 -
一位老学长的真实互联网校招求职心路历程~
自我介绍听说很多家公司2019年的春招已经陆续开始了,作为一个备战过2018年春招和秋招的求职狗,想来聊一下自己的校招求职经历~我本科是哈尔滨的一所211大学(万年老二),学的是电子信息工程,由于当年高考发挥失常,自己又不想复读,所以从入学的时候就决定要读研了,虽然自己离保研还差那么一点,但是好在自己没有完全放弃准备考研,所以最终有幸被哈尔滨工业大学录取,研究生学的是信息与通信工程。研究生首先...转载 2019-02-28 14:15:03 · 284 阅读 · 0 评论 -
面试官问你“有什么问题问我吗?”,你该如何回答?
我还记得当时我去参加面试的时候,几乎每一场面试,特别是HR面和高管面的时候,面试官总是会在结尾问我:“问了你这么多问题了,你有什么问题问我吗?”。这个时候很多人内心就会陷入短暂的纠结中:我该问吗?不问的话面试官会不会对我影响不好?问什么问题?问这个问题会不会让面试官对我的影响不好啊?这个问题对最终面试结果的影响到底大不大?就技术面试而言,回答这个问题的时候,只要你不是触碰到你所面试的公司的雷区...转载 2019-03-01 13:00:13 · 2242 阅读 · 1 评论 -
某团面试题:JVM 堆内存溢出后,其他线程是否可继续工作?
来源:http://sina.lt/gqaM最近网上出现一个美团面试题:“一个线程OOM后,其他线程还能运行吗?”。我看网上出现了很多不靠谱的答案。这道题其实很有难度,涉及的知识点有jvm内存分配、作用域、gc等,不是简单的是与否的问题。由于题目中给出的OOM,java中OOM又分很多类型;比如:堆溢出(“java.lang.OutOfMemoryError: Java heap space”...转载 2019-08-19 22:37:22 · 170 阅读 · 0 评论 -
面试进阶必问的Redis,看这篇就够了!
出自:https://github.com/CyC2018/CS-Notes一、概述二、数据类型STRINGLISTSETHASHZSET三、数据结构字典跳跃表四、使用场景计数器缓存查找表消息队列会话缓存分布式锁实现其它五、Redis 与 Memcached数据类型数据持久化分布式内存管理机制六、键的过期时间七、数据...转载 2019-05-22 13:58:08 · 1139 阅读 · 0 评论 -
BATJ面试必会之 Spring 篇(一)
译者:深海 校对:方腾飞出自并发编程网 – ifeve.com目录Spring 概述依赖注入Spring beansSpring注解Spring数据访问Spring面向切面编程(AOP)Spring MVCSpring 概述什么是spring?Spring 是个java企业级应用的开源开发框架。Spring主要用来开发Java应用,...转载 2019-03-11 23:23:29 · 249 阅读 · 0 评论 -
BATJ面试必会之Java IO 篇
一、概览二、磁盘操作三、字节操作实现文件复制装饰者模式四、字符操作编码与解码String 的编码方式Reader 与 Writer实现逐行输出文本文件的内容五、对象操作序列化Serializabletransient六、网络操作InetAddressURLSocketsDatagram七、NIO流与块通道与缓冲区缓冲区状态变...转载 2019-03-10 10:47:43 · 186 阅读 · 0 评论 -
第一次面试字节跳动
作者:Nu11Pointer出处:https://www.nowcoder.com/discuss/155740=============================================================================本人南京某985渣渣研究生一枚,生平第一次面试。。。说出来你们可能不信虽然基本上是GG的节奏,还是写下这个帖子来记录一下吧,大...转载 2019-03-04 11:02:29 · 454 阅读 · 0 评论 -
BATJ面试必会之并发篇
一、线程状态转换新建(New)可运行(Runnable)阻塞(Blocking)无限期等待(Waiting)限期等待(Timed Waiting)死亡(Terminated)二、使用线程实现 Runnable 接口实现 Callable 接口继承 Thread 类实现接口 VS 继承 Thread三、基础线程机制ExecutorDaemonsleep...转载 2019-03-09 11:46:36 · 193 阅读 · 0 评论 -
面经获取
分享下面文字和图片到朋友圈(所有人可见保留1天)或者发一个群聊保留2分钟以上也行(但你如果发群里可能会被踢,提醒你一下)我朋友的公众号,有很多求职面试干货(如:http://t.cn/E2kHxG6),帮他宣传一下...原创 2019-03-02 21:49:22 · 484 阅读 · 0 评论 -
科班和非科班都适用的 Java 学习路线
很多面试官在基础考察的时候都是直接是根据书来问,因为这些面试官也是从学生时代过来的,而他们可能和你看的是同一本书。也就是如果你和面试官的知识体系结构一样的话,面试官问出来的问题,你自然可以回答得很好。下面是书籍推荐:#00 推荐 《head first Java》head first系列一直口碑不错,这本书更是适合java入门,先看完这本书,然后看下面的这些。或者看《疯狂java讲义》,两者...转载 2019-03-02 18:50:46 · 452 阅读 · 0 评论 -
【BATJ面试必会】Jvm 虚拟机篇
一、运行时数据区域程序计数器Java 虚拟机栈本地方法栈堆方法区运行时常量池直接内存二、垃圾收集判断一个对象是否可被回收引用类型垃圾收集算法垃圾收集器三、内存分配与回收策略Minor GC 和 Full GC内存分配策略Full GC 的触发条件四、类加载机制类的生命周期类加载过程类初始化时机类与类加载器类加载器分类双亲委派模型...转载 2019-03-05 10:08:24 · 255 阅读 · 0 评论 -
对象在内存中的初始化过程
参考:1.https://blog.youkuaiyun.com/WantFlyDaCheng/article/details/81808064 2.《深入理解java虚拟机》 Student s = new Student() 为例 1.首先查看类的符号引用,看是否已经在常量池中,在说明已经加载过了,不在的话需要进行类的加载,验证,准备,解析,初始化的过程。 2.上诉过程执行完毕以后,又将Stude...原创 2018-08-18 14:00:42 · 932 阅读 · 0 评论 -
Java基础-对象的内存分配与初始化(一定要明白的干货)
首先,什么是类的加载?类的加载由类加载器执行.该步骤将查找字节码(classpath指定目录),并从这些字节码中创建一个Class对象。Java虚拟机为每种类型管理一个独一无二的Class对象。也就是说,每个类(型)都有一个Class对象。一旦某个类的Class对象被载入到内存,他就被用来创建这个类的所有对象。类的加载会发生在什么时候呢?所有的类都是在其第一次使用的时候,动态加载到JVM的。当程...转载 2018-08-18 13:40:14 · 1738 阅读 · 0 评论 -
Finally 到底实在return之前还是之后执行的?
结论:1.finally是在return返回之前执行的,也就是说finally必执行(当然是建立在try执行的基础上) 2.finally修改的基本类型是不影响返回结果的。(传值的) 3.修改list ,map,自定义类等引用类型时,是影响返回结果的。(传址的)对象也是传址的 4.其中例如return b+=10 这条语句先执行,也就是说b的值已经成了b+10了然后再去执行finally...原创 2018-08-13 19:29:52 · 1664 阅读 · 0 评论 -
JAVA CAS原理深度分析
看了一堆文章,终于把JAVA CAS的原理深入分析清楚了。感谢GOOGLE强大的搜索,借此挖苦下百度,依靠百度什么都学习不到! 参考文档:http://www.blogjava.net/xylz/archive/2010/07/04/325206.htmlhttp://blog....转载 2018-08-11 23:56:01 · 181 阅读 · 0 评论 -
白话经典算法系列之七 堆与堆排序
堆排序与快速排序,归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法。学习堆排序前,先讲解下什么是数据结构中的二叉堆。二叉堆的定义二叉堆是完全二叉树或者是近似完全二叉树。二叉堆满足二个特性:1.父结点的键值总是大于或等于(小于或等于)任何一个子节点...转载 2018-08-11 19:28:05 · 181 阅读 · 0 评论 -
CopyOnWriteArrayList和CopyOnWriteArraySet 原理总结
参考链接: 聊聊并发-Java中的Copy-On-Write容器 Java并发编程与技术内幕:CopyOnWriteArrayList、CopyOnWriteArraySet源码解析前言:CopyOnWriteArrayList和CopyOnWriteArraySet 感觉非常简单,其中CopyOnWriteArraySet是基于CopyOnWriteArrayList实现的,只有add的...原创 2018-08-14 20:14:27 · 3096 阅读 · 0 评论 -
ThreadLocal 原理 总结
1.首先看了 Java并发编程:深入剖析ThreadLocal 这篇文章,这篇文章首先用用一个数据库连接的例子,如多个线程同时进行连接和关闭数据库操作,有可能会导致某个线程刚打开的数据库连接操作,被另一个线程打开的数据库关闭操作给关闭了。然后往下再看没看明白。 2.接着看了ThreadLocal工作原理这篇文章 这篇文章看完了了解了个大概意思:ThreadLocal 定义了多个Threadl...原创 2018-08-14 18:22:33 · 328 阅读 · 0 评论 -
Semaphore Exchanger 原理总结
参考链接: http://ifeve.com/concurrency-exchanger/ http://ifeve.com/concurrency-semaphore/ https://www.cnblogs.com/nullzx/p/5270233.htmlSemaphore概念:用来控制并发线程数,好比当前道路只能容纳100辆车,未到达100的时候,就可以进去,到了100的话,...原创 2018-08-14 14:32:35 · 336 阅读 · 0 评论 -
CountDownLatch CyclicBarrier 原理 总结
参考链接:http://ifeve.com/talk-concurrency-countdownlatch/ https://www.cnblogs.com/nullzx/p/5271964.html https://blog.youkuaiyun.com/zzg1229059735/article/details/61191679 https://www.jianshu.com/p/060761df1...原创 2018-08-14 14:09:18 · 2076 阅读 · 1 评论 -
Java多线程 面试必看 整合版
Java并发编程:Callable、Future和FutureTask 什么时候使用CountDownLatch 你真的理解CountDownLatch与CyclicBarrier使用场景吗? JAVA多线程和并发基础面试问答 40个Java多线程问题总结 并发工具类(一)等待多线程完成的CountDownLatch 并发工具类(二)同步屏障CyclicBarrier 并发工具类(...原创 2018-08-14 10:01:49 · 288 阅读 · 0 评论 -
java面试必看书单
编程之法 https://legacy.gitbook.com/book/wizardforcel/the-art-of-programming-by-july/details原创 2018-08-09 10:42:01 · 8130 阅读 · 4 评论 -
漫画:什么是 CAS 机制?
https://blog.youkuaiyun.com/bjweimengshu/article/details/78949435点击上方“程序员小灰”,选择“置顶公众号”有趣有内涵的文章第一时间送达!————— 第二天 ————...转载 2018-08-12 08:59:57 · 222 阅读 · 0 评论 -
HashMap HashSet 原理详解 与 对比
参考链接: HashSet与HashMap的区别 深入Java集合学习系列:HashMap的实现原理 Java 集合系列10之 HashMap详细介绍(源码解析)和使用示例 Java HashSet的实现原理详解Hashmap1.原理数组链接结构,put原理:首先计算key的hash值,找到table数组中的位置,找到table[i]位置后,这个链表找是否有这个key值,...原创 2018-08-13 17:03:33 · 2356 阅读 · 0 评论 -
ReenTrantLcok Condition 原理笔记
参考:深入剖析基于并发AQS的(独占锁)重入锁(ReetrantLock)及其Condition实现原理 https://blog.youkuaiyun.com/javazejian/article/details/750434221.Condition节点 waitStatues:等待队列中结点的状态只有两种即CANCELLED和CONDITION,前者表示线程已结束需要从等待队列中移除,后者表...原创 2018-08-15 22:54:02 · 254 阅读 · 0 评论 -
HashMap的工作原理
本文由 ImportNew - 唐小娟 翻译自 Javarevisited。欢迎加入翻译小组。转载请见文末要求。HashMap的工作原理是近年来常见的Java面试题。几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道Hashtable和HashMap之间的区别,那么为何这道面试题如此特殊呢?是因为这道题考察的深度很深。这题经常出现在高级或中高级面...转载 2018-08-13 10:53:00 · 197 阅读 · 0 评论 -
ReenTranReadWriteLock 读写锁 笔记
参考博客链接: 1.https://blog.youkuaiyun.com/qq_19431333/article/details/70568478 2.https://blog.youkuaiyun.com/yanyan19880509/article/details/52435135背景知识继承AQS的类都需要使用state变量代表某种资源,ReentrantReadWriteLock中的state代...原创 2018-08-13 09:56:01 · 720 阅读 · 0 评论 -
Java线程池实现原理 整合版
参考链接: https://www.cnblogs.com/zhaojinxin/p/6668247.html https://www.cnblogs.com/dongguacai/p/6030187.html https://www.jianshu.com/p/87bff5cc8d8c https://github.com/crossoverJie/Java-Interview/blob...原创 2018-08-12 21:52:17 · 244 阅读 · 0 评论 -
java并发之阻塞队列LinkedBlockingQueue与ArrayBlockingQueu 笔记总结
参考链接:深入剖析java并发之阻塞队列LinkedBlockingQueue与ArrayBlockingQueuArrayBlockingQueue1.基于数组实现,保证并发的安全性是基于ReetrantLock和Condition实现的。其中有两个重要的成员变量putindex和takeindex,这两个需要搞懂,putindex就是指向数组中上一个添加完元素的位置的下一个地方,比...原创 2018-08-15 10:36:42 · 620 阅读 · 0 评论 -
java面试 面经 链接整合
https://www.suilengea.com/show/xazcigxaxa.html 【纯干货】关于Java面试,你应该准备这些知识点 https://juejin.im/entry/58f2e3bf0ce463006baf31a1 关于 Java 面试,你应该准备这些知识点...原创 2018-08-12 19:05:30 · 884 阅读 · 0 评论