语言

zephir-(1)开篇介绍

落花浮王杯 提交于 2019-12-01 23:39:35
#zephir-开篇介绍# ##前言## 先在这里感谢各位zephir开源技术提供者 笔者在学习phalcon的过程中了解到,phalcon2.x版本通过了zephir重写,第一感觉是zephir这么牛逼?笔者赶紧尝试了一下,果不其然非常简单的就能写出一个C扩展的helloword,github上面有1000+个Star,紧接着我去搜索了一系列中文资料,但是比较失望,官方也没有提供中文文档,也没有中文社区,这么好东西这么好的技术,笔者觉得不能让他埋没,今天来开个坑,第一是对于官网的文档的一个译文工作,其次是结合自己的理解进行补充,希望大家喜欢! 注:笔者水平有限,说的不正确的地方希望大家多多指正,一同交流技术 附上: 喵了个咪的博客: w-blog.cn zephir官网地址: http://zephir-lang.com/ github地址: https://github.com/phalcon/zephir ##1. zephir介绍## 那么今天的目的是什么,今天的目的不是告诉大家怎么用zephir编写PHP拓展,也不是zephir语法写那要写,中国有句老话 千里之行始于足下 我们先来简单的了解一下zephir他的特点和特性. ###1.1 简单易于开发### 相信大家和我有一样的经历,看到了yaf和phalcon在想为什么C语言的拓展框架可以这么的快

Language Descriptions(摘自 code complete)

筅森魡賤 提交于 2019-11-30 20:50:43
Language Descriptions The development histories of some languages are interesting, as are their general capabilities. Here are descriptions of the most common languages in use today. Ada Ada is a general-purpose, high-level programming language based on Pascal. It was developed under the aegis of the Department of Defense and is especially well suited to real-time and embedded systems. Ada emphasizes data abstraction and information hiding and forces you to differentiate between the public and private parts of each class and package. "Ada" was chosen as the name of the language in honor of Ada

使用程序设计语言访问数据库JDBC

喜你入骨 提交于 2019-11-30 16:01:10
1、 SQL提供了一种强大的声明性查询语言,比用通用程序设计语言简单得多。 2、 SQL没有提供通用程序设计语言的表达能力,SQL并不能表达所有查询要求。 3、 非声明性的动作都不能用SQL实现,查询和更新数据只是应用程序的部分功能,其他部分则必须用通用程序设计语言实现。 4、 动态SQL,通用程序设计语言通过函数或者方法来连接数据库并与之交互。利用动态SQL可以在运行时以字符串形式构建SQL查询或更新,提交查询,然后将结果存入程序变量。 5、 AVA语言应用程序开发标准JDBC, 另一种ODBC,最初为C语言,后来扩展到C++,C#,Visual Basic。 6、 嵌入式SQL,必须在编译时全部确定,并交给预处理器。预处理程序提交SQL语句到数据库系统进行预编译和优化,然后把应用程序中的SQL语句替换成相应的代码和函数,最后调用程序设计语言进行编译。 7、 SQL和通用程序设计语言处理数据的方式不同,SQL中数据的主要类型是关系。而通用程序设计语言,一次操作的是变量,大致相当于一个关系中一个元组的一个属性。 8、 要访问数据库,首先要打开一个数据库连接,选择需要使用哪个数据库。 9、 用来与数据库交换信息的具体协议并没有在JDBC中定义,而是由所使用的驱动程序决定的。 10、 一旦打开了一个数据库连接,程序就可以利用该连接向数据库发送SQL语句用于执行。 11、 关闭连接很重要

java Object类源代码详解 及nativ

前提是你 提交于 2019-11-28 20:23:12
Java代码 package java.lang; public class Object { /* 一个本地方法,具体是用C(C++)在DLL中实现的,然后通过JNI调用。*/ private static native void registerNatives(); /* 对象初始化时自动调用此方法*/ static { registerNatives(); } /* 返回此 Object 的运行时类。*/ public final native Class<?> getClass(); /* hashCode 的常规协定是: 1.在 Java 应用程序执行期间,在对同一对象多次调用 hashCode 方法时,必须一致地返回相同的整数,前提是将对象进行 equals 比较时所用的信息没有被修改。从某一应用程序的一次执行到同一应用程序的另一次执行,该整数无需保持一致。 2.如果根据 equals(Object) 方法,两个对象是相等的,那么对这两个对象中的每个对象调用 hashCode 方法都必须生成相同的整数结果。 3.如果根据 equals(java.lang.Object) 方法,两个对象不相等,那么对这两个对象中的任一对象上调用 hashCode 方法不 要求一定生成不同的整数结果。但是,程序员应该意识到,为不相等的对象生成不同整数结果可以提高哈希表的性能。 */

const 指针与指向const的指针

橙三吉。 提交于 2019-11-27 09:41:08
当使用带有const的指针时其实有两种意思。一种指的是你不能修改指针本身的内容,另一种指的是你不能修改指针指向的内容。听起来有点混淆一会放个例子上来就明白了。 先说指向const的指针,它的意思是指针指向的内容是不能被修改的。它有两种写法。 const int * p; (推荐) int const* p; 第一种可以理解为,p是一个指针,它指向的内容是const int 类型。p本身不用初始化它可以指向任何标示符,但它指向的内容是不能被改变的。 第二种很容易被理解成是p是一个指向 int 的const指针(指针本身不能被修改),但这样理解是错误的,它也是表示的是指向const的指针(指针指向的内容是不能被修改的),它跟第一种表达的是一个意思。为了避免混淆推荐大家用第一种。 再说const指针,它的意思是指针本身的值是不能被修改的。它只有一种写法 int * const p=一个地址; (因为指针本身的值是不能被修改的所以它必须被初始化) 这种形式可以被理解为,p是一个指针,这个指针是指向 int 的const指针。它指向的值是可以被改变的如*p=3; 还有一种情况是这个指针本身和它指向的内容都是不能被改变的,请往下看。 const int * const p=一个地址; int const* const p=一个地址; 看了上面的内容是不是有点晕,没关系,你不用去背它