自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(356)
  • 资源 (4)
  • 收藏
  • 关注

转载 Ehcache 整合Spring 使用页面、对象缓存

Ehcache 整合Spring 使用页面、对象缓存Ehcache在很多项目中都出现过,用法也比较简单。一般的加些配置就可以了,而且Ehcache可以对页面、对象、数据进行缓存,同时支持集群/分布式缓存。如果整合Spring、Hibernate也非常的简单,Spring对Ehcache的支持也非常好。EHCache支持内存和磁盘的缓存,支持LRU、LFU和FIFO多种淘汰算法,支持分布

2016-10-07 11:17:42 572

转载 关于论坛数据库的设计

一个简单的论坛系统 1:包含下列信息:  2:每天论坛访问量300万左右,更新帖子10万左右。 请给出数据库表结构设计,并结合范式简要说明设计思路。 一. 发帖主题和回复信息存放在一张表,并在这个表中增加user_name字段 对数据库的操作而言,检索数据的性能基本不会对数据造成很大的影响(精确查找的情况下),而对表与表之间的连接却会产生巨大的影响, 特别在有巨

2016-10-07 11:04:28 29337 5

转载 数据库设计的一些疑惑

1:数据库中的数据应该采用逻辑删除还是物理删除? 引用最好不要物理删除,应该清楚,业务上所谓的删除和技术实现上的删除不是一个意思2:数据库要记录数据的变更改怎么设计? 引用要记录数据的变更记录,可以采用一个history表来记录历史变化。比如设计一个表叫做user,还有一个叫做user_history。那么每次user永远记录最新的记录,而user_hist

2016-10-07 11:03:52 630

转载 Java 数组在内存中的结构

Java中的数组存储两类事物: 原始值(int,char,...),或者引用(对象指针).当一个对象通过 new 创建,那么将在堆内存中分配一段空间,并且返回其引用(指针).对于数组,也是同样的方式.1. 一维数组[java] view plain copyint arr[] = new int[3];  int[] arr 指向

2016-09-29 22:42:40 3435

转载 Java并发框架Executor学习笔记

Java SE5的java.util.concurrent包中的执行器(Executor)将为你管理Thread对象,从而简化了并发编程。Executor在客户端和执行任务之间提供了一个间接层,Executor代替客户端执行任务。Executor允许你管理异步任务的执行,而无须显式地管理线程的生命周期。Executor在Java SE5/6中时启动任务的优选方法。Executor引入了一些功能类来

2016-09-29 16:07:33 342

转载 线程池的原理及实现

1、线程池简介:    多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力。        假设一个服务器完成一项任务所需时间为:T1 创建线程时间,T2 在线程中执行任务的时间,T3 销毁线程时间。    如果:T1 + T3 远大于 T2,则可以采用线程池,以提高服务器性能。                一个线程

2016-09-29 15:56:21 316

转载 java中Executor、ExecutorService、ThreadPoolExecutor介绍

