自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 mysql忘记密码怎么办?

今天打开电脑,准备学习一下关于go语言gorm框架的用法。结果出师未捷身先死。。。将mysql密码忘记了。结果就开始了修改密码之路~ 奉上解决方法 1,先打开系统偏好设置---》mysql---》stop mysql server 2,找到mysql的安装路径 执行 cd/usr/...

2020-01-20 12:59:13 60 1

原创 Redis学习

目录 1,什么是Redis? Redis的特点: Redis能干什么? 2,Redis基础知识 3,Redis为什么比较快? Redis的线程模型 4,Redis的数据类型 Redis 支持五大数据类型: 下面给出一些常用命令 5,Redis的缓存过期策略和内存淘汰...

2019-08-12 18:06:46 123 0

原创 Linux下安装Redis

1,下载redis 官网 https://redis.io/download 下载4.0.14版本 2,安装redis 首先将redis安装包放入虚拟机中 接下来进行解压:tar -zxvf redis-4.0.14.tar.gz 解压成功后: 通过make命令进行安装 ...

2019-07-21 17:54:24 46 0

原创 MyBatis学习——缓存机制

mybatis提供查询缓存,用于减轻数据库的压力,提高数据库的性能 一级缓存 Mybatis的一级缓存是SQLSession级别的缓存、mybatis默认是开启一级缓存的。在SQLSession实例对象下存在一个数据结构(HashMap),用户进行存储缓存数据,不同的SQLSession有各自...

2019-06-16 17:47:37 111 0

原创 Java实现地下城游戏(动态规划)

题目: 一些恶魔抓住了公主(P)并将她关在了地下城的右下角。地下城是由M x N 个房间组成的二维网格。我们英勇的骑士(K)最初被安置在左上角的房间里,他必须穿过地下城并通过对抗恶魔来拯救公主。 骑士的初始健康点数为一个正整数。如果他的健康点数在某一时刻降至 0 或以下,他会立即死亡。 有...

2019-06-08 16:45:48 854 2

原创 Java实现最小路径和(动态规划)

问题: /** * 给定一个包含非负整数的 mxn网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 * * 说明:每次只能向下或者向右移动一步。 * * 示例: * * 输入: * [ * [1,3,1], * [1,5,1], * [4,2...

2019-06-08 15:10:59 436 0

原创 MyBatis学习——动态代理(源码)

1,动态代理 MyBatis使用Proxy动态代理实现 2,MyBatis怎么实现动态代理的呢? 我们获取到SQLSession后,会调用getMapper()方法来返回对象实例,那么这块到底是干了什么? 我们跟进源码看一看: DefaultSqlSession类: 可以看到它...

2019-06-08 12:32:42 292 0

原创 Java实现三角形最小路径和(动态规划)

问题: 给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。 例如,给定三角形: [ [2], [3,4], [6,5,7], [4,1,8,3] ] 自顶向下的最小路径和为11(即,2+3+5+1= 11)。 思路: dp[...

2019-06-07 17:52:47 440 0

原创 Java实现最长上升子序列(动态规划)

问题: 给定一个无序的整数数组,找到其中最长上升子序列的长度。 示例: 输入: [10,9,2,5,3,7,101,18] 输出: 4 解释: 最长的上升子序列是[2,3,7,101],它的长度是 4。 说明: 可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可。 你算法的时...

2019-06-07 17:43:53 1556 0

原创 MyBatis学习——简介及入门程序实现

MyBatis介绍: Mybatis是一个持久层框架,一个ORM(对象关系映射)框架。支持定制化SQL,存储过程以及高级映射。避免了jdbc编程过程中所有的jdbc代码和手动设置参数以及获取结果集的硬编码。主要让编码人员集中精力放在sql上,通过mybatis提供的映射方式获取数据。 O...

2019-06-06 13:42:57 67 0

原创 MyBatis学习——jdbc的编程步骤以及问题总结

在我们没有学过什么框架的时候,我们是不是都是使用jdbc编程进行和数据库的连接,那么让我们回忆一下jdbc的编程步骤,和jdbc编程所存在的问题 一、jdbc编程步骤 /** * 加载JDBC驱动 */ ...

2019-06-06 13:12:52 158 1

原创 图的深度遍历与广度遍历

图的遍历 1,DFS(深度优先遍历) 访问起始点 v; 若v的第1个邻接点没访问过,深度遍历此邻接点; 若当前邻接点已访问过,再找v的第2个邻接点重新遍历。 结果: 代码实现 图的创建输出看https://blog.csdn.net/qq_379375...

2019-04-06 17:34:22 194 1

原创 图的存储

