- 博客(40)
- 资源 (28)
- 收藏
- 关注
原创 JAVA中为什么Map桶(链表)长度超过8才转为红黑树
为什么要转换?因为Map中桶的元素初始化是链表保存的,其查找性能是O(n),而树结构能将查找性能提升到O(log(n))。当链表长度很小的时候,即使遍历,速度也非常快,但是当链表长度不断变长,肯定会对查询性能有一定的影响,所以才需要转成树。为什么阈值是8?转换后存储的数据结构TreeNodes占用空间是普通Nodes的两倍,只有当bin包含足够多的节点时才会转成TreeNodes,而是否足够...
2019-03-29 17:12:12 1297
原创 Spring中Bean的生命周期
最近对项目有用到对Spring的扩展,顺便整理下Spring中bean的生命周期。BeanFactory中Bean的生命周期当调用者通过getBean(beanName)向容器请求某一个bean时,如果容器注册了org.springframework.beans.factory.config.InstantiationAwareBeanPostProcessor接口,则在实例化Bean之前...
2019-03-25 20:40:06 212
原创 面试时Dubbo原理记不住?来看看《Dubbo原理浅析——从RPC本质看Dubbo》
Dubbo原理浅析——从RPC本质看DubboRPC的本质是什么?通俗地讲RPC就是要解决服务间的调用问题,也就是管理服务配置并提供便捷可靠高效的服务间调用。本文将会围绕以下几个问题来介绍DUBBO:DUBBO的实现思想(总体架构)什么?DUBBO是如何定义和管理配置的?DUBBO中服务配置与实际调用是怎么结合的?总体架构先附DUBBO官网的架构图,简单解释下架构图,DUBBO分为四个模块,分别为:注...
2019-03-21 19:52:37 14732
原创 马上要面试了,还有八股文没理解?让ChatGPT来给你讲讲吧——如何更好使用ChatGPT?
总结一下,我感觉 ChatGPT 是一个新型搜索引擎,在某些场景下能够提供比传统搜索引擎更强大更高效的搜索效率。完全依靠 ChatGPT 去做一些稍微复杂的任务,目前来看还是不现实的。比如让 ChatGPT 写代码,目前它的水平只能写一写简单的 demo,而且经常需要手工修复一些细节错误。但是让它作为搜索引擎的补充帮助我们学习新技术,还是比较靠谱的。问答式的体验在很多场景下都要优于传统搜索引擎。
2023-03-14 18:48:27 8933
原创 Mockito初探——快速入门
Mockito是基于CGLIB代理,实现打桩。它通过拦截对象的所有操作方法,对于满足打桩条件的调用,返回预设的返回值。主要注解@InjectMocks用于标记对象属性允许用mock或spy注入。尝试通过按「先构造函数注入再setter注入最后属性(字段)注入」的顺序注入依赖。构造函数注入:选取最大的构造函数,用已声明的mock作为参数注入;注:如果已经通过构造注入,将不再尝试其他策略注...
2019-03-22 11:36:43 820
原创 功夫贷支付服务架构演进之路——架构原型
功夫贷支付服务架构第三方支付的作用在没有第三方支付时,人们交易一般都是通过现金直接交易,当场钱货两清(需要双方在场);如果是大额交易的话,一般双方先达成商品交易信息的一致,之后买家会通过银行柜台转账,转账后双方再次确认信息(流程较长)。有了第三方支付后,交易一切变得那么简单,以淘宝为例:买家挑选商品加入购物车后并结算;买家通过支付宝完成支付;支付完成后,支付宝返回买家支付...
2018-09-03 19:28:03 942
原创 功夫贷支付服务架构演进之路——解决的问题
前天和朋友在一起聊天,聊到在做什么,听着他滔滔不绝地,真佩服他的记忆力,后面他说他都有记笔记的习惯,一篇篇的,什么CSDN、javaeye、博客园,还自建博客。确实东西做久了,自然慢慢地也就淡忘了,回想一下以前做过的事,能记起来的还真屈指可数。 看看上次写博文的时间是在2013年8月27日,距今已经4年了,这4年我在干什么??今天就说说支付服务的那些事吧。以此来缅怀过去的创业经历。系统演
2017-11-13 19:22:33 996
原创 sql之内外连接
作为开发,或多或少会接触到数据库,之前接触的都是零零散散的皮毛而已,现阶段正想系统学一下数据库,然后就写些以后复习用吧。。。 SQL连接常用来关联多张表。常见的连接有:内连接(INNER JOIN)左(外)连接(LEFT (OUTER) JOIN)右(外)连接(RIGHT (OUTER) JOIN) 全连接(FULL (OUTER) JOIN)内连接(INN
2013-08-27 19:47:02 834
原创 DataGridView图像文本单元格
为了美观,有时候我们需要文本单元格中带有图标,然而微软自带的DataGridView控件中没有类似的控件。下面的示例就是实现这样的一个控件。在文本前显示图像,显示出的图像如果太大,效果不好看,可以结合之前写过的C#图像缩放与裁剪,自己加以修改整合。 部分代码:public class TextAndImageColumn : DataGridViewTextBoxColumn
2013-01-21 14:04:55 793
原创 C#图像缩放与裁剪
文笔不好,不废话,直接进入正题,不解释,相信大家都看得懂。 按百分比缩放图像:public static Image ScaleByPercent(Image imgPhoto, int Percent){ float nPercent = ((float)Percent/100); int sourceWidth = imgPhoto.Width;
2013-01-21 14:01:47 1502
原创 DataGridView合并列标题
下面的示例实现如下形式的列标题合并。----------------------------------------------------------------- | January | February | March | | Win | Loss | Win | Loss |
2013-01-21 13:56:05 3660
原创 DataGridView焦点控制
WinForm自带的DataGridView不能对某些特定单元格进行能否获取焦点的控制的。通过重写DataGridView的DataGridView.OnKeyDown, DataGridView.ProcessDataGridViewKey, DataGridView.SetCurrentCellAddressCore, DataGridView.SetSelectedCellCore, D
2013-01-15 17:12:15 2620
原创 C#在控件上有序地动态添加自定义控件
经常我们需要在一个控件的工作区上动态添加新的控件,例如在panel控件上动态添加我们自定义的UserControl,并且希望按照我们所希望的顺序显示。比较简单的方法:用Dock = DockStyle.Top布局panel.Controls.Add(new CustomUserControl(){ Dock = DockStyle.Top }); 用Dock =
2012-04-01 11:12:35 5501 1
原创 Apache Shiro在Web中的应用
1. 概述Shiro 是一个 Apache Incubator 项目,旨在简化身份验证和授权。本文只是我对shiro的初步认识,有不对的请大虾指正,谢谢! 2. 基本概念在对系统进行安全保障时,有两个安全性元素非常重要:身份验证和授权。虽然这两个术语代表的是不同的含义,但出于它们在应用程序安全性方面各自的角色考虑,它们有时会被交换使用。身份验证 指的是验证用户的身份。在验证用户
2012-01-05 07:26:19 6313
原创 Struts 2 struts.xml详解(三)
拦截器(Interceptor)配置 上节简单地介绍了Action的配置,这节简单介绍一下拦截器的配置。1 拦截器栈的配置 顾名思义,拦截器就是在action的执行前后实行拦截,加入某些操作。拦截器类似于servlet的过滤器。它们是按照定义的顺序依次执行的。每一个拦截器访问的都是相同的ActionInvocation,就像每个过滤器访问的都是同一个
2011-12-19 16:28:07 1147
原创 Struts 2 struts.xml详解(二)
Action配置 上节大致讲了关于struts.xml的整体结构,下面讲一下它的一些详细的配置。先从action说起吧!Method属性 在action中有一个method属性,可以指定此action调用哪一个方法。如果没有指定,默认调用execute()方法。 例如: /pages/error.jsp
2011-12-16 13:38:49 952
原创 Struts 2 struts.xml详解(一)
概述 Struts 2用配置文件(struts.xml)初始化它的资源。这些资源包括:拦截器---用于预处理和后处理请求的拦截器Action类---用于调用业务逻辑处理和数据访问代码的Action类结果---可以用JavaServer Pages, Velocity 和 FreeMarker模板预览的结果 在运行时,一个程序只有一个配置。这个配置是在
2011-12-15 17:29:15 1615 1
转载 C#中的Object、Dynamic与var的区别
让我们快速看看object关键字先。我不会对它讲太多,因为它在C#1.0就已经有了。这个关键字没有更多东西除了作为System.Object的快捷方式,System.Object是C#类层次的根类型。(然而,正如Eric Lippert在他博客中指出,并非一切类型都继承源于object[中][英])这是一个强大的机制,这样你几乎可以分配任何实例值到此类型。这是个小例子用来演示使用objec
2011-12-06 13:39:27 5494 1
原创 设计模式之BUILDER(生成器)—对象创建型模式
1. 意图 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。2. 动机 一个RT F(Rich Text Format)文档交换格式的阅读器应能将RT F转换为多种正文格式该阅读器可以将RT F文档转换成普通A S C I I文本或转换成一个能以交互方式编辑的正文窗口组件。但问题在于可能转换的数目是无限的。因此要能够很容易实
2011-11-25 10:01:26 749
原创 设计模式之ABSTRACT FACTORY(抽象工厂)—对象创建型模式
1. 意图 提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。2. 别名 K i t3. 动机 考虑一个支持多种视感( l o o k - a n d - f e e l)标准的用户界面工具包,例如M o t i f和Presentation Manager。不同的视感风格为诸如滚动条、窗口和按钮等用户界面“窗
2011-11-24 17:31:18 653
转载 C#中decimal, double, float的区别
一直很奇怪C#的预定义数据类型中为什么加了一个decimal,有float和double不就够了吗?今天来挖一挖。浮点型NameCTS TypeDescriptionSignificant FiguresRange (approximate)floatSystem.Single32-bit single-precision float
2011-11-24 13:42:18 714
转载 深入浅出Java设计模式之备忘录模式
一、引子 俗话说:世上难买后悔药。所以凡事讲究个“三思而后行”,但总常见有人做“痛心疾首”状:当初我要是……。如果真的有《大话西游》中能时光倒流的“月光宝盒”,那这世上也许会少一些伤感与后悔——当然这只能是痴人说梦了。 但是在我们手指下的程序世界里,却有的后悔药买。今天我们要讲的备忘录模式便是程序世界里的“月光宝盒”。 二、定义与结构 备忘录(Mement
2011-11-24 11:09:41 519
原创 Windows下CVS服务器端的配置
今天玩了一下CVS,遇到了些许问题,也收获良多,现将其整理如下。前提条件:有一安装有CVSNT的服务器。其余先不说,我遇到最多问题的是关于用户的设置,所以,先讲讲有关用户的相关操作与配置。1. 设置环境变量CVSROOTset CVSROOT=:pserver:administrator@localhost:/cvs注:1. 这里要用自己操作系统的管
2011-10-12 12:47:07 3146
原创 How To Install Eclipse SVN And Trac Plugin
1 Begin the installation from the Eclipse Help menu item.2 Click Install New Software… and select Software SitesHelios - http://do
2011-10-12 10:26:50 622
原创 Subversive And Trac Use Guide
1 Subversive1.1 Select Perspective1.2 New Repository Location...1.3 Enter URL, User, Password and finish conect
2011-10-12 10:26:02 431
原创 Trac Install Guide
1 Dependencies1.1 Mandatory Dependencies 1.1.1 Download Python (python-2.7.1.msi) http://www.python.org/getit/
2011-10-12 10:20:51 622
原创 SVN Install Guide
Introduction1.1 Installing Subversion1.1.1 The Subversion Windows installation package can be downloaded from the Subversion ser
2011-10-12 09:30:05 673
原创 将Python脚本文件转化成Windows可执行exe文件
1、准备工作 确保机子安装有以下程序:①Python:可以从官方网站(http://www.python.org/download/)下载下载快速通道(Python2.7.2 win32):http://www.python.org/ftp/python/2.7.2/python-2.7.2.msi②Py2exe:可以从官方网站(http://www.py2exe.org/)下
2011-09-01 17:21:38 4246
原创 性能测试中如何定位性能瓶颈
性能测试的概念是什么,基本目的是什么,我想大家都基本清楚,不作详述,总之,性能测试只是测试过程中的一种方式,帮助我们的功能更好的运行,如果 功能测试是可用,易用,满足需求、用户使用为目的,性能测试无非就是让这些目的更流畅。没有什么专业的概念,无非实现两个字:好用!所以,性能测试这
2011-07-12 17:06:04 998
转载 Java线程池实例
线程池的作用: 线程池作用就是限制系统中执行线程的数量。 根据系统的环境情况,可以自动或手动设置线程数量,达到运行的最佳效果;少了浪费了系统资源,多了造成系统拥挤效率不高。用线程池控制线程数量,其他线程排队等候。一个任务执行完毕,再从队列的中取
2011-07-06 14:53:26 1444
转载 linux下一个线程占用多少内存
群里讨论出mysql的问题,因为mysql是一个连接建立一个线程的,这就涉及到mysql可以建立多少个线程。无论是windwos 还是linux ,每个线程都有自己独立的stack,每个stack 都占用一定的空间。windwos 默认的是1M,这个在exe中
2011-07-06 09:34:25 11100
转载 Struts1.2 控制流程
<br />Struts1.2依然是应用很广的框架,熟悉其基本的控制流程是必要的,先将其流程总结如下(供参考):<br /><br />一、ActionServlet的初始化<br /><br />ActionServlet作为Struts组件的前端控制器,由于web.xml的相应配置:<br /><br /><load-on-startup>0</load-on-startup><br /><br />在应用一加载时即会被实例化并调用其init方法,init方法所做的主要工作有二:<br /><br />
2010-11-14 19:11:00 458
转载 C#文件读写及相关操作
首先介绍一下对文件读写的一些相关操作文件读写相关类介绍文件读写操作涉及的类主要是:MarshalByRefObject 类:允许在支持远程处理的应用程序中跨应用程序域边界访问对象;BinaryReader 类:用特定的编码将基元数据类型读作二进制值。BinaryWriter 类: 以二进制形式将基元类型写入流,并支持用特定的编码写入字符串。Stream 类: 提供字
2010-05-19 20:27:00 2213
转载 Visual C++ ADO数据库编程入门
摘要 本文简要介绍了在VC++ 6.0中使用 ADO进行客户端数据库编程的基本步骤,以及常见问题的解决方法,可供入门级的参考之用。 关键字 ADO VC++ 数据库编程 ADO 是目前在Windows环境中比较流行的客户端数据库编程技术。ADO是建立在OLE DB底层技术之上的高级编程接口,因而它兼具有强大的数据处理功能(处理各种不同类型的数据源、分布式的数据处
2010-04-08 20:49:00 779
转载 MFC的CSocket的一个小Bug?
今天写的程序用到了MFC的CSocket类 。 首先在一个自己的线程中调用这个CSocket类对象的创建函数CSocket::Create(),这个线程用来执行ReSipRocate的协议栈。 然后当点击程序窗口的菜单时,程序的主线程(UI线程)调用销毁函数CSocket::Close()。当程序是Debug版本的时候,会报告一个断言错误“Debug A
2010-03-22 13:02:00 1338
转载 WinSock网络通信程序设计入门
对于许多初学者来说,网络通信程序的开发,普遍的一个现象就是觉得难以入手。许多概念,诸如:同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)等,初学者往往迷惑不清,只知其所以而不知起所以然。 同步方式指的是发送方不等接收方响应,便接着发下个数据包的通信方式;而异步指发送方发出数据后,等收到接收方发回的响应,才发下一个数据包的通信方式。
2010-03-21 19:25:00 481
转载 将文件复制到指定路径[C# 文件操作]
将现有文件复制到新文件,不允许改写现有文件。[C#] public FileInfo CopyTo(string);将现有文件复制到新文件,允许改写现有文件。[C#] public FileInfo CopyTo(string, bool);[C#] 将文件复制到指定路径,允许改写同名的目标文件 COPYusing System;using System.IO;class Test {
2010-03-10 15:07:00 1807
转载 DataSet和DataTable
1、创建DataSet对象:DataSet ds = new DataSet("DataSetName"); 2、查看调用SqlDataAdapter.Fill创建的结构 da.Fill(ds,"Orders"); DataTable tbl = ds.Table[0]; foreach(DataColumn col in tbl.Columns)
2010-03-10 15:02:00 732
转载 SQL操作全集
下列语句部分是Mssql语句,不可以在access中使用。 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句: 1、说明:创建数据库 CREATE DATABASE data
2010-03-05 13:53:00 368
转载 C#事件(event)解析
事件(event),这个词儿对于初学者来说,往往总是显得有些神秘,不易弄懂。而这些东西却往往又是编程中常用且非常重要的东西。大家都知道windows消息处理机制的重要,其实C#事件就是基于windows消息处理机制的,只是封装的更好,让开发者无须知道底层的消息处理机制,就可以开发出强大的基于事件的应用程序来。 先来看看事件编程有哪些好处。 在以往我们编写这类程序
2009-12-23 11:27:00 385
SQL 实用系列经典教程+程序员的SQL金典(内部资料)
2012-03-29
Apache Struts 2 Web Application Development
2011-12-19
HOWTO: Subversion for Windows with Apache server - a beginner's guide
2011-10-12
JAVA编程思想第四版(英文版,Thinking in java 4th edition)
2011-09-30
Python 3.2.2官方文档
2011-09-19
OpenOffice 宏开发手册(Useful Macro Information For OpenOffice.org)
2011-07-26
OpenOffice 宏开发手册(Useful Macro Information For OpenOffice.org)
2011-07-26
ACM经典代码(包含数论、图论、组合、数值计算、几何、结构、其他等各个方面的经典代码)
2010-08-29
eset账号密码获取器
2009-09-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人