Java并行流之老生常谈

Stream API是Java 8推出的新特性,眼看Java 9 (2017年7月份) 即将推出,为什么还来谈Stream呢?毕竟自从Java 8推出以来,关于流的具体使用的文章相当之多,因此本文也不打算重复描述Stream的使用方法,而是想谈谈很少被提及的一些基本问题。

1.Java 8引入lambda语法的设计初衷是什么?是为了解决Java语言为人诟病的语法繁琐问题吗?

Read More.

bug害人呐

不久前发现自己很久前的http request的代码里出了个大bug,接收服务器返回的数据时,因为自己定义并使用了一个可变byte数组,数组长度不足时会成倍增加,另外有个值记录真实长度,然而获取真实数组时我却返回了整个数组….导致数组长度总是1024的倍数,因为这个bug,某项目从服务器收取的文件的大小全是1024的倍数,平均每个文件多占用了25%的磁盘空间,总计400GB!

bug害人呐?

DataList.java

和同学讨论传递Function是否可以解耦写的代码,QQ讨论时没语法高亮就放博客了,一直忘删了。
Read More.

适用于ipv6的hosts文件

国内目前ipv6的墙好像还不高,基本只要dns解析正确就能访问某些404网站。出于访问Youtube的目的,因此去年写了一个批量解析Google域名并生成hosts的程序,Github连接 。其中还做了根据域名规则嗅探新的域名。程序写的很渣,一直没好意思写Readme。

目前有四万行,可看Youtube全站,基本上用个三四个月都不用更新,我一般都是遇到硬需求才会更新一把(譬如youtube很多视频访问不了了)。

hosts文本下载链接:https://padeoe.com/file/hosts

 

基于最小割算法的点云分割

计算机图形学课两个课题之一,我的第一个选题其实就已经把第二次选题(图形分割)做完了,老师问我,那你还用第一次选题的RANSAC算法吧,结果脑子一热装了把逼“不不,我做最小割算法分割吧,学习新知识嘛”。

1.与其他分割算法的不同

目标:不是将点云分成多个部分,而是将前景对象从背景点中分离出来

特点:

  • 不关心细粒度特征例如曲率,而是只依赖点间距和点密度来分割。

Read More.

使用RANSAC进行平面模型分割

RANSAC

  • RANSAC(Random Sample Consensus),即随机采样一致性算法。它可以从一组包含“局外点”的观测数据集中,通过迭代方式估计数学模型的参数。它是一种不确定的算法——它有一定的概率得出一个合理的结果;为了提高概率必须提高迭代次数。该算法最早由Fischler和Bolles于1981年提出。
  • 输入:一个数据集(点云),一个适用的模型(平面模型),一个可靠性参数(距离阈值)

算法过程

Read More.

Java容器类

这篇文章看起来有些弱智,奈何zz阿里面试官就是喜欢考,一怒之下就背了一把

1.Java容器类有哪些?

Java的容器主要有两种,一种是Collection及其子类,一种是Map及其子类。其中Collection十分复杂,其本身还有好多子类接口。如下
1.Collection

是独立元素的序列,包含三个主要子接口

  1. List 有序
  2. Set 无序去重
  3. Queue 有序,可以先进先出

2.Map

是键值对。

2.各种容器类的接口分别是怎样的? Read More.

final关键字的使用

题记:

起这个标题时,我想到,作为一个三四年经验的Java程序员,这个话题未免显得有些基础。这么想,是因为我一直不认为应该把博客当成书本知识点(或者说语言文档)的复述者,然而 Read More.

Java继承容易掉进的坑

1.覆盖私有方法会怎样

私有方法对子类不可见,因此并没有覆盖私有方法一说,当然,如果你强行写一个签名相同的方法在子类里,假装在覆盖私有方法——并不会起到覆盖的作用,编译不会报错,而是会将他作为子类的方法。

譬如以下的例子: Read More.

1 2 3