深入理解synchronized关键字

同步关键字的用法 当使用synchronized关键字修饰普通方法时,加锁对象就是Object,对静态方法,静态代码块加synchronized关键字,加锁对象就是Class对象。 jvm对synchronized锁优化 锁优化:当一个对象在单个线程中使用,并且多次调用synchronize...

2019-08-06 00:30:31

阅读数 15

评论数 0

理解jvm —— 垃圾回收机制

一、java的垃圾回收策略 java采用的是自动垃圾收集策略,并不需要我们在程序代码中进行手动的垃圾回收,自动垃圾收集是查看堆内存,识别正在使用那些对象以及那些对象未被删除和删除未使用对象的过程。使用中的对象或引用的对象意味着程序的某些部分仍然维护指向该对象的指针,程序的任务部分都不再引用未使用...

2019-07-07 16:57:26

阅读数 106

评论数 0

理解jvm —— 类加载机制

一、类的生命周期 1.加载 —— 读取二进制内容。 2.验证 —— 验证class文件格式规范、语义分析、引用验证、字节码验证。 3.准备 —— 分配内存、设置类static修饰的变量初始值。 4.解析 —— 类、接口、字段、类方法等解析。 5.初始化 —— 为静态变量赋值;执行静态代码...

2019-07-05 00:36:56

阅读数 43

评论数 0

使用CORS解决跨域问题

一、产生跨域的原因: 浏览器会向服务器发送一个Option方法的预检请求,如果服务器拒绝响应,浏览器就无法访问。因此我们可以针对Option请求来处理跨域问题。 二、解决办法: 在spingboot中针对option请求添加一个准入机制: @SpringBootApplication...

2019-06-25 22:09:20

阅读数 27

评论数 0

巧妙利用注解+aop实现关联查询

需求:在不实用关联查询时,如果更优雅的实现两个表的查询并组合在一起返回。 1.首先定义两个注解: @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface NeedSetFiledVal...

2019-06-16 14:01:53

阅读数 21

评论数 0

【MySql专栏】—— 关联查询join的流程以及优化

一、应不应该使用关联查询? 对于关联查询来说,并不是所有情况下都能使用的,有的公司会直接禁用关联查询,因为使用关联查询后,那么后序在项目升级时,对数据库进行分库分表后,关联查询就没办法在使用,所有代码都需要重构,不利于后期的维护和重构。本篇文章的前提条件是可以使用关联查询,那么在我们使用关联查询...

2019-06-13 00:16:49

阅读数 36

评论数 1

【MySql专栏】—— 排序order by的过程

在开发过程中,我们经常需要根据某个字段进行排序,在拿到我们需要的结果即,那么当我们在使用order by这个语句的使用,mysql内部都做了那些操作的,这就是这篇文章想要说明的问题,首先我们来创建一个订单表,里面有三个字段主键id,订单id和一个创建时间,创建表的语句如下: CREATE TA...

2019-06-03 23:19:21

阅读数 36

评论数 0

基础数据结构——图、DFS、BFS

