自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

javafirst

分享Java开发技术、Java面试笔试题、IT技术、Java学习视频资源

  • 博客(61)
  • 资源 (8)
  • 问答 (1)
  • 收藏
  • 关注

原创 Java面试笔试:面试为什么需要了解Java虚拟机?

最近极客时间上线了一个专栏《深入拆解Java虚拟机》,导致不少人来问我,JVM是不是真的要学?面试官都会问JVM的问题吗?很重要吗?的确很重要。随着互联网的发展,高并发高可用、快速响应成为软件的必须,而JVM与这些有着密切关联。之前JVM系列好多都是一些由于STW影响到快速响应问题,忽然网站慢一下(抖动下)等问题,下面谈谈最近通过JVM排查到的高并发高可用问题。(在高可用高并发下面问题原因...

2018-07-18 12:33:29 1056

转载 Java POI 导出EXCEL经典实现 Java导出Excel弹出下载框

在web开发中,有一个经典的功能,就是数据的导入导出。特别是数据的导出,在生产管理或者财务系统中用的非常普遍,因为这些系统经常要做一些报表打印的工作。而数据导出的格式一般是EXCEL或者PDF,我这里就分别给大家介绍下。(注意,我们这里说的数据导出可不是数据库中的数据导出!么误会啦^_^)首先我们来导出EXCEL格式的文件吧。现在主流的操作Excel文件的开源工具有很多,用得比较多的就是Apach...

2018-07-10 18:08:57 1974

转载 HTTPS 到底加密了什么?

关于 HTTP 和 HTTPS 这个老生常谈的话题,我们之前已经写过很多文章了,比如这篇《从HTTP到HTTPS再到HSTS》,详细讲解了 HTTP 和 HTTPS 的进化之路,对的没错,就是 HTTP 兽进化 HTTPS 兽。那么今天我们主要聊一聊 HTTPS 到底加密了些什么内容。先跟大家讲个故事,我初恋是在初中时谈的,我的后桌。那个时候没有手机这类的沟通工具,上课交流有三宝,脚踢屁股、笔戳后...

2018-07-10 18:07:33 444

转载 九年程序人生 工作总结

时间一晃而过,大学毕业转眼间已经工作 9 年了,总结一下自己这些年来感受。与程序打交道的人生,是简单的人生一次做规划局的项目,规划局的职员很是钦佩地说:“你们真了不起,在电脑上敲敲键盘就能做出软件来。”,规划局领导说:“跟电脑打交道是最简单的,难的是跟人打交道。”。领导的话很有深意,一语道破了本质,做程序的人,是比较简单的。不懂什么叫编程大学本科,读 “计算机科学与技术专业”(相信看这篇博客的人多...

2018-07-10 18:06:10 283

转载 排序算法—— 希尔排序、快速排序

微信公众号:javafirst今天还是给小伙伴们介绍两种排序算法希尔排序希尔排序又称缩小增量排序,是1959年由D.L.Shell提出来的。算法描述:1)先取定一个小于 n 的整数 gap1 作为第一个增量,把整个序列分成 gap1 组。所有距离为 gap1 的倍数的元素放在同一组中,在各组内分别进行排序(分组内采用直接插入排序或其它基本方式的排序)。2)然后取第二个增量gap2<gap1,...

2018-07-10 18:04:18 385

转载 程序员调 Bug 的写照

程序员调 Bug 的样子,非常真实~↓↓↓(动图原作者是 @我的邻居全是猫 )微信公众号:javafirst

2018-07-10 17:58:01 569

转载 架构设计方法初探

微信公众号:javafirst1. 基本概念和目的架构设计的目的是为了解决系统复杂度带来的问题,并不是要面面俱到,不需要每个架构都具备高性能、高可用、高扩展等特点,而是要识别出实际业务实际情况的复杂点,然后有有针对性地解决问题,即:有的放矢,而不是贪大求全。 在实际情况中,不一定每个系统都要做架构设计,需要结合实际情况。有时候最简单的设计开发效率反而是最高的,架构设计毕竟要投入时间和人力,这部分投...

