自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 mysql事务知识点总结(InnoDB)

事务的四大特性原子性:一个事务中的操作,要么全都完成,要么全都不完成。如果事务在执行过程中发生了错误,将会被回滚(rollback),就好像从来没有发生过一样。一致性:事务完成后,数据库的完整性没有被破坏。它关注的方面不仅有主键约束、外键约束等等必须要实现的约束,还有更多业务逻辑上的一致性。举个例子,张三转账给李四,张三的账户上少了100,李四的账户上多了100,那么张三少了100而李四多了1...

2020-04-04 22:48:24 192

原创 mysql中的锁 常见问题和总结(innodb)

死锁及其案例我们知道,操作系统中的死锁是“占有并等待”,也就是一个线程占有资源A而等待资源B,另一个线程则占有资源B并等待资源A。mysql中的死锁也是同理。假设一个事务锁定了行A同时需要对行B进行操作,而另一个事务锁定了行B同时需要对行A进行操作,那么就会发生死锁。死锁案例: 将投资的钱拆成几份随机分配给借款人。投资人投资后,将金额随机分为几份,然后随机从借款人表里面选几个,然后通过一条条...

2020-03-30 17:55:15 221

原创 mysql innodb索引总结

innodb索引数据结构基础数据结构:B+树innodb索引是一个B+树的结构。我们知道,B树是一个用各种旋转法则来维持平衡(就是整棵树看着很匀称,没有某一个分支特别长或者特别短的局面)的一种多叉树,而B+树就是在此基础上,把所有的叶子节点用双向循环链表连起来。具体如此:B+树为了维持平衡,在插入和删除时会做多种旋转操作,比如说插入操作:删除操作:这里的填充因子最小是50%,什么意...

2020-03-29 21:01:32 198

原创 二叉树的四种遍历方式(递归和非递归)