图的存储 1,邻接矩阵存储法 建立一个顶点表(记录各个顶点信息)和一个邻接矩阵(表示各个顶点之间关系)。 特点:无向图的邻接矩阵是对称的; 顶点i 的度=第 i 行 (列) 中1 的个数; java实现代码如下: package com.graph; im...

2019-04-06 16:00:05 52 0

原创 Java NIO与BIO

1,NIO与BIO的区别 BIO:传统的同步阻塞模型BIO是通过Socket和ServerSocket实现的,ServerSocket监听端口,Socket进行连接。 这种情况不适合处理多个请求: 1,生成较多的Socket会消耗过多的本地资源, ...

2019-03-29 18:18:31 382 0

原创 五种IO模型

                                              五种网络IO模型 基础 在linux系统中,对于一次读取IO请求的操作,数据并不会直接拷贝到用户程序的用户空间缓冲区。它首先会被拷贝到操作系统的内核空间,然后才会从操作系统内核的缓冲区拷贝到用户空间的缓...

2018-11-25 21:32:59 174 0

原创 全排列问题

给出一组数,输出它的全排列 比如3, 4, 5。它们的全排列为3 4 5、3 5 4、 4 3 5、 4 5 3、 5 3 4、 5 4 3 六组数。 比如1, 2, 3。它们的全排列为1 2 3、1 3 2、2 1 3、2 3 1、3 2 1、3 1 2六组数 我们可以看出: (3,4,...

2018-11-22 20:14:57 103 0

原创 编码字典序排序

/** * 假定一种编码的编码范围是a ~ y的25个字母,从1位到4位的编码,如果我们把该编码按字典序排序, * 形成一个数组如下: a, aa, aaa, aaaa, aaab, aaac, … …, b, ba, baa, baaa, baab, baac … …, * yyyw, ...

2018-11-21 17:49:37 916 0

原创 代理模式

代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。 静态代理 /** * 接口 * @author wj * */ interface IuserDao{ voi...

2018-11-21 12:27:36 123 2

原创 单例模式

单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的类一个类只有一个实例。即一个类只有一个对象实例                     1、单例类只能有一个实例。   2、单例类必须自己自己创建自己的唯一实例。   3、单例...

2018-11-21 10:43:25 103 0

原创 TCP三次挥手四次握手

TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。 UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放...

2018-11-20 21:59:02 137 1

原创 MySql事务

                                                   MySql事务  事务是什么  事务的ACID特性  事务的隔离级别  锁机制 1,事务是什么?       事务是一组SQL语句,要么全部执行成功,要么全部执行失败。通常一个事务对应一...

2018-11-04 23:57:01 2483 4

原创 MYSQL索引

MySQl索引 1,索引的概念       在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列 或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。       目的:提高查询的效率 2,索引的用法    创建索引...

2018-10-25 15:55:57 155 0

原创 二叉树的前中后序遍历(递归+非递归)

/** * 二叉树节点类 * @author wj * */ class TreeNode{ int value; TreeNode left_Node; TreeNode right_Node; public TreeNode(int value) { this.val...

2018-10-10 09:33:00 121 0

原创 锁及锁优化

        Java中通过锁来实现线程安全问题。Java的线程是映射到原生的操作系统上的,如果要阻塞或唤醒一个线程,都需要操作系统来帮忙完成。这就需要从用户态转换到核心态,因此状态转换需要耗费很多的处理器时间。所以Synchronized锁是Java语言中一个重量级操作。所以我们引进了各种锁优...

2018-09-26 18:19:46 144 0

原创 线程池

线程池         在Java多线程中,如果并发的线程数量过大,并且每一个线程都是执行了一个很短的任务就结束了,这样频繁的创建销毁线程会极大的降低系统的效率。所以在Java中引入 了线程池使得线程可以得到复用。既执行完一个任务不会被销毁而去执行下一个任务。 以下基于jdk1.7.8.1源码...

2018-09-25 18:59:12 122 0

原创 ConcurrentHashMap详解

目录 ConcurrentHashMap介绍 ConcurrentHashMap底层数据结构 ConcurrentHashMap部分分析 ConcurrentHashMap与HashMap、HashTable的区别 源码为jdk1.7 ConcurrentHashMap介绍     ...

2018-09-22 20:22:28 404 0

原创 Java死锁问题

目录 死锁概念 Java多线程中的死锁问题 Java中如何查看是否产生死锁 Java死锁经典问题——哲学家就餐问题 1,死锁概念        死锁是操作系统层面的一个概念,是进程死锁的简称,最早在 1965 年由 Dijkstra 在研究银行家算法时提出的,它是计算机操作系统乃至整个并...

2018-09-22 16:45:50 393 0

原创 CAS操作

这段代码我们除了用synchronized来保证原子性我们还有别的什么办法吗? 我们来看一下这种方法 真是太神奇了,不用加synchronized锁也能保证并发下的原子性。那么AtomicInteger是什么呢? AtomicInteger是一个提供原子操作的Integer类,通...

2018-09-21 11:16:42 2529 3

原创 synchronized与volatile

在这之前我们应该先了解一下Java内存模型 请戳~~~~>Java内存模型 Volatile关键字 保证操作变量的可见性和有序性,不保证操作变量的原子性   这段代码本应该是20000,但是为什么比20000小呢?? 因为num++这个指令它并不具有原子性,它是分...

2018-09-18 22:12:16 453 3

原创 synchronized关键字

互斥同步是最常见的一种高并发正确性保障手段。同步是指多个线程并发访问共享数据时,保证共享数据在同一时刻只被一个线程使用,而互斥是实现同步的一种手段。 在Java中,最基本的互斥同步手段是synchronized关键字。 synchronized使用规则: 在Java中同步锁是依赖于对象存在的...

2018-09-18 21:33:45 97 0

原创 线程状态及其转换

线程的基本状态 1. 新建状态(New)         : 线程对象被创建后,就进入了新建状态。例如,Thread thread = new Thread()。 2. 就绪状态(Runnable):线程对象被创建后,其它线程调用了该对象的start()方法,从而来启动该线程。 3. 运行状...

2018-09-18 18:18:19 89 0

原创 线程的常用方法介绍

start()与run()       start() 启动线程并执行相应的run()方法       run() 子线程要执行的代码放入run()方法 我们会发现,调用start()方法才是 启动一个新的线程。调用run()方法只是主线程调用了一个类的一个普通方法。 getName()...

2018-09-18 17:34:57 2666 0

原创 线程及创建线程的三种方法

基本概念 程序:是为了完成特定任务,用某种语言编写的一组指令的集合.即指一段静态代码。 进程:进程是程序的一次执行过程,是系统进行资源分配和处理机调度的一个独立单位。 程序是一个静态的概念,进程是一个动态的概念。一个程序多次执行,对应多个进程;不同的进程可以包含同一程序。 线程:进程可进一...

2018-09-18 16:51:52 515 0

原创 JavaIO——IO概述

                                                                                                      Java Io原理 IO流用来处理设备之间的数据传输,Java程序中,对于数据的输入/输出...

2018-08-23 10:36:55 9594 0

原创 深入理解Java虚拟机笔记——Java内存模型与并发编程

  当程序在运行过程中,会将运算需要的数据从主存复制一份到CPU的高速缓存中,那么CPU进行计算时就可以直接从它的高速缓存读取数据和向其中写入数据,当运算结束后,再将告诉缓存中的数据刷新到主存中。   如果一个变量在多个CPU中都存在缓存,那么就存在缓存一致性问题 2种解决方法 通过在总...

2018-08-22 15:53:20 493 0

原创 深入理解Java虚拟机笔记——虚拟机类加载机制

虚拟机类加载机制 类加载机制:虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验、  转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型。 在Java中,类型的加载和连接过程都是在程序运行期间完成的。   类加载时机(类从加载到虚拟机内存,到卸载出内存为止)经历7个...

2018-08-22 15:17:49 144 0

原创 Java集合9——PriorityQueue实现类

PriorityQueue简介 优先级队列继承AbstractQueue,实现了java.ioSerializable。 1,成员变量 // 默认容量 private static final int DEFAULT_INITIAL_CAPACITY = 11; ...

2018-07-22 21:12:05 105 0

原创 Java集合8——Set接口实现类HashSet

HashSet简介 它继承AbstractSet,实现了Set接口,Cloneable,java.io.Serializable HashSet是一个没有重复元素的集合 它是由HashMap实现的,不保证元素的顺序,而且HashSet允许使用null 1,成员变量 static...

2018-07-22 12:50:26 102 0

原创 Java集合7——LinkedHashMap实现

LinkedHashMap简介 我们可以看到LinkedHashMap是继承于HashMap,实现了Map接口 概括的说,LinkedHashMap 是一个于数组加双向链表,它是线程不安全的的,允许key和value都为null  它继承自HashMap,实现了Map<K,V...

2018-07-22 11:49:07 103 0

原创 Java集合6——HashMap和HashTable的区别

HashMap与HashTable的不同 HashTable简介 和HashMap一样,Hashtable 也是一个散列表,它存储的内容是键值对(key-value)映射。 Hashtable 继承于Dictionary,实现了Map、Cloneable、java.io.Serializabl...

2018-07-21 21:42:28 169 0

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