一、图 定义:是一种比线性表和树更为复杂的数据结构,在图形结构中结点之间的关系可以是任意的,任意两个数据元素都可能存在相关性,因此图论在计算机中应用相当广泛,例如:知识图谱、推荐算法等。 图的基本元素: 1.结点:在图中的数据元素称为结点。 2.弧(边):在图中各结点之前的关系用弧(边...

2019-05-22 01:00:53

阅读数 20

评论数 0

基础数据结构——二叉搜索树、红黑树

一、二叉搜索树 1.定义:二叉搜索树,又称二叉排序树,若它的左子树不为空,则左子树的结点都小于根结点;若它的右子树不为空,则右子树的结点值都大于根结点,并且子树同样遵循这个原则。(为什么叫二叉排序树呢?因为对这个树进行中序遍历是有序的。) 2.好处:使用二叉搜索树,进行数据查找时,时间复杂度为...

2019-05-14 23:01:18

阅读数 20

评论数 0

基础数据结构——树、二叉树

一、树 定义:树是一种重要的非线性数据结构,直观地看,它是数据元素(在树中称为结点)按分支关系组织起来的结构,很象自然界中的树那样 特点:1.有一个根结点,称为root结点。2.每一个元素都被称为node。3。除了root结点外,其余的结点都会被分成n个互不相交的集合,并且每个子集又都是一个树...

2019-05-12 10:40:53

阅读数 20

评论数 0

java高并发之——synchronized和重入锁(ReentrantLock)

一、重入锁的定义: 为什么会叫重入锁,顾名思义,表示这个锁可以返回被添加,就是一个线程可以多次获得一把锁,只要在最后的时候做相同次数的锁释放即可。 Lock lock = new ReentrantLock(); lock.lock(); lock.lock(); try { //业务...

2019-04-24 23:43:02

阅读数 33

评论数 0

常见的排序算法

1.冒泡排序 定义:比较相邻的元素。如果第一个比第二个大,就交换他们两个;走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。 例如:对一个数组进行从小到达的排序,代码实现如下: ublic class ChooseSort { public sta...

2019-04-18 23:23:47

阅读数 14

评论数 0

java高并发之 —— 解决编发编程中的原子性、可见性和有序性

一、如果保证程序的原子性——锁 在程序开发中,我们如何才能保证一个程序的原子性是非常的重要的,保证程序原子性性,可以有效的避免在多线程过程中,出现的诡异bug。那在java程序中如果保证程序的原子性呢?也就是保证当前方法在同一时刻只能有一个线程对其进行操作,多线程在执行的时候,进行同步操作。 ...

2019-04-12 00:39:53

阅读数 30

评论数 0

java高并发之 —— 编发编程的Bug源头

我们知道并发编程比串行程序复杂的多,因为在并发程序下数据访问要保持一致性和安全性,这里就要提出一个临界区的概念!什么是临界区呢?临界区就是用来表示一种公共资源或者说是共享数据,可以被多个线程使用。但是每一次,只能有一个线程使用它,一旦临界区资源被占用,其他线程要想使用这个资源,就必须等待,也就是多...

2019-04-01 23:26:44

阅读数 24

评论数 0

java高并发之——线程池

一、什么是线程池 为了避免系统频繁地创建和销毁线程,让创建出来的线程可以进行复用,这时就可以使用线程池,在线程池中,长期保持几个线程处于激活状态,当需要使用线程的时候,不在是直接创建线程,而是去线程池中拿取可用线程进行操作;反正,完成操作后,不需要去销毁线程,而是将线程放回线程池中。即总结来说:...

2019-03-27 23:40:49

阅读数 27

评论数 0

记一次git clone 远程代码报错

直接上错误图片: 因为是第一次拉取线上项目,项目过大,导致每次拉取都报错,所以需要设置一个git的最大缓存大小。 解决方法: git config --global http.postBuffer 524288000 在终端使用上述命令,问题即可解决。 ...

2019-03-26 13:45:33

阅读数 29

评论数 0

记一次HashMap面试经历

一、首先说一下HashMap中几个重要参数 即默认桶的数量为16,一般第一次扩容时会扩容到64,之后为2倍的扩容 loadFactor译为装载因子,默认为0.75,装载因子用来衡量HashMap满的程度 最大容量: 2^ 30 次方 树形阈值:JDK 1.8 新增的,当使用...

2019-03-13 23:05:10

阅读数 53

评论数 0

记一次MyBatis报错 org.apache.ibatis.session.defaults.DefaultSqlSession

今天使用MyBatis向数据库中插入一跳记录,报错如下: SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@74794994] was not registered for synchronization becau...

2019-03-05 11:02:42

阅读数 1763

评论数 0

针对面试谈谈LinkedList和ArrayList的区别

1.说一下LinkedList和ArrayList的区别: 从数据结构上进行分析:LinkedList的实现是采用了链表的结构,而ArrayList的底层实现是数组。 ArrayList的查询速度快,但是添加、删除的操作慢;LinkedList查询速度慢,但是添加、删除操作快。 2.为什么L...

2019-02-27 23:28:30

阅读数 58

评论数 0

深入理解NIO

一、什么是BIO BIO:又叫阻塞io,例如我们进行socket网络编程的,当服务端没有接到客户端的连接时,这时服务端就回处于阻塞状态,当处于阻塞状态时,我们无法在对程序进行操作。 二、BIO存在的问题 当我们的程序阻塞时,会对服务端造成什么影响呢?—— 当阻塞时,回影响并发请求,无法处理多...

2019-02-20 22:14:40

阅读数 83

评论数 0

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