GOF —— 单例模式 置顶! 有更新!

  |   0 评论   |   0 浏览

单例模式(SIngleton)的目的是为了保证一个进程中,某个类有且仅有一个实例。

因为这个类只有一个实例,因此,该类不能允许 new 的方式创建实例。

  • 单例的构造方法必须是 private,这样就防止了调用方自己创建实例。
  • 既然不能通过new 创建实例,只能通过访问静态成员变量的方式了,而且成员变量不能定义成public(调用者可以直接通过Singleton.instance 的方式更改 ),所以需要提供一个 获取静态成员变量的 静态方法。

垃圾收集器与内存分配策略 有更新!

  |   0 评论   |   0 浏览

垃圾收集的历史远远比 Java 久远,在 1960 年诞生于麻省理工学院的 Lisp 是第一门开始使用内存动态分配垃圾收集技术的语言。其作者 John McCarthy 就思考过垃圾收集需要完成的三件事情:

  • 哪些内存需要回收?
  • 什么时候开始回收?
  • 如何回收?

学习了解垃圾收集和内存分配的意义

当需要排查各种内存溢出、内存泄漏的问题时,当垃圾收集成为系统达到更高并发量瓶颈时,我们就必须对这些“自动化”的技术实施必要的监控和调节。

垃圾回收比较侧重的内存区域

  • 程序计数器、虚拟机栈、本地方法栈 3个区域随线程而生,随线程而灭,栈中的栈帧随着方法的进入和退出而有条不紊地执行出栈和入栈操作。每一个栈帧中分配多少内存基本上是在类结构确定下来时就已知的,因此这几个区域的内存分配和回收都具备确定性,就不需要过多考虑如何回收的问题了
  • Java 堆方法区 这两个区域则有着很显著的不确定性:一个接口的多个实现类需要的内存可能回不一样,一个方法所执行的不同条件分支所需要的内存也可能不一样,只有处于运行期间,我们才能够知道程序究竟会创建哪些对象,创建多少个对象,这部分内存的分配和回收是动态的。垃圾回收器所关注的正是这部分内存该如何管理

神经网络入门 有更新!

  |   0 评论   |   0 浏览
  • , 多个层组合成网络(或模型
  • 输入数据和相应的目标
  • 损失函数,即用于学习和反馈信号。
  • 优化器, 决定学习过程如何进行

四者之间的关系: 多个层链接再一起组成了网络,将输入数据映射位预测值。然后损失函数将这些预测值与目标进行比较,得到损失值,用于衡量网络预测值与预测结果的匹配程度。优化器使用这个损失值来更新网络的权重。

table 固定表头

  |   0 评论   |   0 浏览

以前固定表头都是用一些插件啥的,但是最近项目中,遇到了需要对原生 table 表头固定的需求,还蛮头疼得,网上查了很多资料,遇到很多问题,这里记录一下,免得以后遇到同样的问题。