小编GsM*_*GsM的帖子

如何处理空指针以及什么是“空安全”编码方式?

我是一名初级开发人员,我使用java做网站开发。我知道推荐 org.apache.common.lang.StringUtils 因为它的 null 安全性。但是什么是空安全或空安全确切?为什么下面的代码很难看?

if( sth != null ) { ... }

java null

3
推荐指数
1
解决办法
1万
查看次数

为什么添加最终字节会产生一个字节,但添加非最终字节会产生一个int?

byte b1=1,b2=2,b3,b6; 
final byte b4=4,b5=6; 
b6=b4+b5;    // line3
b3=b1+b2;    // line4: error: incompatible types: possible lossy conversion from int to byte
System.out.println(b3+b6);
Run Code Online (Sandbox Code Playgroud)

为什么第3行是对的?似乎类型不正确,我应该得到第4行的错误.

关于ideone的实例

java jvm final

2
推荐指数
1
解决办法
758
查看次数

为什么递归 heapify 过程的堆排序的空间复杂度是“O(1)”?

当我阅读归并排序的空间复杂度时,我得到的空间复杂度是O(n+logn)O(logn)当我们考虑递归过程的堆栈帧大小时计算。

但堆排序也利用了递归过程,即heapify过程。为什么堆排序的空间复杂度是O(1)

我正在阅读的代码是

``java

public class HeapSort {
public void buildheap(int array[]){
    int length = array.length;
    int heapsize = length;
    int nonleaf = length / 2 - 1;
    for(int i = nonleaf; i>=0;i--){
        heapify(array,i,heapsize);
    }
}

public void heapify(int array[], int i,int heapsize){
    int smallest = i;
    int left = 2*i+1;
    int right = 2*i+2;
    if(left<heapsize){
        if(array[i]>array[left]){
            smallest = left;
        }
        else smallest = i;
    }
    if(right<heapsize){
        if(array[smallest]>array[right]){
            smallest = right;
        }
    }
    if(smallest …
Run Code Online (Sandbox Code Playgroud)

sorting algorithm

1
推荐指数
1
解决办法
954
查看次数

标签 统计

java ×2

algorithm ×1

final ×1

jvm ×1

null ×1

sorting ×1