一:c语言指针数组和数组指针:

数组指针(也称行指针)
定义 int (*p)[n];
()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。

如要将二维数组赋给一指针,应这样赋值:
int a[3][4];
int (*p)[4]; //该语句是定义一个数组指针,指向含4个元素的一维数组。
 p=a;        //将该二维数组的首地址赋给p,也就是a[0]或&a[0][0]
 p++;       //该语句执行过后,也就是p=p+1;p跨过行a[0][]指向了行a[1][]

所以数组指针也称指向一维数组的指针,亦称行指针。

指针数组
定义 int *p[n];
[]优先级高,先与p结合成为一个数组,再由int*说明这是一个整型指针数组,它有n个指针类型的数组元素。这里执行p+1是错误的,这样赋值也是错误的:p=a;因为p是个不可知的表示,只存在p[0]、p[1]、p[2]...p[n-1],而且它们分别是指针变量可以用来存放变量地址。但可以这样 *p=a; 这里*p表示指针数组第一个元素的值,a的首地址的值。
如要将二维数组赋给一指针数组:
int *p[3];
int a[3][4];
for(i=0;i<3;i++)
p[i]=a[i];
这里int *p[3] 表示一个一维数组内存放着三个指针变量,分别是p[0]、p[1]、p[2]
所以要分别赋值。

这样两者的区别就豁然开朗了,数组指针只是一个指针变量,似乎是C语言里专门用来指向二维数组的,它占有内存中一个指针的存储空间。指针数组是多个指针变量,以数组形式存在内存当中,占有多个指针的存储空间。
还需要说明的一点就是,同时用来指向二维数组时,其引用和用数组名引用都是一样的。
比如要表示数组中i行j列一个元素:
*(p[i]+j)、*(*(p+i)+j)、(*(p+i))[j]、p[i][j]

优先级:()>[]>*

二:各种数据库对比

mssql : 是微软的 sql server ,只能能运行在windows平台,体积比较庞大,占用许多系统资源,

但使用很方便,支持命令和图形化管理,主要结合asp语言开发;mssql是要钱的部门级数

据库

mysql : 是个开源的数据库server,可运行在多种平台,如windows,unix/linux;他的体积很小

是专为WEB 数据库设计的,特点是响应速度特别快,主要面向中小企业,对于海量数据库

就显得力不从心了,它是真正的多用户多任务的数据库系统,他占用系统资源很少但功能

很强大,可以作为大性数据库系统使用,最主要是其标准版是免费的。yahoo用的就是

mysql;主要结合php语言开发。MySQL支持基本上是依靠网络和社区

PostgreSQL:号称“世界上最先进的开源数据库“,可以运行在多种平台下,是tb级数据库,而且性能

也很好

oracle  : 1.能在所有主流平台上运行(包括 windows)。完全支持所有的工业标准。采用完全开放策

略。可以使客户选择最适合的解决方案。对开发商全力支持。

2.获得最高认证级别的ISO标准安全认证

3.性能最高, 保持开放平台下的TPC-D和TPC-C的世界记录。

4.多层次网络计算,支持多种工业标准,可以用ODBC,JDBC,OCI等网络客户连接

5.较复杂,同时提供GUI和命令行,在windowsNT和unix下操作相同

6.长时间的开发经验,完全向下兼容。得到广泛的应用。完全没有风险

db2 : 1. 能在所有主流平台上运行(包括windows)。最适于海量数据。DB2在企业级的应用最为广泛,

在全球的500家最大的企业中,几乎85%以上用DB2数据库服务器,而国内到97年约占5%。

2. 具有很好的并行性。DB2把数据库管理扩充到了并行的、多节点的环境。数据库分区是数据库的一

部分,包含自己的数据、索引、配置文件、和事务日志。数据库分区有时被称为节点或数据库节点

3. 性能最高, 保持开放平台下的TPC-D和TPC-C的世界记录。

4. 性能较高适用于数据仓库和在线事物处理。

5. 跨平台,多层结构,支持ODBC,JDBC等客户

6. 操作简单,同时提供GUI和命令行,在windowsNT和unix下操作相同

7. 在巨型企业得到广泛的应用,向下兼容性好。风险小

