自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java并发系列二《并发知识储备》

系列文章目录Java并发系列一《线程池原理》Java并发系列三《ReentrantLock》目录系列文章目录前言一、CAS是什么?二、AQS是什么?三、 公平锁、非公平锁区别?前言本文总结学习并发知识需要用到的知识点,如:CAS 、AQS队列、公平锁、非公平锁等概念一、CAS是什么?CAS全称为:Compare and Swap,比较并交换。在Java中,CAS主要是由sun.misc.Unsafe这个类通过调用native方法实现。如下设置state所示

2021-11-27 13:46:08 550

原创 Java并发系列三《ReentrantLock》

目录前言一、ReentrantLock总体概述二、源码分析1.ReentrantLock#lock公平锁源码分析① ReentrantLock的lock公平锁实现方法最终会到 tryAcquire ()方法② 创建排队节点:addWaiter()③ 以独占不间断模式获取已在队列中的线程:acquireQueued2.ReentrantLock#unlock源码分析3.公平锁、非公平锁的异同总结前言本文通过逐步分析ReentrantLock的源码来学习其原理。.

2021-11-25 22:18:49 410

原创 Java并发系列一《线程池原理》

一文搞懂线程池

2021-11-16 22:48:58 435

原创 手把手教你安装Linux虚拟机

1.安装前准备:官网下载 VMware-workstation15:点击下载CentOS7镜像CentOS-7-x86_64-DVD-1708.iso下载:点击下载2.安装VMware-workstation15双击下载的VMware-workstation15文件,按照以下步骤操作安装成功后打开桌面上的虚拟机,继续向下看3.配置虚拟机和CentOS7...

2019-10-30 18:26:06 574

原创 整数划分

目录一、整数划分是个什么鬼?二、整数划分过程剖析三、整数划分Java实现四、整数划分案例一、整数划分是个什么鬼?n=m1+m2+...+mi; (其中mi为正整数,并且1 <= mi <= n),则{m1,m2,...,mi}为n的一个划分。 如果{m1,m2,...,mi}中的最大值不超过m,即max(m1,m2,...,mi)<=m,则称它属...

2019-08-14 09:26:00 384

转载 听说是阿里Java面试题

版权声明:转载请注明来源微信公众号:Java技术栈(ID:javastack),非法转载者将追究其法律责任。 https://blog.csdn.net/youanyyou/article/details/82142014以下为大家整理了阿里巴巴史上最全的 Java 面试题,涉及大量 Java 面试知识点和相关试题。建议看原著,原著更加清晰!(我就是为了保存下来万一哪天没了,嘿)JAVA...

2019-08-09 20:20:00 393

原创 我的Java面试查漏补缺(Java、操作系统、网络、Mysql)

持续ing....舍友阿里一面1.同步与异步,阻塞和非阻塞2.Linux下找a开头的文件3.hashMap自己实现4.使用IDEA遇到了什么问题5.查询语句select怎么优化6.HTTP协议的状态码用友面试(2019.8.23):以下问题排列与实际问答顺序没关系,只是我回想起来的问题非技术:问:自我介绍问:你喜欢的课和不喜欢的课?问:兴趣...

2019-08-09 08:57:58 240

转载 从输入URL到页面加载的过程

目录请求过程DNS域名解析解析过程解析顺序DNS优化DNS负载均衡请求过程1.DNS域名解析2.建立TCP连接 HTTP协议是使用TCP作为其传输层协议的,当TCP出现瓶颈时,HTTP也会受到影响。3.向服务器发送HTTP请求4.服务器处理并返回HTTP报文5.浏览器解析渲染页面6.关闭TCP连接DNS域名解析DNS...

2019-08-05 15:10:10 194

转载 JAVA设计模式之观察者模式

转自---->JAVA设计模式之观察者模式侵删JAVA设计模式之观察者模式1、初步认识观察者模式的定义:  在对象之间定义了一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象会收到通知并自动更新。大白话:  其实就是发布订阅模式,发布者发布信息,订阅者获取信息,订阅了就能收到信息,没订阅就收不到信息。2、这个模式的结构图3、可以看到,该模式...

