自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 HashSet,HashMap,HashSet的一些面试题

1)HashMap的工作原理:HashMap基于hashing原理,我们通过put()和get()方法储存和获取对象。当我们将键值对传递给put()方法时,它调用键对象的hashCode()方法来计算hashcode,让后找到bucket位置来储存值对象。当获取对象时,通过键对象的equals()方法找到正确的键值对,然后返回值对象。HashMap使用数组+链表来解决碰撞问题,当发生碰撞了,对象...

2019-12-27 10:45:13 179 1

原创 用栈实现中缀表达式计算

中缀表达式概念:中缀表达式是一个通用的算术或逻辑公式表示方法, 操作符是以中缀形式处于操作数的中间(例:3 + 4),中缀表达式是人们常用的算术表示方法。例如:1+2*18-3的形式代码实现:1)创建工具类,提供方法,判断是预算符,计算和运算符的优先级。package datastructure.stack;//中缀表达式工具类public class InfixExpression...

2019-12-18 15:52:19 1373

原创 数据结构-通过数组和单链表实现栈

1.栈的介绍:1)栈的英文名称(stack)2) 栈是一个先进后出的有序列表3) 栈是限制线性表中元素的插入和删除只能在线性表的同一端进行的一种特殊线性结构。允许操作的一端称为栈顶,固定的一端称为栈底。4)图解说明出栈和入栈的概念2.栈的一些应用场景1)子程序的调用:在跳往子程序之前,会先将下个指令的地址存放在堆栈中,直到子程序执行完后在将地址取出,已回到原来的程序中2)处理...

2019-12-16 17:28:39 193

原创 数据结构-环形单链表解决约瑟夫问题

1.单向环形链表使用场景:Joseph问题:设编号为1,2,3…n的小朋友围成一圈,设置编号为k的人开始报数,数到m的那个人出列,他的下一位从1开始又重新报数,依次类推,直到所有人出列。思路分析:用一个不带头节点的环形链表来处理,先构成一个有n个节点的环形单链表,然后由K节点开始报数,报到m时,对应节点删除,然后再从被删除的节点下一个节点开始计数,知道最后一个节点被删除算法结束。2.单向环形...

2019-12-15 23:22:07 276

原创 数据结构-单链表增删改查实现

单链表概念:单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映象) + 指针(指示后继元素存储位置),元素就是存储数据的存储单元,指针就是连接每个结点的地址数据。单链表的结构:模拟代码实现:1)创建实体类:Heropublic class Hero { private int numb...

2019-12-11 11:39:36 519

原创 数据结构-队列的数组实现

队列介绍:1)队列是一个有序列表,可以用数组或者链表来实现。2)遵循先入先出的原则。即先存入队列的数据,要先取出。后存入的后取出。3)示意图(使用数组模拟队列)数组模拟队列的实现方式一:1.队列本身是有序列表,若使用数组的结构来存储队列的数据,则队列数组的申明如下图,其中maxSize是该队列的最大容量。2.因为队列的输入输出是分别从队列的前后端来处理,因此需要两个变量分别记录前后端...

2019-12-07 02:45:24 307

原创 数据结构- 稀疏数组处理

2019-11-30 17:41:40 101

原创 java反射中的动态代理

在java的动态代理机制中,有两个重要的类或接口,一个是 InvocationHandler(Interface)、另一个则是 Proxy(Class),这一个类和接口是实现我们动态代理所必须用到的。 每一个动态代理类都必须要实现InvocationHandler这个接口,并且每个代理类的实例都关联到了一个handler,当我们通过代理对象调用一个方法的时候,这个方法的调用就会被...

2019-11-27 17:34:46 102

原创 浅谈线程池

一。线程池介绍线程池的最上层接口是Executor,这个接口定义了一个核心方法execute(Runnabel command),这个方法最后被ThreadPoolExecutor类实现,这个方法是用来传入任务的。而且ThreadPoolExecutor是线程池的核心类,此类主要有以下几个构造方法:构造方法的参数及意义: corePoolSize:核心线程池的大小,如果核心线程池有...

2019-11-11 15:30:17 128

原创 NIO学习

NIO(同步、非阻塞)NIO之所以是同步,是因为它的accept/read/write方法的内核I/O操作都会阻塞当前线程首先,我们要先了解一下NIO的三个主要组成部分:Channel(通道)、Buffer(缓冲区)、Selector(选择器)(1)Channel(通道)Channel(通道):Channel是一个对象,可以通过它读取和写入数据。可以把它看做是IO中的流,不同的是:Cha...

2019-11-08 13:47:10 169

原创 使用传统模式和nio模式复制文件的方法

1.使用传统模式复制文件代码:2.使用nio 的方式

2019-11-08 11:23:37 114

原创 java Class.forName()和ClassLoader.loadClass()的区别

在理解这两个区别前,需要弄清楚java类的加载机制。装载:通过类的全限定名获取二进制字节流(二进制的class文件),将二进制字节流转换成方法区中的运行时数据结构,在内存中生成Java.lang.class对象。这个时候该类型没有被分配内存和没有设置默认值,也没有初始化。连接:执行下面的校验、准备和解析步骤,其中解析步骤是可以选择的;1.校验:检查导入类或接口的二进制数据的正确性;(文件格式...

2019-11-08 10:20:43 314

原创 ClassLoader运行原理

参考网址:https://blog.csdn.net/zzti_erlie/article/details/82757435

2019-11-08 10:20:22 105

原创 反射常见面试题

什么是反射?反射是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为 Java 语言的反射机制。哪里用到反射机制?1.JDBC中,利用反射动态加载了数据库驱动程序。2.Web服务器中利用反射调用了Sevlet的服务方法。3.Eclispe等开发工具利用反射动态刨析对象的类...

2019-11-08 10:19:24 7945 5

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除