面试总结
文章平均质量分 73
ComomsString
这个作者很懒,什么都没留下…
展开
-
java面试基础篇之JVM(更新中...)
该整理有markdown文件,需要的联系邮箱commonsstring@yeah.net 讲一下JVM 定义:java虚拟机是能够提供java程序的运行环境,屏蔽了与具体操作系统平台相关的信息,java程序只需要生成字节码便可以在不同的平台借助虚拟机运行。即借助虚拟机,字节码可跨平台。 系统架构:类加载子系统、运行时数据区、直接内存、垃圾回收系统、执行引擎。 讲一下...原创 2018-08-13 18:44:36 · 728 阅读 · 0 评论 -
java多线程基础之volatile
接下来几天,我会写写关于多线程方面的博客,今天的主题是volatile关键字。首先,先写一下Java内存模型的相关知识。JMM一般都是围绕原子、可见、有序性三点讨论,在此仅是简单介绍。工作内存与主存定义:JVM定义了规定了所有变量都是存在主存里,每个线程都有自己的工作内存,线程对变量的所有操作都必须在其工作内存上进行,而不是直接对主存进行操作,而且每个线程都不能访问其它线程的工作...原创 2018-11-23 15:42:16 · 243 阅读 · 0 评论 -
Spring基础之事务&事务的传播特性
这篇博文主要是写关于Spring事务相关,进行一个总结,本博文避开Spring中的API,尽量使用文字叙述。初识,什么是事务(Transaction)?一般是指要做或所做的事情,是数据库管理系统执行中的一个逻辑单位,由一个有限的数据库操作序列构成。简短点,即事务是逻辑上的一组操作,要么全部执行,要么全部不执行。说完事务的概念,我们可以看看,事务的几个基本特向,即ACID...原创 2018-11-20 13:22:05 · 241 阅读 · 0 评论 -
自学算法之手撕插入排序
关于插入排序,分析其时间复杂度的时候,需要根据数据状况进行分析。初认,插入排序插入排序工作原理:通过构建有序序列,对于未排序的数据,在已排序的序列中从后向前扫描,找到相应的位置并插入。插入排序分类:直接插入排序希尔排序折半插入排序原理流程图:假设数组[3,1,4,2,5],初始下标为0的位置,默认为已排序。第一次,进行插入排序,下标范围为[0,1...原创 2018-11-05 17:53:43 · 266 阅读 · 0 评论 -
Spring基础之IOC&AOP&DI
这篇博文,主要面试Spring的时候,经常被问到的问题,顺序有点杂乱,读者们可以阅读自己需要的部分。初认,什么是Spring以及核心构成?Spring是一个Java企业级应用开源的开发框架,**主要解决对象的创建以及对象之间的依赖的关系。**一般在开发中,起到一个粘合/整合作用,比如和Spring/Strut,Spring/hibernate。对于Spring的几个核心包的了解:s...原创 2018-11-05 08:48:56 · 162 阅读 · 0 评论 -
设计模式之浅谈代理模式
代理模式,首先笔者会介绍代理模式的概念,之后再分类介绍java中的静态和动态代理。什么叫代理模式?举个例子,在娱乐圈中有这样一群人,明星/经纪人/客户。客户要想找明星打广告、拍戏等,则需要通过经纪人进行磋商,这种场景下明星称为被代理对象,经纪人就是代理对象。即,经纪人对外界提供一种对明星的访问,以减少明星的负担。画张图,可以直接看出被代理对象和代理对象的关系。代理对象经纪人可以对...原创 2018-11-07 19:23:31 · 229 阅读 · 0 评论 -
Java基础之浅谈一致性哈希
今天笔者想谈谈对一致性哈希的理解。其实,在写之前笔者在网上随便一搜,有很多很多优秀的博文,琳琅满目。所以呢,下文只是粗略的介绍一致性哈希的知识点。初识一致性哈希。一致性哈希的概念:是一种特殊的哈希算法,在使用一致性哈希算法后,哈希表槽位数的改变,平均只需要对K/N个关键字进行重新映射,其中K为关键字的数量,N为槽位的数量。看完定义之后,其中有重新映射的知识点,在这里读者可以联想...原创 2018-10-31 15:51:15 · 306 阅读 · 1 评论 -
Java基础之Servlet
千呼万唤始出来,那么开篇之前,读者们需要大概了解一下,什么是Servlet?Servlet,即Server Applet,全称Java Servlet。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义上的Servlet是指Java语言实现的一个接口。广义上的Servlet是任何实现了Servlet借口的类。看完上文后,相信大部分的读者已经知道Servlet是用来干什么...原创 2018-10-20 13:34:04 · 177 阅读 · 0 评论 -
计算机网络之Http协议与其请求响应头
在面试过程中,不管是前端还是后端,都会问一些网络基础,比如Http协议相关。笔者在面试中,被问到尽可能能罗列出Http协议头信息…以下内容主要讲Http报文中的字段。什么是Http协议,运用在什么OSI的什么层?Http协议定义:Hyper Transfer protocol,超文本传输协议。一般应用于万维网服务器传输文本到本地浏览器的协议。Http位于应用层。Ht...原创 2018-10-22 14:08:34 · 182 阅读 · 0 评论 -
自学算法之判断一个二叉树是否平衡/搜索/完全二叉树
话不多说,在面试中遇到过,一脸蒙蔽,被虐出翔…以下所述,仅仅是手撕代码时候使用,若是需要在线编程,可以根据该思路编写对应AC代码。如何判断一个二叉树是否平衡?要解决这个问题,首先要知道什么是平衡二叉树。平衡二叉树定义如下:首先,是一个二叉树,且每个节点的左右子树的高度差的绝对值不超过1。其次,空树是平衡的。试想要实现该代码,需要怎么记录其中的高度差、当前节点是否平衡、以及...原创 2018-10-22 12:14:38 · 324 阅读 · 1 评论 -
设计模式之浅谈单例模式
前段时间需要两次面试,都需要手撕一个单例模式,还问了double check机制,当事心里一万个草拟马奔腾而过…,到现在为止,博主连懒汉和恶汉都分不清,所以含泪写下该篇博文。单例模式(Singletom)单例对象static关键字修饰。私有化构造器。保证一个类仅有一个实例,并提供一个访问该实例的全局访问点。理解定义后,就会手撕饿汉和懒汉的代码了。饿汉单例模式顾名思义...原创 2018-10-19 20:21:06 · 168 阅读 · 0 评论 -
Java基础之NIO
什么是NIO?NIO全称Nonblocking IO 也曾为 new IO(NIO),即同步非阻塞式IO。基于事件驱动思想,采用Reactor模式,实现多路IO复用。在Socket主要的读、写、注册和接收函数,在等待就绪阶段都是非阻塞式的,真正的IO操作是同步阻塞的。NIO和标准IO的区别标准IO,基于字符流(byte)和字节流(char)。NIO,基于通道(channe...原创 2018-10-19 19:10:49 · 189 阅读 · 0 评论 -
Java多线程基础之手撕生产者和消费者模式
问题描述 数据结构: 生产者/消费者缓存区(共享资源)规则: 生产/消费者同时操作缓存区。当缓存区为空的时候,消费者不能消费,即消费者阻塞。当缓存区为满的时候,生产者不能生产,即生产者阻塞。生产者之间互斥,消费者之间同步。代码实现 使用wait() / notifyAll(),简单实现: 当缓存区满或者空的时候,调用wait方法等待,当生产者生产一个资源或者消费者消费一个资...原创 2018-09-12 13:09:00 · 418 阅读 · 0 评论 -
java面试基础篇之语法和Api(更新中...)
static方法可以访问非static方法或变量吗?java中为什么非静态方法可以访问静态变量。 调用层面:静态成员属于类,不需要生成对象就存在,而非静态需要生成对象才产生。所以静态方法不能直接访问非静态成员。简单说,即在调用的时候是否需要生成对象的区别。 JVM层面:static成员实在类加载机制的-准备-阶段进行内存分配和初始化,而非Static成员实在加载机制中的-初始化...原创 2018-08-13 18:49:21 · 224 阅读 · 0 评论 -
java多线程基础之Synchronized底层实现
初认synchronized使用规则一般来说,使用规则一般分为两类,即修饰代码块和修饰方法修饰代码块:synchronized(this|object) { // TODO}synchronized(类.class) { //TODO}修饰方法:修饰非静态方法修饰静态方法从使用规则可以看出,synchronized(this|obj...原创 2018-12-18 16:06:38 · 259 阅读 · 0 评论