- Delphi保存字符串到文本文件
龙门吹雪
Delphi保存字符串到文本文件,若指定文件不存在,则自动创建;保存字符串时采用累加形式。proceduremSaveToFile(constFileName:string;sts:string);varMyTextFile:TextFile;//定义变量MyTextFile为文本文件类型begin//(*步骤1,将文件变量与外部文件联系。相当于为外部文件找了个“替身”*)AssignFile(M
- DOK系统重写
yujunl
生活感悟
经验的积累,往往有意想不到灵感,一直想重写DOK的系统,工作量的庞大,有心无力!二年之后,对系统的熟知,对DELPHI的熟知,一个晚上一个无意的操作,竟然解决了问题。达到我的理想。很是骄傲了一段时间,多少人多少年,都没有解决的问题,在我手里解决了!我是幸运的而已!并非比他们牛。但绝对比他们努力!
- Delphi基本图像处理代码
comeoffbest
Java
Delphi基本图像处理代码//浮雕procedureEmboss(SrcBmp,DestBmp:TBitmap;AzimuthChange:integer);overload;vari,j,Gray,Azimuthvalue,R,G,B:integer;SrcRGB,SrcRGB1,SrcRGB2,DestRGB:pRGBTriple;beginfori:=0toSrcBmp.Height-1d
- 房产怎么利用Delphi发送销售短信
乐讯通云通信
php开发语言javajson
现在的房价价格并不是很稳定,因此在房价下降时,很多人都想出手买房。而开发商也想趁这个机会好好宣传自己的楼盘,所以,群发短信便成为了一个很好宣传手段,成本低,覆盖率高的特性,让群发短信在开发商之间广受好评。针对一些客户来说,通过群发短信可以实时知道自己倾向的楼盘的价格,在好的时机出手。支持免费对接试用:乐讯通PaaS平台找好用的短信平台,选择乐讯通,短信群发|短信平台|群发短信软件|群发短信平台|乐
- VBto Converter代码转换工具最新V2.89版
中游鱼
原创VB补丁.netmicrosoftvb6代码转换
VBtoConverter代码转换工具最新V2.89版VBtoConverter是来自国外的一款简单实用,功能强大的VB6源代码转换工具。作为一款实用的编程工具软件,可以将MicrosoftVisualBasic6.0project(包括源代码)转换成MSVC++MFC,VC++.NET(CLR),VBNET,C#,J#,BorlandC++Builder,BorlandDelphi源代码文件。可
- delphi fireDAC+SQLite 在多线程下笔记
蝈蝈(GuoGuo)
SQLiteDelphisqlite笔记jvm
sqlite1篇文章0订阅订阅专栏SQLite官方描述是支持多线程的,参考:UsingSQLiteInMulti-ThreadedApplicationsFIREDAC默认的threadsafe为2,要求是为每个线程单独建立一个连接,实际测试,应该是有且只能有一个连接。特别是主线程需要注意。在有DBGRID的情况下,多个连接会导致databaseislocked的错误。关于多线程的配置,官方文档描
- [ v1.3 基本搞定 ] Delphi UDP + TCP 通信问题
holen
DELPHIDELPHI
主体思路:先由管理机发UDP命令到客户端,客户端在获取主机IP后,再建立TCP连接,这样就不用手工去客户端设主机IP了,而且主机IP可随意变化。管理机(TCP服务端/UDP客户端)源码:unitUnit1;interfaceusesWindows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs,ComCtrls,
- java delphi 三层_DELPHI三层架构设计方案
门田木
javadelphi三层
随便说说最近项目中的三层架构吧。讲点实际的东西。我最讨厌空讲道理。网上讲道理的太多了,不喜欢举例子。大多数文章中都或多或少的讲到了三层架构。表示层,业务层,数据层。又把业务层再细分,分为外观服务层,主业务服务,及数据库库服务层。今天主要讨论一下业务层吧。举个最简单的例子。客户端获取数据。业务层要与表示层尽量解藕,我的方法是:首先我们在中间层TLB_中定义一个接口IBusinessService,定
- delphi 计算文件与当前时间差(天小时分钟秒)
强哥83
Delphidelphiinteger
procedureTForm1.FormCreate(Sender:TObject);//窗体初始化variFileHandle:Integer;FileTime:TDateTime;Days:Integer;Hours:Integer;Minutes:Integer;Seconds:Integer;beginDataPath:=ExtractFilePath(paramstr(0))+'data
- Delphi v11 安卓权限申请
pcplayer
androidDelphi
问题Delphi10.4的安卓权限申请代码,在Delphi11下面编译无法通过。原因原因是里面有几个变量类型的定义有所不同。procedureTDmBLE.RequestPermissionsResult(Sender:TObject;constAPermissions:TArray;constAGrantResults:TArray);上述代码是Delphi10.4的,里面有两个类型需要更改:1
- C语言开发windows桌面程序,开发 windows 桌面软件,现在主流用什么技术?
weixin_39963465
桌面软件还是得win32,工具只有两个选择vc和delphi,不建议用.net,存在部署问题.还有大佬说桌面还是老老实实C#吧,看需求选择WPF或者Winforms或者干脆激进一点,直接上win10的UAP?另外我每天默念100遍,拿Web应付Windows的软件都去死吧,死干净点。这是作为用户的想法。拿web应付的多数吃内存是nativeapp的几倍甚至几十倍,对高dpi支持和新技术支持也差,再
- linux的make和makefile
猪蹄手
linux运维服务器
一.什么是make和makefilemakefile作用:一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作make作用:make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE都有这个命令,比如:Delphi的ma
- Delphi Web前端开发教程(9):基于TMS WEB Core框架
xyzhan
Delphi前端DelphiWeb前端开发教程TMSWEBCoreWEB开发
3、RESTServers服务端(后端)框架REST服务端特点:-为远程资源提供一个RESTAPI接口。也可以为其他网络内容提供服务;-包括在DelphiEnterprise&Architect企业版和架构师版中的RAD服务器、DataSnap、WebBroker;-开源框架:DelphiMVCFramework、MARS-Curiosity、SynopsemORMotORM/SOA/MVCFra
- 【Delphi 基础知识 29】ListBox控件的详细使用
南通DXZ
100天精通Delphi开发语言
在Delphi中,TListBox是一个常用的控件,用于显示项目列表。以下是TListBox的一些常见用法:添加项目:使用ListBox.Items.Add方法可以向列表框中添加项目。例如:ListBox1.Items.Add('Item1');ListBox1.Items.Add('Item2');删除项目:使用ListBox.Items.Delete方法可以删除指定位置的项目。例如:ListB
- (delphi11最新学习资料) Object Pascal 学习笔记---第5章第1节(动态数组)
langfengyl
ObjectPascalHandbook学习笔记delphidelphi11ObjectPascal
5.1.4动态数组在传统的Pascal中,数组的大小是固定的,并且在声明数据类型时限制了元素的数量。然而,ObjectPascal支持动态数组的直接和本地实现。注解:“直接实现动态数组”与使用指针和动态内存分配来获得类似效果的方法截然不同…后者代码非常复杂且容易出错。顺便说一句,动态数组是大多数现代编程语言中唯一的一种结构形式。动态数组是动态分配的,并进行引用计数(使得参数传递更快,因为只传递引用
- (delphi11最新学习资料) Object Pascal 学习笔记---第5章第1节(静态数组)
langfengyl
ObjectPascalHandbook学习笔记delphidelphi11ObjectPascal
第5章数组与记录我在第二章介绍数据类型时,提到了ObjectPascal中既有内置数据类型又有自定义数据类型。自定义数据类型的一个简单示例是在该章节中介绍的枚举类型。自定义类型的真正强大体现在更高级的机制中,比如数组、记录和类。在本章中,我将讲述前两个机制,基本上它们的存在可以追溯到Pascal的早期定义,但经过多年的改变(现在变得更加强大),它们与早期同名的定义类型几乎没有相似之处。在本章末尾,
- (delphi11最新学习资料) Object Pascal 学习笔记---第5章第1节(开放式数组形参)
langfengyl
ObjectPascalHandbook学习笔记delphidelphi11ObjectPascal
5.1.5开放式数组形参对于数组的使用有一个非常特殊的场景,即用于向函数传递一个灵活的参数列表。除了直接传递数组外,本节和下一节还将解释两种特殊的语法约定。在上一段代码中的Format函数就是一个使用了这种约定的函数,它的第二个参数接受一个就地定义的数组值。与C语言(以及其他一些基于C语法的语言)不同,在传统的Pascal语言中,函数或过程总是有固定数量的参数。然而,在ObjectPascal中,
- WideFmtStr - C++ Builder
玄坴
C++Builder参考手册➙System::Sysutils➙WideFmtStr格式化数据到WideString类型的字符串头文件:#include命名空间:System::Sysutils函数原型:void__fastcallWideFmtStr(System::WideString&Result,constSystem::WideStringFormat,constSystem::TVar
- TComponent::SetChildOrder - C++ Builder
玄坴
C++Builder参考手册➙TComponent➙SetChildOrder头文件:#include命名空间:System::Classes类:TComponent访问权限:protected:函数原型:DYNAMICvoid__fastcallSetChildOrder(TComponent*Child,intOrder);System::Classes::TComponent::SetChi
- FindCmdLineSwitch - C++ Builder
玄坴
C++Builder参考手册➙System::Sysutils➙FindCmdLineSwitch判断一个字符串是否为这个应用程序的命令行参数头文件:#include命名空间:System::Sysutils函数原型:bool__fastcallFindCmdLineSwitch(constSystem::UnicodeStringSwitch,constTSysCharSet&Chars,boo
- IncludeTrailingPathDelimiter - C++ Builder
玄坴
C++Builder参考手册➙System::Sysutils➙IncludeTrailingPathDelimiter如果字符串末尾不是\或/就加上\或/,用来做路径处理头文件:#include命名空间:System::Sysutils函数原型:System::UnicodeString__fastcallIncludeTrailingPathDelimiter(constSystem::Uni
- TComponent::GetEnumerator - C++ Builder
玄坴
C++Builder参考手册➙TComponent➙GetEnumerator头文件:#include命名空间:System::Classes类:TComponent访问权限:public:函数原型:TComponentEnumerator*__fastcallGetEnumerator(void);System::Classes::TComponent::GetEnumerator是System
- TComponent::UpdateRegistry - C++ Builder
玄坴
C++Builder参考手册➙TComponent➙UpdateRegistry头文件:#include命名空间:System::Classes类:TComponent访问权限:protected:函数原型:__classmethodvirtualvoid__fastcallUpdateRegistry(boolRegister,constSystem::UnicodeStringClassID,
- CharLength - C++ Builder
玄坴
C++Builder参考手册➙System::Sysutils➙CharLength字符串里面从某个编码单元开始的字符的字节数头文件:#include命名空间:System::Sysutils函数原型:int__fastcallCharLength(constSystem::UnicodeStringS,intIndex);参数:S:字符串;Index:编码单元序号,从1到n,n为字符串长度;由于
- TComponent::VCLComObject - C++ Builder
玄坴
C++Builder参考手册➙TComponent➙VCLComObject头文件:#include命名空间:System::Classes类:TComponent访问权限:public:属性定义:__propertyvoid*VCLComObject={read=FVCLComObject,write=FVCLComObject};System::Classes::TComponent::VCL
- delphi cef3 获取浏览器成员变量
过路客甲乙
delphic++
delphicef3获取成员变量。新版本可以运行老版本无法运行。报错E2009Incompatibletypes:'methodpointerandregularprocedure'解决办法:GlobalCEFApp.OnProcessMessageReceived:=RenderProcessHandler_OnProcessMessageReceivedEvent;把全局方法修改为类方法Glo
- (delphi11最新学习资料) Object Pascal 学习笔记---第4章第3节(内联函数)
langfengyl
ObjectPascalHandbook学习笔记delphiObjectPascaldelphi11
4.3内联在ObjectPascal中,内联函数和方法是一种低级语言特性,可以带来显著的优化效果。一般来说,当你调用一个方法时,编译器会生成一些代码,让你的程序跳转到一个新的执行点。这意味着要设置堆栈框架并进行一些操作,可能需要十几条机器指令。不过,你执行的方法可能非常简短,甚至可能是一个访问方法,只是设置或返回某个私有字段。在这种情况下,将实际代码复制到调用位置,避免堆栈帧设置和其他一切操作,是
- (delphi11最新学习资料) Object Pascal 学习笔记---第4章第2.6节(默认参数)
langfengyl
学习笔记delphiObjectPascaldelphi11
4.2.6默认参数与重载相关的另一个特性是可以为函数的某些参数提供默认值,这样就可以在调用函数时可使用或不使用这些参数。如果调用中缺少参数,函数将使用默认值。让我举一个例子(仍然是OverloadTest示例的一部分)。我们可以定义以下Show调用的封装,提供两个默认参数:procedureNewMessage(Msg:string;Caption:string='Message';Separat
- (delphi11最新学习资料) Object Pascal 学习笔记---第4章第4节(函数的高级特性)
langfengyl
ObjectPascalHandbook学习笔记delphiObjectPascaldelphi11
4.4函数的高级特性到目前为止,我已经介绍了与函数相关的核心功能,但还有一些高级功能值得探索。不过,如果你确实是软件开发方面的新手,你可能会想暂时跳过本章的其余部分,转到下一章。4.4.1ObjectPascal的调用约定每当你的代码需要调用函数时,双方需要就参数从调用者传递给被调用者的实际方式达成一致,这就是所谓的调用约定。一般来说,函数调用是通过堆栈内存区域传递参数(并期望返回值)。不过,参数
- TComponent::Components - C++ Builder
玄坴
C++Builder参考手册➙TComponent➙Components头文件:#include命名空间:System::Classes类:TComponent访问权限:public:属性定义:__propertyTComponent*Components[intIndex]={read=GetComponent};System::Classes::TComponent::Components是S
- redis学习笔记——不仅仅是存取数据
Everyday都不同
returnSourceexpire/delincr/lpush数据库分区redis
最近项目中用到比较多redis,感觉之前对它一直局限于get/set数据的层面。其实作为一个强大的NoSql数据库产品,如果好好利用它,会带来很多意想不到的效果。(因为我搞java,所以就从jedis的角度来补充一点东西吧。PS:不一定全,只是个人理解,不喜勿喷)
1、关于JedisPool.returnSource(Jedis jeids)
这个方法是从red
- SQL性能优化-持续更新中。。。。。。
atongyeye
oraclesql
1 通过ROWID访问表--索引
你可以采用基于ROWID的访问方式情况,提高访问表的效率, , ROWID包含了表中记录的物理位置信息..ORACLE采用索引(INDEX)实现了数据和存放数据的物理位置(ROWID)之间的联系. 通常索引提供了快速访问ROWID的方法,因此那些基于索引列的查询就可以得到性能上的提高.
2 共享SQL语句--相同的sql放入缓存
3 选择最有效率的表
- [JAVA语言]JAVA虚拟机对底层硬件的操控还不完善
comsci
JAVA虚拟机
如果我们用汇编语言编写一个直接读写CPU寄存器的代码段,然后利用这个代码段去控制被操作系统屏蔽的硬件资源,这对于JVM虚拟机显然是不合法的,对操作系统来讲,这样也是不合法的,但是如果是一个工程项目的确需要这样做,合同已经签了,我们又不能够这样做,怎么办呢? 那么一个精通汇编语言的那种X客,是否在这个时候就会发生某种至关重要的作用呢?
&n
- lvs- real
男人50
LVS
#!/bin/bash
#
# Script to start LVS DR real server.
# description: LVS DR real server
#
#. /etc/rc.d/init.d/functions
VIP=10.10.6.252
host='/bin/hostname'
case "$1" in
sta
- 生成公钥和私钥
oloz
DSA安全加密
package com.msserver.core.util;
import java.security.KeyPair;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.SecureRandom;
public class SecurityUtil {
- UIView 中加入的cocos2d,背景透明
374016526
cocos2dglClearColor
要点是首先pixelFormat:kEAGLColorFormatRGBA8,必须有alpha层才能透明。然后view设置为透明glView.opaque = NO;[director setOpenGLView:glView];[self.viewController.view setBackgroundColor:[UIColor clearColor]];[self.viewControll
- mysql常用命令
香水浓
mysql
连接数据库
mysql -u troy -ptroy
备份表
mysqldump -u troy -ptroy mm_database mm_user_tbl > user.sql
恢复表(与恢复数据库命令相同)
mysql -u troy -ptroy mm_database < user.sql
备份数据库
mysqldump -u troy -ptroy
- 我的架构经验系列文章 - 后端架构 - 系统层面
agevs
JavaScriptjquerycsshtml5
系统层面:
高可用性
所谓高可用性也就是通过避免单独故障加上快速故障转移实现一旦某台物理服务器出现故障能实现故障快速恢复。一般来说,可以采用两种方式,如果可以做业务可以做负载均衡则通过负载均衡实现集群,然后针对每一台服务器进行监控,一旦发生故障则从集群中移除;如果业务只能有单点入口那么可以通过实现Standby机加上虚拟IP机制,实现Active机在出现故障之后虚拟IP转移到Standby的快速
- 利用ant进行远程tomcat部署
aijuans
tomcat
在javaEE项目中,需要将工程部署到远程服务器上,如果部署的频率比较高,手动部署的方式就比较麻烦,可以利用Ant工具实现快捷的部署。这篇博文详细介绍了ant配置的步骤(http://www.cnblogs.com/GloriousOnion/archive/2012/12/18/2822817.html),但是在tomcat7以上不适用,需要修改配置,具体如下:
1.配置tomcat的用户角色
- 获取复利总收入
baalwolf
获取
public static void main(String args[]){
int money=200;
int year=1;
double rate=0.1;
&
- eclipse.ini解释
BigBird2012
eclipse
大多数java开发者使用的都是eclipse,今天感兴趣去eclipse官网搜了一下eclipse.ini的配置,供大家参考,我会把关键的部分给大家用中文解释一下。还是推荐有问题不会直接搜谷歌,看官方文档,这样我们会知道问题的真面目是什么,对问题也有一个全面清晰的认识。
Overview
1、Eclipse.ini的作用
Eclipse startup is controlled by th
- AngularJS实现分页功能
bijian1013
JavaScriptAngularJS分页
对于大多数web应用来说显示项目列表是一种很常见的任务。通常情况下,我们的数据会比较多,无法很好地显示在单个页面中。在这种情况下,我们需要把数据以页的方式来展示,同时带有转到上一页和下一页的功能。既然在整个应用中这是一种很常见的需求,那么把这一功能抽象成一个通用的、可复用的分页(Paginator)服务是很有意义的。
&nbs
- [Maven学习笔记三]Maven archetype
bit1129
ArcheType
archetype的英文意思是原型,Maven archetype表示创建Maven模块的模版,比如创建web项目,创建Spring项目等等.
mvn archetype提供了一种命令行交互式创建Maven项目或者模块的方式,
mvn archetype
1.在LearnMaven-ch03目录下,执行命令mvn archetype:gener
- 【Java命令三】jps
bit1129
Java命令
jps很简单,用于显示当前运行的Java进程,也可以连接到远程服务器去查看
[hadoop@hadoop bin]$ jps -help
usage: jps [-help]
jps [-q] [-mlvV] [<hostid>]
Definitions:
<hostid>: <hostname>[:
- ZABBIX2.2 2.4 等各版本之间的兼容性
ronin47
zabbix更新很快,从2009年到现在已经更新多个版本,为了使用更多zabbix的新特性,随之而来的便是升级版本,zabbix版本兼容性是必须优先考虑的一点 客户端AGENT兼容
zabbix1.x到zabbix2.x的所有agent都兼容zabbix server2.4:如果你升级zabbix server,客户端是可以不做任何改变,除非你想使用agent的一些新特性。 Zabbix代理(p
- unity 3d还是cocos2dx哪个适合游戏?
brotherlamp
unity自学unity教程unity视频unity资料unity
unity 3d还是cocos2dx哪个适合游戏?
问:unity 3d还是cocos2dx哪个适合游戏?
答:首先目前来看unity视频教程因为是3d引擎,目前对2d支持并不完善,unity 3d 目前做2d普遍两种思路,一种是正交相机,3d画面2d视角,另一种是通过一些插件,动态创建mesh来绘制图形单元目前用的较多的是2d toolkit,ex2d,smooth moves,sm2,
- 百度笔试题:一个已经排序好的很大的数组,现在给它划分成m段,每段长度不定,段长最长为k,然后段内打乱顺序,请设计一个算法对其进行重新排序
bylijinnan
java算法面试百度招聘
import java.util.Arrays;
/**
* 最早是在陈利人老师的微博看到这道题:
* #面试题#An array with n elements which is K most sorted,就是每个element的初始位置和它最终的排序后的位置的距离不超过常数K
* 设计一个排序算法。It should be faster than O(n*lgn)。
- 获取checkbox复选框的值
chiangfai
checkbox
<title>CheckBox</title>
<script type = "text/javascript">
doGetVal: function doGetVal()
{
//var fruitName = document.getElementById("apple").value;//根据
- MySQLdb用户指南
chenchao051
mysqldb
原网页被墙,放这里备用。 MySQLdb User's Guide
Contents
Introduction
Installation
_mysql
MySQL C API translation
MySQL C API function mapping
Some _mysql examples
MySQLdb
- HIVE 窗口及分析函数
daizj
hive窗口函数分析函数
窗口函数应用场景:
(1)用于分区排序
(2)动态Group By
(3)Top N
(4)累计计算
(5)层次查询
一、分析函数
用于等级、百分点、n分片等。
函数 说明
RANK() &nbs
- PHP ZipArchive 实现压缩解压Zip文件
dcj3sjt126com
PHPzip
PHP ZipArchive 是PHP自带的扩展类,可以轻松实现ZIP文件的压缩和解压,使用前首先要确保PHP ZIP 扩展已经开启,具体开启方法就不说了,不同的平台开启PHP扩增的方法网上都有,如有疑问欢迎交流。这里整理一下常用的示例供参考。
一、解压缩zip文件 01 02 03 04 05 06 07 08 09 10 11
- 精彩英语贺词
dcj3sjt126com
英语
I'm always here
我会一直在这里支持你
&nb
- 基于Java注解的Spring的IoC功能
e200702084
javaspringbeanIOCOffice
- java模拟post请求
geeksun
java
一般API接收客户端(比如网页、APP或其他应用服务)的请求,但在测试时需要模拟来自外界的请求,经探索,使用HttpComponentshttpClient可模拟Post提交请求。 此处用HttpComponents的httpclient来完成使命。
import org.apache.http.HttpEntity ;
import org.apache.http.HttpRespon
- Swift语法之 ---- ?和!区别
hongtoushizi
?swift!
转载自: http://blog.sina.com.cn/s/blog_71715bf80102ux3v.html
Swift语言使用var定义变量,但和别的语言不同,Swift里不会自动给变量赋初始值,也就是说变量不会有默认值,所以要求使用变量之前必须要对其初始化。如果在使用变量之前不进行初始化就会报错:
var stringValue : String
//
- centos7安装jdk1.7
jisonami
jdkcentos
安装JDK1.7
步骤1、解压tar包在当前目录
[root@localhost usr]#tar -xzvf jdk-7u75-linux-x64.tar.gz
步骤2:配置环境变量
在etc/profile文件下添加
export JAVA_HOME=/usr/java/jdk1.7.0_75
export CLASSPATH=/usr/java/jdk1.7.0_75/lib
- 数据源架构模式之数据映射器
home198979
PHP架构数据映射器datamapper
前面分别介绍了数据源架构模式之表数据入口、数据源架构模式之行和数据入口数据源架构模式之活动记录,相较于这三种数据源架构模式,数据映射器显得更加“高大上”。
一、概念
数据映射器(Data Mapper):在保持对象和数据库(以及映射器本身)彼此独立的情况下,在二者之间移动数据的一个映射器层。概念永远都是抽象的,简单的说,数据映射器就是一个负责将数据映射到对象的类数据。
&nb
- 在Python中使用MYSQL
pda158
mysqlpython
缘由 近期在折腾一个小东西须要抓取网上的页面。然后进行解析。将结果放到
数据库中。 了解到
Python在这方面有优势,便选用之。 由于我有台
server上面安装有
mysql,自然使用之。在进行数据库的这个操作过程中遇到了不少问题,这里
记录一下,大家共勉。
python中mysql的调用
百度之后能够通过MySQLdb进行数据库操作。
- 单例模式
hxl1988_0311
java单例设计模式单件
package com.sosop.designpattern.singleton;
/*
* 单件模式:保证一个类必须只有一个实例,并提供全局的访问点
*
* 所以单例模式必须有私有的构造器,没有私有构造器根本不用谈单件
*
* 必须考虑到并发情况下创建了多个实例对象
* */
/**
* 虽然有锁,但是只在第一次创建对象的时候加锁,并发时不会存在效率
- 27种迹象显示你应该辞掉程序员的工作
vipshichg
工作
1、你仍然在等待老板在2010年答应的要提拔你的暗示。 2、你的上级近10年没有开发过任何代码。 3、老板假装懂你说的这些技术,但实际上他完全不知道你在说什么。 4、你干完的项目6个月后才部署到现场服务器上。 5、时不时的,老板在检查你刚刚完成的工作时,要求按新想法重新开发。 6、而最终这个软件只有12个用户。 7、时间全浪费在办公室政治中,而不是用在开发好的软件上。 8、部署前5分钟才开始测试。