2018-07-09 17:25:33 270

转载 Java程序员面试失败的五大原因!

微信公众号:javafirst下面是 Java 程序员面试失败最有可能的5大原因,当然也许这5点原因适用于所有的程序员,所以,如果你是程序员,请认真阅读以下内容。看点01说得太少尤其是那些开放式的问题,如“请介绍下你自己”或“请讲一下你曾经解决过的复杂问题”。面试官会通过你对这些技术和非技术问题的回答来评估你的激情。他们也会通过模拟团队氛围和与你的交流互动来判断你的经验和能力。所以,仅仅只用两三句...

2018-07-09 17:24:03 3590

转载 干货 | 彻底弄懂 HTTP 缓存机制及原理

微信公众号:javafirst前言Http 缓存机制作为 web 性能优化的重要手段,对于从事 Web 开发的同学们来说,应该是知识体系库中的一个基础环节,同时对于有志成为前端架构师的同学来说是必备的知识技能。但是对于很多前端同学来说,仅仅只是知道浏览器会对请求的静态文件进行缓存,但是为什么被缓存,缓存是怎样生效的,却并不是很清楚。在此,我会尝试用简单明了的文字,像大家系统的介绍HTTP缓存机制,...

2018-07-09 17:22:17 286

转载 《JavaScript经典面试题》第7道:下面的代码运行结果是什么么?

微信公众号:javafirstJavaScript(ECMAScript)是一种弱类型语言,它可对值进行自动类型转换,以适应正在执行的操作。让我们通过下面的6个例子来说明一下。例子1:得到的结果是:解析: 1 + "2" + "2" 输出: "122" 。  1 + "2" 是执行的第一个操作。由于其中一个运算对象 "2" 是字符串,JavaScript会假设它需要执行字符串连接,因此,会将 1 ...

2018-07-09 17:20:38 1223

转载 程序员之歌:我是一个程序员

微信公众号:javafirst​你们是不是这样的呢更多资源扫一扫免费获取

2018-07-09 17:19:09 2812

转载 静态代理 VS 动态代理

微信公众号:javafirst本篇博客的由来,之前我们学习大话设计,就了解了代理模式,但为什么还要说呢?原因:1.通过DRP这个项目,了解到了动态代理,认识到我们之前一直使用的都是静态代理,那么动态代理又有什么好处呢?它们二者的区别是什么呢?2.通过学习动态代理了解到动态代理是一种符合AOP设计思想的技术,那么什么又是AOP?下面是我对它们的理解!代理Proxy:Proxy代理模式是一种结构型设计...

2018-07-09 17:15:53 238

转载 Java 解惑:Comparable 和 Comparator 的区别

