自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 资源 (3)
  • 收藏
  • 关注

原创 数据库相关(mysql)

数据库性能优化大表导致的问题大表往往会造成慢查询的产生,因为很难在一定时间内过滤出需要的数据。大表在建立索引时会消耗更多的时间。解决方案:分库分表。大事务导致的问题运行时间比较长,操作数据比较多锁定的数据太多导致大量的阻塞和锁超时。回滚所需要的时间比较长。执行时间长,容易造成主从延迟。解决方案:避免一次性处理较多的数据,移除不必要的select操作。服务器的...

2020-01-31 18:17:02 165

原创 事务,缓存

JDBC事务JDBC中的事务涉及到是三个方法(三个方法都通过Connection调用):setAutoCommit(boolean b)commit()rollback()如果setAutoCommit(true);这是默认的方式,表示开启自动提交,即每条执行的SQL语句都是一个事务。因此,如果要开启事务,即让一组SQL语句构成一个事务,那么需要进行设置:首先,显式调用setAuto...

2020-01-28 19:01:17 401

原创 AOP分类及其实现原理

编译期AOP在编译阶段就可生成 AOP代理类,在java编译期采用特殊的编译期,将切面织如java类中。类加载期AOP在类加载期,通过特殊的类加载器,在类字节码加载到JVM时,织入切面。运行期AOP在运行期,采用gclib工具或者jdk动态代理进行切面织入。AspectJ采用编译期织入和类加载期织入的方式织入切面,第一种采用特殊编译器,在编译期将采用aspectJ语言编写的切面织入到...

2020-01-28 17:53:07 411

原创 AQS的原理

AQS(AbstractQueuedSynchronizer)即 抽象队列同步器,是用来构建锁或者其他同步组件的基础框架,它使用了一个int成员变量表示同步状态,通过内置的FIFO队列来完成资源获取线程的排队工作。抽象队列同步器自身没有实现任何同步接口,它仅仅是定义了若干同步状态获取和释放的方法来供自定义同步组件使用,同步器既可以支持独占式地获取同步状态,也可以支持共享式地获取同步状态。抽象队...

2020-01-25 11:47:28 122

原创 CAS的ABA问题,ABA问题带来的错误,ABA问题的解决办法

什么是ABA问题?假设有三个线程,线程1、线程2、线程3。其中线程1执行CAS操作:如果共享变量var的当前值为A,则将其修改为新值B。线程2执行与线程1相同的操作。线程3执行另一个CAS操作:如果共享变量var的当前值为B,则将其修改为新值A。为简化描述,这里假设只有一个CPU即单核的情况下,启动3个线程。线程1首先获取到CPU执行时间,且成功执行CAS操作,将共享变量var的值由A修改为B...

2020-01-24 11:22:44 657 1

原创 Unsafe类的原理

Unsafe类的介绍sun.misc.Unsafe是基于操作系统的原子操作类。它是Java中对大多数锁机制实现的最基础类,JDK 1.8和之前JDK版本的中sun.misc.Unsafe类可提供的方法有较大的变化,JDK1.8及之后的Unsafe类提供的方法更多。Unsafe类提供了硬件级别的原子操作。获取Unsafe类对象实例Unsafe类是一个单例,调用的方法为 getUnsafe(),...

2020-01-22 12:24:19 633

原创 JVM调优参数与常用工具

常用的JVM调优参数-Xms:设置初始堆大小-Xmx:设置最大堆大小-Xmn:设置年轻代的大小-Xss:设置每个线程可使用的内存大小,即栈的大小。在相同物理内存下,减小这个值能生成更多的线程,当然操作系统对一个进程内的线程数还是有限制的,不能无限生成。线程栈的大小是个双刃剑,如果设置过小,可能会出现栈溢出,特别是在该线程内有递归、大的循环时出现溢出的可能性更大,如果该值设置过大,就有影响...

2020-01-20 10:35:24 240

原创 java内存分配

对象的创建创建一个对象通常是需要new关键字,当虚拟机遇到一条new指令时,首先检查这个指令的参数是否在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果类没有被加载,那么执行相应的类加载过程。对象所需内存的大小在类加载完成后便完全确定(JVM可以通过普通Java对象的类元数据信息确定对象大小)为对象分配空间的任务等同于把一块确定大小的内存从Jav...

2020-01-14 16:52:50 170

原创 HotSpot虚拟机中的7种垃圾回收器