Access是一种桌面数据库,只适合数据量少的应用,在处理少量 数据和单机访问的数据库时是很好的,效率也很高。但是它的同时访问客户端不能多于4个。Microsoft Access数据库有一定的极限,如果数据达到100M左右,很容易造成服务器iis假死,或者消耗掉服务器的内存导致服务器崩溃,表现为英文 “Service Unavailable”。

MS SQL Server是基于服务器端的中型的数据库,可以适合大容量数据的应用,在功能上管理上也要比Microsoft Access要强得多。在处理海量数据的效率,后台开发的灵活性,可扩展性等方面强大。因为现在数据库都使用标准的SQL语言对数据库进行管理,所以如果 是标准SQL语言,两者基本上都可以通用的。Microsoft SQL Server还有更多的扩展,可以用存储过程,数据库大小无极限限制。

    MySql短小精悍,象access一样的文件型数据库,但比access强百倍,是真正多用户多任务的数据库系统,从Linux上移植过来的,安全性非 常好,不过大部分操作是在dos下进行,虽然也有第三方开发的图形界面但并不好用。MySQL是跨多平台的数据库管理软件,可运行于LINUX、NT、 UNIX等系统,可支持命令和图形化管理,对于一般的数据库足以应付了,占用系统资源较少,速度较快,而且是开源的。

    Oracle各方面都比较成熟,但对硬件要求高,用于数据完整性、安全性要求较高的场合,能在所有主流平台上运行,完全支持所有的工业标准,采用完全开放 策略。可以使客户选择最适合的解决方案,对开发商全力支持。平行服务器通过使一组结点共享同一簇中的工作来扩展服务器的能力,提供高可用性和高伸缩性的簇 的解决方案,获得最高认证级别的iso标准认证,多层次网络计算,支持多种工业标准,可以用odbc,jdbc,oci等网络客户连接,较复杂,同时提供 gui和命令行,在windows和unix下操作相同,如果windows不能满足需要,用户可以把数据库移到unix中。其操作和设置比较复杂,适用 于有一定操作经验的用户。

SQL Server数据库的特征及其与Access数据库的区别

三:final、static使用

http://iinnff.com/fR/brs/Part2/QID147/Page96207.aspx

四:字符串翻转

http://blog.csdn.net/yangfeitarena/archive/2009/04/12/4066485.aspx

五:死锁

http://baike.baidu.com/view/121723.htm

六:TCP与UDP的区别以及三次握手协议

http://baike.baidu.com/view/32754.htm

 1,TCP协议面向连接,UDP协议面向非连接

  2,TCP协议传输速度慢,UDP协议传输速度快   3,TCP协议保证数据顺序,UDP协议不保证   4,TCP协议保证数据正确性,UDP协议可能丢包   5,TCP协议对系统资源要求多,UDP协议要求少

tcp的三次握手协议

http://baike.baidu.com/view/2494361.htm

七:sql语句,count的用法

http://www.w3school.com.cn/sql/sql_func_count.asp

八:设计模式:单实例模式,工厂模式,观察者模式

DP书籍

九:多线程编程:

http://lavasoft.blog.51cto.com/62575/27069/

十:session工作原理

http://www.cnblogs.com/kucongzhi/archive/2010/07/13/1776728.html

十一:基本类型与包装类型

基本数据类型包括byte、int、char、long、float、double、boolean和short。
引用数据类型包括:类,数组,接口

基本数据类型和引用类型的区别主要在于基本数据类型是分配在栈上的,而引用类型是分配在堆上的。

由此,我们分析一下”==“和equals()的区别。

http://blog.csdn.net/xeon_pan/archive/2008/05/07/2408501.aspx

**由此分析一下栈与堆的区别:

对象放在堆里,它的引用则是在栈里,基本类型都放在栈里,最简单的区别,栈快堆慢

stack 空间小,速度比较快, 用来放对象的引用
heep 大,一般所有创建的对象都放在这里。
栈有一个很重要的特殊性,就是存在栈中的数据可以共享
int a = 3;
int b = 3; 

编译器先处理int a = 3;首先它会在栈中创建一个变量为a的引用,然后查找有没有字面值为3的地址,没找到,就开辟一个存放3这个字面值的地址,然后将a指向3的地址。接着处理int b = 3;在创建完b的引用变量后,由于在栈中已经有3这个字面值,便将b直接指向3的地址。这样,就出现了a与b同时均指向3的情况。

