自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Guo_guo

灵感的来临,没有任何预兆;灵感的消失,也不会有告别仪式;用文字记下她们吧,让灵感永存……

原创 python网络爬虫案例

python爬取51Job招聘信息# -*-coding:utf-8-*-import requestsimport pandas as pdfrom pprint import pprintfrom lxml import etreeimport timeimport warningsimport jsonwarnings.filterwarnings("ignore")"""这个文件是最完整的代码,我们需要进行翻页操作,进行所有数据的爬取。这里的翻页操作很简单,观察下面的u

2020-07-22 21:02:15 32

原创 Vue组件

趁team leader的安排,在团队内部进行一次技术分享的机会。整理下这半年用到的比较多的Vue内容,至今Vue的源码还未细心研读过,从开发使用层面上开两个专题:Vue组件和Vue Router。1.工程搭建打开pycharm后,file–>new–&am

2018-10-10 18:47:19 2039

原创 Django官网上自带的tests导入到pycharm

学习Django官网上自带的tests例子 1.首先下载https://github.com/django/django 需要注意的是Django1.11.x版本目前支持Python2.7和3.x;而Django2.x版本系列的只支持Python3.x系列了。由于我的Python环境是2.7,因此git clone下来时候需要版本git checkout到1.11.x。2.照着官网test...

2018-07-01 17:56:24 513

原创 分布式协调服务(分布式系统中的服务总管)Zookeeper

Zookeeper的数据模型 Zookeeper的数据模型是什么样子呢?它很像数据结构当中的树,也很像文件系统的目录。 树是由节点所组成,Zookeeper的数据存储也同样是基于节点,这种节点叫做Znode。 但是,不同于树的节点,Znode的引用方式是路径引用,类似于文件路径: /动物/仓鼠 /植物/荷花 这样的层级结构,让每一个Znode节点拥有唯一的路径,就像命名空间一样...

2018-05-21 10:40:03 1626

原创 记一次生产环境性能压测优化的经历

对线上服务进行性能压力测试的一次优化过程。 项目背景: 1.服务器的硬件配置(48核120G内存2T硬盘); 2.网络部署结构,用户请求报文首先进入负载均衡Nginx,Nginx后端负载两台Tomcat。 现象描述: 对线上的两台服务器做性能压测时,发现单台Tomcat的QPS达到600左右处理业务就明显变慢,一次请求处理时间大约上升到七秒左右(正常情况下一秒内就处理完成),给人的感觉就...

2017-11-10 21:06:50 4831

原创 Codis与zookeeper

Codis的安装需要依赖于Go和zookeeper(可选),因此首先需要安装Go和zookeeper。一.Go的安装1.Go版本的检测需要注意的时Go的版本不能太低,建议在1.8.3版本以上,通过go version命令查看已安装Go的版本信息,若版本过低则卸掉:yum remove golang(确保没有低版本的golang,保证是重新安装而不是覆盖,否则会有问题);2.Go的安装官网下载go1...

2017-11-04 16:47:42 2302

原创 idea中配置php的开发调试环境

作为一名Java Web的程序员,习惯了用idea的开发,在idea中配置php的开发调试环境,共有如下几个步骤需要依次配置:1.Apache httpd Server的安装与配置在httpd.conf配置文件中添加如下文本内容Include conf/extra/httpd-vhosts.conf AddType application/x-httpd-php .php Lo

2017-10-09 13:42:58 15708

原创 JDK密钥证书管理工具keystore

1.查看keystone的类型及已有的数字证书localhost:ssl ZhengGuangGuo$ localhost:ssl ZhengGuangGuo$ keytool -list -rfc -keystore jssecacerts输入密钥库口令: 密钥库类型: JKS密钥库提供方: SUN您的密钥库包含 96 个条目别名: digicertassuredidro

2017-09-07 14:45:51 1429

原创 Idea中Git的使用和两种类型的冲突解决

一、Git冲突解决在idea开发工具中使用Git时,主要用到的快捷按钮如下五个:这五个按钮的使用说明及在idea中如何配置和使用git可参考https://github.com/DayThink/IntelliJ-IDEA-Tutorial/blob/newMaster/vcs-introduce.md本文主要讲解在Idea中利用git遇到的两种冲突(提交代码时发生冲突和更新代码时...

2017-06-16 17:35:03 47824 2

原创 Java开发工具日常设置汇总

在idea中用maven进行编译或打包(install)的时候,有时会出现问题,为了分析问题会给出-X的提示,问题见下图所示:此问题的解决方案如下:

