More Think

  • 首页
  • 分类
  • 标签
  • 归档
  • 关于
  • 读书
  • 电影
  • 搜索

查询在一张表不在另外一张表的记录及效率探究

发表于 2017-11-16 | 分类于 数据库 |

在我做项目的时候遇到一个需求,要将存在于表ta而不存在于表tb中的数据查询出来。

记录使用的方法和探讨效率。

阅读全文 »

get请求中文乱码及get,post编码探究

发表于 2017-11-14 | 分类于 网络 |

在我使用get请求进行查询的时候遇到一个问题:
当我的请求参数中有中文时,出现乱码。
可是即使我设置了Spring的characterEncodingFilter,也还是出现乱码。
原因:tomcat默认使用ISO8859-1编码来解析get中的url参数,导致乱码。而characterEncodingFilter或者request.setCharacterEncoding("UTF-8");都只针对post请求体有效。
下面对Http中get方法编码到tomcat的解码过程进行探究。

阅读全文 »

spring使用redis做缓存

发表于 2017-11-06 | 分类于 Spring |

缓存

什么是缓存?

在高并发下,为了提高访问的性能,需要将数据库中 一些经常展现和不会频繁变更的数据,存放在存取速率更快的内存中。这样可以

  1. 降低数据的获取时间,带来更好的体验
  2. 减轻数据库的压力

缓存适用于读多写少的场合,查询时缓存命中率很低、写操作很频繁等场景不适宜用缓存。

MySQL有自己的查询缓存,为什么还要使用 Redis 等缓存应用?

  • 当只有一台 MySQL服务器时,可以将缓存放置在本地。这样当有相同的 SQL 查询到达时,可以直接从缓存中取到查询结果,不需要进行 SQL 的解析和执行。MySQL 提供了服务器层面的缓存支持。
  • 如果有多台 MySQL 服务器,请求会随机分发给多台中的一台,我们无法保证相同的请求会到达同一台服务器,本地缓存命中率较低。所以基于本机的缓存就没有什么意义,此时采用的策略应该是将查询结果缓存在 Redis 或者 Memcache 中。

而Redis是一个高性能的 key-value 内存数据库,恰恰可以作为缓存使用。

阅读全文 »

单点登录之tomcat中session在两个webapp中实现共享

发表于 2017-10-30 | 分类于 服务器 |

现在遇到一个需求就是要求完成简单的单点登录,通过在一个tomcat实例中放置两个webapps应用ROOT应用和CEO应用来完成在ROOT应用登录后,在CEO可以直接使用,而未在ROOT应用登录时,不可以进去CEO应用。
实际上问题就是session如何在两个webapp中实现共享,通过上网搜索发现一个方法

阅读全文 »

JDK8 HashMap 源码解析

发表于 2017-10-24 | 分类于 Java |

HashMap中数据结构

在jdk1.7中,HashMap采用数组+链表(拉链法)。因为数组是一组连续的内存空间,易查询,不易增删,而链表是不连续的内存空间,通过节点相互连接,易删除,不易查询。HashMap结合这两者的优秀之处来提高效率。

而在jdk1.8时,为了解决当hash碰撞过于频繁,而链表的查询效率(时间复杂度为O(n))过低时,当链表的长度达到一定值(默认是8)时,将链表转换成红黑树(时间复杂度为O(lg n)),极大的提高了查询效率。

如图所示:

阅读全文 »

windows Apache服务器配置

发表于 2017-09-19 | 分类于 服务器 |

Apache

64位可以而32位不可以

安装Apache服务

注意:

  • 如果没有自己设置Apache服务名,后面都可不跟-n “服务名”,即采用默认的服务名称。
  • 必须用管理员提示符打开,直接用shift+F10打开命令行是不行的。
阅读全文 »

面试中的Java链表

发表于 2017-08-20 | 分类于 算法 |

链表作为常考的面试题,并且本身比较灵活,对指针的应用较多。本文对常见的链表面试题Java实现做了整理。

链表节点定义如下:

static class Node {
int num;
Node next;
}

阅读全文 »

递归与变态跳台阶

发表于 2017-08-13 | 分类于 算法 |

数学是算法的皇后,不懂数学,难学算法啊。

剑指offer第11题Java实现

题目:
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。

阅读全文 »

Java迭代实现斐波那契数列

发表于 2017-08-05 | 分类于 算法 |

剑指offer第九题Java实现
题目:
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。

阅读全文 »

Java实现二叉树的先序、中序、后序、层序遍历(递归和非递归)

发表于 2017-07-31 | 分类于 算法 |

二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有前序、中序以及后序三种遍历方法。因为树的定义本身就是递归定义,因此采用递归的方法去实现树的三种遍历不仅容易理解而且代码很简洁。而对于树的遍历若采用非递归的方法,就要采用栈去模拟实现。在三种遍历中,前序和中序遍历的非递归算法都很容易实现,非递归后序遍历实现起来相对来说要难一点。

阅读全文 »
1…456…8
morethink

morethink

71 日志
14 分类
47 标签
RSS
GitHub 博客园
© 2022 morethink
由 Hexo 强力驱动
|
主题 — NexT.Gemini v5.1.3
访问人数 总访问量
0%