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

2019年02月3日的内容

指令重排序详解

指令重排序如果说内存可见性问题已经让你抓狂了,那么下边的这个指令重排序的事儿估计就要骂娘了~这事儿还得从一段代码说起:publicclassReordering{    privatestaticboolean flag;    privatestaticint num;    publicstaticvoidmain(Strin……

Spring、Spring MVC、MyBatis 整合文件配置详解

使用SSM框架做了几个小项目了,感觉还不错是时候总结一下了。先总结一下SSM整合的文件配置。其实具体的用法最好还是看官方文档。Spring:http://spring.io/docsMyBatis:http://mybatis.github.io/mybatis-3/基本的组织结构和用法就不说了,前面的博客和官方文档上都非常的全面。j……

Java HashMap 源码解析

本文源码分析基于Oracle JDK 1.7.0_71,请知悉。$ java –versionjava version“1.7.0_71”Java(TM) SE Runtime Environment (build 1.7.0_71-b14)Java HotSpot(TM) 64-Bit Se……

Docker Hub 仓库使用,及搭建 Docker Registry

目前 Docker 官方维护了一个公共仓库 Docker Hub,其中已经包括了数量超过 15,000 的镜像。大部分需求都可以通过在 DockerHub 中直接下载镜像来实现。Docker Hub注册&&登录你可以在 https://cloud.docker.com 免费注册一个 Docker 账号。可以通过执行 doc……

使用 IoC 反转控制的三种设计模式

对于许多开发人员来说,控制反演(IoC)都是一个模糊的概念,因为他们在现实世界中很少或没有被应用过。在最好的情况下,控制反演(IoC)可以加单的认为是等效于依赖注入(DI)。实际上,只有在翻转控制与依赖注入双方都只是反映翻转依赖管理控制的时候,才认为两者是等效的。虽然,依赖注入实际上是IoC的一种众所周知的形式。但是,事实上IoC却是一个相对更为……

MapReduce原理与设计思想

简单解释 MapReduce 算法一个有趣的例子你想数出一摞牌中有多少张黑桃。直观方式是一张一张检查并且数出有多少张是黑桃?MapReduce方法则是:给在座的所有玩家中分配这摞牌让每个玩家数自己手中的牌有几张是黑桃,然后把这个数目汇报给你你把所有玩家告诉你的数字加起来,得到最后的结论拆分MapReduce合并……

Java基础面试题及答案解析(9)

内部类和静态内部类的区别内部类:1、内部类中的变量和方法不能声明为静态的。2、内部类实例化:B是A的内部类,实例化B:A.B b = new A().new B()。3、内部类可以引用外部类的静态或者非静态属性及方法。静态内部类:1、静态内部类属性和方法可以声明为静态的或者非静态的。2、实例化静态内部类:B是A的静态内部类,A……

Java 面试参考指南( 一 )

Java面向对象相关概念Java是一种基于面向对象概念的编程语言,使用高度抽象化来解决现实世界的问题。    面向对象的方法将现实世界中的对象进行概念化,以便于在应用之间进行重用。例如:椅子、风扇、狗和电脑等。Java里的类(Class)是一个蓝图、模板,或者称之为原型,它定义了同一类事物的相同属性和行为。实例(Instance)是某个类……

从字节码和 JVM 的角度解析 Java 核心类 String 的不可变特性

1. 前言最近看到几个有趣的关于Java核心类String的问题。String类是如何实现其不可变的特性的,设计成不可变的好处在哪里。为什么不推荐使用+号的方式去形成新的字符串,推荐使用StringBuilder或者StringBuffer呢。翻阅了网上的一些博客和stackoverflow,结合自己的理解做一个汇总。……

Java基础知识详细总结

流Java所有的流类位于java.io包中,都分别继承字以下四种抽象流类型。Type字节流字符流输入流InputStreamReader输出流OutputStreamWriter继承自InputStream/OutputStream的流都是用于向程序中输入/输出数据,且数据的单位都是字节(byt……

并发控制中的乐观锁与悲观锁

1为什么需要锁?在多用户环境中,在同一时间可能会有多个用户更新相同的记录,这会产生冲突。这就是著名的并发性问题。2典型的冲突类型:(1)丢失更新:一个事务的更新覆盖了其它事务的更新结果,就是所谓的更新丢失。例如:用户A把值从6改为2,用户B把值从2改为6,则用户A丢失了他的更新。(2)脏读:当一个事务读取其……

LinkedHashMap 底层分析

众所周知 HashMap 是一个无序的 Map,因为每次根据 key 的 hashcode 映射到 Entry 数组上,所以遍历出来的顺序并不是写入的顺序。因此 JDK 推出一个基于 HashMap 但具有顺序的 LinkedHashMap 来解决有排序需求的场景。它的底层是继承于 HashMap 实现的,由一个双向链表所构成。Linked……

Java的三种代理模式

代理模式代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能.这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或者方法,如果需改修改,可以通过代理的方式来扩展该方法.举个例子来说明代理的作用:假设我们……

神奇,教你用随机数打印hello world

下面是一段随机数程序。publicstaticvoid main(String[] args){    System.out.println(randomString(-229985452)+" "+ randomString(-147909649));}publicstaticS……

互联网账户系统的具体实现

导读在上一篇文章中我们通过场景举例的方式,讨论了一套相对通用的互联网业务账户系统,从业务模型上应该如何定义。那么除了从业务模型上进行定义外,在具体系统实现上又该如何设计?又有哪些需要注意的地方呢?在本篇内容中小码农就和大家一起讨论下账户系统的实现细节,希望可以和大家一起交流进步。事实上账户系统的业务逻辑是比较复杂的,对数据的一致性要求……

如何用 Map 对象创建 Set 对象

如何用 Map 对象创建 Set 对象Java中的Map和Set有不少相似之处。本文将分享一个把Map类转化成Set类的小技巧。或许你已经知道,HashSet其实是一个披着Set方法外衣的HashMap;同样,TreeSet其实也是一个披着Set方法外衣的TreeMap。Map并不支持直接用迭代器进行遍历,因此下面的这段代码编译无法通过……

Java阿里面试题

(1)JVM如何加载一个类的过程,双亲委派模型中有哪些方法?类的生命周期:加载、(验证、准备、解析)链接、初始化、使用和卸载七个阶段其中类加载的过程包括了加载、验证、准备、解析、初始化五个阶段。在这五个阶段中,加载、验证、准备和初始化这四个阶段发生的顺序是确定的,而解析阶段则不一定,它在某些情况下可以在初始化阶段之后开始,这是为了支持 Jav……

Java面试知识点解析——JVM篇

一、JVM 基础知识1)Java 是如何实现跨平台的?注意:跨平台的是 Java 程序,而不是 JVM。JVM 是用 C/C++ 开发的,是编译后的机器码,不能跨平台,不同平台下需要安装不同版本的 JVM答:我们编写的 Java 源码,编译后会生成一种 .class 文件,称为字节码文件。Java 虚拟机(JVM)就是负责将字节码文……

如何设计高并发接口?

01并发队列的选择Java的并发包提供了三个常用的并发队列实现,分别是:ArrayBlockingQueue、ConcurrentLinkedQueue 和 LinkedBlockingQueue。ArrayBlockingQueue是**初始容量固定**的阻塞队列,我们可以用来作为数据库模块成功竞拍的队列……

初识Netty

为什么使用NettyNetty是业界最流行的NIO框架之一,它的健壮性、功能、性能、可定制性、可扩展性在同类框架中都是首屈一指的,它已经得到了成百上千的商用项目的证明。对于为什么使用Netty这个话题,我们先看一下使用原生的NIO有什么缺点:NIO的类库和API繁杂,使用麻烦,需要熟练掌握Selector、ServerSocketCha……

干货 | Tomcat 连接数与线程池详解

前言在使用tomcat时,经常会遇到连接数、线程数之类的配置问题,要真正理解这些概念,必须先了解Tomcat的连接器(Connector)。在前面的文章 详解Tomcat配置文件server.xml 中写到过:Connector的主要功能,是接收连接请求,创建Request和Response对象用于和请求端交换数据;然后分配线程让……

精研3道简单的网易2018校招编程题

问题一 获得特定数量硬币问题小易准备去魔法王国采购魔法神器,购买魔法神器需要使用魔法币,但是小易现在一枚魔法币都没有,但是小易有两台魔法机器可以通过投入x(x可以为0)个魔法币产生更多的魔法币。魔法机器1:如果投入x个魔法币,魔法机器会将其变为2x+1个魔法币魔法机器2:如果投入x个魔法币,魔法机器会将其变为2x+2个魔法币小易采……

JAVA后端面试100 Q&A之第一篇

1. synchronized和reentrantlock异同相同点都实现了多线程同步和内存可见性语义都是可重入锁不同点实现机制不同 synchronized通过java对象头锁标记和Monitor对象实现 reentrantlock通过CAS、ASQ(AbstractQueuedSynchronizer)和locksu……

支付系统

支付系统概述支付系统是连接消费者、商家(或平台)和金融机构的桥梁,管理支付数据,调用第三方支付平台接口,记录支付信息(对应订单号,支付金额等),金额对账等功能,根据不同公司对于支付业务的定位不同大概有几个阶段:第一阶段:支付作为一个(封闭)的、独立的应用系统,为各系统提供支付功能支持。一般来……

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

客服QQ


QQ:2248886839


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