2019-07-30 19:38:40 147

原创 Java面试复习

目录Java语言基础部分JVM?JDK?JRE?Java语言的特点Java语言的特性基本数据类型byte常用在什么地方数据输入常用Math方法(静态)switch语句跳转语句 break和continue如何在main()方法之前输出”Hello World”?java中的 clone()方法作用?浅复制和深复制的区别?Java反射机制...

2019-07-29 11:03:55 475

转载 Java设计模式之代理模式

本篇文章转载于 : 通俗易懂的讲解一下Java的代理模式侵删目录一、基本概念二、静态代理三、基本动态代理四、CGLIB动态代理一、基本概念代理模式是对象的结构模式。代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用(接口的引用)二、静态代理静态代理是指,代理类在程序运行前就已经定义好,其与**目标类(被代理类)**的关系在...

2019-07-29 10:05:18 132

转载 Java设计模式之单例模式

Java设计模式--单例模式在介绍单例模式之前,我们先了解一下,什么是设计模式?设计模式(Design Pattern):是一套被反复使用,多数人知晓的,经过分类编目的,代码设计经验的总结。目的:使用设计模式是为了可重用性代码,让代码更容易被他人理解,保证代码可靠性。本文将会用到的关键词:单例:Singleton 实例:instance 同步:synchronized 类装...

2019-07-28 17:42:12 141

原创 十、【Redis】频道发布与消息订阅

目录Redis 发布订阅实例应用场景Redis 发布订阅Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。Redis 客户端可以订阅任意数量的频道。实例以下实例演示了发布订阅是如何工作的。在我们实例中我们创建了订阅频道名为newssubscribe channel [channel ...]订...

2019-05-08 20:16:31 260

原创 用两个栈来实现一个队列,完成队列的Push和Pop操作。

用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。栈是先进后出,队列是先进先出。举例:将1,2,3,4,5入队思路:先入栈1(顶-->底:5,4,3,2,1),再将栈1出栈的数据入栈到栈2(顶-->底:1,2,3,4,5),这时栈2出栈的顺序就是先进先出了(1,2,3,4,5)问题:当栈2还有元素时,栈1又入栈元素? 解决:每...

2019-04-30 17:44:03 855

转载 Java集合类框架的基本接口

Java集合类框架的基本接口有哪些?总共有两大接口:Collection 和Map ,一个元素集合,一个是键值对集合; 其中List和Set接口继承了Collection接口,一个是有序元素集合,一个是无序元素集合; 而ArrayList和 LinkedList 实现了List接口,HashSet实现了Set接口,这几个都比较常用; HashMap 和HashTable实现了Map...

2019-04-26 20:13:06 245

原创 九、【Redis】事务

目录一、Redis 事务二、实例三、事务相关命令一、Redis 事务Redis 事务可以一次执行多个命令, 并且带有以下重要的保证:批量操作在发送 EXEC 命令前被放入队列缓存。 收到 EXEC 命令后进入事务执行,事务中任意命令执行失败,其余的命令依然被执行。 在事务执行过程,其他客户端提交的命令请求不会插入到事务执行命令序列中。一个事务从开始到执行会经历以...

2019-04-26 15:33:08 126

原创 【Java笔试题】JVM参数

1.对于JVM内存配置参数:-Xmx10240m -Xms10240m -Xmn5120m -XXSurvivorRatio=3,其最小内存值和Survivor区总大小分别是()正确答案: DA 5120m,1024mB 5120m,2048mC 10240m,1024mD 10240m,2048m-Xmx:最大堆大小-Xms:初始堆大小-...

2019-04-24 21:11:14 442

原创 【Java笔试题】Servlet的生命周期

1.下列有关Servlet的生命周期,说法不正确的是?正确答案: A A 在创建自己的Servlet时候,应该在初始化方法init()方法中创建Servlet实例B 在Servlet生命周期的服务阶段,执行service()方法,根据用户请求的方法,执行相应的doGet()或是doPost()方法C 在销毁阶段,执行destroy()方法后会释放Servlet 占用的资源D...