1.Excutor     源码非常简单,只有一个execute(Runnable command)回调接口 public interface Executor {    /**     * Executes the given command at some time in the future.  The command     * may execute in a n

2016-09-29 15:55:07 591

转载 SSH框架mvc三层架构

这几天一直在学习使用SSH2框架,对于框架本身的使用并不是很困难,相信经过多锻炼就能够熟练的掌握框架的使用,让我匪夷所思的是在使用框架的时候感觉很熟悉,好像在哪里用过似得。就在某次查看代码的时候突然闪现了一个想法,SSH2框架和经典三层很相似,当然经过翻阅资料发现我的想法还是有理论依据的,接下来将会证实该猜想。一、SSH2初识       我们通常所说的SSH2

2016-09-27 11:18:18 7783

转载 电商网站是怎么处理大数据和并发架构网站

第一点服务器负责均衡:web 负载均衡的作用就是把请求均匀的分配给各个节点,它是一种动态均衡,通过一些工具实时地分析数据包,掌握网络中的数据流量状况,把请求理分配出去。对于不同的应用环境(如电子商务网站,它的计 算负荷大;再如网络数据库应用,读写频繁,服务器的存储子系统系统面临很大压力;再如视频服务应用,数据传输量大,网络接口负担重压。),使用的均衡策略 (算法)是不同的。 所以均衡策略(

2016-09-27 11:05:11 3868

转载 堆排序 Java

堆排序算法介绍堆是一种重要的数据结构,为一棵完全二叉树, 底层如果用数组存储数据的话,假设某个元素为序号为i(Java数组从0开始,i为0到n-1),如果它有左子树,那么左子树的位置是2i+1,如果有右子树,右子树的位置是2i+2,如果有父节点,父节点的位置是(n-1)/2取整。分为最大堆和最小堆,最大堆的任意子树根节点不小于任意子结点,最小堆的根节点不大于任意子结点。所谓堆排序就是利用堆

2016-09-27 10:46:04 401

转载 JAVA Hibernate工作原理

hibernate 简介:hibernate是一个开源框架,它是对象关联关系映射的框架,它对JDBC做了轻量级的封装,而我们java程序员可以使用面向对象的思想来操纵数据库。hibernate核心接口session:负责被持久化对象CRUD操作sessionFactory:负责初始化hibernate,创建session对象configuration:负责配置并启动hibern

2016-09-26 10:34:02 521

转载 数据结构中常见的树(二叉搜索树、AVL平衡二叉树、RBT红黑树、B-树、B+树、B*树)

BST树       即二叉搜索树:       1.所有非叶子结点至多拥有两个儿子(Left和Right);       2.所有结点存储一个关键字;       3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树;       如:              BST树的搜索,从根结点开始,如果查询的关键字与

2016-09-25 21:33:20 1173

转载 图算法概论

1. 图的表示图的表示法有两种,邻接表和邻接矩阵法,这两种方法既可以表示有向图也可以用于表示无向图。邻接表方法在稀疏的图中比较节省资源,但是邻接矩阵法在密度比较高的情况下比较好。2. 搜索算法搜索一个图示有序地沿着图的边访问所有的定点,图的搜索技术是图算法领域的核心a. 广度优先搜索(Breadth-first search,BFS)过程:

2016-09-25 20:54:38 461

转载 经典SQL练习题

今天在网上找了几道经典的SQL练习题做了一下,虽然都不难,但是对打基础是很有好处的,在明白的基础上可以进一步做分析,来研究一下各种解法的优劣,甚至进行简单的优化。。现在将题目和答案分享一下。我使用的是MYSQL 5.0,但是绝大部分都是标准SQL。题目:1、 查询Student表中的所有记录的Sname、Ssex和Class列。2、 查询教师所有的单位即不重复的Depart列。

2016-09-25 20:44:24 1258 1

转载 操作系统题库自整理

第1章 操作系统概论作业                 一、 单项选择题(请将答案填在题前的括弧内)( )1、操作系统负责为用户程序完成()的工作。A、应用无关和硬件相关     B、 应用无关和硬件无关C、应用相关和硬件相关     D、 应用相关和硬件无关(  )2、操作系统是对()进行管理的软件。A、硬件   B、软件   C、计算机资源  

2016-09-25 19:40:39 80882 8

转载 磁盘调度算法

磁盘调度在多道程序设计的计算机系统中,各个进程可能会不断提出不同的对磁盘进行读/写操作的请求。由于有时候这些进程的发送请求的速度比磁盘响应的还要快,因此我们有必要为每个磁盘设备建立一个等待队列,常用的磁盘调度算法有以下四种:先来先服务算法(FCFS),最短寻道时间优先算法(SSTF),扫描算法(SCAN),循环扫描算法(CSCAN) 例:假定某磁盘共

2016-09-25 19:39:22 1358

转载 产生死锁的原因和必要条件 解决死锁的方法

死锁:指多个进程因竞争共享资源而造成的一种僵局,若无外力作用,这些进程都将永远不能再 向前推进。安全状态与不安全状态:安全状态指系统能按某种进程顺序来为每个进程分配其所需资源,直 至最大需求,使每个进程都可顺利完成。若系统不存在这样一个序列, 则称系统处于不安全状态。产生死锁的原因:(1)竞争系统资源 (2)进程的推进顺序不当产生死锁的必要条件:互斥条件

2016-09-25 19:28:52 599

转载 快速排序算法里的partition函数

快速排序算法里的partition函数用来解决这样一个问题:给定一个数组arr[]和数组中任意一个元素a,重排数组使得a左边都小于它,右边都不小于它。 // arr[]为数组,start、end分别为数组第一个元素和最后一个元素的索引 // povitIndex为数组中任意选中的数的索引 1 int partition(int arr[], int start, int end,

2016-09-25 18:19:49 2797

转载 volatile、ThreadLocal、synchronized等3个关键字区别

1.volatilevolatile主要是用来在多线程中同步变量。 在一般情况下,为了提升性能,每个线程在运行时都会将主内存中的变量保存一份在自己的内存中作为变量副本,但是这样就很容易出现多个线程中保存的副本变量不一致,或与主内存的中的变量值不一致的情况。而当一个变量被volatile修饰后,该变量就不能被缓存到线程的内存中,它会告诉编译器不要进行任何移出读取和写入操作的优化,换句

2016-09-25 15:21:19 607

转载 java项目常见数据库连接池的比较

最原始的数据库使用就是打开一个连接并进行使用,使用过后一定要关闭连接释放资源。由于频繁的打开和关闭连接对jvm包括数据库都有一定的资源负荷,尤其应用压力较大时资源占用比较多容易产生性能问题。由此使用连接池的作用就显现出来,他的原理其实不复杂:先打开一定数量的数据库连接,当使用的时候分配给调用者,调用完毕后返回给连接池,注意返回给连接池后这些连接并不会关闭,而是准备给下一个调用者进行分配

2016-09-25 14:26:34 1121 1

转载 Java 8新特性

现在,是时候把所有Java 8的重要特性收集整理成一篇单独的文章了,希望这篇文章能给你带来阅读上的乐趣。开始吧!目录结构介绍Java语言的新特性2.1 Lambdas表达式与Functional接口2.2 接口的默认与静态方法2.3 方法引用2.4 重复注解2.5 更好的类型推测机制2.6 扩展注解的支持Java编译器的新特性

2016-09-25 14:19:33 461

转载 Arrays用法整理

本文将整理 java.util.Arrays 工具类比较常用的方法: 本文介绍的方法基于JDK 1.7 之上。 1.  asList方法  @SafeVarargs public static T> ListT> asList(T... a) { return new ArrayList(a); }   使用该方法可以返回一个固定大小的List,如:

2016-09-25 14:05:25 14456

转载 CGLib动态代理原理及实现

JDK实现动态代理需要实现类通过接口定义业务方法,对于没有接口的类,如何实现动态代理呢,这就需要CGLib了。CGLib采用了非常底层的字节码技术,其原理是通过字节码技术为一个类创建子类,并在子类中采用方法拦截的技术拦截所有父类方法的调用,顺势织入横切逻辑。JDK动态代理与CGLib动态代理均是实现Spring AOP的基础。   简单的实现举例:这是一个需要被代理的类,也就是父类

2016-09-25 13:48:51 3072

转载 java的反射机制浅谈

一、java的反射机制浅谈 最近研究java研究得很给力,主要以看博文为学习方式。以下是我对java的反射机制所产生的一些感悟,希望各位童鞋看到失误之处不吝指出。受到各位指教之处,如若让小生好好感动,说不定会请各位吃饭哦! 1.何谓反射机制 根据网文,java中的反射机制可以如此定义:JAVA反射机制是在运行状态中,对于任意一个类,都能够知道

2016-09-25 13:31:46 312

转载 有return的情况下try catch finally的执行顺序

结论:1、不管有木有出现异常,finally块中代码都会执行;2、当try和catch中有return时,finally仍然会执行;3、finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要返回的值保存起来,管finally中的代码怎么样,返回的值都不会改变,任然是之前保存的值),所以函数返回值是在finally执行前确定的;4、finally

2016-09-25 11:03:20 341

转载 Hibernate 缓存机制

一、why(为什么要用Hibernate缓存?)Hibernate是一个持久层框架,经常访问物理数据库。为了降低应用程序对物理数据源访问的频次,从而提高应用程序的运行性能。缓存内的数据是对物理数据源中的数据的复制,应用程序在运行时从缓存读写数据,在特定的时刻或事件会同步缓存和物理数据源的数据。 二、what(Hibernate缓存原理是怎样的?)Hibern

2016-09-24 21:57:10 334

转载 java中的本地缓存

java中的本地缓存,工作后陆续用到,一直想写,一直无从下手,最近又涉及到这方面的问题了,梳理了一下。自己构造单例、guava、ehcache基本上涵盖了目前的大多数行为了。 为什么要有本地缓存?在系统中,有些数据,数据量小,但是访问十分频繁(例如国家标准行政区域数据),针对这种场景,需要将数据搞到应用的本地缓存中,以提升系统的访问效率,减少无谓的数据库访问(数据库访问占用

2016-09-24 21:43:00 2351

转载 使用随机算法产生一个数,要求把1-1000W之间这些数全部生成

使用随机算法产生一个数,要求把1-1000W之间这些数全部生成。(考察高效率,解决产生冲突的问题)代码虽然实现了。提高效率的地方有如下:1.初始化set集合的时候 Sets.newHashSetWithExpectedSize(value),给初始化带个固定大小,减少了集合在扩容的时候,值重新复制的问题。这的效率稍有提高。2.Random random = new Ra

2016-09-24 21:24:02 6602 2

转载 从输入url到获取页面的完整过程

1.查询DNS(域名解析),获取域名对应的IP地址查询浏览器缓存(浏览器会缓存之前拿到的DNS 2-30分钟时间),如果没有找到,检查系统缓存,检查hosts文件,这个文件保存了一些以前访问过的网站的域名和IP的数据。它就像是一个本地的数据库。如果找到就可以直接获取目标主机的IP地址了。没有找到的话,需要检查路由器缓存,路由器有自己的DNS缓存,可能就包括了这在查询的内容;如果没有,要查询

2016-09-24 14:41:22 4900

转载 tcp窗口滑动以及拥塞控制

TCP协议作为一个可靠的面向流的传输协议,其可靠性和流量控制由滑动窗口协议保证,而拥塞控制则由控制窗口结合一系列的控制算法实现。一、滑动窗口协议     关于这部分自己不晓得怎么叙述才好,因为理解的部分更多,下面就用自己的理解来介绍下TCP的精髓:滑动窗口协议。     所谓滑动窗口协议,自己理解有两点:1. “窗口”对应的是一段可以被发送者发送的字节序列,其连续的范围称之为“窗口”;

2016-09-24 13:55:30 241

转载 TCP/IP 知识点总结

网络互联基础一、OSI七层协议    OSI(Open System interconnection)开放系统互连参考模型    ISO(International Standards Organization)国际标准化组织1、物理层    机械性能:接口的型状,尺寸的大小,引脚的数目和排列方式等。    电气性能:接口规定信号的电压、电流、阻抗、波形、速率及平衡特性等。

2016-09-23 23:06:09 642

转载 memcached分布式实现原理

正文  在高并发环境下,大量的读、写请求涌向数据库,此时磁盘IO将成为瓶颈,从而导致过高的响应延迟,因此缓存应运而生。无论是单机缓存还是分布式缓存都有其适应场景和优缺点,当今存在的缓存产品也是数不胜数,最常见的有redis和memcached等,既然是分布式,那么他们是怎么实现分布式的呢?本文主要介绍分布式缓存服务mencached的分布式实现原理。  一、缓存本质计算机体系缓存

2016-09-23 22:24:43 2805 1

转载 一致性哈希算法

一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简 单哈希算法带来的问题,使得分布式哈希(DHT)可以在P2P环境中真正得到应用。     一致性hash算法提出了在动态变化的Cache环境中,判定哈希算法好坏的四个定义:1

2016-09-23 22:23:23 252

转载 SQL中Group By的使用

1、概述2、原始表3、简单Group By4、Group By 和 Order By5、Group By中Select指定的字段限制6、Group By All7、Group By与聚合函数8、Having与Where的区别9、Compute 和 Compute By1、概述“Group By”从字面意义上理解就是根据“By”指定的规则对数据进行分组

2016-09-23 18:30:25 530

转载 为什么数据库读写分离可以提高性能

虽然知道处理大数据量时,数据库要做读写分离,但是为什么读写分离可以提高性能呢?下面是搜来的一些解释,看看再说!一 什么是读写分离      MySQL Proxy最强大的一项功能是实现“读写分离(Read/Write Splitting)”。基本的原理是让主数据库处理事务性查询,而从数据库处理SELECT查询。数据库复制被用来把事务性查询导致的变更同步到集群中 的从数据库。 当

2016-09-23 16:55:31 25528 5

转载 数据库的读写分离

读写分离,基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。       为什么要分库、分表、读写分?       单表的数据量限制,当单表数据量到一定条数之后数据库性能会显著下降。数据多了之后,对数据库的读、写就会很多。分库减少单台数据库的压

2016-09-23 16:50:22 591

转载 JVM内存回收对象及引用分析

自动垃圾回收是Java相较于C++的一个重要的特点,想了解JVM的垃圾回收机制,首先我们要知道垃圾回收是回收什么地方的垃圾,我在我的上一篇博客《JVM内存区域划分》里面有写到JVM里面的内存是怎么分布的,这里的回收主要是指对上文中提到的Java堆和方法区的内存的回收。什么样的对象可以被回收知道了回收哪里的内存之后,我们还需要知道什么样的对象是可以被回收,或者说是需要被回收的,这些对

2016-09-23 16:01:59 379

转载 求一个数组中第k大的数方法

求一个数组中第k大的数,我第一印象是冒泡,因为只要冒泡k趟即可,第一趟冒泡第一大,第二次冒泡第二大,第k次冒泡第k大,时间复杂度为O(kn),n为数组长度。但是我们都知道快速排序是对冒泡的改进,降低冒泡的递归深度,使时间复杂度降低到O(nlgn),为什么不用快排呢?那么快排的时间复杂度又是多少呢?因为快排每次将数组划分为两组加一个枢纽元素,每一趟划分你只需要将k与枢纽元素的下标进行比较,如

2016-09-17 18:54:07 2123

转载 23种设计模式UML表示形式

一、概况:类关系表示:说明:二.创建型1.Factory Method意图:定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method 使一个类的实例化延迟到其子类。适

2016-09-17 16:51:23 338

转载 UML使用经验及总结

今天终于开始使用UML,用于项目分析,并且发现使用UML的时间开销并没有之前想象的那么大。回顾使用UML的经历,总是断断续续。总结了一下,有以下因素:没有使用UML的环境没有抽象分析的习惯没有充分的UML知识面对复杂的项目,其实我们要做的只是抽象,抽象的方法有很多种,思路也是仁者见仁,智者见智,而UML给出了抽象的恰当模型。我们将从以下几个方面,对UML知识,以实用

2016-09-17 16:45:08 1419

阿里巴巴开发手册

《阿里巴巴 Java 开发手册》是阿里巴巴集团技术团队的集体智慧结晶和经验总 结,经历了多次大规模一线实战的检验及不断完善,系统化地整理成册,回馈给广大 开发者。现代软件行业的高速发展对开发者的综合素质要求越来越高,因为不仅是编 程知识点,其它维度的知识点也会影响到软件的最终交付质量。比如:数据库的表结 构和索引设计缺陷可能带来软件上的架构缺陷或性能风险;工程结构混乱导致后续维 护艰难;没有鉴权的漏洞代码易被黑客攻击等等。所以本手册以 Java 开发者为中心视 角,划分为编程规约、异常日志、单元测试、安全规约、MySQL 数据库、工程结构、设 计规约七个维度,再根据内容特征,细分成若干二级子目录。根据约束力强弱及故障 敏感性,规约依次分为强制、推荐、参考三大类。对于规约条目的延伸信息中,“说 明”对规约做了适当扩展和解释;“正例”提倡什么样的编码和实现方式;“反例” 说明需要提防的雷区,以及真实的错误案例。

2019-03-14

后端架构技术栈思维导图

该文档是后端常用技术的技术栈文档,是一个后端开发人员需要掌握的后端技术。

2018-08-11

数据结构课程设计停车场管理系统

完整的工程,能够获取系统时间,非常好的课程设计,功能齐全,供大家参考

2011-12-29

空空如也

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

TA关注的人

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