微信公众号:javafirstJava 中为我们提供了两种比较机制:Comparable 和 Comparator,他们之间有什么区别呢?今天来了解一下。Comparable 自然排序Comparable 在 java.lang 包下,是一个接口,内部只有一个方法 compareTo():public interface Comparable<T> {    public int co...

2018-07-08 17:01:21 349

转载 Java 性能优化的五大技巧

微信公众号:javafirst要对你的 java 代码进行优化,需要理解 java 不同要素之间的相互作用,以及它是如何与其运行时的操作系统进行交互的。使用下面这五个技巧和资源,开始学习如何分析和优化你的代码吧。在我们开始之前, 你也许会担心许可的问题. Java 为 Oracle 公司所有,遵循 Oracle 的 BCL 许可,该许可证不是一个免费/开源许可证。即便如此, 仍然有许多开源项目由 ...

2018-07-08 16:59:22 240

转载 非科班程序员如何逆袭?

微信公众号:javafirst看着身边的同学和朋友的情况,有感而发,打算从各方面角度说一说这件事。近几年,互联网创业潮让IT技术人员的需求大大增加,各类IT培训机构风生水起,办得如火如荼。大多培训机构都是以保底工资nk,年薪轻松上10w,秒成高富帅,迎娶白富美,走上人生巅峰为噱头。从之前的Android、IOS大火,到市场饱和掉……当然饱和的大多数应该是初级的,对于中高级开发,公司还是很稀缺的……...

2018-07-08 16:58:06 348

转载 《JavaScript经典面试题》第6道:NaN 是什么?如何测试一个值是否等于 NaN ?

微信公众号:javafirstNaN 这个知识点的问题在《趣味ES6》的系列很多人留言说觉得很绕,不好理解,的确,NaN 也成为面试官喜欢考察的一个知识点。NaN 属性代表一个“不是数字”的值。这个特殊的值是因为运算不能执行而导致的,不能执行的原因要么是因为其中的运算对象之一非数字。例如: "abc" / 4,要么是因为运算的结果非数字。例如:除数为零。虽然这看上去很简单,但 NaN 有一些令人惊...

2018-07-08 16:57:06 4184

转载 Java Web现代化开发:Spring Boot + Mybatis + Redis二级缓存

微信公众号:javafirst背景Spring-Boot因其提供了各种开箱即用的插件,使得它成为了当今最为主流的Java Web开发框架之一。Mybatis是一个十分轻量好用的ORM框架。Redis是当今十分主流的分布式key-value型数据库,在web开发中,我们常用它来缓存数据库的查询结果。本篇博客将介绍如何使用Spring-Boot快速搭建一个Web应用,并且采用Mybatis作为我们的O...

2018-07-08 16:56:12 243

转载 MySQL到底有多少种日志类型需要我们记住的!

微信公众号:javafirstMySQL中有六种日志文件,分别是:重做日志(redo log)、回滚日志(undo log)、二进制日志(binlog)、错误日志(errorlog)、慢查询日志(slow query log)、一般查询日志(general log),中继日志(relay log)。其中重做日志和回滚日志与事务操作息息相关,二进制日志也与事务操作有一定的关系,这三种日志,对理解My...

2018-07-08 16:54:12 15881 2

转载 《JavaScript经典面试题》第5道:小心javascript自动插入分号机制

微信公众号:javafirst在《JavaScript语言精粹》这本书里,这个“自动插入分号”机制被划入到了JavaScript的毒瘤里面,与之并列的前面的全局变量。 有些时候,不合时宜地插入分号,会导致严重的后果。 比如一个return语句要正确返回一个值,这个值的表达式的开始部分必须和return位于同一行。今天,我们就来聊聊这个知识点,看下面的代码函数,它们会返回什么?出人意料的是,这两个函...

2018-07-08 16:52:27 257

转载 7天内我面试了10家公司,如何从命中率0%到命中率至70%?

微信公众号:javafirst背景先交代下po主背景,女, 17年江苏二本通信工程专业毕业,求职前端开发工程师。毕业后在上海一家创业公司担任前端开发工程师。网络配图内心独白实事求是地写年限,心急吃不了热豆腐;实事求是告诉面试官对不起我不会,而不是我忘了,我不记得了,记不起来了之类的话。从第一次面试的迷茫和对自身的否定,到经历各种类型的公司努力学习看清方向,收获很多,深感如果平时能够找对方向,遇到问...

2018-07-08 16:50:59 304

转载 为什么说 Java 程序员到了必须掌握 Spring Boot 的时候?

微信公众号:javafirstSpring Boot 2.0 的推出又激起了一阵学习 Spring Boot 热,就单从我个人的博客的访问量大幅增加就可以感受到大家对学习 Spring Boot 的热情,那么在这么多人热衷于学习 Spring Boot 之时,我们自己也在思考: Spring Boot 为什么带来了这么大的变革。它诞生的背景是什么?Spring 企业又是基于什么样的考虑创建的 Sp...

2018-07-08 16:49:36 308

转载 《JavaScript经典面试题》第4道:

微信公众号:javafirst对于这个问题,你可以这样回答面试官:use strict 是一种在JavaScript代码运行时自动实行更严格解析和错误处理的方法。严格模式的一些主要优点包括:1.使调试更加容易。那些被忽略或默默失败了的代码错误,会产生错误或抛出异常,因此尽早提醒你代码中的问题,你才能更快地指引到它们的源代码。2.防止意外的全局变量。如果没有严格模式,将值分配给一个未声明的变量会自动...

2018-07-08 16:47:33 390

转载 来自投资银行的20个Java面试题

微信公众号:javafirst本文收集了20个来自投资银行的Java面试题,每一个都特别经典,分享给各位Java开发者。问题一:在多线程环境中使用HashMap会有什么问题?在什么情况下使用get()方法会产生无限循环?HashMap本身没有什么问题,有没有问题取决于你是如何使用它的。比如,你在一个线程里初始化了一个HashMap然后在多个其他线程里对其进行读取,这肯定没有任何问题。有个例子就是使...

2018-07-06 18:07:49 6043

转载 《JavaScript经典面试题》第3道:关于this指向的常见面试题

微信公众号:javafirst继续我们的经典面试题系列,今天我们了解一下关于函数内部this指向的问题,用一个简单的例子来讲解一下:看下面的代码,你觉得输出的结果是什么?代码中我们4次调用来console.log()来在控制台输出内容,请问4次的内容分别是什么?在外部函数中, this和self两者都指向了 myObject ,因此两者都可以正确地引用和访问foo。 在内部函数中,this不再指向...

2018-07-06 18:05:36 5130 2

转载 对高并发流量控制的一点思考

微信公众号:javafirst前言在实际项目中,曾经遭遇过线上5W+QPS的峰值,也在压测状态下经历过10W+QPS的大流量请求,本篇博客的话题主要就是自己对高并发流量控制的一点思考。应对大流量的一些思路首先,我们来说一下什么是大流量?大流量,我们很可能会冒出:TPS(每秒事务量),QPS(每秒请求量),1W+,5W+,10W+,100W+...。其实并没有一个绝对的数字,如果这个量造成了系统的压...

2018-07-06 18:04:40 261

转载 Reddit 如何统计每个帖子的浏览量

微信公众号:javafirst之前没听过也没了解过 HyperLogLog,通过翻译这篇文章正好简单学习下。欢迎指正错误~我们想要更好的向用户展示 Reddit 的规模。为了这一点,投票和评论数是一个帖子最重要的指标。然而,在 Reddit 上有相当多的用户只浏览内容,既不投票也不评论。所以我们想要建立一个能够计算一个帖子浏览数的系统。这一数字会被展示给帖子的创作者和版主,以便他们更好的了解某个帖...

2018-07-06 18:02:52 1471

转载 十个提高编码技能的诀窍,你掌握了几个?

微信公众号:javafirst原文:10 Tips to improve your coding skills翻译:王江平译者注:此文主要介绍一些提高编程技巧的小方法或者说是技能,嗯,我比较推崇第一条…..多练,熟能生巧。你想成为一名程序员,并且正在为之奋斗,那么你努力的方式,比如做事方法、思维习惯都将会影响你会成为怎样的一名程序员。 那么,你需要成为一个天才才能学好编程吗?我觉得没有必要。 你必...

2018-07-06 18:01:16 1055 1

转载 《JavaScript经典面试题》第2道:下面的代码将输出什么到控制台?

微信公众号:javafirst我们今天继续学习一道经典的面试题。这道题一般会以笔试题的形式出现,题目如下,看代码:问:下面的代码将输出什么到控制台,为什么?这个时候,部分开发者就会认为,变量a和b都是声明定义在匿名函数内部的,属于函数内的局部变量,如果要在函数外部进行打印调用,a和b则为undefined。所以最后两行代码打印的结果都是true。然而结果并非如此,之所以这么理解的原因是,他们把这句...

2018-07-06 17:59:52 1696

转载 分布式与集群的区别

微信公众号:javafirst简单说,分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效率。例如:如果一个任务由10个子任务组成,每个子任务单独执行需1小时,则在一台服务器上执行改任务需10小时。采用分布式方案,提供10台服务器,每台服务器只负责处理一个子任务,不考虑子任务间的依赖关系,执行完这个任务只需一个小时。(这种工作模式的一个典型代表就是Hado...

2018-07-06 17:58:07 247

转载 Java并发编程之volatile关键字解析

微信公众号:javafirstvolatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volati...

2018-07-06 17:55:14 227

转载 谈谈架构师的御人之道

 微信公众号:javafirstvolatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volat...

2018-07-05 17:37:28 287

转载 一位程序员的十年工作总结,值得每位互联网人看看

微信公众号:javafirst展望未来,总结过去10年的程序员生涯,给程序员小弟弟小妹妹们的一些总结性忠告。走过的路,回忆起来是那么曲折,把自己的一些心得体会分享给程序员兄弟姐妹们,虽然时代在变化,但是很可能你也会走我已经走过的10年的路程,有些心得体会你可以借鉴一下,觉得说得有道理的你就接纳,觉得说得没道理的你就抛弃,以下是我发自内心的,给大家的忠告,特别是针对那些小弟弟妹妹们。01. 自己的户...

2018-07-04 12:59:02 1936

转载 《JavaScript经典面试题》第1道:用typeof来判断对象的潜在陷阱

 微信公众号:javafirst近期总结一些web前端面试的经典问题,分享给大家,说不定哪天面试你就会用上了。今天我们来讲一个比较简单但是会比较常遇到的问题。问:使用 typeof bar === "object" 来确定 bar 是否是对象的潜在陷阱是什么?如何避免这个陷阱?尽管 typeof bar === "object" 是检查 bar 是否对象的可靠方法,令人惊讶的是在JavaScrip...

2018-07-04 12:57:33 735

转载 如何判断程序员在做什么

 微信公众号:javafirst1、打字快且停顿:写代码中;2、键盘鼠标并用且不停点击:在debug;3、不停滚轮或pagedown:在查错;4、不停按刷新/F5:脚本卡住了;5、一动不动紧盯屏幕:程序抛出异常;6、表情时而严肃时而轻松:产品上线测试中;7、手放键盘上长时间未动:加班太多猝死了……更多资源扫一扫免费获取...

2018-07-04 12:56:00 414

转载 SpringMVC与Struts2的区别与比较总结

微信公众号:javafirst1、Struts2是类级别的拦截, 一个类对应一个request上下文,SpringMVC是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应,所以说从架构本身上SpringMVC就容易实现restful url,而struts2的架构实现起来要费劲,因为Struts2中Action的一个方法可以对应一个url,而其类属性却被所有方法共...

2018-07-04 12:53:01 241

转载 在Intellij IDEA中使用Debug

微信公众号:javafirstDebug用来追踪代码的运行流程,通常在程序运行过程中出现异常,启用Debug模式可以分析定位异常发生的位置,以及在运行过程中参数的变化。通常我们也可以启用Debug模式来跟踪代码的运行流程去学习三方框架的源码。所以学习下如何在Intellij IDEA中使用好Debug,主要包括如下内容:Debug开篇基本用法&快捷键变量查看计算表达式智能步入断点条件设置多...

2018-07-04 12:50:47 1247

转载 Java 中的伪共享详解及解决方案

微信公众号:javafirst1. 什么是伪共享CPU 缓存系统中是以缓存行(cache line)为单位存储的。目前主流的 CPU Cache 的 Cache Line 大小都是 64 Bytes。在多线程情况下,如果需要修改“共享同一个缓存行的变量”,就会无意中影响彼此的性能,这就是伪共享(False Sharing)。2. 缓存行由于共享变量在 CPU 缓存中的存储是以缓存行为单位,一个缓存...

2018-07-04 12:48:43 1558 2

转载 套路盘点,那些年程序员都是如何找到对象的

微信公众号:javafirst经常会有妹子跑来傻乎乎地问我,哎,你说,程序员是不是都是网上说的,钱多人傻,情商低呀~“......”你怎么会看上一个程序员啊~,多无聊!呵呵,我眼瞎好吗?他喵的谁和你说程序员都是这样子的,我家的程序员可是长腿欧巴加持土豪属性好吗~话说,同我家猿探讨过这个问题,猿都情商低,不懂浪漫,这真心只是个例。我家猿列举出的一些浪漫套路简直让我大跌眼镜,很多猿浪漫起来撒的狗粮啃一...

2018-07-04 12:46:36 903

转载 程序员秃顶算工伤吗?

微信公众号:javafirst在各个年龄段的程序猿中,70后以年龄优势遥遥领先,80后开始油腻,90后开始掉发,掉发的迅猛程度隐隐有赶超80后的趋势,脱单已然不是他们最担心的问题,脱发才是!程序猿敲掉不不光是键盘上的字母,更是头顶上原本可怜兮兮的头发……曾经小鲜肉如今变成了“地中海大叔”。据苏宁IT基于内部500名程序员的头发分析,正式对外发布了“脱发”大数据。更是为6000+程序猿享受了一场特殊...

2018-07-04 12:45:05 548

转载 轻松了解Spring中的控制反转和依赖注入

微信公众号:javafirst我们回顾一下计算机的发展史,从最初第一台计算机的占地面积达170平方米,重达30吨,到现如今的个人笔记本,事物更加轻量功能却更加丰富,这是事物发展过程中的一个趋势,在技术领域中同样也是如此。企业级JavaBean(Enterprise JavaBean,EJB)在创建之初是非常成功,但是时间一久人们便开始追逐更加方便更加简易和轻量级的技术框架实现,于是Spring就应...

2018-07-04 12:35:33 266

Linux Shell脚本攻略(第2版)

Linux Shell脚本攻略(第2版)

2017-06-21

JAVA API1.6中文文档

JAVA API1.6中文文档,Java程序员的必备手册之一,适用于于不擅长看英语文档的小伙伴。谁用谁知道。

2017-03-06

Java面试宝典2017

一套经典的Java面试题,不管是新手老鸟,相信都会有用的,不会让你失望。帮助你复习面试时取得事半功倍的效果。

2017-03-06

鸟哥的Linux私房菜基础篇第三版

《鸟哥的Linux私房菜:基础学习篇》是最具知名度的Linux入门书《鸟哥的Linux私房菜基础学习篇》的最新版,全面而详细地介绍了Linux操作系统。全书分为5个部分:第一部分着重说明Linux的起源及功能,如何规划和安装Linux主机;第二部分介绍Linux的文件系统、文件、目录与磁盘的管理;第三部分介绍文字模式接口shell和管理系统的好帮手shell脚本,另外还介绍了文字编辑器vi和vim的使用方法;第四部分介绍了对于系统安全非常重要的Linux账号的管理,以及主机系统与程序的管理,如查看进程、任务分配和作业管理;第五部分介绍了系统管理员(root)的管理事项,如了解系统运行状况、系统服务,针对登录文件进行解析,对系统进行备份以及核心的管理等。

2017-03-06

阿里巴巴Java开发手册

2017年开春之际,诚意献上重磅大礼:阿里巴巴Java开发手册,首次公开阿里官方Java代码规范标准。 这套Java统一规范标准将有助于提高行业编码规范化水平,帮助行业人员提高开发质量和效率、大大降低代码维护成本。

2017-03-03

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除