2019-04-24 20:48:19 4652

原创 【Java笔试题】Statement、PreparedStatement和CallableStatement

1.下面有关jdbc statement的说法错误的是?正确答案: C 你的答案: C(正确)A.JDBC提供了Statement、PreparedStatement 和 CallableStatement三种方式来执行查询语句,其中 Statement 用于通用查询, PreparedStatement 用于执行参数化查询,而 CallableStatement则是用于存储过程...

2019-04-24 20:35:15 2140

原创 Spring事务属性

目录0.事务属性的种类:传播行为、隔离级别、只读和事务超时1.传播行为定义了被调用方法的事务边界。2.隔离级别3. 只读4.事务超时0.事务属性的种类:传播行为、隔离级别、只读和事务超时1.传播行为定义了被调用方法的事务边界。 传播行为 意义 PROPERGATION_MANDA...

2019-04-24 20:34:20 204

原创 死锁及产生死锁的条件

目录一、什么是死锁二、产生死锁的原因和 4 个必要条件一、什么是死锁死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。如下图所示,P1拥有S1资源,P2拥有S2资源,这时候P1、P2又互相请求对方的资源,可是资源被占用着,若没有外力介入就会造成一直互相等待的僵局二、产生死锁的原因和 4 个必要条件...

2019-04-22 20:09:12 1372

原创 Java设计模式之工厂方法模式

目录一、工厂方法模式简介二、Java实现三、模式应用四、优缺点一、工厂方法模式简介简单工厂模式的改进版!新增功能时不再修改工厂类了,而是通过实现工厂接口,每一种都由自己的工厂类实现。工厂方法模式是一种常用的类创建型设计模式,此模式的核心精神是封装类中变化的部分,提取其中个性化善变的部分为独立类,通过依赖注入以达到解耦、复用和方便后期维护拓展的目的。它的核心...

2019-04-22 15:47:54 155

原创 八、【Redis】 sorted set类型操作

目录一、Redis 有序集合(sorted set)二、添加成员三、查看、统计成员四、移除成员五、运算一、Redis 有序集合(sorted set)Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。有序集合的成员是...

2019-04-22 15:09:25 539

原创 七、【Redis】 Hash类型操作

目录一、Redis 哈希(Hash)二、增加、查看、删除命令三、获取长度、keys、values四、增加 value 的值五、判断是否存在一、Redis 哈希(Hash)Redis hash 是一个string类型的 field 和 value 的映射表,hash特别适合用于存储对象。Redis 中每个 hash 可以存储 - 1 键值对(40多亿)。二...

2019-04-20 11:51:22 1313

原创 Java设计模式之简单工厂模式

目录一、何为 简单工厂模式?二、如何实现简单工厂模式?三、Java 实现简单工厂模式四、简单工厂模式优缺点?五、简单工厂模式改进版 →工厂模式一、何为 简单工厂模式?简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式...

2019-04-19 19:24:29 291

原创 六、【Redis】位图法场景应用

场景:统计连续 5 天a,b,c同时登录的天数,分别是哪些天?a 1 2 3 4 5 b 1 3 4 5c 1 2 4 5以上表示,a 在第 1、2、3、4 、5 天都登录了,同...

2019-04-19 11:44:14 691

原创 五、【Redis】 Set类型操作

目录一、Set简介二、增加、查看、删除 Set 中的元素及 Set 的长度三、随机获取 Set 中的值四.判断某一 member 是否存在五、在俩个 Set 之间移动元素六、多个 Set 之间运算一、Set简介Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。Redis 中集合是通过哈希表实现的,所...

2019-04-19 10:56:51 1837

原创 四、【Redis】 List类型操作