这篇文章的目的只是整理几个常用的二叉树递归/非递归遍历的模板函数,方便用到的时候凭借记忆写出来即可。内容没多少技术含量,写给自己看的,权当参考。前序遍历递归:很简单,按照根左右的逻辑访问就是。public List<Integer> preorderTraversal(TreeNode root){ List<Integer> res = new Ar...

2020-03-11 15:18:28 378

原创 synchronized专场

synchronized和lock都是java中常用的同步机制。但不得不说,JDK官方爸爸对于synchronized这个小儿子的偏爱明显超过了lock——即使我们说synchronized会笨重,会产生上下文切换的线程开销,但JDK为了解决这个问题给它专门做了一系列的优化,目前的主流也是使用synchronized进行同步。synchronized和lock的区别我们这里说的lock,大体上...

2020-03-04 20:21:11 92

原创 java内存模型与线程

这一篇和接下来我将要写的一篇文章都是java并发相关,但并不完全是JUC包中的内容了。实际上,它们都可算作是《深入理解jvm虚拟机》这本书中“高效并发”这一部分的笔记。它们从一个更加深入的角度理解线程和进程,原书非常非常地经典,值得仔仔细细反复研读。硬件层面的一致性与java内存模型回想一下我们学过的操作系统,和java内存模型,就会发现二者其实几乎是相同的。在硬件层面,多路处理器系统中,每个...

2020-03-02 11:12:27 113

原创 java中集合及字符串的线程安全问题汇总

这其实不完全属于JUC的内容,但是见到了好多集合类线程安全的问题,就汇总一下。数组ArrayList:非线程安全LinkedList:非线程安全众所周知,ArrayList不是线程安全的,LinkedList也不是。它们的代码中没有任何同步的手段,一旦在多线程环境下,就很容易出现问题。Vector:线程安全线程安全的数组类是Vector,为了线程安全,它几乎给所有的方法都加上了sync...

2020-03-01 19:17:39 355

原创 JUC中几种锁的原理剖析

LockSupport工具类底层是Unsafe类实现的,主要作用是挂起(park()方法)和唤醒(unpark()方法)线程,看起来和wait()与notify()差不多,不过还有一些区别:park()不需要获取对象的锁。LockSupport类与每个使用它的线程都会关联一个许可证。默认情况下,调用LockSupport类的方法的线程是不持有许可证的,这也就导致直接调用park()方法的线程会...

2020-03-01 17:42:44 684

原创 java并发编程的其他基础知识

多线程并发编程的概念并发和并行:并发是指同一个时间段内多个任务同时都在执行,并且都没有执行结束,而并行是说单位时间内多个任务同时再执行。举个栗子,一个CPU只能通过时间片轮转之类的线程调度算法做到并发,而无法做到并行。相反,如果有多个CPU且同时执行不同的线程任务,这个就叫做并行。在多线程编程实践中,线程的个数往往多于CPU的个数, 所以一般都说多线程并发编程而非多线程并行编程。java中共...

2020-02-28 11:20:32 84

原创 java三个线程同步器的用法与源码解析

三种同步器的功能本文主要介绍三个线程同步器,它们的功能分别是:CountDownLatch:确保所有子线程执行完成以后再执行汇总, 内部有一个计数器,一个子线程执行完就倒数一下,倒数完后返回;CyclicBarrier:让一组线程全部达到一个状态以后再全部同时执行, 当所有线程执行完毕以后,重置CyclicBarrier的状态之后还可以被重用;Semaphore:大家都很熟悉的信号量,内...

2020-02-24 20:37:11 235

原创 java线程池的基础知识及源码解析

java线程池的相关知识基础知识线程池主要是ThreadPoolExecutor这个类。Excutor其实是个工具类,里面提供了一系列的静态方法,根据用户选择返回不同的线程池实例。ThreadPoolExecutor类继承了AbstractExecutorService,成员变量ctl用来记录线程池状态和池中线程个数,一个变量记录两个信息。//高3位用来表示线程池状态,低29位用来表示线程个...

2020-02-23 18:34:15 116

原创 代理模式

代理模式不仅仅是面试的一个高频考点,也是项目中用得非常多的一件工具。从一个非常简单的例子入手,假如我有一个接口Hello:public interface Hello{ void say(String name);}然后有一个实现类:public class HelloImpl implements Hello{ @Override public void say(String n...

2020-02-17 12:29:10 92

原创 架构探险——从零开始的MVC框架(二)

上一回讲到如何在一堆工具类的帮助下,在IocHelper类中实现依赖注入。然后书中编写了一个ClassHelper类,该类主要的作用是获取所有Controller类,然后通过反射获取该类中所有带Action的方法,进而获取请求方法和请求路径,把所有的“请求-处理对象”对封装成一个HashMap,便于调用获取。于是又定义了Request对象和Handler对象。前者封装请求方法和请求路径(请求信息...

2020-02-16 22:32:58 83

原创 架构探险——从零开始的MVC框架(一)

这一系列主要是《架构探险——从零开始写java web框架》这本书的读书笔记,同时记录下自己实现代码过程中遇到的一些java类的基本原理和用法。从第三章“搭建轻量级 java web框架”开始,基本讲述的是如何自己去实现一个mvc框架的基本功能,其中用到很多新颖的知识。最开始,书中设计的是一个非常简单的框架,只有几个核心功能:1、通过Controller注解定义Controller类,Serv...

2020-02-15 22:33:57 230

原创 一些线程相关的函数

与线程相关的一些函数Object类自带函数java把一些关于线程通知和等待的函数放到了Object类里面。也就是说任意一个对象都拥有这些函数。wait()函数:1、阻塞挂起调用线程;2、释放该线程在该共享变量上获取的监视器锁。(如果该线程还有其他共享变量的锁,这些锁是不会被释放的)如果该线程之前没拿到监视器锁怎么办呢?这个时候就会抛出IllegalMonitorStateExcepti...

2020-02-14 16:09:22 141

原创 java中创建线程的三种方式

java中线程创建的三种方式什么是线程进程:一段代码在特定数据集合上的一次运行活动,操作系统资源分配的基本单位。(换了个数据集合或者换了代码都不算是同一个进程)线程:是进程中的一个实体,本身是不会独立存在的。是进程的一个执行路径,一个进程中至少有一个线程,进程的多个线程共享进程的资源。任务调度和执行的基本单位。操作系统中大概是这样的:在JVM中,这个图可以再细化一下,大概是这样的:...

2020-02-14 12:17:16 120

原创 大型网站架构——性能优化之前端优化

大型网站架构——性能优化之前端优化这一系列文章会用来记录《大型网站技术架构》的总结,相当于是一个读书笔记。最近读了这本书,给我最大的感受就是它差不多是一个“面试提纲”,串联起了许多以往在面经中经常见到的知识点及需要掌握的技术,也终于粗浅地理解了为什么企业需要我们掌握这些知识,它们在网站架构中可以用来做些什么。跳过前面的介绍,我们从优化开始。根据网站分层架构,网站的性能优化可分为:Web前端...

2020-02-10 21:53:07 1551

原创 springboot整合mongodb(idea+maven)

springboot整合mongodb(idea+maven)首先在pom.xml中添加包依赖:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongod...

2019-11-09 16:35:01 554 1

原创 微信小程序 页面间的两种带参跳转方法

微信小程序中,页面间的跳转一般用的是写在js文件中的wx:navigeteTo方法。有时候,我们在跳转时需要带上参数,这个参数一般是写在这个方法的url中的。首先是wx:navigateTo方法的格式:let url = '...'; wx.navigateTo({ url });这里navigetTo的参数必须要是一个对象,不然会报错,也就是一定要带上这个大括号。然后是第一种带...

2019-06-13 00:01:24 1023

原创 微信小程序 wx:for/if/elif/else等循环的写法以及wx.key的运用

在页面里使用wx:for/if等循环体:wx:for<view wx:for="{{chatRecord}}" wx:for-index="index" wx:for-item="item" wx:key="*this"> <!--中间的代码片段--></view>其中chatRecord是在js页面里定义的一个聊天记录数组。w...

2019-06-12 23:50:45 4626

原创 记idea maven整合spring mybatis途中踩过的几个坑以及流程

1、项目结构里面,文件夹的类型这其中java文件夹要设置成source root类型,resources要设置成resources root 类型,各种类型文件的区别可以看这里:https://blog.csdn.net/xiaohei_neko/article/details/79353605这一步如果类型设置不对的话,idea会自动给你添加一些不对的包名,最后还得手动改过来……附上后续...

2019-05-09 20:30:21 299

原创 mybatis基础学习1(实现简单的增删改查)

mybatis的配置:0.mybatis和jdbc的jar包1.基础配置config.xml(里面写上数据库驱动名,url,用户名和密码)2.把表和类对应起来的xml(须在config.xml里面配置resource)List itemList item...

2019-04-23 17:05:37 109

原创 springmvc配置过滤器的作用和方法

springmvc配置过滤器的作用和方法http协议里常见的请求方式有四种:post delete put get分别对应增删改查四个操作普通浏览器一般只支持get和post,其他两个方式是通过过滤器支持的。过滤器支持要求:1、方法有隐藏域且name是_method 如:<input type="hidden" name="_method" value="delete/put"...

2019-04-05 15:36:56 2229

原创 前端向后端传值方式(不用js)

前端向后台传值方式(不用js)记两种简单的传值方式jsp文件中使用 a标签进行传值,可以直接这样写后台获取直接写request.getParameter(“参数名”);或者后台获取用springmvc的@PathVariable@RequestMapping(value=“request/{name}”)方法参数中写(@PathVariable(name))即可。...

2019-04-05 15:03:54 1284

空空如也

空空如也

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

TA关注的人

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