- 博客(28)
- 资源 (8)
- 收藏
- 关注
原创 JAVA IO(二)File类详解
用途File类用于表示目录或文件,只是描述目录或文件的信息,不能用于访问文件的内容。常用方法boolean mkdir();boolean mkdirs();boolean createNewFile();boolean delete()public void createDir(String dirPath) { File file = new File(dirPat
2016-02-21 19:04:02
424
原创 JAVA IO(一)字符集与字符编码简介
在计算机中,存储的数据都是二进制的,就是一坨的0101001,我们看到的东西都是根据某个规则解析后得到的。 我们把字母”a”变成” 01100001”的过程就是按照ASCII方式进行编码,把” 01100001”变成字母”a”就是解码。 至于有时我们看到的乱码,实际就是编解码的方式不同。 举个形象的例子就是,你说中文,别人说英文,你说话时是把自己的想法编码成普通话,只能听懂英文的人按照英文去解
2016-02-21 14:46:57
610
原创 Web服务器、Web容器
Web容器什么是容器 容器是应用服务器中位于组件和平台之间的接口集合. 容器一般位于应用服务器之内,由应用服务器负责加载和维护。一个容器只能存在于一个应用服务器之内,一个应用服务器可以建立和维护多个容器。 —-维基百科什么是Web容器对Java应用来说,就是运行JSP和Servlet的环境(Jsp也是编译成servlet再运行的)。 结合容器的概念,Web容器就是把内部组件(即
2016-02-17 22:36:35
629
原创 Maven创建web工程详解
使用环境信息如下: eclipse: Mars Release (4.5.0) JDK:1.8创建maven项目这里选择webapp 修改Maven工程为web工程进入项目属性设置,选择Project Facets,参照下图选择Dynamic Web Module、Java、JavaScript,并选择对应的版本 点击”OK” 之后会遇到javax.servlet.http.HttpS
2015-11-24 21:20:44
356
翻译 什么是Unicorn
The link什么是UnicornUnicorn是为Ruby应用程序提供的一个HTTP服务器,类似于Mongrel or Thin。它采用Mongrel的Ragel HTTP解析器,但是采用一种截然不同的架构和理念。 在典型的配置中,你通过智能的均衡或者简单的轮训方式通过nginx向mongrel池发送请求。 最后,根据你负载均衡的情况,你想要更好的可视性和可靠性,所以你把haproxy也放进
2015-06-23 21:42:36
5159
翻译 Sidekiq错误处理
唉,我也不愿意说这,但是你的workers在处理任务时可能会出现一些异常,这是真事。最佳实践使用一个处理错误的组件,比如 Honeybadger, Airbrake, Rollbar, BugSnag, Sentry, Exceptiontrap, Raygun等,它们功能上都类似,你可以选择一个使用。在一个任务上出现异常时,这些组件会向你发送一封email。请注意,Sidekiq 3.0删除了对
2015-06-14 23:36:24
2284
翻译 使用Redis
Using RedisSidekiq使用Redis来保存任务和运行数据。默认情况下,Sidekiq尝试连接本地端口号6379的Redis服务,在开发环境下这样很方便,但是在生产环境下需要进行配置。记住,如果要对Redis进行配置,需要同时配置Sidekiq.configure_server和Sidekiq.configure_client。你可以把如下代码段添加到config/initializer
2015-06-13 23:37:01
539
翻译 Sidekiq最佳实践
遵循这些规则,以提高你的Sidekiq体验: 1.保证任务的参数小而简单 sidekiq将传递给perform_async的参数不变的传递给Redis。我见过很多人这样做:quote = Quote.find(quote_id)SomeWorker.perform_async(quote)你这样做是把整个Quote对象序列化后传递给Redis,如果你的队列在复制quote对象的同
2015-06-12 22:49:06
1483
转载 高级I/O函数
1. UDP客服端/服务器端简单流程2. recvfrom和sendto2.1 recvfromssize_t recvfrom(int sockfd, void *buff, size_t nbytes, int flags, struct sockaddr *from, socklen_t *addrlen);返回成功读到的数据,出错时返回-1;如果不关心数据从谁来的
2015-01-12 21:03:00
489
原创 模板参数
模板参数包括三种:(1)类型参数;(2)非类型参数;(3)模板的模板参数(意思是参数本身是个模板);1. 类型参数templatevoid func(T first, T second){ cout<<"not const one"<<endl; cout<<"typeof first is: "<<typeid(first).name()<<", typeof
2015-01-07 23:19:34
1039
原创 模板实例化
1. 显示实例化//模板定义在某个.cpp中templatevoid print_typeof(T const& x){ std::cout<<typeid(x).name()<<endl;}//另一个.cpp中template void print_typeof(double const&);显示实例化指示符:由关键字template和紧跟其后的需要实例化的实体的声明
2015-01-07 21:07:02
435
转载 select函数/poll函数/epoll函数
1. select()简介#include#includeint select(int maxfdp1, fd_set *readset, fd_set *writeset, fd_set *exceptset, const struct timeval *timeout);返回值:错误时返回-1,超时返回0,有描述符就绪返回就绪的描述符个数;入参:①maxfdp1:待测试的最
2014-12-16 20:31:26
455
原创 装饰者模式
1. 装饰者模式简介装饰者模式是动态的给一个对象添加一些额外的职责;装饰者模式让我们能够比使用子类更方便的扩展功能;在装饰者模式中,我们可以把类的核心功能和装饰功能分开,这样就控制了类的复杂度;需要扩展时,客户可以根据自己的需要,有选择的使用装饰功能来包装对象;装饰者模式也是“多用组合,少用继承”这个原则的一个应用;方便可以进行扩展功能的同时,对修改也是关闭的(“对扩展开发,对
2014-12-15 22:03:25
364
原创 代理模式、外观模式与适配器模式
1. 三种模式的含义1.1 代理模式代理和被代理者继承自同一个类,是为其他对象提供一种代理以控制对这个对象的访问;1.2 外观模式为子系统中的一组接口提供一个高层接口,这个接口使子系统更容易使用;Facade中的每个接口可能使用了不同子系统的一系列接口;1.3 适配器模式适配器模式可以在我们需要的接口和提供
2014-12-10 23:32:32
462
原创 I/O复用
1. I/O复用概念I/O复用是指,在进程指定的一个或多个I/O条件就绪时,内核就能通知进程;《UNIX网络编程》中使用这样一个例子:大致代码流程如下,client端:{ socket(...); ........//设置服务器地址、端口号等; connect(...); ........ str_cli(stdin, sockfd);}
2014-12-09 22:27:26
632
原创 coredump设置
1. 查看当前coredump设置coredump文件存储路径:sysctl -a | grep core_patterncoredump文件大小限制:ulimit -c2. 设置coredump产生路径及大小ulimit -c filesize一般可以使用ulimit -c unlimited但是上述设置只有本次生效,重启后无效;
2014-12-08 20:35:07
840
原创 简单工厂、工厂方法模式、抽象工厂模式简介及区别
1. 简单工厂模式简单工厂模式是创建型模式的一种(创建型、结构型、行为型),通过专门定义一个类来负责创建具体类型的实例,要创建的实例一般继承自同一个类;结构一般如下所示: 按照面向过程的习惯,可能直接在客户端中根据条件来创建不同的具体产品实例;对于简单工厂模式而言,是把这部分逻辑抽象出来,放在一个工厂类中,由工厂类负责产生具体的对象,也就是将生产者和消
2014-12-07 18:04:34
1109
原创 插口层简介(一)
1.描述符的概念通过调用socket函数,可以获得一个socket描述符,这个描述符具体其他Unix描述符的所有特性:可以用这个描述符调用read和write,调用fork后,父进程和子进程可以共享它;一个描述符是进程的进程表表项的一个数组的下标,这个数组项指向一个打开文件表的结构;进程可以通过描述符访问插口上的网络连接;2. 系统调用进程同内核的交互是通过一组已经定义
2014-12-05 00:37:19
691
原创 基本的socket函数
1.地址结构1.1 IPv4地址结构struct in_addr{ in_addr_t s_addr;};struct sockaddr_in{ uint8_t sin_len; sa_family_t sin_family; /* 协议族 AF_INET/AF_INET6/AF_LOCAL/AF_ROUTE/AF_KEY */ in_port_t sin_port
2014-12-04 22:29:09
698
转载 UML关系(泛化,实现,依赖,关联(聚合,组合))
转载自:http://justsee.iteye.com/blog/808799UML的构造快包含3种: (1) 事物(4种):结构事物,行为事物,分组事物,注释事物(2) 关系(4种):泛化关系,实现关系,依赖关系,关联关系(3) 图(10种):用例图,类图,对象图,包图,组件图,部署图,状态图,活动图,序列图,协作图事物是对模型中最具代表性的
2014-12-03 23:38:04
929
原创 单例模式
单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。保证只产生一个实例,可以把构造函数声明为private,这样就保证了不能在外部定义类的对象;同时为了获取实例,类需要提供一个成员函数来获取实例,或者将一个函数声明为类的友元来获取实例;构造函数声明为private,这个类就不能够被继承了;另一种方式,不把构造函数设置为private,但是在类中设置一个成员变量来记录类的
2014-11-30 22:06:30
365
转载 仿函数
1.仿函数简介顾名思义,就是类似函数,实际上是个类,那为何叫仿函数,因为它用起来形式像个函数一样,实际上是由于重载了operator(),所以仿函数也叫做函数对象;最基本的函数对象包括:1.1 generator A Generator is a kind of function object: an object that is called as if it were a
2014-11-09 09:29:46
439
原创 插入迭代器
插入迭代器,顾名思义,插入用的;比如对于algorithm中的copy函数,123456789templateclass InputIterator, class OutputIterator> OutputIterator copy (InputIterator first, InputIterator last, OutputIterator result){
2014-09-11 22:59:24
441
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人