02 2017 档案
摘要:p124~p126: 算数运算符 1、形如+ -(一元) * / % + -(二元)为算数运算符。 2、所有算数运算符都满足左结合律。 3、算数运算符的运算对象和求值结果都是右值。 4、在表达式求值之前,所有运算对象最终会转换成同一类型。 5、整数相除的结果还是整数,如果商含有小数部分直接舍去,没有
阅读全文
摘要:p37 1、java ant详解 练习8 练习9 不用写全部吧。。。 练习10 测试示例: 练习11
阅读全文
摘要:内容来自廖雪峰的官方网站。 1、把list、dict、str等Iterable变成Iterator可以使用iter()函数 2、Iterator的计算是惰性的,只有在需要返回下一个数据时它才会计算。 Iterator甚至可以表示一个无限大的数据流,例如全体自然数。而使用list是永远不可能存储全体自
阅读全文
摘要:内容来自廖雪峰的官方网站。 1、可迭代对象(Iterable):可以直接作用于for循环的对象。 2、集合数据类型:如list、tuple、dict、set、str等。 3、generator:包括生成器和带yield的 generator function。 4、集合数据类型和 generator
阅读全文
摘要:p120~p124: 表达式 1、表达式由一个或者多个运算对象组成。 2、最简单的表达式是字面值和变量。 3、一元运算符作用于一个运算对象,二元则作用于两个。一个运算符到底是几元由上下文决定。 4、重载运算符。仅改变运算对象和返回值的类型,运算对象的个数,运算符的优先级、结合律无法被改变。 5、左值
阅读全文
摘要:p37: 练习1 练习2 练习3 练习4、练习5 练习6 练习7
阅读全文
摘要:p273~p276: 1、获取异常的更多信息:e.getMessage()。 2、得到异常的实际类型:e.getClass().getName()。 3、当异常之间不存在子类关系,并且异常的处理机制(handler code)是相同时,可以用一个 catch子句捕获这些异常,这样会更高效。例如:ca
阅读全文
摘要:内容来自廖雪峰的官方网站。 1、杨辉三角generator: 在python中L[-1]表示的是倒数第一个元素。
阅读全文
摘要:p115~p118: 1、区分int *p[4];和int (*p)[4];。前者是整型指针的数组,后者是指向含有4个整数的数组。 2、规避上述问题的方法就是:使用 auto和 decltype。 3、对于a[3][4],有p = &a[0];(相当于p = a;)则 *p 为a[0]。(解引用后仍
阅读全文
摘要:内容来自廖雪峰的官方网站。 1、python的赋值语句:a, b, c = x, y, z 相当于 a = x, b = y, c = z。(事实上等式右边是一个tuple) 2、获得genarator的第二种方式。 示例一: 示例二: generator在执行过程中,遇到yield就中断,下次又继
阅读全文
摘要:p111~p114: 与旧代码的接口 1、C++程序中的C风格字符串:任何出现字符串字面值的地方都可以以空字符结束的字符数组来替代。 2、如果程序的某处需要一个C风格字符串:利用 s.c_str()返回。 示例: 输出结果: 3、使用数组初始化 vector对象。 (用于初始化 vector对象的值
阅读全文
摘要:p109~p110: C风格字符串 特点: 1、不方便,不安全,尽量不使用。 2、必须以 '\0'结束。(只有这样才能使用C风格字符串函数) 3、一般利用指针操作这些字符。 4、可以用字符串字面值来初始化字符数组。 练习 3.37 这道题输出有点奇怪。。。 输出结果: 练习 3.38 搬运。 练习
阅读全文
摘要:内容来自廖雪峰的官方网站。 generator 1、引入generator的原因。 通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白
阅读全文
摘要:p272~p273 1、除捕获异常外的另一种异常处理方式:将异常继续传递给方法调用者。 即:在方法首部添加throws说明符号,取代 try catch语句。 对于方法的调用者而言:要么处理异常,要么继续传递。(这里由编译器检查) 2、通常继续传递异常比强行处理异常要好。 3、不允许在子类的 thr
阅读全文
摘要:p32~p36: 学习javadoc 1、第一步,打开一个一定规模的java项目 2、第二步,搭建测试环境 IntelliJ IDEA ——> Tools ——> Generate JavaDoc... ——> -encoding UTF-8 -charset UTF-8 3、第三步,参照corej
阅读全文
摘要:内容来自廖雪峰的官方网站。 List Comprehensions 1 2 3 4 5 运用列表生成式,可以写出非常简洁的代码。 应用举例 1、列出当前目录下的所有文件: 2、将dict转化为list: 3、把一个list中所有的字符串变成小写: 4、如果list中既包含字符串,又包含整数:
阅读全文
摘要:p105~p108: 1、迭代器与数组的不同:迭代器的索引值必须是无符号类型,数组的索引无此要求。 2、使用数组的时候编译器一般会把它转化为指针。 3、auto ia2(数组名);的结果是:获得一个指向ia的第一个元素的指针。 4、decltype(数组名) ia3;的结果是:获得一个数组。 5、指
阅读全文
摘要:p270~p272 1、创建异常类。 步骤:1)定义一个派生于(继承)Exception或者其子类的类。 2)添加两个构造方法:一个是默认构造器,另一个是带有详细描述信息的构造器。 补充:继承中的构造方法(不写默认的有个隐式的构造方法) 2、捕获异常。 要想捕获一个异常,必须设置try/catch语
阅读全文
摘要:p29~p31: static关键字 1、static在作用于某个字段(也叫:类的数据成员、实例域)的时候,必然会改变数据的创建方式(创建的时机、位置)。 Java程序 1、Sun公司提供的文档 2、java.lang:被自动导入到每一个Java文件 3、System.out:System类中的一个
阅读全文
摘要:内容来自廖雪峰的官方网站 1、如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration)。 2、只要是可迭代对象,无论有无下标,都可以迭代。例如:dict、字符串 3、那么,如何判断一个对象是可迭代对象呢?方法是通过collec
阅读全文
摘要:p101~p104: 1、数组中的元素个数也属于数组类型的一部分。 2、编译的时候数组的维度应该是已知的,也就是说维度必须是 const expression 3、const expression 是指值不会改变并且在编译过程就能得到计算结果的表达式。 4、不存在引用的数组,但是存在数组的引用。 5
阅读全文
摘要:内容来自廖雪峰的官方网站 1、在Python中,代码不是越多越好,而是越少越好。代码不是越复杂越好,而是越简单越好,1行代码能实现的功能,决不写5行代码。请始终牢记,代码越少,开发效率越高。 2、取指定索引范围的操作,用循环十分繁琐,因此,Python提供了切片(Slice)操作符,能大大简化这种操
阅读全文
摘要:p99~p101: 1、迭代器的指向:容器内的元素或者尾元素的下一位。 2、迭代器与整数相加减返回值为移动了若干位置的迭代器。 3、迭代器间相加减返回值则是类型为 difference_type 的带符号整数。 4、使用迭代器运算的一个经典算法是二分搜索。 (注:字典序实际是按照ASCII来排的,具
阅读全文
摘要:p24~p29: 1、基本类型的作用域由花括号的位置所决定, 需要注意的是:在C和C++里屏蔽外部变量的做法,在Java里是不允许的。 2、对象的作用域:引用的作用域和基本类型的相同。而对象却可以存活于作用域之外, 只要你需要,就会一直保留下去。 3、Java垃圾回收器:这一机制保证了程序不会发生“
阅读全文
摘要:p267~p270: 1、一个方法不仅需要告诉编译器将要返回什么值, 还要告诉编译器有可能发生什么错误(以便在错误发生时用妥善的方式处理错误)。 2、方法应该在首部声明所有可能抛出的异常。 3、方法抛出异常对象后:运行时开始搜索异常处理器,以便知道如何处理异常对象。 4、一个方法必须声明所有可能抛出
阅读全文
摘要:内容来自廖雪峰的官方网站 1、递归函数的优点是定义简单,逻辑清晰。 2、使用递归函数需要注意防止栈溢出。 3、在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。 4、由于栈的大小不是无限的,所以,递归调用的次数过多,
阅读全文
摘要:《c++ primer, 5E》 第94页到第99页,笔记: 1、迭代器(iterator):一种比下标访问更通用的访问容器中元素的机制。 (并不是所有标准库容器都支持下标访问,<运算符) 我们认定某个类型是迭代器,当且仅当它支持一套操作, 这套操作使得我们能访问容器的元素或者从某个元素移动到另外一
阅读全文
摘要:p264~p267: 1、程序中可能出现错误:用户输入错误、设备错误、物理限制错误、代码错误 2、如果由于出现错误而使得某些操作没有完成,程序应该:返回一种安全状态,并能够让用户执行一些其他命令; 或者允许用户保存所有的操作结果,并以妥善方式终止程序。 3、异常处理的任务:将控制权从错误产生的地方转
阅读全文
摘要:内容来自廖雪峰的官方网站 1、关键字参数有什么用?它可以扩展函数的功能。 2、参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数。 3、对于任意函数,都可以通过类似func(*args, **kw)的形式调用它,无论它的参数是如何定义的。 4、默认参数一定要用不可变对象。
阅读全文
摘要:p21~p24: 1、操控对象的方法:引用 2、对象与引用的关系 3、通常,必须对对象采用一种更通用的初始化方法。 (用String s = new String("asdf");取代String s = "asdf";?) 4、创建对象的方法:new操作符 5、程序运行时内存的分配。 6、对象存储
阅读全文
摘要:《c++ primer, 5E》 第91页到第94页,笔记: 1、vector支持的操作。 v.empty()、v.size()、v.push_back(t)、v[n] 2、试图通过下标访问不存在vector元素不会被编译器发现, 而是在运行时产生不可预知的值。 3、确保下标合法的有效手段:尽可能使
阅读全文
摘要:内容来自廖雪峰的官方网站 1、关键字参数 关键字参数有什么用?它可以扩展函数的功能。比如,在person函数里,我们保证能接收到name和age这两个参数,但是,如果调用者愿意提供更多的参数,我们也能收到。试想你正在做一个用户注册的功能,除了用户名和年龄是必填项外,其他都是可选项,利用关键字参数来定
阅读全文
摘要:1、内部类: 有什么用? 1、可以访问该类定义所在作用域中的数据,包括私有数据。 2、当想定义一个回调函数而不想编写大量代码时,使用匿名内部类比较便捷。 3、内部类可以对同一个包中的其他类隐藏起来。 什么时候用? 1、想省代码 2、想访问本类数据 3、想隐藏数据(要写的类,仅被一个类使用一次) 简单
阅读全文
摘要:《c++ primer, 5E》 第86页到第91页,笔记: 标准库类型vector: 1、定义和初始化vector对象(最常见的方式就是先定义一个空vector) 列表初始化:vector<string> v1{"a", "an", "the"}; 2、创建指定数量的元素:vector<int>
阅读全文
摘要:《c++ primer, 5E》 第81页到第86页,笔记: 处理string对象中的字符: 1、cctype 2、foreach(range for) 3、decltype(Declared Type) 4、auto 5、string::size_type(s.size函数的返回值类型) 6、使用
阅读全文
摘要:内容来自廖雪峰的官方网站 1、dict 为什么dict查找速度这么快?因为dict的实现原理和查字典是一样的。假设字典包含了1万个汉字,我们要查某一个字,一个办法是把字典从第一页往后翻,直到找到我们想要的字为止,这种方法就是在list中查找元素的方法,list越大,查找越慢。 第二种方法是先在字典的
阅读全文
摘要:1、import python中的import语句是用来导入模块的。 在python的模块库中有大量的模块可供使用,要想使用这些文件需要用import语句把指定模块导入到当前程序中, 使用方法例如: 一般规则: python from import语句也是导入模块的一种方法,更确切的说是导入指定的模
阅读全文
摘要:《c++ primer, 5E》 第68页到第81页,笔记: 1、读取未知量的string对象示例 2、使用getline读取一行示例 3、string_A.empty()、string_A.size() 4、string_A.size()返回值是一个无符号的整数,不要在表达式中与有符号的int型混
阅读全文
摘要:《c++ primer, 5E》 第64页到第68页,笔记: 1、利用花括号初始化data member。 2、预处理器是在编译之前执行的一段程序 3、类似SALES_DATA_H通常称为【预处理变量】,有两种状态:已经定义 和 未定义。 防止重复包含的实例代码 遇到的问题: 课后练习: 练习2.3
阅读全文
摘要:1、git remote add 添加远程仓库 在github上新建一个仓库, 然后用 git remote add 命令将其设置为【本地仓库的远程仓库】 2、git push 推送至远程仓库 添加参数是为了方便之后的pull 3、git clone 获取远程仓库 新建一个本地仓库。 4、git p
阅读全文
摘要:1、git reset --hard + hash值 2、git reflog 查看当前仓库的操作日志 3、git commit --amend 修改提交信息(上一条) 4、git rebase -i 压缩历史 5、git commit -am "xxx" 完成两步操作
阅读全文
摘要:1、git branch——显示分支一览表 2、git checkout -b——创建、切换分支 往feature-A中不断add、commit叫培育分支 git checkout - 切回上一个分支。 通常master分支充当可以随时发布的稳定分支(主干分支), 而其余分支作为特性分支, 比如出现
阅读全文
摘要:1、git init——初始化仓库 初始化成功的标志如下(.git默认为隐藏) 2、git status——查看仓库状态 ps:未跟踪的文件 (untracked files) 不妨在尝试在仓库建立一个readme.md,然后再次git status,结果 3、git add——向暂存区中添加文件
阅读全文
摘要:命令大全:http://www.cnblogs.com/zhangzhu/archive/2013/07/04/3172486.html
阅读全文
摘要:拓展: show warnings; show create database t1; // 显示创建t1时的信息
阅读全文
摘要:《c++ primer, 5E》 第58页到第64页,笔记: 1、运行时才能获得具体值的常量不属于常量表达式(constexpr)。 2、如果认定变量是一个常量表达式,那就把它声明成constexpr。 3、定义于所以函数体之外的对象其地址固定不变。 4、在typedef char *pstring
阅读全文
摘要:创建账户 创建账号成功后将得到一个个人的公开页面URL:https://github.com/xkfx。 设置头像 设置SSH Key SSH 为 Secure Shell 的缩写。 from baidu: 从客户端来看,SSH提供两种级别的安全验证。 第一种级别(基于口令的安全验证) 只要你知道自
阅读全文
摘要:设置姓名与邮箱地址 这里的姓名和邮箱地址会用在git的提交日志之中,在github上公开git仓库时会随着提交日志一起公开。 有两种方式, 第一种,在git bash下设置 第二种, 通过直接编辑.gitconfig 设置(该文件一般在c盘用户文件夹下, 打开文件夹ctrl+f搜索即可)
阅读全文
摘要:什么是版本管理? git是一款【分散型版本管理】软件,提供了开发过程中不可少的功能,例如记录一款软件添加或者更改源代码的过程,回溯到特定阶段,恢复误删除的文件等。 集中型:将仓库集中放在服务器中,一旦所处环境无法连接服务器,就无法获取最新的源代码。 分散型:github将仓库fork给了每个用户。事
阅读全文
摘要:为什么需要社会化编程? 如果您是程序员面试官,两者之间你会选择哪一位呢? 能查看以前所写代码的程序员 or 无法查看的程序员 精通最新软件的程序员 or 不精通的程序员 对语言或软件差异带来的不同文化有所理解的程序员 or 不理解的程序员
阅读全文
摘要:1、github: 一项为开发者提供git仓库的托管服务, 开发者间共享代码的场所。github上公开的软件源代码全都由git进行管理。 2、git: 开发者将源代码存入名为git仓库的资料库中,而github则是在网络上提供git仓库的一项服务,言下之意就是Git仓库放在Github这个个网站上托
阅读全文
摘要:《c++ primer, 5E》第53页到第58页,笔记: 1、非常量引用一定不能绑定const对象。例 const int ci = 1024; const int &r1 = ci; 2、常量引用不一定要绑定const对象。例 int i = 42; const int &r1 = i; 常量引
阅读全文