• 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html
  • 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html

2019年02月6日的内容

Java集合框架综述

最近被陆陆续续问了几遍HashMap的实现,回答的不好,打算复习复习JDK中的集合框架,并尝试分析其源码,这么做一方面是这些类非常实用,掌握其实现能更好的优化我们的程序;另一方面是学习借鉴JDK是如何实现了这么一套优雅高效的类库,提升编程能力。在介绍具体适合类之前,本篇文章对Java中的集合框架做一个大致描述,从一个高的角度俯视这个框架,了解……

【备战春招/秋招系列】美团Java面经总结终结篇 (附详解答案)

目录:一. Object类有哪些方法?1.1 Object类的常见方法总结1.2 hashCode与equals1.2.1 hashCode()介绍1.2.2 为什么要有hashCode1.2.3 hashCode()与equals()的相关规定1.2.4 为什么两个对象有相同的hashcode值,它们也不一定是相等的?1.3 =……

Java 8 日期 / 时间( Date Time )API 指南

Java 8日期/时间( Date/Time)API是开发人员最受追捧的变化之一,Java从一开始就没有对日期时间处理的一致性方法,因此日期/时间API也是除Java核心API以外另一项倍受欢迎的内容。为什么我们需要新的Java日期/时间API?在开始研究Java 8日期/时间API之前,让我们先来看一下为什么我们需要这样一个新的API。……

阿里淘宝秒杀系统设计详解

一些数据大家还记得2013年的小米秒杀吗?三款小米手机各11万台开卖,走的都是大秒系统,3分钟后成为双十一第一家也是最快破亿的旗舰店。经过日志统计,前端系统双11峰值有效请求约60w以上的QPS ,而后端cache的集群峰值近2000w/s、单机也近30w/s,但到真正的写时流量要小很多了,当时最高下单减库存tps是红米创造,达到1500/s。……

Java NIO:浅析I/O模型

  也许很多朋友在学习NIO的时候都会感觉有点吃力,对里面的很多概念都感觉不是那么明朗。在进入Java NIO编程之前,我们今天先来讨论一些比较基础的知识:I/O模型。下面本文先从同步和异步的概念 说起,然后接着阐述了阻塞和非阻塞的区别,接着介绍了阻塞IO和非阻塞IO的区别,然后介绍了同步IO和异步IO的区别,接下来介绍了5种IO模型,最后介绍了……

String 常量池和 String#intern()

String是Java基础的重要考点。可问的点多,而且很多点可以横向切到其他考点,或纵向深入JVM。本文略过了String的基本内容,重点在于String#intern()。String常量池String常量可能会在两种时机进入常量池:编译期:通过双引号声明的常量(包括显示声明、静态编译优化后的常量,如”1”+”2”优化为常……

17张图揭密支付宝系统架构

支付宝的系统架构图,仅供参考。不管是不是支付行业,都值得我们参考,学习。……

整合SSM框架的高并发和商品秒杀项目(一)

一个整合SSM框架的高并发和商品秒杀项目,学习目前较流行的Java框架组合实现高并发秒杀API项目开发流程本项目很适合学习一些技术的基础,这个项目的开发分为几个流程,很基础地教你接触到一个相对有技术含量的项目Java高并发秒杀API之业务分析与DAO层Java高并发秒杀API之web层Java高并发秒杀API之Service……

理解、学习与使用 Java 中的 Optional!

导读本文将从以下5个方面阐述Java 中的 Optional,帮助实现你的理解、学习与使用:创建 Optional  实例 转换值Optional 类的链式方法Java9增强Optional  应该怎样用?        从 Java 8 引入的一个很有趣的特性是 Optional  ……

Java线程池实现原理与技术I

