自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 资源 (5)
  • 收藏
  • 关注

原创 PostgreSQL执行计划

简介PostgreSQL是“世界上最先进的开源关系型数据库”。因为出现较晚,所以客户人群基数较MySQL少,但是发展势头很猛,最大优势是完全开源。MySQL是“世界上最流行的开源关系型数据库”。当前客户基数大,随着被Oracle收购,开源程度减小,尤其是近期单独拉了免费的MariaDB分支,更表明MySQL有闭源的倾向;至于两者孰优孰劣,不是本文要讨论的重点,在一般的使用中,没什么大的...

2019-06-14 19:15:35 7911 3

原创 DRF框架---查漏补缺要趁早

1. Django数据库中的F和Q对象操作:# F对象:查询时字段之间的比较 from django.db.models import F, Sum # 查询阅读量大于评论量的图书 books = Book.objects.filter(bread__gt=F("bcomment")) # 查询阅读量大于2倍评论量的图书(可以在F对象上使用算数运算) books = Book.ob...

2019-06-10 20:20:26 704

原创 云上转型数据存储安全--S3存储桶加密

上转型的安全疑虑因为是技术平台公司,所以需要很快的平台技术迭代,但是由于传统的技术阻碍,近些年创新的速度明显减慢,因此上云被认为是规避IT技术瓶颈和发展界限最方便快捷的方式。了解三种云云分为三种:公有云,私有云和混合云。公有云是能够以低廉的价格,提供有吸引力的服务给最终用户,创造新的业务价值,还能够整合上游的服务(如增值业务,广告)提供者和下游最终用户,打造新的价值链和生态系统。它...

2019-06-10 20:15:46 1413

原创 Java知识点总结

1. Java基础(1) 常用集合的源码实现,重点Map;     a. HashMap,HashTable,ConcurrentHashMap以及LinkedHashMap对比(实现LRU);     b. Map的存储实现红黑树及对应JDK版本;     c. ConcurrentModificationException(fast-fail机制);(2) 多线程,重点是线...

2018-10-15 08:29:47 226

原创 PostgreSQL的MVCC并发处理方式

MVCC(Multi-Version Concurrency Control,多版本并发控制):在并发操作数据库时,读操作可能会产生不一致的数据,为了避免这种情况,需要实现数据库的并发访问控制,使得每次读取到的数据都一致,最简单的方式便是加锁访问。也就是,将所有操作串行化,这样就不会出现不一致的情况。但是,串行化的读操作会被写操作阻塞,导致性能下降。试想,“双十一”时淘宝的数据库订单读写如果采用串

2017-12-18 18:53:56 603

原创 HttpClient的使用----聊聊架构那些事儿(第三谈)

框架之所以是框架,是因为封装了很多基础操作。而今天说的是服务端和客户端的通信,按照一般的想法都是使用webservice,如cfx。好处是减少了接口信息的解析,让我们更关注于实现功能的本身。而使用webservice的过程,我们知道,需要一系列的jar包和配置文件,可谓是相当繁琐,因此,今天我们专注于HttpClient的使用方式。

2017-11-27 08:41:53 450

原创 SSM系统整个过程----聊聊架构那些事儿(第二谈)

CDN引入       构建项目的大小一般取决于我们思考的高度,类似淘宝京东这样的大型电商网站,不是双十一暴涨的流量,就平时人们访问,就需要加载很多图片,尤其是人们在移动端使用时,良好的体验是购物的前提。那么怎么样才能让位于海南岛的网名和位于黑龙江的网民都能快速的查看到自己所需要的商品呢?       我们知道,一般来说,图片比文本消耗更多的流量,尤其是现在,智能手机不断进步,人民

2017-11-17 09:08:07 417

原创 SSM系统整合过程----聊聊架构那些事儿(第一谈)

传统架构采用单机单应用集成,商品、订单等所有业务放在一起,模块耦合度很高,所有系统要柔和在一起,开发和维护难度都很大,最主要的是系统扩展性差。因此我们将不同的功能模块拆分成多个独立的工程,如果某个点压力过大,就可以单独为其增加配置。

2017-11-13 09:01:54 646

原创 ArrayList源码分析(fail-fast机制和扩容)

扩容机制,fail-fast机制,构造方法,Arrays.copyOf()和System.arraycopy()

2017-11-03 19:09:35 473

原创 前端视频教程分享

有无法访问的或者需要其他相关教程(大数据/K8S/java/Linux/架构/Python/C++)的可以留下邮箱,我看到就会发送相关教程。react:链接:https://pan.baidu.com/s/17A3rOXXsk9oWczYUUmdXrQ提取码:0lc5VueJs:链接:https://pan.baidu.com/s/17fhBu4azlgsOl2-RL_6...

