面试官考察点猜想考察目的: 了解Java的基础知识;考察人群: 3年以下工作经验。
涉及背景知识详解抽象类在Java中被abstract关键字修饰的类称为抽象类,被abstract关键字修饰的方法称为抽象方法,抽象方法只有方法的声明,没有方法体。抽象类的特点:
a、抽象类不能被实例化只能被继承;
b、包含抽象方法的一定是抽象类,但是抽象类不一定含有抽象方法;
c、抽象类中的抽象方法的修饰符只能为public或者protected,默认为public;
d、一个子类继承一个抽象类,则子类必须实现父类抽象方法,否则子类也必须定义为抽象类;
e、抽象类可以包含属性、方法、构造方法,但是构造方法不能用于实例化,主要用途是被子类调用。
接口Java中接口使用interface关键字修饰,特点为:
a、接口可以包含变量、方法;变量被隐士指定为public static final,方法被隐士指定为public abstract(JDK1.8之前);
b、接口支持多继承,即一个接口可以extends多个接口,间接的解决了Java中类的单继承问题;
c、一个类可以实现多个接口;
d、JDK1.8中对接 ...
面试官考察点猜想这种问题,考察你对JVM的理解程度。涉及到常量池、对象内存分配等问题。
涉及背景知识详解在分析这个问题之前,我们先来了解一下JVM的组成,如图所示。
在JVM1.8中,内存划分为堆、程序计数器、本地方发栈、方法区(元空间)、虚拟机栈。
JVM知识点普及下面分别解释一下JVM运行时内存的功能。
堆内存空间堆是 JVM 内存中最大的一块内存空间,该内存被所有线程共享,几乎所有对象和数组都被分配到了堆内存中。堆被划分为新生代和老年代,新生代又被进一步划分为 Eden 和 Survivor 区,最后 Survivor 由 From Survivor 和 To Survivor 组成。
但需要注意的是,这些区域的划分因不同的垃圾收集器而不同。大部分垃圾收集器都是基于分代收集理论设计的,就会采用这种分代模型。而一些新的垃圾收集器不采用分代设计,比如 G1 收集器就是把堆内存拆分为多个大小相等的 Region。
方法区在 jdk8 之前,HotSopt 虚拟机的方法区又被称为永久代,由于永久代的设计容易导致内存溢出等问题,jdk8 之后就没有永久代了,取而代之的是元空间(Meta ...
前言什么是HexoHexo(中文官方网站)是一个快速,简洁且高效的博客框架。让上百个页面在几秒内瞬间完成渲染。 Hexo支持Github Flavored Markdown的所有功能,甚至可以整合Octopress的大多数插件。并自己也拥有强大的插件系统。简单的说,Hexo是一款开源的,基于静态页面渲染的博客系统,而且它是可以直接部署在GitHub或国内的Gitee上的,不需要使用任何的tomcat等容器化组件。
为什么选Hexo对于一个后端程序员来说,不想折腾前端的东西,但是csdn,博客园之类的用起来还是不太方便,自己搭博客又麻烦,做出来还丑。偶然间看到了hexo,这个对后端程序员来说可以说是非常又好了。而且部署简单,使用和编写文章比较方便,又有非常丰富的主题。
Hexo的原理和基本步骤我们先上一个总体概念图。
从图上我们简单的可以概括使用Hexo它的基本步骤为:
在本地计算机安装Hexo
在本地新建Markdown文件编写文章
使用hexo g命令将Markdown文件的文章渲染成静态文件存放在public文件夹下
使用hexo d命令将public文件夹下静态文件通过git ...
前言区块链是对以往中心式记账体系的颠覆,也就是实现了『去中心化』。这个概念最早在”比特币之父“中本聪在2008年发表的论文”Bitcoin: A Peer-to-Peer Electronic Cash System“(比特币:一种对等网络电子现金系统)里提出:bitcoin.pdf
所以想了解区块链,就必须了解比特币。而我久仰比特币的大名,于是拜读过这篇文章,也查过一些背景资料。这个回答就基于我的这些有限了解,谈一谈区块链。同时也推荐有能力的朋友,亲自读一读这篇文章。
为了便于区块链的介绍,我打算讲一个故事。
1:一个公共账本假如你现在在上大学,你们寝室是标准的四人寝,除了你之外还有小王,小黄和小白三个室友。平时你们内部的活动很多,于是经常会有人垫付饭钱,车费,还有水电费。你们大家发现,如果每次消费后,都要一一计算交结非常麻烦,于是你们决定采用记账的方案。
于是乎,你们买了一个公共的账本,本次产生消费后,就由付钱的人在账本上记清楚,谁应付给自己相应的金额。如此一来,只要每月月末统一结算即可,大大节省了时间精力。
时间一长,你们发现在纸上记账还是麻烦。于是你们决定”升级“这个账本,改成 ...