垃圾收集器概述垃圾收集器组合图中展示了7种垃圾收集器,Serial、ParNew、Parallel Scavenge、CMS、Serial old、Parallel Old、G1带有连线的收集器代表可以组合使用Serial Old作为CMS出现"Concurrent Mode Failure"失败的后备预案并发垃圾收集和并行垃圾收集的区别并行指多条垃圾收集线程并行执行,但是用户...

2020-01-13 22:05:39 425

原创 java8 永久代到元空间

JVM内存结构的细化进一步细化针对java7以及以前的版本堆和方法区是连在一起的,逻辑上是分开的,但是在物理上,堆内存和方法区内存是连在一起的,是一块连续的内存。堆和方法区都是java虚拟机规范中的内容,堆在HotSpot虚拟机中是采用新生代+老年代的方式实现的,而方法区在HotSpot虚拟机中是采用永久代的方式实现的。这里需要了解一下,规范与实现。规范和实现针对Java虚拟机的...

2020-01-12 18:40:18 321

原创 java内存模型与happens-before原则

java内存模型(JMM)首先说一下,线程安全问题其实是由于主内存与工作内存数据不一致,以及指令重排序导致的。(java中的主内存与工作内存可以类比物理机中的内存与CPU的高速缓存cache)。java内存模型的概念java内存模型(Java Memory Model,JMM)是java虚拟机规范定义的,用来屏蔽掉java程序在各种不同的硬件和操作系统对内存的访问的差异,这样就可以实现jav...

2020-01-11 19:10:29 178

原创 正则表达式以及贪婪、勉强、独占三种量词

正则表达式速查表字符描述\将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符。例如,“n”匹配字符“n”。“\n”匹配一个换行符。串行“\\”匹配“\”而“\(”则匹配“(”。^匹配输入字符串的开始位置。如果设置了RegExp对象的Multiline属性,^也匹配“\n”或“\r”之后的位置。$匹配输入字符串的结束位置。如果设...

2020-01-11 11:44:47 705

原创 Volatile关键字的底层实现原理以及单例模式中使用Volatile关键字的原因

Volatile关键字在多处理器开发环境中或者多线程环境下,保证共享变量的可见性。可见性:当一个线程修改共享变量的值之后,其它线程可以立即读取到它修改的值。如果 volatile 使用得当的话,它会比 synchronized 的成本更低,因为它不会造成线程的阻塞,也就不会导致上下文切换和调度,所以性能更好,开销更低。Volatile的定义Java 编程语言允许线程访问共享变量,为了确保共...

2020-01-10 21:38:54 244

原创 BitSet的原理

BitSet的作用使用BitSet可以节省存储空间可以在o(1)的复杂度查询出某个值是否存在Set方法public void set(int bitIndex) { if (bitIndex < 0) throw new IndexOutOfBoundsException("bitIndex < 0: " + bitIndex); int w...

2020-01-10 20:32:30 225

原创 java中的移位运算符

“<<”"<<"其实就是数字转化为二进制形式,左移,之后低位补0。且左移位数为32或者32的倍数时,执行该操作之后,数值不变。举例子简单说明一下:3<<30 00000000 00000000 00000000 00000011(3) ->11000000 00000000 00000000 000000003<<33 000...

2020-01-10 18:16:52 132

原创 红黑树的插入操作详解

红黑树的插入操作详解红黑树的特点插入操作分析代码红黑树的特点每个节点或者是黑色节点,后者是红色节点根节点是黑色节点每个叶子节点(NULL节点)是黑色节点若一个节点是红色节点,那么它的所有子节点都是黑色节点从任意一个非叶子节点出发,到达叶子节点,其中所有路径经过的黑色节点的数目是相同的以上5个特点决定红黑树中,从一个非叶子节点出发到达叶子节点,其中最长路径的长度不超过最短路径长度的两...

2020-01-10 12:40:44 296

分布式CNN代码

用tensorflow实现的分布式CNN代码,用于识别手写数字。代码中的数据集目录设置的是F:/tmp/data,可以自己改变路径,从下面链接下载数据集,链接:https://pan.baidu.com/s/1uO-GOwkhLWx4Z26WqPV0LA 提取码:v4w5,下载后是一个data.zip压缩包,将其解压后放到你自己的路径里,总共有四个压缩文件,不用继续解压,程序可以处理压缩文件形式。

2019-05-01

《Python神经网络编程》中文版PDF+英文版PDF+源代码

本资源提供了《Python神经网络编程》中文版PDF+英文版PDF+源代码

2019-02-28

强化学习最优路径寻找算法

通过强化学习算法,实现最短路径寻找,确定路径起点与终点,设置路径权重,完成路径规划。

2019-02-27

空空如也

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

TA关注的人

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