Home

JavaLambda

Lambda

  • 匿名内部类语法糖 (sugar)+ 强大类型推导
  • 妥协于裸奔函数, 不会生成内部类class
  • java.util.function.* => FP
  • Function类方法
  • UnaryOperator<T>, BinaryOperator<T>.apply()
  • UnaryPredict<T>, BinaryPredict<T>
  • Supplier<T>返回值限制接口
  • Consumer<T>参数限制接口

Click to read more ...

template拾遗

关于模板与友元

  • 类模板的友元
    • 一般上, 此类是所有实例的友元类
    • 常用形式是, 模板参数作为这个实例友元类
  • 类模板的友元函数
    • 一般上, 此函数是所有实例的友元函数
  • 类模板的友元类模板
    • 重新使用一系列模板参数 => trival
    • 关于能否使用外部类模板的参数做特例化/偏特化声明template <>/减少个数 => 作用域不同不允许特化声明
    • 使用和外部一样的模板参数, 或部分参数 => appro one to one 友元

Click to read more ...

Java-CPP-Concurrence

Java-CPP-Concurrency

这里只讨论线程机制 即线程原语, 线程通信, 线程同步互斥

Java

单一/任一线程有限状态机

  • 继承Thread, Override public void run()创建对象, 将达到同如下的效果

Click to read more ...

CalibrationLearning

CalibrationLearning

Principles

中心投影参数

  • 相机内参
    • f, 焦距, 中心投影(perspective projection)模型中, 假设为投影中心, 距离成像平面(光屏)为f
    • dx, dy, 光屏平面的量子化, 离散化的单位, 即像素的物理尺寸(nx * dx == screen width)
    • u0, v0, 光(主)轴与光屏的交点的像素/图像坐标(按照习惯, 图像坐标取左下为原点), 模型中, 认为u0, v0在图像坐标矩形中心
    • (x, y, z) => {(u, v)} 世界坐标映射像素坐标, 默认取z轴为主轴, 即投影方向的世界坐标为z轴(与图形学规定的方向正负相反)
    • a1
    • Y / y = X / x = Z / fu = u0 + x / dx, v = v0 +y / dy
    • a2
    • 由此得到内参矩阵

Click to read more ...

Java-InnerClass-Review

Java-InnerClass-Review

局部(作用域)内部类, 可以final, abstract, 不能PPP, 不能static, 这点同局部变量

final属性的初始化, 不可以使用成员普适初始化 当内部类, 外部类之间属性/方法冲突时 => O.this.* VS. * 当内部类, 外部类 类属性冲突 => O.* trival

  • 局部作用域对局部内部类
    • 访问权限, 类属性/方法, 属性/方法使然
  • 局部内部类对外
    • 取决于位置, 是否可以拿到this, 将拿到所有成员, 一定可以拿到静态成员
    • this相当于final, CPP => T *const
    • 对于其他变量, 局部作用域, 隐式要求final => why => copy JVM
  • 局部内部类本身
    • 属性
    • 类属性, 必须final, 且contexpr
    • 方法
    • 类方法, 禁止(只能在top-level 或 static-level)
    • 静态初始化块, 禁止
    • 内部interface / enum, 禁止(只能在top-level 或 static-level)
    • 可以继续类内部类只能final/abstract, 不能static

Click to read more ...

Java-Generic

Java-Generic

泛型类, 接口

  • 本质是引入一个或多个T

泛型方法

  • 本质是引入T或者wild cards
  • bounded/unbounded T
  • bounded/unbounded WC

  • 很显然, UWC, BWC的使用下, 仅能用于已有泛型类, 泛型接口的泛型参数, 不同独立的像T一样自由使用, 甚至是add(), put(), set()等创建/修改对象有关的操作无法进行. 容器元素句柄要用Object

Click to read more ...