- 博客(29)
- 资源 (2)
- 收藏
- 关注
原创 双指针
167 两数之和II 输入有序数组 public int[] twoSum(int[] numbers, int target) { if(numbers==null || numbers.length==0) return null; int i=0,j=numbers.length-1; while(i<j)...
2019-04-28 11:21:52 123
原创 MySQL(三)
文章目录主从复制概念主从复制主要用途MySQL 主从形式MySQL 主从复制模式binlog记录格式GTID复制模式主从复制概念 MySQL 主从复制是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个从节点。MySQL 默认采用异步复制方式,这样从节点不用一直访问主服务器来更新自己的数据,数据的更新可以在远程连接上进行,从节点可以复制主数据库中的所有数据库或者特定的数据库,或者...
2019-07-25 19:35:18 113
原创 动态规划(含0-1背包)
64 最小路径和https://leetcode-cn.com/problems/minimum-path-sum/1处先判断j==0是因为如果判断先判断i==0时若j也为0,在dp[j]=dp[j-1];会出现数组越界。class Solution { public int minPathSum(int[][] grid) { if(grid==null || gr...
2019-07-03 09:53:04 140 1
转载 MySQL(二)
文章目录优化案例单表优化两表优化三张表优化A B C避免索引失效的一些原则一些其他的优化方法分析海量数据模拟海量数据分析海量数据锁机制表锁行锁(InnoDB)优化案例单表优化create table book( bid int(4) primary key, name varchar(20) not null, authorid int(4) not null, publicid ...
2019-05-27 15:56:58 180
转载 高性能的索引策略
文章目录聚簇索引InnoDB和MyISAM的数据布局的比较按primary key的顺序插入行(InnoDB)覆盖索引利用索引进行排序索引与加锁数据库查询什么时候用不到索引聚簇索引 聚簇索引保证关键字的值相近的元组存储的物理位置也相同(所以字符串类型不宜建立聚簇索引,特别是随机字符串,会使得系统进行大量的移动操作),且一个表只能有一个聚簇索引。因为由存储引擎实现索引,所以,并不是所有的引擎都...
2019-05-26 21:39:29 125
转载 MySQL(一)
原理MySQL逻辑分层 :连接层 服务层 引擎层 存储层InnoDB(默认) :事务优先 (适合高并发操作;行锁)MyISAM :性能优先 (表锁)查询数据库引擎: 支持哪些引擎? show engines ;查看当前使用的引擎: show variables like ‘%storage_engine%’ ; 指定数据库对象的引擎:create table tb( ...
2019-05-26 13:12:24 97
原创 搜索
BFSBFS 只能求解无权图的最短路径在程序实现 BFS 时需要考虑以下问题:队列:用来存储每一轮遍历得到的节点;标记:对于遍历过的节点,应该将它标记,防止重复遍历。计算在网格中从原点到特定点的最短路径长度[[1,1,0,1], [1,0,1,0], [1,1,1,1], [1,0,1,1]]1 表示可以经过某个位置,求解从 (0, 0) 位置到 (tr, tc) 位置的...
2019-05-23 21:09:52 112
转载 第六章 Java内存模型与线程
硬件效率与一致性由于存储设备和处理器运算速度之间的存在巨大的差异,现在计算机系统在内存与处理器之间加入高速缓存来作为处理器与内存之间的缓冲。将处理器需要的数据复制到缓存中,让处理器可以快速的获取数据进行计算,计算结束后再从缓存同步带内存中去,这样处理器无需等待缓慢的内存读写。如此引入了一个新的问题:缓存的一致性。在一个多处理器系统中,每个处理器有自己的高速缓存,而它们又共享同一主存,这样在运算...
2019-05-19 22:25:48 111
转载 第五章 虚拟机字节码执行引擎
运行时栈帧结构栈帧(Stack Frame) 是用于支持虚拟机方法调用和方法执行的数据结构,它是虚拟机运行时数据区中虚拟机栈(Virtual Machine Stack)的栈元素。栈帧存储了方法的局部变量表、操作数栈、动态连接和方法返回地址等信息。每一个方法从调用开始至执行完成的过程,都对应着一个栈帧在虚拟机栈里面从入栈到出栈的过程。在编译程序代码的时候,栈帧需要多大的局部变量表,多深的操作...
2019-05-17 15:10:39 100
转载 第四章 虚拟机类加载机制
文章目录类加载过程类加载时机类加载器类加载机制类加载过程JVM类加载机制分为五个部分:加载,验证,准备,解析,初始化,下面我们就分别来看一下这五个过程。加载加载是类加载过程中的一个阶段,这个阶段会在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的入口。注意这里不一定非得要从一个Class文件获取,这里既可以从ZIP包中读取(比如从jar包和wa...
2019-05-16 19:30:19 78
转载 第三章 类文件结构
Class类文件结构通过不同的编译器(Javac编译器,jrubyc编译器,groovyc编译器等等)将代码编译成规范的class文件,虚拟机只要接收到claas文件而并不关心是class文件时哪一种编译器编译的,这样就到达了(write one,run anywhere)。Class文件是一组以8bit为基础单位的二进制流,各个数据项目严格按顺序紧凑地排列在class文件中,中间无任何添割符...
2019-05-16 15:29:00 107
原创 第二章 垃圾收集器与内存分配策略
对象已死吗垃圾收集器对堆进行回收前,第一要做的事情就是确定哪些对象是‘死’的,哪些是‘活’的。引用计数算法给对象添加一个引用计数器。缺点:难以解决对象之间相互循环引用问题。从图中可以看出,如果不下小心直接把 Obj1-reference 和 Obj2-reference 置 null。则在 Java 堆当中的两块内存依然保持着互相引用无法回收。可达性算法通过一系列的 ‘GC Roo...
2019-05-14 20:01:59 113
原创 第一章 Java内存区域与内存溢出异常
文章目录JDK1.8 JVM运行时数据区域程序计数器Java虚拟机栈本地方法栈java堆元数据区HostSpot 虚拟机对象对象的创建对象的内存布局对象的访问定位JDK1.8 JVM运行时数据区域这里介绍的是JDK1.8 JVM运行时内存数据区域划分。1.8同1.7比,最大的差别就是:元数据区取代了永久代。元空间的本质和永久代类似,都是对JVM规范中方法区的实现。不过元空间与永久代之间最大的...
2019-05-14 16:22:08 136
原创 TreeMap
基本概念TreeMap集合是基于红黑树(Red-Black tree)的 NavigableMap实现。该集合最重要的特点就是可排序,该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方法。这句话是什么意思呢?就是说TreeMap可以对添加进来的元素进行排序,可以按照默认的排序方式,也可以自己指定排序方式。根据上一条,我们要想使用T...
2019-05-13 18:59:06 77
原创 面向对象(二)
文章目录面向对象的特征Comparable和Comparator接口ComparableComparator面向对象的特征(1)抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。(2)继承:继承是一种联结类的层次模型,并且允许和鼓励类...
2019-05-13 18:56:35 111
转载 HashSet
文章目录概述重要成员变量与构造方法addremove生成一个迭代器统计HashSet中包含元素的个数概述HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持。主要具有以下的特点:不保证set的迭代顺序,特别是它不保证该顺序恒久不变有且只允许一个null元素且不允许有重复元素,这是因为HashSet是基于HashMap实现的,HashSet中的元素都存放在HashM...
2019-05-13 18:52:30 216
原创 ConcurrentHashMap
文章目录数据结构重要成员变量实例初始化table扩容put操作get统计size删除元素数据结构ConcurrentHashMap相比HashMap而言,是多线程安全的,利用 CAS + synchronized 来保证并发更新的安全 ,其底层数据结构与HashMap的数据结构(数组+链表+红黑树)相同,数据结构如下:即:Node:保存key,value及key的hash值的数据结构。...
2019-05-13 10:03:14 122
原创 面向对象(一)
文章目录方法覆盖(Overriding)和方法重载(Overloading)方法覆盖(Overriding)方法重载(Overloading)面向对象的"六原则一法则"单一职责原则开闭原则依赖倒转原则里氏替换原则接口隔离原则合成聚合复用原则迪米特法则反射(主要参考[网址](https://blog.csdn.net/codejas/article/details/78635926))概述获取字节码...
2019-05-10 20:16:01 102
原创 Java基础
文章目录程序的执行顺序Java中基本类型和包装类基本数据类型包装类String StringBuffer StringBuilderStringStringBufferStringBuild程序的执行顺序class Print { Print() { System.out.println("haha"); }}class A { public A() {// 构造函数 Sy...
2019-05-10 09:31:17 100
原创 分治算法
241 为运算表达式设计优先级注意:添加了一个map来存储已经计算过的String,减少重复计算 public Map<String,List<Integer>> map=new HashMap<>(); public List<Integer> diffWaysToCompute(String input) { i...
2019-05-09 21:13:11 75
原创 二分查找
正常实现 public int binarySearch(int[] nums, int key) { int l=0,h=nums.length-1; while(l<=h){ int m=l+(h-l)/2; if(nums[m]==key){ return m; }else if(nums[m]<key){ l=m+1; }els...
2019-05-08 20:48:06 76
原创 贪心算法
455 分发饼干 public int findContentChildren(int[] g, int[] s) { if(g==null || g.length==0 || s==null || s.length==0) return 0; Arrays.sort(g); Arrays.sort(s); ...
2019-05-08 18:20:02 171
原创 排序
选择排序从数组中选择最小元素,将它与数组的第一个元素交换位置。再从数组剩下的元素中选择出最小的元素,将它与数组的第二个元素交换位置。不断进行这样的操作,直到将整个数组排序。选择排序需要 ~N2/2 次比较和N次交换,它的运行时间与输入无关,这个特点使得它对一个已经排序的数组也需要这么多的比较和交换操作。...
2019-04-25 21:04:05 96
原创 第三章 默认标签的解析
默认标签是在parseDefaultElement函数中进行的,函数中分别对4中不同的标签(import、alias、bean、beans)做了不同的处理。DefaultBeanDefinitionDocumentReader.javaprivate void parseDefaultElement(Element ele, BeanDefinitionParserDelegate deleg...
2019-04-23 18:45:06 128
原创 Spring源码解析第二章
一、代码块BeanFactoryTest@SuppressWarnings("deprecation")public class BeanFactoryTest { @Test public void testSimpleLoad(){ BeanFactory bf=new XmlBeanFactory(new ClassPathResource("beanFactoryTest.x...
2019-04-10 18:36:45 87
转载 LinkedList
一、概述LinkedList是一个实现了List接口和Deque接口的双端链表。有关索引的操作可能从链表头开始遍历到链表尾部,也可能从尾部遍历到链表头部,这取决于看索引更靠近哪一端。LinkedList不是线程安全的,如果想使LinkedList变成线程安全的,可以使用如下方式:List list=Collections.synchronizedList(new LinkedList(.....
2019-03-18 19:24:25 116
转载 HashMap
一、HashMap概述在JDK1.8之前,HashMap采用数组+链表实现,即使用链表处理冲突,同一hash值的节点都存储在一个链表里。但是当位于一个桶中的元素较多,即hash值相等的元素较多时,通过key值依次查找的效率较低。而JDK1.8中,HashMap采用数组+链表+红黑树实现,当链表长度超过阈值(8)时,将链表转换为红黑树,这样大大减少了查找时间。二、涉及到的数据结构:处理hash...
2019-03-18 17:11:59 73
四路抢答器
2018-04-02
基于嵌入式设备的多媒体时钟
2018-04-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人