http://blogold.chinaunix.net/u/16991/showart_131229.html 十二:collection和collections http://developer.51cto.com/art/200909/149543.htm 十三:

Connection,Statement,PreparedStatement,CallableStatement

http://blog.csdn.net/oswin_jiang/archive/2008/11/11/3274742.aspx

十四:java的常见异常

http://wenku.baidu.com/view/db232ce79b89680203d825bf.html

十五:switch语句的条件限制

http://lgf2006.spaces.live.com/blog/cns!B95B1CF24CB4D627!1636.entry

switch语句判断条件可以接受int、byte、char、short四种类型,不可以接受其他类型。

十六:java内部类

内部类是可以定义在另外一个类里面的类,内部类也成为嵌套类,内部类被定义在另一个类或一个语句甚至一个表达式中。在内部类中是不允许声明任何static成员的,只有顶层类可以声明,如果要在内部类中使用static成员,必须引用在顶层类中声明好的成员。

外部类可以调用静态内部类中静态成员和非静态成员,而静态内部类只能访问外部类的静态成员。

注:内部类不能与外部类同名

内部类的特征如下:

1:内部类可以被定义在方法中,他可以防卫外部类的final变量

2:内部类可以被定义为abstract抽象类

3:内部类可以被声明为private或protected

4:内部类可以作为一个借口,由另一个内部类来实现

5:内部类不能声明任何static成员

十七:遍历map最快的方法

http://www.shiningboys.cn/271.html

HashMap的遍历有两种常用的方法,那就是使用keyset及entryset来进行遍历,但两者的遍历 速度是有差别的。
第一种:

Map map = new HashMap();

Iterator iter = map.entrySet().iterator();

while (iter.hasNext()) {

Map.Entry entry = (Map.Entry) iter.next(); Object key = entry.getKey();

Object val = entry.getValue();

}

效率高,以后一定要使用此种方式!

第二种:

Map map = new HashMap();

Iterator iter = map.keySet().iterator();

while (iter.hasNext()) {

Object key = iter.next();

Object val = map.get(key);

}

效率低,以后尽量少使用!

HashMap的遍历有两种常用的方法,那就是使用keyset及entryset来进行遍历,但两者的遍历速度是有差别的,下面请看实例:

public class HashMapTest {

public static void main(String[] args) …{

HashMap hashmap = new HashMap();

for (int i = 0; i <1000; i ) …{

hashmap.put(“” i, “thanks”);

}

long bs = Calendar.getInstance().getTimeInMillis();

Iterator iterator = hashmap.keySet().iterator();

while (iterator.hasNext()) …{

System.out.print(hashmap.get(iterator.next()));

}

System.out.println();

System.out.println(Calendar.getInstance().getTimeInMillis() – bs);

listHashMap();

}

public static void listHashMap() …{

java.util.HashMap hashmap = new java.util.HashMap();

for (int i = 0; i <1000; i ) …{

hashmap.put(“” i, “thanks”);

}

long bs = Calendar.getInstance().getTimeInMillis();

java.util.Iterator it = hashmap.entrySet().iterator();

while (it.hasNext()) …{

java.util.Map.Entry entry = (java.util.Map.Entry) it.next();

// entry.getKey() 返回与此项对应的键

// entry.getValue() 返回与此项对应的值

System.out.print(entry.getValue());

}

System.out.println();

System.out.println(Calendar.getInstance().getTimeInMillis() – bs);

}

}

对于keySet其实是遍历了2次,一次是转为iterator,一次就从hashmap中取出key所对于的value。而entryset 只是遍历了第一次,他把key和value都放到了entry中,所以就快了。

注:Hashtable的遍历方法和以上的差不多!

转载于:https://blog.51cto.com/1311321/583761

