小编buc*_*h11的帖子

为什么是锯齿形图?

当我使用NetBeans运行下面提到的代码时,分配的堆大小图类似于锯齿形状.我附加了JVisualVM的屏幕截图,它显示了锯齿形状的堆分配图.该程序是一个简单的无限循环打印"Hello,World!" 进入控制台.

public class HelloWorld {
    public static void main(String a[]){
        while(true) {
            System.out.println("Hello, World!");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述 任何人都可以解释使用堆图形状背后的原因吗?

PS:即使我在不​​使用NetBeans的情况下运行它也会发生这种情况,因此它很可能与NetBeans无关......

java jvm memory-management heap-memory jvisualvm

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

系统级的整数和字符串比较

整数和字符串如何在较低级别进行比较?就像我们使用时一样

int a = 11;
int b = 12;

compare(a,b); //Just an example comparison, not in any particular language.
Run Code Online (Sandbox Code Playgroud)

String a = "11";
String b = "12";

compare(a,b);
Run Code Online (Sandbox Code Playgroud)

现在我要问的是这两个比较之间的系统级差异是什么?问题不适用于任何特定语言,它只是一个普遍的问题.它也不是关于字符串到整数的转换/比较,反之亦然.我知道不同平台和不同语言的答案可能有所不同,但由于我对此没有任何线索,我只是问一个通用的问题.

为什么整数比较总是被认为字符串比较更快

string comparison integer

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

在java中,空循环比非空循环消耗更多内存

我正在阅读java性能调优并遇到了这个问题.

我们跑的时候

public class test {
public static void main(String a[]){
    for(int i=0;i<1000000;i++){
        for(int j=0;j<100000;j++){
            Double d = new Double(1.0);
        }
    }
}
}
Run Code Online (Sandbox Code Playgroud)

JVisualVM显示内存消耗图表:

在此输入图像描述

但是当我们运行下面的代码时,

public class test {
public static void main(String a[]){
    for(int i=0;i<1000000;i++){
        for(int j=0;j<100000;j++){
        }
    }
}
}
Run Code Online (Sandbox Code Playgroud)

JVisualVM呈现锯齿:

在此输入图像描述

为什么会这样?两种情况如何以及为什么gc触发限制都会改变?

java jvm memory-management

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

使用fork时如何映射内存?

我是"fork()"的新手,我随处读到,当调用fork()时,启动当前(调用)进程的精确副本.现在,当我运行以下代码时,应该有两个不同的进程,有两个不同的分配给其变量和函数的内存位置.

#include<stdio.h>
int i=10;
int pid;
 int main(){
  if((pid=fork())==0){
    i++;//somewhere I read that separate memory space for child is created when write is needed
    printf("parent address= %p\n",&i);// this should return the address from parent's memory space
  }else{
    i++;
    i++;
    printf("child address= %p\n",&i);// this should return the address of child's memory space 
  }
  wait(0);
  return(0);
 }
Run Code Online (Sandbox Code Playgroud)
Why The output looks like:: 
child address::804a01c 
parent address::804a01c

为什么父母和孩子的地址都是一样的?

c linux fork address-space

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

c中的全局键盘钩子

我想编写一个全局键盘钩子来禁止任务切换.当我用Google搜索时,我在c#,cpp(和delphi)中找到了很多代码,但我需要一些关于挂钩的基本概念(如果示例在C中则会是最好的那么,请建议资源,链接可以帮助我理解C的角度.

PS:我发现了一个很好的工作示例(适用于winXP和旧版本),但是当我尝试编译代码时它给了我: 在此输入图像描述

我尝试在所有标题中搜索"IDC_"常量(MinGW gcc安装和开发人员提供的默认值),但没有运气......如果任何人可以编译代码并让它运行请帮助我我没有在这里上传源本身,因为有一些头文件依赖,在这种情况下,我必须在这里发布所有代码.

winXP是目标环境,但如果我让它运行Win7也会更好.

c windows hook keyboard-hook

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

在这种情况下char []和char*有何不同?

当我们运行这段代码时,它正常工作并string constant在屏幕上打印:

char *someFun(){
    char *temp = "string constant";
    return temp;
}
int main(){
    puts(someFun());
}
Run Code Online (Sandbox Code Playgroud)

但是,当我们运行以下类似的代码时,它将无法工作并在屏幕上打印一些垃圾:

char *someFun1(){
    char temp[ ] = "string";
    return temp;
}
int main(){
    puts(someFun1());
}
Run Code Online (Sandbox Code Playgroud)

它背后的原因是什么?本质上,两个函数都做类似的事情(即返回"字符串"),但它们仍然表现不同.这是为什么?

c string pointers dangling-pointer

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

java中的一维条码扫描器(使用来自捕获设备的图像)实现

我是一名学生,作为一个项目,我必须实施基于条形码(1-D)的考勤标记系统.虽然在网上冲浪我知道条形码阅读器是一个有点昂贵的玩具购买,所以现在我想要的我想通过捕获设备(主要是网络摄像头)捕获条形码图像,然后处理它们以获取存储在其中的内容.

我发现互联网上的一些项目也是如此,但他们使用的是.NET f/w,而我对.NET技术并不熟悉.使用java的唯一项目是http://sourceforge.net/projects/javabarcoderead/,但不知怎的,我无法运行他们提供的jar文件.

所以,我想知道可以用于相同甚至任何项目的算法或方法,从中我可以获得有关如何进一步了解这一点的一些见解......

快乐编码......

java algorithm project barcode

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

单击按钮时TextView不会更新

这是我的第一次尝试,可能看起来很幼稚.我有activity_main.xml如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.buch.pranav.andy.hisabkitab.MainActivity" >

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="30dp"
    android:onClick="clickHandler"
    android:text="@string/connect" />

<TextView
    android:id="@+id/textView2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/button1"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="65dp"
    android:text="@string/testVal2"
    android:textAppearance="?android:attr/textAppearanceMedium" />

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

我的MainActivity.java看起来像这样:

public class MainActivity extends ActionBarActivity {

//Auto generated code here

public void clickHandler(View view){
    View header = (View)getLayoutInflater().inflate(R.layout.activity_main, null);
    TextView tv = (TextView) header.findViewById(R.id.textView2);
    System.out.println("tv = "+tv.getText());
    tv.setText("lol");
}

//Auto generated code here 
}
Run Code Online (Sandbox Code Playgroud)

现在,当我单击按钮时,我在logcat窗口中看到sysout,因此clickHandler的绑定没有问题,但我的应用程序屏幕上的textview不会更新!Logcat甚至没有显示任何异常被抛出.

我在这里错过了什么?

java android textview

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