2017-10-10 09:05:37 5010 5

原创 Python的几个内建函数

isinstance(object, type): 来判断一个对象是否是一个已知类型。其第一个参数(object)为对象,第二个参数(type)为类型名(int...)或类型名的一个列表((int,list,float)是一个列表)。其返回值为布尔型(True or False)。若对象的类型与参数二的类型相同则返回True。若参数二为一个元组,则若对象类型与元组中类型名之一相同即

2017-08-28 19:43:05 480

原创 安装Pyhton,Django,Nginx及部署完整流程(有序)

本文介绍安装Django,安装Nginx,并在Nginx上部署Django项目流程(仅限CentOS):1. 安装Python,centOS上默认是2.6可以升级为2.7,参考文章CentOS上升级Python;2. 安装Django及其所依赖的包:#安装zlib(需要一些依赖,具体也不是很懂)yum -y install zlib zlib-devel openssl openss

2017-08-14 12:43:28 660

原创 Django上静态文件的配置方法

一般我们构建Django项目时,能够根据项目的不同应用创建不同的子app,假设有多个,而所有的页面均放在templates文件夹下面,所有的js和CSS文件都放在static文件夹下面,目录结构如下所示:因为按照上图中的描述,引用的静态文件需要需要跨级访问static下js中的jquery文件,所以这里就是我们项目中常见的引用方式:首先在跟项目的setting.py文件中加入如下代

2017-08-14 10:07:03 342

原创 CentOS上升级Pyhton到2.7

默认的CentOS版本为2.6.6,现公司需要升级到2.7版本,所以进行如下操作:1.安装readline-devel工具,防止后面替换Python后,键盘上面方向键不能使用:yum install readline-devel.x86_64 2.在线获取python版本:wget https://www.python.org/ftp/python/2.7.3/Python-2.

2017-07-22 14:53:05 399

转载 分布式系统中唯一ID的生成方法

在一个MySQL集群中,想要生成一个数据库的全局Unique ID,要满足以下条件:保证生成的ID唯一;以后数据在多个node节点之间迁移时,不会受到ID生成方法的限制;生成的ID信息最好不超过64bit;生成的ID信息最好带上时间信息,如ID的前k位是Timestamp,这样能够直接通过前k位的排序来针对数据用时间排序;生成ID的速度要快,如一个高吞吐量的场景中,需要每秒生成几万个I

2017-02-25 11:12:45 2356

原创 线程池

线程池的引入        之前我们使用多线程都是用的Thread类中的start()来创建启动一个线程,但是在实际应用中,每次请求都创建一个新线程,开销是相当大的。服务器在创建和销毁线程上所花费的时间和消耗在系统资源都相当大,甚至可能要比在处理实际应用请求的时间和资源要多的多,除了创建和销毁线程的开销,活动的线程也需要消耗系统资源。如果在一个虚拟机中创建太多的线程,可能会使系统由于过度消耗内

2017-02-23 10:14:36 310

转载 TCP协议中的三次握手和四次挥手(图解)

建立TCP需要三次握手才能建立,而断开连接则需要四次握手。整个过程如下图所示:先来看看如何建立连接的。首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源。Client端接收到ACK报文后也向Server段发生ACK报文,并分配资源,这样TCP连接就建立了。那如何断开连接呢?简单的过程如下:

2016-03-08 09:59:01 1069

转载 CDN内容发布网络

Content Delivery Network  内容分布网络,它是构筑在现有 Internet 上的一种先进的流量分配网络。其目的是通过在现有的 Internet 中增加一层新的网络架构,将网站的内容发布到最接近用户的网络“边缘”,使用户可以就近取得所需的内容,提高用户访问网站的响应速度。有别于镜像,它比镜像更智能,可以做这样一个比喻:CDN = 镜像(Mirror)+ 缓存(Cache)

2016-03-04 08:44:40 843

转载 "秒"杀系统之深层考虑

网站上经常见的秒杀系统实现时一般考虑如下方面:1) 对现有网站业务的冲击因为秒杀活动只是网站营销的一个附加活动,这个活动具有时间短,并发访问量大的特点,如果和网站原有应用部署在一起,必然会对现有业务造成冲击,稍有不慎可能导致整个网站瘫痪。2) 高并发情况以及数据库的负载用户在秒杀开始前,通过不停的刷新浏览器页面以保证不会错过秒杀,这些请求如果按照一般的网站应用架构,