some tips from baidu相关推荐

  1. 15条最重要且最基本的SEO优化Tips和技巧

    无论是个人博客或网店还是企业网站,要想获得更好的网站流量SEO(Search engine optimization)是非常重要的一个网站建设工程.SEO优化其实没有什么秘密,要的只是合理利用技巧.并 ...

  2. layui的css文件自己写的吗_安装教程和自己的使用tips

    我的知乎回答:研究生们刚开始看英文文献是怎么看的? 本人目前研二,研一的时候情况和题主 差不多,英- https://www.zhihu.com/question/345516318/answer/8 ...

  3. 无限踩坑系列(7)-Latex使用Tips

    Latex常用命令 1.latex注释 2.图片左边对齐 3.字母头上加声调 4.脚注 5.公式中加空格 6.字体加粗体 7.公式换行 8.\textsuperscript{*} 9.\begin{i ...

  4. 【转载】外设使用Tips之MPC574xP系列汽车级MCU的SWT看门狗定时器配置与使用

    外设使用Tips之MPC574xP系列汽车级MCU的SWT看门狗定时器配置与使用 原创 2017-09-13 胡恩伟 汽车电子expert成长之路 内容提要 引言 1. SWT的功能概述 2. SWT ...

  5. 【转载】CodeWarrior IDE使用tips之prm链接文件详解(自定义存储器分区以及自定义RAM数据初始化与在RAM中运行函数)...

    CodeWarrior IDE使用tips之prm链接文件详解(自定义存储器分区以及自定义RAM数据初始化与在RAM中运行函数) 2017-08-19 胡恩伟 汽车电子expert成长之路 内容提要 ...

  6. 技术人总有想写文章的冲动却无疾而终?4个小Tips帮你快速上手~

    每每与身边的开发小伙伴聊到"写作"这一话题,大家纷纷表示真·从小头疼到大. 学生时代每周一篇习作好不容易熬出头,谁能想到工作后居然还有写文章的 KPI 指标. 有时心血来潮想写点东 ...

  7. 【百度美化 Stylus】百度搜索 卡片美化高斯模糊 Baidu CSS Stylus Stylish

    1.简单介绍         百度美化TAB版 ( 精简美化.卡片模糊.十余种风格一键更换 ) ​​​​​​​        建议使用设置中氢气系列壁纸,纯色不花眼 利用浏览器插件Stylus,对百度 ...

  8. Android Tips

    Util工具类: http://www.jianshu.com/p/72494773aace http://hjxandhmr.github.io/2016/04/19/Android-Utils/ ...

  9. Windows补丁更新Tips

    Windows补丁更新Tips 1.Windows 2012 R2 MS14-066补丁安装失败 现象:下载对应版本的补丁,提示"此更新不适用于你的计算机" 解决:使用命令行可成功 ...

最新文章

  1. n2n linux,n2n安装
  2. python中停车收费问题_使用CKRule实现停车场收费计算
  3. 知乎:中国工商银行南宁分行丢失2.5亿,工作人员个人行为,与银行无关
  4. centos7下php设置用户和组,centos系统添加/删除用户和用户组的例子
  5. 【教女朋友学网络系列5】之VLAN与Trunk、单臂路由
  6. Day11多态部分-6 【1.4 多态的应用以及注意事项】
  7. iOS----------The app's Info.plist must contain an NSPhotoLibraryUsageDescription key
  8. 固态硬盘SSD与机械硬盘HDD
  9. spring和jump区别_JUMP与 SKIP 的区别
  10. Ubuntu16环境安装和使用NFS
  11. A Unified Multi-scale Deep Convolutional_Neural Network for Fast Object Detection 论文笔记
  12. 计算机无线网怎么安装教程,全民wifi驱动怎么安装_电脑安装全民wifi驱动教程
  13. 「游戏引擎 浅入浅出」项目介绍
  14. 使命召唤19发布时间曝光 确定将于10月28号发布
  15. aria服务器没有响应,aria2服务器错误
  16. 语法数学一点不会?可以学编程吗QAQ
  17. 毕设分享:基于STM32两轮自平衡小车 含源码、原理图及PCB文件
  18. 虚拟机设置静态ip(固定ip地址)
  19. unity3D海底珊瑚礁、珊瑚岛场景和海底植物岩石素材素材包
  20. 内存颗粒CL和CAS

热门文章

  1. pycharm 汉化
  2. Python开发工程师必知十大机器学习库
  3. Ext.Ajax.request和formPanel.getForm().submit()两种提交方法的异同:
  4. 编译与部署dubbo管控平台dubbo-admin
  5. 郑晔:代码之丑 无状态方法
  6. NSArray,NSSet,NSDictionary总结 (转)
  7. 创建和应用Java包文件的两种方式
  8. 【Git报错】 ! [rejected] master - master (fetch first)
  9. Qt 第二章 创建对话框--纯代码实现改变形状的对话框(二)
  10. 《拥抱变化——社交网络时代的企业转型之道》一构筑社会信任