Java-CPP-Pattern
Java-CPP-Pattern
Java
Pattern
classPattern.compile(exp, tags)
构造.split(input, +/-0)
.matcher()
return Matcher
Matcher
class.matches()
全字符串匹配.lookingAt()
无时间效应 =>reset(new Input String)
.find(fromIndex = 0)
有时间效应,.regin([, ))
- 当
.lookingAt()
或.find()
之后, 可使用.start(index = 0)
.end(index = 0)
.group(index = 0)
.repalceAll()
和repalceFirst()
.appendReplacement()
=> before find().appendTail()
=> after find()
Java-IO
System.out 是
PrintStream
简单修饰FilterOutputStream
(好用API) 或者是实现了FilterOutputStream
接口 System.in 是InputStream
接口下的FileInputStream
- 二进制流, 使用
byte[]
- InputStream => File/Filter/ByteArray/PushbackInputStream => DataInputStream
- BfuferedInputStream 修饰缓冲
read()
- 字符集参数
- BfuferedInputStream 修饰缓冲
- OutputStream => File/Filter/ByteArrayOutputStream => DataOutputStream, PrintStream
- BufferedOutputStream 修饰缓冲
write()
autoflush flag
,append flag
- 字符集参数
- BufferedOutputStream 修饰缓冲
- InputStream => File/Filter/ByteArray/PushbackInputStream => DataInputStream
- By
fileName
Java-CPP-Polymorphism
- 关于
virtual
开关 - 关于访问权限
- 关于
super.*
与Base::*
在CPP
与Java
中的特点和用途
CPP-Exception-Advanced
CPP-Exception-Advanced
已知 异常类/异常对象, CPP-runtime/编译器会维护一个副本copy 进入catch-handler时, 在try子句中, 编译器管理已构造局部对象(非指针), 进行析构 具体同如下DO
CPP-template-advanced-continuation
CPP-template-advanced-continuation
- T(args…) 构造 => 匿名对象是(非const)右值, 类似函数对象返回 => 难以体现右值性(与对象相关的右值)
- 什么是右值 => 任何
exp(除了[], *解引用)
值(operator相关), 函数返回值, 匿名构造 - 什么是左值 => 类型声明, 实例化对象
- 右值/左值差别 => 语义(semantic)相关, 运算符(operator)相关, 小命长短相关
- 注意const右值 当且仅当对于对象才有意义
- const右值引用也存在, 可以绑定const/非const右值
只是为了语法的完整性而存在, 无法触发真正的移动语义 => 因为无法进行steal operation => 进而没B用 如move constructor, move assignment, std::move()返回无意义啊 将只会触发copy assignment, 即 const T& 范式
CPP-template-advanced
CPP-template-advanced
成员模板
- 成员函数模板
- 类成员 => 由函数模板参数确定函数实例
- 模板成员 =>2套前缀 由类模板参数确定类实例, 函数模板参数确定函数实例
1套前缀时, 类模板的成员一定是函数模板(即成员模板)
JS-Weak-Type
JS-Implicit-Type-Conversion
T -> Number/算数类型
Number() 显式构造
- String
- 空 => 0
- 合法字面值 => parse正确
- 不具有parseint, parsefloat的灵活性
- Boolean
- t/f => 1/0
- null => 0
- undefined => NaN
- Function, Date, RegExp, Array, Customized Type(等等种种引用类型)
- 先toString(), 再遵循第一条