目录一、插入二、查看列表元素 / 长度三、删除 list 中的数据四、截取/获取五、从一个 list 中弹出 ,插入到另一个 list 中六、设置时间等待有value出现Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)一个列表最多可以包含 - 1 个元素 (4294967295, 每个列表超过40亿个...

2019-04-18 21:27:08 348

原创 三、【Redis】String类型操作

String类型的常用操作命令,我分为三部分,一是设置、获取key-value值,二是把String当作Integer进行加减操作,三是大小写转换目录一、设置、获取String的key-value二、把String 类型当作 integer 类型进行加减操作三、大小写转换一、设置、获取String的key-value1.设置 String 的 key valuese...

2019-04-17 18:51:09 388

原创 二、【Redis 】 key 的通用命令

目录1.Redis 连接客户端2.key通用命令3.rename和 renamenx命令详细演示1.Redis 连接客户端redis-cli2.key通用命令keys * 查看有哪些key,还支持通配符查找type key 返回key的类型randomkey 返回随机keyexists key 返回是否...

2019-04-17 16:25:31 219

原创 一、【Redis】 初识Redis

目录一、什么是Redis?二、Redis的特点三、Redis优势四、相比memcached,Redis的优势一、什么是Redis?官方地址:redis.ioRedis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and messa...

2019-04-17 15:31:31 176

原创 jsp和servlet的区别和联系

jsp和servlet的区别和联系:1.jsp经编译后就变成了Servlet. (JSP的本质就是Servlet,JVM只能识别java的类,不能识别JSP的代码,Web容器将JSP的代码编译成JVM能够识别的java类)2.jsp更擅长表现于页面显示,servlet更擅长于逻辑控制.3.Servlet中没有内置对象,Jsp中的内置对象都是必须通过HttpServletRequest对...

2019-01-23 12:01:40 1453

原创 jsp内置对象

目录 jsp内置对象作用域内置对象request内置对象resonpse内置对象session(会话)内置对象outjsp内置对象 对象名 类型 request javax.servlet.http.HttpServletRequest  response ...

2019-01-23 10:57:10 285

原创 forward和redirect的区别

目录 forward和redirect的区别?重定向redirect:转发forward:区别forward和redirect的区别?答:Forward和Redirect代表了两种请求转发方式:重定向和转发。对应到代码里,分别是RequestDispatcher类的 forward()方法和 HttpServletResponse类的sendRedirect()方法。...

2019-01-23 10:53:54 2440

原创 理解递归

目录一、递归定义二、递归实例三、递归分析一、递归定义程序调用自身的编程技巧称为递归( recursion)。 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集...

2019-01-09 20:53:29 173

原创 当eclipse卡死的时候关闭重启eclipse,运行Tomcat时,提示8080端口被占用的解决方法

当eclipse卡死的时候关闭eclipse后,再重启eclipse,运行Tomcat时,会提示8080端口被占用,这时候可以通过dos命令关闭Tomcat,然后再运行Tomcat就好了 存在的问题:8080端口正在运行解决办法:1.在dos下,输入  netstat  -ano|findstr  8080 //说明:查看占用8080端口的进程显示占用端口的进程2....

2019-01-08 20:14:21 1666 4

原创 实现链表的过程详解

目录一、知己知彼0.线性表1.链表2.实现链表需要什么类,类里需要什么属性,什么方法二、开始写代码1.结点类准备2.链表类准备3.链表的插入方法4.链表的显示方法5.链表的查找方法6.链表的删除方法7.链表的长度三、实现链表的完整代码一、知己知彼0.线性表线性表是最基本、最简单、也是最常用的一种数据结构。线性表(linear list...

2019-01-07 21:24:21 857

原创 堆排序详解

目录一、基本思想二、过程示意图三、代码实现四、复杂度一、基本思想堆排序(英语:Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。堆又分为大顶堆、小顶堆。例如:大顶堆: 小顶堆: ...

2019-01-06 22:10:25 630

原创 选择排序详解

 目录 一、基本思想二、过程示意图三、代码实现过程四、复杂度一、基本思想选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据中选出最小(或最大)的一个元素,存放在序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方...

2019-01-06 20:36:51 694 1

原创 快速排序过程详解

目录一、基本思想二、过程示意图三、代码实现过程四、复杂度一、基本思想快速排序(Quicksort)是对冒泡排序的一种改进。也是交换排序。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都 要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变...

2019-01-06 17:07:28 4289

空空如也

空空如也

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

TA关注的人

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