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

2019年02月12日的内容

面试重点:Java虚拟机常见问题详解

一、Java引用的四种状态:强引用:用的最广。我们平时写代码时,new一个Object存放在堆内存,然后用一个引用指向它,这就是强引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足的问题。软引用:……

教你十分钟构建好 SpringBoot + SSM 框架

目前最主流的 java web 框架应该是 SSM,而 SSM 框架由于更轻便与灵活目前受到了许多人的青睐。而 SpringBoot 的轻量化,简化项目配置, 没有 XML 配置要求等优点现在也得到了大众的青睐。而本文,我将教大家如何在 intellij idea 中快速构建好一个 Maven + Spring + SpringMVC + M……

程序猿进阶之路「内网域名」

企业场景一般在企业内部,开发、测试以及预生产都会有一套供开发以及测试人员使用的网络环境。运维人员会为每套环境的相关项目配置单独的Tomcat,然后开放一个端口,以 IP+Port 的形式访问。然而随着项目的增多,对于开发和测试人员记住如此多的内网地址,无疑是一件头疼的事情(当然你也可以使用浏览器书签管理器或者记录在某个地方)。但是你不永远不……

Log4J日志配置详解

一、Log4j简介Log4j有三个主要的组件:Loggers(记录器)、Appenders(输出源)和Layouts(布局)。这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出。综合使用这三个组件可以轻松地记录信息的类型和级别,并可以在运行时控制日志输出的样式和位置。1、LoggersLoggers组件在此系统中被分为五个级……

去投资银行面试会遇到的 10 个 Java 问题

很多Java开发人员会到巴克莱、瑞士信贷、花旗等投资银行申请Java开发职位,但他们中很多人都不知道面试时会遇到什么类型的问题。在这篇文章中,我将分享一些3年以上经验Java开发人员频繁被银行问到的问题。是的,这些问题不是为新人或者1-2经验的开发人员准备的-通常,银行不通过公开面试雇用他们。相反,他们大多以毕业培训生的身份加入银行。我……

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

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

BIO、NIO与AIO

Java中的IO部分比较复杂,具体可参看书籍《Java NIO》和《Netty权威指南》。在此,仅对BIO、NIO和AIO进行概述性梳理,未涉及到具体实现细节,后续有空将深入展开。同步IO和异步IO参考答案:IO操作主要分为两个步骤,即发起IO请求和实际IO操作,同步IO与异步IO的区别就在于第二个步骤是否阻塞。若实际IO操作阻塞请求……

java synchronized详解(2)