2017-05-31 16:55:13 355

原创 排序与海量数据处理

(一).三种常见的N*logN排序算法1.堆排序思想:利用完全二叉树的特性,某结点(如下标i)的父结点下标(i – 1) / 2,左右子结点下标分别为2 * i + 1和2 * i + 2。思路:从第一个非叶子节点往根节点开始,逐步调整。2.快速排序思想:选取一个基点,从数组最后一个节点开始逐一与基点比较,如果比其小则继续迁移,否则调换位置并从前开始逐一与基点比较,如果比基点小则继续,如果比基点大...

2017-05-11 10:02:22 419

转载 Mybatis 与 SQL

一、mybatis1.1配置文件中参数类型pareameterType参考:《MyBatis传入参数与parameterType》《Mybatis之传入参数》极客学院上mybatis的专题mybatis动态SQL语句 (官网)1.2配置文件中返回值类型resultType和resultMap官网文档《Java Persistence with MyBatis 3(中文版)》MyBatis 注解(重...

2017-04-05 18:35:06 3471

原创 架构逻辑图

1.Java学习路线架构2.数字证书签发服务架构3.分布式身份认证系统平台带你了解一下领域驱动DDD链接一

2017-03-23 10:25:07 2609

原创 数据结构及其应用

    在程序的世界里,任何问题或技术的落脚点都是数据结构,所以在学习或研究这些问题或技术时,要注重理解底层或实现过程中所采用的数据结构。本系列会将常用的数据结构进行总结,首先看下树。一、树常用的树形数据结构有:搜索二叉树、平衡二叉树、红黑树、完全二叉树;1.搜索二叉树:父子节点满足大小关系,左子树都小于根节点,根节点都小于右子树,根据这一特性能快速进行查找;典型应用有:全球域名解析服务器的部署、...

2017-02-26 17:03:11 534

转载 TCP协议的三次握手和四次挥手以及断开时各阶段的状态分析

我们知道,https协议是在http协议之上封装了SSL协议,为了完成客户端和服务端的双向认证和可靠传输,需要在通信之前双方进行多次的握手协商。TCP协议与https协议类似。1.TCP的连接(俗称三次握手)在TCP协议数据报文的头部(TCP Header)结构中有32位序号(Sequence number) 和32位确认序号(Acknowledge number)

2017-02-20 16:26:44 5625

转载 Java集合框架中的三层体系

我们来看下集合框架的类图继承体系:我们来分析下集合类继承体系的设计:整体的代码结构都像一棵树,有一个唯一的根节点,这个根节点封装了这个类族的公有特性有一层抽象类或者类似抽象类作用的类,它们实现了通用的方法。方便用户扩展自己的业务。有具体的实现,用户可以直接使用这些具体实现。这些相似的地方其实可以归纳为三个结构层次:一个高度抽象的根节点接口,可以再抽象出一组带有具

2017-02-04 14:54:55 1070

原创 ajax post 跨域访问开发调试

在近期的项目中遇到一个浏览器跨域访问的问题,这个项目是跟第三方厂商合作进行开发,我们负责后台的业务功能实现,而前端页面展示由第三方厂商来实现,为了调试后台的业务接口,我开发过程中按照如下的接口进行调用测试,发现一直出现跨域禁止访问的提示。(注意:开发过程中使用谷歌浏览器)。请求测试页面: 我的视光师 $.ajax({ typ

2016-10-19 16:01:49 5590

转载 浅谈JavaEE中的JDBC模板类的封装实现以及合理的建立项目包结构

从今天开始我们一起来聊下有关,javaEE开发中的一些知识,JavaEE的开发用于企业级的开发,但是现在企业中一般也不会使用JDBC开发,大部分都是使用自己公司开发的一套的框架,但是这些框架的架构一般也是会模仿着有名JavaEE开源三大开发框架SSH(Struts2+Spring+Hibernate)或者现在也很流行的SSM开发框架(Spring+SpringMVC+MyBatis)来进行

2016-07-09 14:55:13 1287

转载 JAVA的并发原理

理解Java并发原理或者其他语言的并发(没错,这篇文章是“跨语言”的!!!还这么短,你说牛逼不牛逼)只需要记住理解两个东西:CPU访问存储的方式——多级存储;CPU执行指令的方式——乱序首先回忆我们大学的一门课程——《计算机组成原理》也许你的记忆里只有:“呃,你要说xx进制转换成xx进制吗?”。没关系我帮你回忆一下:有一节课讲多级存储,说计算

2016-07-01 10:13:42 657 2

转载 MVC中的View层

1.在jsp页面中会用到的两种标签有:struts2与jstl。一定要区分两者的标签形式,下面从三种场景来区分下。a.在jstl中使用struts2  jstl: el:${ee.id} struts2: 通过struts2标签取jstl标签的变量时,如果有设置scope,可以从scope中取值 如果没有就需要用#attr来取值 b.从jstl标签中获取值

2016-03-11 19:36:41 2735

原创 com组件编程

1.单字节,多字节和宽字节abc2.进程外com与进程内com的区别(主要在注册方面)abc3.com控件字符串参数传递abc

2016-02-29 00:36:36 1441

转载 子类调用父类默认构造函数

对文件名为Test.java的java代码描述正确的是()class Person { String name = "No name"; public Person(String nm) { name = nm; }}class Employee extends Person { String empID = "0000"; publ

2016-02-18 09:04:33 2564

转载 java 字符串常量池

试题一、String s = new String("abc")创建了几个对象?String s = new String("abc")实际上是"abc"本身就是字符串池中的一个对象,在运行 new String()时,把字符串池的字符串"abc"复制到堆中,并把这个对象的应用交给s,所以创建了两个String对象,一个在字符串池中,一个在堆中。(注:我们假设的是字符串池中默认是没有abc字符

2016-02-16 11:32:44 5101 1

原创 try和finally执行顺序

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

2016-02-15 09:12:49 559

转载 JavaWeb相关框架及必备套路

一.SpringMVC1.1:SpringMVC的扩展接口:《SpringMVC源码剖析(一)- 从抽象和接口说起》《盘点springmvc的常用接口》《spring mvc 提供的几个常用的扩展点》1.2:一些Spring MVC的使用技巧1.3:SpringMVC原理浅析1.4:一些Spring MVC的使用技巧 (本文作者的其他文章值得一读,如:Spring Boot使用心得和自定义Http...

2016-01-11 09:00:50 764

原创 多线程编程与同步控制(Java与C)

一、线程池网摘文章/博客1.40个Java多线程问题总结2.生产者消费者模式实现3.volatile关键字解析4.java并发之生产者消费者模型5.linux下C语言多线程   linux中fork--子进程是从哪里开始运行6.一张图读懂Java多线程7.Java并发编程:如何创建线程?8.Java并发编程:synchronized9.Java多线程的常见例子一个进程内的多个线程是共享该进程的内存...

2015-12-23 09:47:39 1460

原创 jmeter基本使用及webservice脚本

1.服务端webservice接口测试,见下面截图: Manisha 注意:由于的服务端webservice接口是由axis1.4开发的,这个版本的axis存在一个bug,不能将send soapaction为空,可随便设置一个值,如:123.在请求消息体xml中后面跟着是参数。关于jmeter的一个学习网站:htt

2015-11-18 18:24:44 839

原创 REST接口

关于rest的概念和使用,网上很多,在这里我就不在废话了,只说下rest的一些实现,总体来说有两类实现:一类是针对rest单独提出的发展起来的框架:CXF——XFire和Celtix的合并(一个由IONA赞助的开源ESB,最初寄存在ObjectWeb上)。Jersey——Sun公司的JAX-RS参考实现。RESTEasy——JBoss的JAX-RS项目。Restlet—

2015-11-12 22:19:32 1134

原创 socket服务端、开源网络库和线程池

java版本的socket服务端public class Main { private static ServerSocket serverSocket; private final static ExecutorService exec = Executors.newFixedThreadPool(30); public static void main(String[]...

2015-11-04 09:30:49 2465

原创 C与java的区别

既然多态是面向对象的三大本质特征之一(其它两个是数据抽象和继承),那么 C++为什么不将方法调用的默认方式设置为动态绑定,而要通过关键字virtual进行标记呢?Bruce Eckel在《Thinking in C++》中提到,这是由于历史原因造成的,C++是从C发展而来的,而C程序员最为关心的是性能问题,由于动态绑定比静态绑定多几条指令,性能有所下降, 如果将动态绑定设定为默认方法调用方式,

2015-10-30 10:50:19 530

转载 java语言基础及特性-02

1.hashMap与hashTable     Java中数据存储方式最底层的两种结构,一种是数组,另一种就是链表,数组的特点:连续空间,寻址迅速,但是在删除或者添加元素的时候需要有较大幅度的移动,所以查询速度快,增删较慢。而链表正好相反,由于空间不连续,寻址困难,增删元素只需修改指针,所以查询慢、增删快。有没有一种数据结构来综合一下数组和链表,以便发挥他们各自的优势?答案是肯定的!就是:哈希表。...

2015-10-30 09:57:22 530

转载 java内存管理机制及垃圾回收算法与回收器

问题的引入:问题一:String str1 = "abc"; String str2 = "abc"; System.out.println(str1==str2); //true问题二:String str1 =new String ("abc"); String str2 =new String ("abc"); System.out.println(str1==str2);

2015-10-26 09:49:13 779

原创 java与C语言在字符串结束符上的区别

综述:在C语言中字符串或字符数组最后都会有一个额外的字符‘\0’来表示结束,而在java语言中没有结束符这一概念。具体见下面分析。1. C 语言  在C语言中字符串和字符数组基本上没有区别,都需要结束符;如:char s[4]={'a','b','c','d'};此字符数组的定义编译可以通过,但却没有关闭数组,若其后需要申请内存,那么以后的数据均会放入其中,尽管它的长度不够,但若为 cha

2015-10-15 09:50:41 33330 16

原创 国产密码算法:锻造信息安全之盾

随着商业银行信息化的快速发展,以网上银行为代表的基于Internet和其他各类网络的应用系统迅速普及。由于个人金融信息具有高度的敏感性,因此,这些信息在网络上的传输和在本地的存储均应采取相应的加密措施。  人民银行发布的《关于银行业金融机构做好个人金融信息保护工作的通知》对个人金融信息进行了定义及分类,并对保护个人金融信息的安全提出了明确的要求。那么商业银行怎样才能保护好个人金融信息安全呢?采

2015-10-10 09:34:59 7305

原创 有深度的博客

1.许令波,developerWorks 中国网站最佳作者,现就职于淘宝网,是一名 Java 开发工程师。对大型互联网架构设计颇感兴趣,喜欢钻研开源框架的设计原理。有时间将学到的知识整理成文章,也喜欢记录下工作和生活中的一些思考。个人网站是:http://xulingbo.net或https://github.com/xulingbo/xulingbo.github.io/issues/。

2015-09-16 09:33:51 4191

原创 I/O多路复用模式与线程并发模式

一个高性能的服务器,必定要解决IO多路复用和多线程服务的问题,本文在学习《面向模式的软件架构--并发和联网对象模式》后的一点体会。1.I/O多路复用模式:         在常规的I/O多路复用中采用select或poll或epoll系统级别的函数来实现,基于这些函数形成的多路复用模式为reactor和proactor模式。该模式的实现机制是将事件注册到reactor中,当事件所需要的资源

2015-08-25 23:26:20 3713

原创 Socket与http的长连接和短连接

1.socket长连接与短连接长连接:在服务端的socket的超时时间内如果没有收到客户端的请求包,那么服务端就会关闭此次连接,因此为了保持长连接的话,客户端需要在服务端的超时时间内发送心跳信息以保持跟服务端的连接,防止服务端关闭连接。 2.http长连接与短连接众所周知http1.1(http1.0不是标准,依服务器而定)默认是支持长连接的,长连接能够保证服务器和客户端的sock

2015-08-01 17:05:24 4560

原创 Linux软件参数配置

在Linux下环境变量的设置有两种:1.在/etc/pfofile文件里面添加,这种方式会在所有用户登录下都会起作用;2.在当前用户的目录.bash_prlfile里面进行添加,这种方式只会使当前用户起作用,如下:[root@BJCA-device ~]# [root@BJCA-device ~]# [root@BJCA-device ~]# whoamiroot[root@BJC

2015-07-21 16:48:58 846

原创 mod_gsoap(gsoap与Apache服务器的集成)

利用gsoap很容易的产生出服务端与客户端的代码,下面详细描述将服务端的代码集成到apache的步骤。 本文采用的工具是vs2012,示例代码来源于:gsoap-2.8\gsoap\samples\calc$ soapcpp2 -c calc.h通过上面的命令就能产生客户端与服务端的代码(用不到*.xml文件可以删掉,如下图所示)。 说明:1.gsoap的标准函数std

2015-07-14 16:54:12 1040

原创 grep、xargs、sed、awk、xargs

管道是把一个命令的输出传递给另一个命令作为输入,比如:command1 | command2    但是command2仅仅把command1输出的内容作为输入参数。    find . -name "install.log" -print打印出的是install.log这个字符串,如果仅仅使用管道,那么command2能够使用的仅仅是install.log这个字符串,不能把它当作文件

2015-06-23 18:46:13 673

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