自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 dfs和bfs

地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?import java.util.concurrent.*;import java.util.*;public class Solution { in

2020-06-14 18:16:42 185

原创 理解根目录,getClass().getResourceAsStream和getClass().getClassLoader().getResourceAsStream的区别

web项目中 ,编译好的.class文件,xml、properties等配置文件都在WEB-INF/classes目录下。也就是编译后的根目录。getClass().getClassLoader().getResourceAsStream ,通过类加载器可以直接定位到根目录下。(因为双亲委派机制)getClass().getResourceAsStream 则是定位到当前类的平级。(...

2019-11-05 14:10:20 477

原创 实现轻量java web框架

思路:SpringIoc: 实现注解: @MyRepository @Service @Controller @Bean @Configuration @ComponentScan @MyAutowired @MyValue 实现了用注解、配置类、xml 注册bean1、ApplicationContextBuilder.build( InputSt...

2019-11-05 14:00:43 262

原创 java中properties配置文件的用法

1、实例化properties类(java.util.Properties)Properties prop = new Properties();2、利用Properties中的load()方法加载配置文件prop.load(DBUtil.class.getResourceAsStream("/jdbc.properties"));或:xx.getClass().getC...

2019-11-02 19:10:57 623

原创 实现jdk动态代理和CGLIB动态代理

JDK自带方法首先介绍一下最核心的一个接口和一个方法:首先是java.lang.reflect包里的InvocationHandler接口:public interface InvocationHandler { public Object invoke(Object proxy, Method method, Object[] args) throws Th...

2019-10-30 16:13:05 213

原创 图(java实现)

一、图的表示方式1、邻接矩阵如果是带权图,将1换成权值。2、邻接表表示与1 关联的有 1,2,3,4二、图的实现。图: /** * 图。 * notes:所有的节点。 * edges:所有的边。 */ static class Graph { HashMap<Integer, ...

2019-10-25 20:22:17 349

原创 暴力递归与动态规划

1、汉诺塔问题。打印n层汉诺塔从最左边移动到最右边的全部过程。 public static void main(String[] args) { method(3, "左", "右", "中"); } public static void method(int n, String from, String to, String help) { ...

2019-10-24 11:23:40 171

原创 贪心算法实例

贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择,选择的贪心策略必须具备无后效性,即某个状态以前的过程不会影响以后的状态,只与当前状态有关。[1]----------------------------------------...

2019-10-22 21:11:19 413

原创 前缀树(java实现)经典例题

Trie树,又叫字典树、前缀树(Prefix Tree)、单词查找树或键树,是一种多叉树结构。如下图:上图是一棵Trie树,表示了关键字集合{“a”, “to”, “tea”, “ted”, “ten”, “i”, “in”, “inn”} 。从上图可以归纳出Trie树的基本性质:①根节点不包含字符,除根节点外的每一个子节点都包含一个字符。②从根节点到某一个节点,路径上经过的字符连接起来,...

2019-10-22 20:53:45 696

原创 java实现并查集

在计算机科学中,并查集是一种树型的数据结构,用于处理一些不交集(Disjoint Sets)的合并及查询问题。有一个联合-查找算法(union-find algorithm)定义了两个用于此数据结构的操作:Find:确定元素属于哪一个子集。它可以被用来确定两个元素是否属于同一子集。 Union:将两个子集合并成同一个集合。 ...

2019-10-22 19:05:35 464

原创 小岛问题

题目:一个矩阵中只有0和1两种值,每个位置都可以和自己的上、下、左、右四个位置相连,如果有一片1连在一起,这个部分叫做一个岛,求一个矩阵中有多少个岛?举例:0 0 1 0 1 01 1 1 0 1 01 0 0 1 0 00 0 0 0 0 0这个矩阵中有三个岛。分析:1、将数据存到二维数组中,遍历数组,当前值为1时,岛计数加一,将当前值写为2,并将当前于之相连的1值...

2019-10-22 18:16:02 327

转载 满二叉树,完全二叉树,平衡二叉树,二叉搜索树(二叉查找树)

二叉树: 每个结点不超过2个子树的树结构。满二叉树:一个结点要么是叶子节点,要么有两个叶子结点。(国内教程定义:一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是满二叉树)完全二叉树:深度为h,除h层外,h-1层是满二叉树,h层结点连续集中在左边。(若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这...

2019-10-21 09:50:46 488

原创 二叉树经典例题

二叉树: static class Node { private int data; private Node left; private Node right; public Node() { } public Node(int data) { this.da...

2019-10-18 13:32:31 713 1

原创 链表经典例题

单向链表:class Node { private int data; private Node next; public Node(int data) { this.data = data; } public int getData() { return d...

2019-10-16 15:08:48 179

原创 矩阵经典例题

一、顺时针打印矩阵宏观的将整个矩阵看作是一个套一个的方框 ,找到对角线上两个点的坐标,遍历每一个方框。 public static void method(int[][] arr) { method2(arr, 0, 0, arr.length - 1, arr[0].length - 1); } public static void metho...

2019-10-15 19:41:41 1120

原创 栈与队列

数组模拟队列: static class queue1 { private int[] arr; private int first = 0; private int end = 0; public void add(int num) { if (end >= arr.length) { ...

2019-10-15 17:43:28 157

原创 数组相邻两数最大差值

给定一个数组,求排序之后,相邻两数的最大差值,要求时间复杂度O(N),且要求不能用非基于比较的排序。思路:因为要求时间复杂度为O(n)且不能用非比较排序,常用的比较排序很难做到O(n)。这里是借助n+1个桶,将n个数平均分配到n个桶里,所以我们所求的最大差值肯定不在一个桶内(只有一个数另说),然后依次求出当前桶最小值与前一个非空桶最大值的差值,求出最大的差值就是我们要的结果。 st...

2019-10-15 16:49:04 475

原创 荷兰国旗问题

一、给定一个数组arr,和一个数num,请把小于等于num的数放在数组的左边,大于num的数放在数组的右边。要求额外空间复杂度O(1),时间复杂度O(N) public void method(int[] arr, int num) { int index = 0; for (int i = 0; i < arr.length; i++) { ...

2019-10-15 15:41:31 138

原创 小和问题

一、最简单的就是遍历一遍算出小和二、通过归并的方法利用归并排序,分治 后用外排进行合并时同时求出这两段产生的小和。时间复杂度为n*lognpublic static int littleSum(int[] arr) { return mergeSort(arr, 0, arr.length - 1); } private static ...

2019-10-15 15:09:43 183

原创 java排序算法

数组中两个数交换位置: public static void swap(int[] arr, int a, int b){ int temp = arr[a]; arr[a] = arr[b]; arr[b] = temp; }一、基于比较的排序1、冒泡排序 public static void bubbleSort(int[] arr){ if(arr =...

2019-10-14 15:14:26 162

原创 == 与 equals 与 hashcode

一、介绍== 比较的是对象的引用,也就是物理地址equals比较的是对象的值hashcode是对象的哈希值,根据这个哈希值找到对象在内存中的地址。二、比较equals与hashcode1、equals相等的话,hashcode一定相等。我们此处的equals,指的是比较对象值的equals。拿String举例,String类继承了Object类,并重写了equals...

2019-10-09 15:44:47 211

转载 select--from--where--group by--having--order by 的执行顺序

查询中用到的关键词主要包含六个,并且他们的顺序依次为select--from--where--group by--having--order by其中select和from是必须的,其他关键词是可选的,这六个关键词的执行顺序与sql语句的书写顺序并不是一样的,而是按照下面的顺序来执行from--where--group by--having--select--orde...

2019-10-07 15:44:55 207

原创 MySQL三大范式

关系数据库共有六大范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)。一般来说,关系数据库只需要满足第三范式就可以了。第一范式:原子性,字段不可再分。数据表的每一列都要保持它的原子特性,也就是列不能再被分割。这张表就不符合第一范式规定的原子性,不符合关系型数据库的基本要求,在关系型...

2019-10-07 11:17:19 525

原创 MySQL索引

一、什么是索引,索引的优缺点索引本质上是一张表,保存了索引字段并指向实体表的记录,通常将SQL 查询语句的条件(一般作为 WHERE 子句的条件)设置索引。优点:查询速度快。不用遍历整张表。缺点:创建太多索引会占内存,每次更新数据时同样要更新索引,所以会影响数据的更新速度。二、索引分类单例索引(普通索引,唯一索引,主键索引),组合索引,全文索引,空间索引1、单例索引只能包含...

2019-10-05 18:23:24 162

原创 正向代理与反向代理

反向代理:代理服务器作为服务器与外部的门户,可以优化网站负载,实现负载均衡。可以阻止web攻击。正向代理:作为客户端访问网站的中介。...

2019-10-02 09:39:46 115

原创 java8新特性总结

一、接口的默认方法java8以后允许接口设置非抽象方法,本质上相当于实现了一个匿名内部类,用于调用重写的接口方法。public interface Hehe { default void hehe() { System.out.println("hehe"); }}二、lamda表达式要使用一个接口的方法,必须用一个实现他的类,匿名类,或lamda...

2019-09-28 12:18:50 199

原创 同步,异步,阻塞,非阻塞

一、同步/异步:形容一次方法的调用,在单线程中。描述的是执行者是否具备主动通知功能  同步,调用者会等到方法调用返回后才能继续后面的行为  异步,调用者不需要等到方法返回,方法执行完毕后会主动通知调用者二、 阻塞/非阻塞:调用者是否可以执行多个任务,在多个线程中。描述的是调用者的多个线程是否可以同时执行  阻塞,线程1和线程2不能同时进行  非阻塞,线程1和线程2可以同时进行...

2019-09-25 11:03:18 137

转载 jvm分配担保机制

在发生Minor GC之前,虚拟机会先检查老年代最大可用的连续空间是否大于新生代所有对象总空间。如果这个条件成立,那么Minor GC可以确保是安全的。如果不成立,则虚拟机会查看HandlerPromotionFailure设置是否允许担保失败。如果允许,那么会继续检查老年代最大可用的连续空间是否大于历次晋升到老年代对象的平均大小。如果大于,将尝试着进行一次Monitor GC,尽管这次GC是有风...

2019-09-23 08:03:02 249

转载 新生代Eden与两个Survivor区的解释

聊聊JVM的年轻代1.为什么会有年轻代我们先来屡屡,为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的唯一理由就是优化GC性能。你先想想,如果没有分代,那我们所有的对象都在一块,GC的时候我们要找到哪些对象没用,这样就会对堆的所有区域进行扫描。而我们的很多对象都是朝生夕死的,如果分代的话,我们把新创建的对象放到某一地方,当GC的时候先把这块存“朝生夕死”对象的区域进行回...

2019-09-09 16:08:17 89

转载 session和cookie:关闭浏览器后会怎样?

session保存在服务器端,会一直存在,默认存在时间30分钟;cookie保存sessionid,服务器会根据cookie中sessionid获取session;两种类型的Cookie:临时Cookie(会话Cookie) 永久Cookie不设置过期时间,则表示这个cookie生命周期为浏览器会话期间,只要关闭浏览器窗口,cookie就消失了。这种生命期为浏览会话期的cookie...

2019-09-01 14:33:03 531

转载 会话跟踪技术的四种实现

1. 什么是会话会话是指一个终端用户(服务器)与交互系统(客户端)进行通讯的过程。2. 什么是会话跟踪对同一个用户对服务器的连续的请求和接受响应的监视。(将用户与同一用户发出的不同请求之间关联,为了数据共享)3. 为什么需要会话跟踪浏览器与服务器之间的通信是通过HTTP协议进行通信的,而HTTP协议是”无状态”的协议,它不能保存客户的信息,即一次响应完成之后连接就断开了,下一次...

2019-09-01 14:29:42 173

原创 xml 的sql 中 报Tag name expected

xml中 > < 是非法的,需要转义&lt; < 小于 &gt; > 大于 &amp; & 和号 &apos; ' 省略号 &quot; " 引号

2019-08-25 17:04:14 1721

原创 mysql查询不区分大小写

原因:Mysql默认的字符检索策略:utf8_general_ci,表示不区分大小写;utf8_general_cs表示区分大小写,utf8_bin表示二进制比较,同样也区分大小写 。(注意:在Mysql5.6.10版本中,不支持utf8_genral_cs!!!!)解决一、创建表时,直接设置表的collate属性为utf8_general_cs或者utf8_bin;如果已经创建表,则...

2019-08-21 17:33:06 959

原创 sql 先逆序(order by desc)再分组(group by)无效解决方法

message表:现在想要查询出所有conversation_id不同的时间最近的数据。原本的思路是:先将整张表根据created_date逆序,在根据conversation_id进行分组。网上很多思路也是这样。sql语句如下:select * from (select * from message order by id desc) tt group by conve...

2019-08-21 10:13:06 6188 1

原创 spring 拦截器 拦截不住的原因

拦截器是在执行Controller之前调用!!!单纯的超链接跳转如果不涉及controller是没用的!!!

2019-08-04 13:49:34 505

转载 计算机网络五层结构自顶向下

现在告诉各位计算机网络就分为这五层,请记住,稍后会详解这篇博客我准备以qq消息为例,向各位详细解释,一个qq消息是如何发到互联网上的?现在开始,希望每个人都可以有一个可以发晚安的人,这里就以“晚安”为例。1 应用层应用层是直接面向用户的,当我们登陆上qq之后,打开聊天窗口,对着某个人发送“晚安”,这两个字会被打包成一个数据包,如下所示:应用层有一些协议,ftp,smtp,http等,但...

2019-08-01 21:38:31 303

原创 字(word)、字节(byte)、位(bit)

一、字节与位B:一般指字节(byte或Byte)可以表示一个字母,符号,数字。一个中文汉字至少需要两个字节。b:一般指位(bit)电脑记忆体中最小的单位,在二进位电脑系统中,每一bit 可以代表0 或 1 的数位讯号。1个字节8位,1B=8b二、字与字节字:word字节:byte1个字2个字节16位,1 word = 2 byte = 16bit字长是指字的长...

2019-08-01 21:26:29 3712

原创 count(1)、count(*)与count(列名)的区别

执行效果上: count(*)包括了所有的列,相当于行数,在统计结果的时候,不会忽略列值为NULL count(1)包括了忽略所有列,用1代表代码行,在统计结果的时候,不会忽略列值为NULL count(列名)只包括列名那一列,在统计结果的时候,会忽略列值为空(这里的空不是只空字符串或者0,而是表示null)的计数,即某个字段值为NULL时,不统计。执行效率上: 列名为主键,c...

2019-07-27 15:12:46 264

转载 mybatis-generator使用

mybatis-generator根据数据库自动生成POJO 、dao和对应的XML文件Pojo: 里面放的跟DB一一对应的对象dao:是接口,供service调用XML:是dao接口的实现,SQL语句写在这里如何安装在porm里面添加 <build><finalName>mmall</finalName><plugins...

2019-07-25 19:00:05 114

原创 JSONObject,JSONArray,ObjectMapper 分别实现json与bean的转换

更新:JsonObject:pom.xml: <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2....

2019-07-25 15:26:02 2328

空空如也

空空如也

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

TA关注的人

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