设计模式:管道模式(Pipeline)
任务待完成。。。。。。。。。
务管道模式(Pipeline)不属于 GOF 提到的 23 种设计模式中的一种,但它与职责链模式很相似,或称为 职责链模式的一种变体。
任务待完成。。。。。。。。。
务管道模式(Pipeline)不属于 GOF 提到的 23 种设计模式中的一种,但它与职责链模式很相似,或称为 职责链模式的一种变体。
现实环境是有些甲方的物理服务器是Widnwos系统,还不能切换Linux,就必须在 Windows 运行 Java 程序,cmd 的控制台窗口很容易被误关闭,需要把 Java 程序注册为 Windows 随机启动。
UTF-8编译的 Java 应用程序,在 Windows 运行,指定了文件编码为 UTF-8 ,控制台显示的中文仍乱码。
右键 cmd 控制台 > 属性,可以看到当前代码页为:936 (简体中文 GBK),该代码只能显示 GBK 编码的中文。
或直接在控制台输入 chcp 命令,会输出当前:【活动的代码页:936】
需要通过 chcp 命令修改代码页,chcp 65001。(65001为UTF-8的代码页)
Windows 中 运行 Java 程序脚本新建一个 startup.bat
文件,内容如下。
1 | title xxx-server |
大部分软件编程的本质是为了解决现实世界的问题,如企业库存管理,财务管理,通讯软件等。
所以,软件编 程的本质是程序员用代码的方式使现实世界的事务运行在计算机上,计算机软件是为了解决世界的问题而开发的。
一个进程最多可以创建多少线程,或 一台 Java 服务器最多能创建多少线程?
此问题涉及的知识点非常广且深:操作系统的内存管理,内核参数,进程,线程,栈空间等。
这是一个在面试时经常被问题的问题,实际隐含的是对服务器的优化和创建过多连接时的问题诊断。
生产环境部署应用服务的服务器操作系统基本上是 Linux 服务器,此问题所涉及到更深层的是 Linux 内核 TCP/IP 和 Socket 参数优化。
重要参考资料:W.Richard Stevens 的 UNIX Network Programming Volume 1:The Sockets Networking API,Third Edition(UNIX网络编程-卷1:套接字联网API 第3版),6.2 Chapter:I/O Models。
基于 Unix / Linux 的网络编程的 5 种 I/O 模型。
代理模式 给某一对象提供一个代理对象,并由代理对象控制对原对象的引用。属于结构型模式。
代理模式在生活中有具体的表现,例如找代理售票点(或黄牛)买票,网络代理。
享元模式 尝试复用同类或相似的对象,以共享方式高效地支持大量的细粒度对象,减少面向对象的系统设计中可能创建大量类或对象,以减少内存占用和提高性能。
享元模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式。
面向对象设计可以很好地解决一些灵活性或可扩展性问题,但在大多数情况下需要在系统中增加类和对象的个数。当对象数量过多时,会占用较大内存,甚至导致内存溢出,运行代价过高,带来性能下降等问题。