操做系统:java
1.Windows操做系统 git
⑴直观、高效的面向对象的图形用户界面,易学易用程序员
⑵用户界面统1、友好、漂亮web
⑶丰富的设备无关的图形操做正则表达式
⑷多任务操做环境数据库
2.Unix操做系统 编程
⑴UNIX系统是一个多用户,多任务的分时操做系统windows
⑵UNIX的系统结构可分为三部分:操做系统内核,系统调用,应用程序tomcat
⑶UNIX系统大部分是由C语言编写的安全
⑷UNIX提供了丰富的,精心挑选的系统调用
⑸UNIX提供了功能强大的可编程的Shell语言做为用户界面
⑹UNIX系统采用树状目录结构
⑺UNIX系统采用进程对换的内存管理机制和请求调页的存储方式
⑻UNIX系统提供多种通讯机制
3.Linux操做系统
⑴Linux的基本思想有两点:第一,一切都是文件;第二,每一个软件都有肯定的用途
⑵Linux是一款免费的操做系统,用户能够经过网络或其余途径免费得到,并能够任意修改其源代码
⑶彻底兼容POSIX1.0标准
⑷多用户、多任务操做环境;支持多种平台
4.Mac OS操做系统
⑴全屏模式是新版操做系统中最为重要的功能,一切应用程序都可以在全屏模式下运行
⑵任务控制整合了Dock和控制面板,并能够窗口和全屏模式查看各类应用
⑶快速启动面板的工做方式与iPad彻底相同,它以相似于iPad的用户界面显示电脑中安装的一切应用,并经过App Store进行管理,用户可滑动鼠标,在多个应用图标界面间切换
⑷Mac App Store的工做方式与iOS系统的App Store彻底相同,他们具备相同的导航栏和管理方式
————————————————
应用服务器
Apache
Apache是世界使用排名第一的Web服务器软件。它能够运行在几乎全部普遍使用的计算机平台上,因为其跨平台和安全性被普遍使用,是最流行的Web服务器端软件之一。它快速、可靠而且可经过简单的API扩充,将Perl/Python等解释器编译到服务器中。同时Apache音译为阿帕奇,是北美印第安人的一个部落,叫阿帕奇族,在美国的西南部。也是一个基金会的名称、一种武装直升机等等。
Tomcat
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是不少的场合下被广泛使用,是开发和调试JSP 程序的首选。对于一个初学者来讲,能够这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,因此当你运行tomcat 时,它实际上做为一个与Apache 独立的进程单独运行的。
Weblogic
WebLogic是美国Oracle公司出品的一个application server,确切的说是一个基于JAVAEE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。WebLogic Server具备开发和部署关键任务电子商务Web应用系统 所需的多种特点和优点。
Websphere
WebSphere 是 IBM 的软件平台。它包含了编写、运行和监视全天候的工业强度的随需应变 Web 应用程序和跨平台、跨产品解决方案所须要的整个中间件基础设施,如服务器、服务和工具。WebSphere 提供了可靠、灵活和健壮的软件。
WebSphere 是一个模块化的平台,基于业界支持的开放标准。能够经过受信任和持久的接口,将现有资产插入 WebSphere,能够继续扩展环境。WebSphere 能够在许多平台上运行,包括 Intel、Linux 和 z/OS。
WebSphere 是随需应变的电子商务时代的最主要的软件平台,可用于企业开发、部署和整合新一代的电子商务应用,如B2B,并支持从简单的网页内容发布到企业级事务处理的商业应用。WebSphere 能够建立电子商务站点, 把应用扩展到联合的移动设备, 整合已有的应用并提供自动业务流程。
JBoss
是一个基于J2EE的开放源代码的应用服务器。 JBoss代码遵循LGPL许可,能够在任何商业应用中无偿使用。JBoss是一个管理EJB的容器和服务器,支持EJB 1.一、EJB 2.0和EJB3的规范。但JBoss核心服务不包括支持servlet/JSP的WEB容器,通常与Tomcat或Jetty绑定使用。
IIS
"IIS"即(Internet Identity system)中文翻译为“互联网识别体系。"IIS"在人们平常的工做中,是指企业有意识,有计划地将本身企业的CI特征经过互联网向社会公众主动地展现与传播,使公众在互联网中对企业有一个可管理、符合企业传播规范的印象和认识,以便消费者更好地认知并留下良好的印象。
对以上几种服务器的对比和分析
Apache是一个静态页面,而Tomcat是一个动态页面。若是想要在Apache环境下运行jsp动态网页就须要一个jsp解释器,而tomcat就是做为一个解释器来帮助在Apache的环境下执行动态页面,Tomcat是先将静态页面转换成java.类型文件,而后再以jsp.的文件形式运行。可是在处理静态页面时,tomcat就不如Apache那样迅速,也不能对其进行配置。所以在现实的使用中,Tomcat是作为一Apache的一个插件来显示网站的动态页面的。这样可使网站具备更好的扩展性和安全性。
JBoss Web将Tomcat内核做为其Servlet容器引擎,Tomcat,在很活动链接支持、静态内容、大文件和HTTPS处理上表象不如JBoss那样优越,同时Tomcat只能运行Java应用程序,企业在使用时Tomcat,这样在使用时须要用Apache Web Server进行整合。
Apache支持全部的操做系统,能够跨平台使用,而IIS只能基于windows操做系统下使用,在开源代码方面Apache是彻底开放免费的,而IIS是部分开源代码。在安装上IIS使用的是傻瓜式图形化安装,使用者只要按照提示安装便可,可是Apache在安装上相对复杂困难,在语言的运行方面Apache支持多种运行语言例如ASP,PHP,JSP,可是IIS若是要运行PHP须要反复的配置才能运行。
WebLogic和WebSphere都是中间件,除作web容器外还支持一系列应用,如JMS,EJB等。两者都是基于Java平台来知足实时处理需求的,不一样的版本与jdk版本兼容和有所不一样;他们都基于sun公司的servlet来实现的.
从以上的对比来看,Apache的使用率以及在性能上都是是要优越于其余应用服务器的,Apache与tomcat整合使用,能够发挥更大做用,不论在静态页面仍是动态页面上都能快速的运行,可是Apache的安装配置方面要比其余应用服务器复杂。与其余的应用服务器相比较,在安全性能方面Apache也要优越于其余应用服务器。
————————————————
数据库
Oracle
Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。能够说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各种大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。
MySql
SqlServer
均可以建立多数据库多用户,我的倾向于Oracle一个数据库中多个用户的形式,MySQL多个数据库多个用户形式(最好每一个数据库对应一个用户)
MySQL中组函数在select语句中能够随意使用,但在Oracle中若是查询语句中有组函数,那其余列名必须是组函数处理过的,或者是group by子句中的列不然报错
eg:
select name,count(money) from user;这个放在MySQL中没有问题在Oracle中就有问题了。
MySQL有自动增加的数据类型,插入记录时不用操做此字段,会自动得到数据值。Oracle没有自动增加的数据类型,须要创建一个自动增加的序列号,插入记录时要把序列号的下一个值赋于此字段。
CREATE SEQUENCE序列号的名称(最好是表名+序列号标记)INCREMENT BY 1 START WITH 1 MAXVALUE 99999 CYCLE NOCACHE;
其中最大的值按字段的长度来定,若是定义的自动增加的序列号NUMBER(6),最大值为999999
INSERT语句插入这个字段值为:序列号的名称.NEXTVAL
MySQL里能够用双引号包起字符串,Oracle里只能够用单引号包起字符串。在插入和修改字符串前必须作单引号的替换:把全部出现的一个单引号替换成两个单引号。
MySQL处理翻页的SQL语句比较简单,用LIMIT开始位置,记录个数;PHP里还能够用SEEK定位到结果集的位置。Oracle处理翻页的SQL语句就比较繁琐了。每一个结果集只有一个ROWNUM字段标明它的位置,而且只能用ROWNUM<100,不能用ROWNUM>80。
如下是通过分析后较好的两种Oracle翻页SQL语句(ID是惟一关键字的字段名):
语句一:
SELECT ID, [FIELD_NAME,...] FROM TABLE_NAME WHERE ID IN ( SELECT ID FROM (SELECT ROWNUM AS NUMROW, ID FROM TABLE_NAME WHERE 条件1 ORDER BY 条件2) WHERE NUMROW > 80 AND NUMROW < 100 ) ORDER BY 条件3;
语句二:
SELECT * FROM (( SELECT ROWNUM AS NUMROW, c.* from (SELECT [FIELD_NAME,...] FROM TABLE_NAME WHERE 条件1 ORDER BY 条件2) c) WHERE NUMROW > 80 AND NUMROW < 100 ) ORDER BY 条件3;
长字符串的处理Oracle也有它特殊的地方。INSERT和UPDATE时最大可操做的字符串长度小于等于4000个单字节,若是要插入更长的字符串,请考虑字段用CLOB类型,方法借用Oracle里自带的DBMS_LOB程序包。插入修改记录前必定要作进行非空和长度判断,不能为空的字段值和超出长度字段值都应该提出警告,返回上次操做。
MySQL日期字段分DATE和TIME两种,Oracle日期字段只有DATE,包含年月日时分秒信息,用当前数据库的系统时间为SYSDATE,精确到秒,或者用字符串转换成日期型函数TO_DATE('2001-08-01','YYYY-MM-DD')年-月-日24小时:分钟:秒的格式YYYY-MM-DD HH24:MI:SS TO_DATE()还有不少种日期格式,能够参看Oracle DOC.
日期型字段转换成字符串函数TO_CHAR('2001-08-01','YYYY-MM-DD HH24:MI:SS')
日期字段的数学运算公式有很大的不一样。MySQL找到离当前时间7天用DATE_FIELD_NAME > SUBDATE(NOW(),INTERVAL 7 DAY)Oracle找到离当前时间7天用 DATE_FIELD_NAME >SYSDATE - 7;
MySQL中插入当前时间的几个函数是:NOW()函数以`'YYYY-MM-DD HH:MM:SS'返回当前的日期时间,能够直接存到DATETIME字段中。CURDATE()以'YYYY-MM-DD'的格式返回今天的日期,能够直接存到DATE字段中。CURTIME()以'HH:MM:SS'的格式返回当前的时间,能够直接存到TIME字段中。例:insert into tablename (fieldname) values (now())
而Oracle中当前时间是sysdate
MySQL的非空字段也有空的内容,Oracle里定义了非空字段就不允许有空的内容。按MySQL的NOT NULL来定义Oracle表结构,导数据的时候会产生错误。所以导数据时要对空字符进行判断,若是为NULL或空字符,须要把它改为一个空格的字符串。
MySQL里用字段名like%'字符串%',Oracle里也能够用字段名like%'字符串%'但这种方法不能使用索引,速度不快,用字符串比较函数instr(字段名,'字符串')>0会获得更精确的查找结果。
程序和函数里,操做数据库的工做完成后请注意结果集和指针的释放。
MySQL通常使用自动增加类型,在建立表时只要指定表的主键为auto increment,插入记录时,不须要再指定该记录的主键值,MySQL将自动增加;Oracle没有自动增加类型,主键通常使用的序列,插入记录时将序列号的下一个值付给该字段便可;只是ORM框架是只要是native主键生成策略便可。
————————————————
开发工具
IntelliJ IDEA
IDEA 全称 IntelliJ IDEA,是java编程语言开发的集成环境。IntelliJ在业界被公认为最好的java开发工具之一,尤为在智能代码助手、代码自动提示、重构、J2EE支持、各种版本工具(git、svn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能能够说是超常的。IDEA是JetBrains公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。它的旗舰版本还支持HTML,CSS,PHP,MySQL,Python等。免费版只支持Python等少数语言。
Eclipse
Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其自己而言,它只是一个框架和一组服务,用于经过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。
MyEclipse,是在eclipse 基础上加上本身的插件开发而成的功能强大的企业级集成开发环境,主要用于Java、Java EE以及移动应用的开发。MyEclipse的功能很是强大,支持也十分普遍,尤为是对各类开源产品的支持至关不错。
Netbeans
NetBeans是Sun公司(2009年被甲骨文收购)在2000年创立的开放源代码供开发人员和客户社区的家园,旨在构建世界级的Java IDE。NetBeans当前能够在Solaris、Windows、Linux和Macintosh OS X平台上进行开发,并在SPL(Sun公用许可)范围内使用。
1)代码格式化:
IntelliJ IDE,Eclipse IDE以及Java NetBeans IDE在代码格式化方面相似。这些技术可以格式化整个源文件、被选中的部分源文件以及用户特定的代码。
2)查找和替换:
全部这三种IDE都支持带大小写匹配和正则表达式等选项的查找和替换功能。
Eclipse包含了一个为实现查找和替换的通用对话框,这个对话框覆盖着编辑器的窗口。
IntelliJ具备一个实现替换的特殊对话框窗口和一个实现查找的快速自动弹起顶条。IntelliJ的设计很巧妙。
NetBeans 使用了类似的方式,但它的自动弹出窗口是在编辑器窗口的底部。
3)代码补全:
这三种IDE中都有类似的代码补全功能,同时它们的设计也是相同的。IntelliJ具备一个被称为“驼峰(Camel Hump)”的特性,其功能是在单词列表中查找合适的文本。
4)用户提示:
Eclipse:一个像灯泡同样的图标会出如今左边条上,左边条带有某行所对应的行号。当光标停留在这个灯泡图标上时,具备提示做用的解释文本就会弹出,同时一整列的解决方案随即就显示出来了。
IntelliJ:使用IntelliJ的用户须要在解决方安列的提示文本上手动点击来得到用户提示。
NetBeans:使用NetBeans时,用户须要在提供可能的解决方案提示文档上以滚动滑条的方法获得用户提示。
宏
NetBeans:Netbeans支持宏编辑和帮助。用户能够移动、重命名、编辑和设置快捷方式。幸运的是,每隔两个位置用户就能够为宏编辑快捷方式,但用户在没有设置快捷方式的状况下是不可以运行宏的。
InelliJ:在使用IntelliJ时,用户能够对宏进行记录、编辑和重命名。用户不能设置宏的快捷方式。一旦用户设置了宏名,那么宏就会被自动添加。
Eclipse:Eclipse IDE不支持宏特性。
5)语法高亮
全部这三种IDE都支持语法高亮。它们都容许用户改变预约义颜色。
6)代码导航
导航器的一些特性以下:
◆结构视图
◆过滤器
◆快速查找
◆弹出导航器
NetBeans IDE,Intellij和Eclipse支持结构视图、过滤器和快速查找。而NetBeans IDE和IntelliJ不支持弹出导航器特性,但Eclipse支持这项特性。
7)任务管理:
任务管理一些特定的子部分以下:
◆活动(active)源文件中的任务列表
◆项目中德任务列表
◆过滤
◆新任务定义
Eclipse:它具备经典的任务视图。它容许用户根据诸如描述、资源、路径、地点和优先级等可得到的域对任务进行分类。它支持工程中的任务列表,过滤以及新任务定义。
NetBeans IDE:-NetBeans IDE具备和Eclipse相同的任务管理方式。可是它不支持任务优先级。NetBeans IDE在不一样的窗口中能够显示错误。
IntelliJ IDE:它具备一个任务树状视图,任务树的叶子是任务,节点是文件。从一个任务移动到另外一个任务是个困难而复杂的过程。它的设置中有一个默认的TODO命令。
8)重构
重构的特定子部分以下:
◆Find用法
◆重命名
◆移动
◆安全删除
Eclipse IDE:Eclipse IDE支持find用法、重命名和移动特性。当一个用户打算改变或者重命名一个方法时,标示符将会被设置成高亮,用户继而能够改变相应的方法名。
IntelliJ: IntelliJ支持Find用法、重命名、安全删除和移动特性,在用户新命名、重构、预览和删除按纽以前,一个单视图会呈如今用户眼前。
NetBeans IDE:NetBeans支持全部四项功能(find用法,重命名,移动以及安全删除)。Netbeans的预览设计同Eclipse相似。但它的预览窗口是在屏幕下方显示,程序员浏览起来不大方便。
9)自动代码生成:
自动代码生成有两个字部分,它们是
◆构造器
◆设置器/得到器(Getters)
NetBeans IDE:NetBeans IDE支持函数构造器和设置器。
IntelliJ IDE:支持函数构造器和设置器。
Eclipse:Eclipse也具备相似设计,同时支持函数构造器和设置器,它还具备一些其余能力,好比设置插入点,进而能够在该点处生成代码。