作者: padeoe

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.

Java条件运算符的类型

当初学Java时听说过三目运算符,偶尔用到,也没在意,直到后来看到某到题目(文中第五段代码)懵逼了,于是看了下题解,自己又码了些代码测试以为自己懂了,直到后来又遇到某情况(文中有,读者自己找)又懵逼了,才发现条件运算符不是那么单纯。

三目操作符的基本功能

条件运算符(?:)是Java中唯一的三目运算符。因此对于Java提到三目操作符,均指条件运算符。条件运算符可以用来进行代替 if else 语句来简化条件分支跳转。例如以下一段常见的代码:

boolean b = true;//boolean b = false;
int a;
if(b) 
  a = 1; 
else 
  a = 2;

就可以用条件运算符简化为:

boolean b = true;//boolean b = false;
int a = b ? 1 : 2;

以上两段代码的意思都是:当布尔变量b是真时,a将赋值为1,b为false时,a将赋值为2。

所以条件运算符的一个基本用法是:

布尔变量a ? 表达式b : 表达式c; //(true)?1:2;

值得一提的是,b,c都不允许是void类型。

操作符两侧类型不同将会怎样

上面两段代码中,变量a和变量b都是int类型,所以没什么问题。那如果是不同类型会怎么样呢?

Read More.

1 2 3 4