synchronized 关键字,它包括两种用法:synchronized 方法和 synchronized 块。  1. synchronized 方法:通过在方法声明中加入 synchronized关键字来声明 synchronized 方法。如: publicsynchronizedvoidaccessVal(int newV……

人民广场怎么走? 地铁换乘算法的实现 MikeTech | MikeTech

  现在的公共交通越来越方便,很多城市都有地铁,日常使用的地图App都提供了地铁线路换乘方案的功能,只要输入起点和重点,App就能给出你换乘的方案,可是这个功能背后的算法又是怎么样的呢?这篇文章将会告诉你。说到最短路径算法不外乎就是那么几种,广度优先深度优先Dijkstra之类的,这篇博客将会讲述Dijkstra算法,其他的最短路径算法……

epoll 浅析以及 nio 中的 Selector

首先介绍下epoll的基本原理,网上有很多版本,这里选择一个个人觉得相对清晰的讲解(详情见reference):首先我们来定义流的概念,一个流可以是文件,socket,pipe等等可以进行I/O操作的内核对象。不管是文件,还是套接字,还是管道,我们都可以把他们看作流。之后我们来讨论I/O的操作,通过read,我们可以从流中读入数据;……

系统架构设计的原则和模式

1 分层架构分层架构是最常见的架构,也被称为n层架构。多年以来,许多企业和公司都在他们的项目中使用这种架构,它已经几乎成为事实标准,因此被大多数架构师、开发者和软件设计者所熟知。分层架构中的层次和组件是水平方向的分层,每层扮演应用程序中特定的角色。根据需求和软件复杂度,我们可以设计N层,但大多数应用程序使用3-4层。有太多层的设计会很糟糕……

集合系列—LinkedList源码分析

上篇我们分析了ArrayList的底层实现,知道了ArrayList底层是基于数组实现的,因此具有查找修改快而插入删除慢的特点。本篇介绍的LinkedList是List接口的另一种实现,它的底层是基于双向链表实现的,因此它具有插入删除快而查找修改慢的特点,此外,通过对双向链表的操作还可以实现队列和栈的功能。LinkedList的底层结构如下图所……

什么是REST架构?

REST架构风格是全新的针对Web应用的开发风格,是当今世界最成功的互联网超媒体分布式系统架构,它使得人们真正理解了Http协议本来面貌。随着 REST架构成为主流技术,一种全新的互联网网络应用开发的思维方式开始流行。 他是由Roy Thomas Fielding博士在他的论文 《Architectural Styles and the……

面试的角度诠释Java工程师(一)

一、基础篇1.面向对象的三大特性继承、封装、多态什么是继承?①继承是面向对象程序设计能够提高软件开发效率的重要原因之一。②继承是具有传递性的,就像现实中孙子不仅长得像爸爸而且还像他爷爷。③继承来的属性和方法是隐式的,也就是在本类里面是看不见的。④一个类只能有一个父类,也就是类只能是单继承。⑤一个接口可以有多个父类,也就是……

死磕Synchronized底层实现–概论

关于synchronized的底层实现,网上有很多文章了。但是很多文章要么作者根本没看代码,仅仅是根据网上其他文章总结、照搬而成,难免有些错误;要么很多点都是一笔带过,对于为什么这样实现没有一个说法,让像我这样的读者意犹未尽。本系列文章将对HotSpot的synchronized锁实现进行全面分析,内容包括偏向锁、轻量级锁、重量级锁的加锁、解……

JSON Web Token (JWT),服务端信息传输安全解决方案。

JWT介绍JSON Web Token(JWT)是一种开放标准(RFC 7519),它定义了一种紧凑独立的基于JSON对象在各方之间安全地传输信息的方式。这些信息可以被验证和信任,因为它是数字签名的。JWTs可以使用一个密钥(HMAC算法),或使用RSA的公钥/私钥密钥对对信息进行签名。让我们进一步解释这个定义的一些概念。紧凑……

ArrayList和LinkedList的区别

ArrayList和Vector使用了数组的实现,可以认为ArrayList或者Vector封装了对内部数组的操作,比如向数组中添加,删除,插入新的元素或者数据的扩展和重定向。LinkedList使用了循环双向链表数据结构。与基于数组ArrayList相比,这是两种截然不同的实现技术,这也决定了它们将适用于完全不同的工作场景。Linked……

Java并发知识点总结

        前言:Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员的欢迎。同时,如果想要提升自己的技术,Java并发知识必不可少,这里简单整理了一些相关内容,希望可以起到抛砖引玉的作用。1,Java内存模型是什么?        Java内存模型规定和指引Java程序在不同的内存架构、CPU和操作系统间有确……

注意:字符串substring方法在jkd6,7,8中的差异。

标题中的substring方法指的是字符串的substring(int beginIndex, int endIndex)方法,这个方法在jdk6,7是有差异的。substring有什么用?substring返回的是字符串索引位置beginIndex开始,endIndex-1结束的字符串。来看这个例子:String x ="ab……

面试中常见的几道智力题 来看看你会做几道(2)?

问题question one桌上有12个黑球和1个白球围成一个圆,按一个方向顺序数到13就拿走对应的一个球,如果要求最后拿走的是白球,请问该从哪个球开始数?question two黄球和绿球各70个,放到2个空间足够大的盒子中。使用某种放置方法,使得随机取一个盒子,并从中随机取一个球时,得到黄球的概率最大,请问这时取得黄球的概率是……

探索StringTable提升YGC性能

探索StringTable提升YGC性能 很久很久以前看过笨神的一篇文章JVM源码分析之String.intern()导致的YGC不断变长,其原因是YGC过程需要对StringTable做扫描,而String.intern()就是在StringTable中保存这个对象的引用,如果String.intern()添加越来越多不同的对象,那么Str……

6 道 BATJ 必考的 Java 面试题

题目一请对比 Exception 和 Error,另外,运行时异常与一般异常有什么区别?考点分析:分析 Exception 和 Error 的区别,是从概念角度考察了 Java 处理机制。总的来说,还处于理解的层面,面试者只要阐述清楚就好了。我们在日常编程中,如何处理好异常是比较考验功底的,我觉得需要掌……

Java 反转字符串的 10 种方法

在这篇文章中,我们会讨论10种用Java反转字符串的方法,通过10个Java程序反转字符串。例如,把字符串“javaguides” 反转为 “sediugavaj”。1. 使用 + (String连接) 操作符package net.javaguides.corejava.string;/** *  * @author Rames……

Java多线程面试问题

1、多线程有什么用?一个可能在很多人看来很扯淡的一个问题:我会用多线程就好了,还管它有什么用?在我看来,这个回答更扯淡。所谓”知其然知其所以然”,”会用”只是”知其然”,”为什么用”才是”知其所以然”,只有……

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

客服QQ


QQ:2248886839


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