无限制线程的缺陷多线程的软件设计方法确实可以最大限度地发挥多核处理器的计算能力,提高生产系统的吞吐量和性能。但是,若不加控制和管理的随意使用线程,对系统的性能反而会产生不利的影响。一种最为简单的线程创建和回收的方法类似如下:new Thread(new Runnable() {    @Override    public void……

Docker 核心概念、安装、端口映射及常用操作命令

Docker简介Docker是开源应用容器引擎,轻量级容器技术。基于Go语言,并遵循Apache2.0协议开源Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux系统上,也可以实现虚拟化容器完全使用沙箱技术,相互之间不会有任何接口类似于虚拟机技术(vmwa……

饿了么:日订单量超900万的架构设计及演进之路

网站在刚开始的时候大概只是一个想法:一个产业的模型,快速地将它产生出来。“快”是第一位的,不需要花太多精力在架构设计上。在网站进入扩张期才需要对架构投入更多的精力来承载网站在爆发时的流量。饿了么成立已经8年,现在日订单量突破900万,我们也有了较为完善的网站架构。一、网站基础架构初期,我们使用了能够更容易拓展SOA的框……

为什么不用原生Spring-Cloud-Config

引言近几年传统应用架构已经逐渐朝着微服务架构演进。那么随着业务的发展,微服务越来越庞大,此时服务配置的管理变得会复杂起来。为了方便服务配置文件统一管理,实时更新,配置中心应运而生。其实,所谓配置中心,就是将配置的数据放在某种存储介质中,该介质可以是File(例如Git、Svn)Database(例如mysql、oracle)……

深入理解正则表达式

一 前言对于正则表达式,相信很多人都知道,但是很多人的第一感觉就是难学,因为看第一眼时,觉得完全没有规律可寻,而且全是一堆各种各样的特殊符号,完全不知所云。其实只是对正则不了解而以,了解了你就会发现,原来就这样啊正则所用的相关字符其实不多,也不难记,更不难懂,唯一难的就是组合起来之后,可读性比较差,而且不容易理解,本文旨在让大家对正则有一个基……

Java面试基础必备知识点,怼死面试官,从我做起

面向对象编程(OOP)Java是一个支持并发、基于类和面向对象的计算机编程语言。下面列出了面向对象软件开发的优点:代码开发模块化,更易维护和修改。代码复用。增强代码的可靠性和灵活性。增加代码的可理解性。面向对象编程有很多重要的特性,比如:封装,继承,多态和抽象。下面的章节我们会逐个分析这些特性。封……

分布式之缓存击穿

题记 什么是缓存击穿在谈论缓存击穿之前,我们先来回忆下从缓存中加载数据的逻辑,如下图所示因此,如果黑客每次故意查询一个在缓存内必然不存在的数据,导致每次请求都要去存储层去查询,这样缓存就失去了意义。如果在大流量下数据库可能挂掉。这就是缓存击穿。场景如下图所示:我们正常人在登录首页的时候,都是根据userID来命中数据,然而黑……

面试总结:Java高级篇(下),收藏慢慢看!

22.关于抽象类和接口的关系简言之抽象类是一种功能不全的类,接口只是一个抽象方法声明和静态不能被修改的数据的集合,两者都不能被实例化。从某种意义上说,接口是一种特殊形式的抽象类,在java语言中抽象类表示的是一种继承关系,一个类只能继承继承一个抽象类,而一个类却可以实现多个接口。在许多情况下,接口确实可以代替抽象类,如果你不需要刻意表达属……

推荐系统杂谈

首先需要明确的就是推荐系统的目标,一般来说不外乎以下几个:用户满意性:首当其冲的,推荐系统主要就是为了满足用户的需求,因此准确率是评判一个推荐系统好坏的最关键指标。多样性:虽然推荐系统最主要还是满足用户的兴趣,但是也要兼顾内容的多样性,对于权重不同的兴趣都要做到兼顾。新颖性:用户看到的内容是那些他们之前没有听说过的物品。简……

最最最常见的Java面试题总结——第二周

String和StringBuffer、StringBuilder的区别是什么?String为什么是不可变的?String和StringBuffer、StringBuilder的区别可变性  String类中使用字符数组: private final char value[]保存字符串,所以String对象是不可变的。StringBuild……

面试官,为什么总是问我这些 JVM 问题?

1、你知道哪些或者你们线上使用什么GC策略?它有什么优势,适用于什么场景?参考 触发JVM进行Full GC的情况及应对策略。https://blog.csdn.net/chenleixing/article/details/46706039/2、Java类加载器包括几种?它们之间的关系是怎么样的?双亲委派机制是什么意思?有什么好处?……

一篇文章看懂Java并发和线程安全(一)

前言长久以来,一直想剖析一下Java线程安全的本质,但是苦于有些微观的点想不明白,便搁置了下来,前段时间慢慢想明白了,便把所有的点串联起来,趁着思路清晰,整理成这样一篇文章。导读为什么有多线程?线程安全描述的本质问题是什么?Java内存模型(JMM)数据可见性问题、指令重排序、内存屏障揭晓答案为什么有多线程谈到多……

深度解析某头条的一道TopN面试题!

 首先,某头条的文章量、用户量都是很大的,点击量那就更恐怖了!请问,如果实时展现热门文章,比如近8小时点击量最大的文章前100名。如果是你来开发这个功能,你怎么做?这个好办啊,Redis一个SortedSet搞定啊,Score计数,Key是文章ID,不就OK了么?回答的不错,你可以走了!要听清题目,说好的8小时动态时间窗口,计数是会过……

关于缓存命中率的几个关键问题!

 一、缓存命中率的介绍命中:可以直接通过缓存获取到需要的数据。不命中:无法直接通过缓存获取到想要的数据,需要再次查询数据库或者执行其它的操作。原因可能是由于缓存中根本不存在,或者缓存已经过期。通常来讲,缓存的命中率越高则表示使用缓存的收益越高,应用的性能越好(响应时间越短、吞吐量越高),抗并发的能力越强。由此可见,在高并发的互联网系统……

Java Web基础面试题整理

1、什么是Servlet?可以从两个方面去看Servlet:a、API:有一个接口servlet,它是servlet规范中定义的用来处理客户端请求的程序需要实现的顶级接口。b、组件:服务器端用来处理客户端请求的组件,需要在web.xml文件中进行配置。2、Servlet的生命周期,并说出Servlet和CGI的区别?servle……

  • 精品技术教程
  • 编程资源分享
  • 问答交流社区
  • 极客文库知识库

客服QQ


QQ:2248886839


工作时间:09:00-23:00