2016-02-29 22:35:32 442

原创 java中init()和clinit()方法的区别

:在jvm第一次加载class文件时调用,包括静态变量初始化语句和静态块的执行:在实例创建出来的时候调用,包括调用new操作符;调用Class或java.lang.reflect.Constructor对象的newInstance()方法;调用任何现有对象的clone()方法;通过java.io.ObjectInputStream类的getObject()方法反序列化。(1)(

2015-09-15 10:18:03 28261 2

转载 java中堆和栈的区别

Java的堆是一个运行时数据区,类的对象从中分配空间。这些对象通过new、newarray、anewarray和multianewarray等指令建立,它们不需要程序代码来显式的释放。堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,因为它是在运行时动态分配内存的,Java的垃圾收集器会自动收走这些不再使用的数据。但缺点是,由于要在运行时动态分配内存,存取速度较

2015-09-14 13:03:34 419

转载 Eclipse中安装Spring IDE插件

1.首先下载eclipsehttp://www.eclipse.org/downloads/ 2.然后安装AJDT打开eclipse->Help->install new software->add->输入:adjt http://download.eclipse.org/tools/ajdt/34/dev/update 注意根据eclipse版本的不同更改34这个

2015-09-14 12:40:28 1021

原创 将文件存储到数据库(以二进制流的形式)

Hibernate方法HibernateUtils.javapackage yang.fang.hibernate;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;/** * hibernate工具类 * * @

2015-08-27 10:23:34 6450

转载 前台参数使用Ajax请求时将参数带在URL后面需要两次encodeURI

为什么网上会有人提出在客户端对字符串重复编码两次呢.     如果因为项目需要,不能指定容器使用何种编码规则来解码提交的参数, 比如:需要接收来自不同页面,不同地址编码的参数内容时。 (又或者是开发人员被这有点复杂的东东搞得晕头转向,不懂得如何正确的去做好这接收参数的工作) 这个时候,在客户端对参数进行二次编码,可以有效的避开“提交多字节字符”的这个棘手问题。     因为第一次编码,

2015-08-23 09:56:29 4595

转载 BigInteger和BigDecimal

关键技术剖析:² BigInteger:支持任意精度的整数,可以精确地表示任意大小的整数值,同时在运算过程中不会丢失任何信息。² BigDecimal:可以精确地表示任意精度的小数,同时在运算过程中不会丢失任何信息。 源码:import java.math.BigDecimal;import java.math.BigInteger;public cl

2015-07-21 16:56:55 550

转载 BigDecimal简单计算器

java.math.BigDecimal。BigDecimal一共有4个够造方法,让我先来看看其中的两种用法:第一种:BigDecimal(double val)Translates a double into a BigDecimal.第二种:BigDecimal(String val)Translates the String repre sentation of a

2015-07-21 15:27:34 816

转载 HashMap与ConcurrentHashMap的区别

从JDK1.2起,就有了HashMap,正如前一篇文章所说,HashMap不是线程安全的,因此多线程操作时需要格外小心。在JDK1.5中,伟大的Doug Lea给我们带来了concurrent包,从此Map也有安全的了。ConcurrentHashMap具体是怎么实现线程安全的呢,肯定不可能是每个方法加synchronized,那样就变成了HashTable

2015-07-17 10:48:48 403

转载 MyBatis笔记(九)——动态SQL与模糊查询

动态查询?模糊查询?说白了就是按照条件来查询,看了之前博文,你也许会问:在Mybatis中,如果按照某几个条件查询应该怎么做?比如,我要查询年龄在1到12岁之前,名字里还有字母o的用户。其实,Mybatis的做法就是,为这种条件创建一个条件类,然后作为映射的parameterType传入。具体如下:我们先给出类定义和数据库定义:create table d_user(

2015-07-13 15:04:17 600

转载 Java中的代码块系列1——静态代码块和构造代码块的调用机制

Java中有代码块分为4种:普通代码块、构造断码块、静态代码快、同步代码块。普通代码块指的就是一般方法中的花括号的代码段。构造代码块就是在类中,不属于任何方法的代码段(当然是在花括号内)。静态代码块就是在类中,不属于任何方法的代码段,并且“{”的前面有static。同步代码块用在线程间。package JLearner.codeblock; publ

2015-07-13 14:50:25 388

原创 将json字符串转化为Map对象

public static Map json2Map(String json) { Map map = new HashMap(); JSONObject jsonMap = JSONObject.fromObject(json); Iterator it = jsonMap.keys(); while (it.hasNext()) { String key = String

2015-07-09 19:35:57 611

原创 渠道系统和 OA系统待办事项接口

OA待办、已办、以及通过ltpatoken查找用户拼音接口接口采用http  get方式,将需要的参数传入  Content-Type:application/json;charset=UTF-8  (getMethod.addRequestHeader("Content-type","application/json; charset=utf-8");)1、待办、已办例子

2015-07-09 10:29:24 4199

原创 关于Struts2中的execute方法

分两种情况。1)如果你的Action类是继承自ActionSupport的话,确切的说是重写了execute方法,ActionSupport里的默认实现就是返回"success"视图。因此,你可以不实现execute方法,只要你的struts.xml里有"success"对应的result即可。2)如果你的Action类没有继承ActionSupport,而你又没有在struts.

2015-07-08 21:06:08 1901

转载 java 内存分配 常量池

在class文件中,“常量池”是最复杂也最值得关注的内容。   Java是一种动态连接的语言,常量池的作用非常重要,常量池中除了包含代码中所定义的各种基本类型(如int、long等等)和对象型(如String及数组)的常量值还,还包含一些以文本形式出现的符号引用,比如:  类和接口的全限定名;   字段的名称和描述符;   方法和名称和描述符。   在C语言

2015-07-05 19:22:18 619

转载 hashCode()和equals()

1. 首先equals()和hashcode()这两个方法都是从object类中继承过来的。 equals()方法在object类中定义如下: public boolean equals(Object obj) { return (this == obj); } 很明显是对两个对象的地址值进行的比较(即比较引用是否相同)。但是我们必需清楚,当String 、Math、

2015-07-05 19:09:11 385

转载 关于JDBC数据库;连接的几个建议

JDBC最佳实践1:使用PrearedStatement任何一个使用过JDBC的Java程序员几乎都知道这个,PreparedStatment可以通过预编译的方式避免我们在拼接SQL时造成SQL注入。JDBC最佳实践2、使用ConnectionPool(连接池)使用连接池作为最佳实践几乎都成了公认的标准。一些框架已经提供了内建的连接池支持,例如Spring中的Databas

2015-07-05 19:03:43 1344

原创 java中为什么要使用接口?

接口的作用最主要的作用我认为是解决java不能多继承的问题。1.接口可用来实现多重继承,java中多重继承,定义类时,只可有一个父类。但是每个类可以实现多个接口,以这种方式来实现多重继承。2.接口定义了一组方法,这些方法可以供给其它类来实现。而类在实现接口的方法时,却可以有不同的方式,每个类实现同一个接口中同一个方法的代码可以不相同。顺便这里说说abstract抽象类:

2015-07-05 18:54:08 2466

原创 编译时异常和运行时异常的区别

最简单的说法:javac出来的异常就是编译时异常,就是说把源代码编译成字节码(class)文件时报的异常,一般如果用Eclispe,你敲完代码保存的时候就是编译的时候。java出来的异常就是运行时异常Java异常可分为3种:  (1)编译时异常:Java.lang.Exception  (2)运行期异常:Java.lang.RuntimeExceptio

2015-07-01 09:40:34 10570

原创 html中动态显示年月日星期时分秒

动态显示年月日星期时分秒var days=new Array ("日", "一", "二", "三", "四", "五", "六");function showDT() { var currentDT = new Date(); var y,m,date,day,hs,ms,ss,theDateStr; y = currentDT.getFullYear(); //四位整数表示

2015-06-29 14:17:20 6396

原创 谈谈String

String类创建一个对象后是不可变的,就是说每设置一个值就创建一个对象;但是String a ="hello";String b= "hello";a==b返回true 多次重复的常量,java 编译的程序只创建一个String c = new String("hello");String d = new String("hello");

2015-06-29 14:10:57 557

转载 SSH框架介绍

Hibernate原理 Spring 原理Struts原理

2015-06-29 13:50:26 503

图片轮播切换特效

JS实现图片轮播切换 ,尤其是对需要展示很多图片的门户网站

2015-06-29

Java学籍管理系统的实现

内含源代码 加入数据库即可运行 项目是一个整项目 稍作修改即可实用

2014-03-15

新闻发布系统

新闻发布系统 基于MVC的 全部文档 包括部分原代码及相应的数据库设计

2012-12-09

客户关系管理系统

给出了 漂亮的客户关系页面及主页面 超强的DIV+CSS设计 代码简单容易看懂 学习

2012-12-09

实验教学管理 数据库设计

详细给出了实验教学管理系统的数据库设计文档

2012-12-09

空空如也

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

TA关注的人

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