小编Ern*_*ill的帖子

默认的.equals和.hashCode如何适用于我的课程?

说我有自己的课

public class MyObj { /* ... */ }
Run Code Online (Sandbox Code Playgroud)

它有一些属性和方法.它不实现equals,不实现hashCode.

一旦我们调用equals和hashCode,默认实现是什么?来自Object类?他们是什么?默认等于如何工作?默认的hashCode如何工作以及返回什么?==只会检查它们是否引用同一个对象,所以这很容易,但是equals()和hashCode()方法呢?

java equality equals object hashcode

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

使用SQL Server 2008在Visio中进行数据库图表的逆向工程

我需要对Microsoft SQL Server 2008进行逆向工程以创建Microsoft Visio 2007数据库模型图.所以我从Database菜单中选择"Reverse Engineer"来连接数据库.

我配置了Microsoft SQL Server Visio驱动程序,以便使用SQL Server Native Client 10.0作为ODBC驱动程序.之后我创建了一个连接到我的数据库的用户DSN.此DSN有效(至少提供的测试成功).在反向工程向导中单击下一步后,Visio请求我正确提供的凭据,但单击确定后,我收到以下消息:

当前选定的Visio驱动程序与数据源不兼容.

我尝试使用旧的SQL Server ODBC驱动程序,当然还要重新配置Visio驱动程序.它也不起作用.

database odbc visio sql-server-2008

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

数组在java中保存在内存中的位置?

如果我有一个函数,在该函数中我声明:

Object arr[] = new Object[20];
Run Code Online (Sandbox Code Playgroud)

arr和整个数组存储在哪里?堆?堆?声明是在某个函数中还是在main()中是否重要?

并且假设我也有这些命令行:

arr[0] = new String("abc");
arr[1] = new List();
Run Code Online (Sandbox Code Playgroud)

哪里arr[0]arr[1]存储?

java memory arrays heap stack

12
推荐指数
3
解决办法
7991
查看次数

静态方法内存分配

我们有两个分类堆和堆栈.创建对象时,对象的内存存储在堆中.如果类具有静态方法,可以使用类名调用该怎么办.如果没有创建对象,那么它将如何分配内存,如果它在哪里分配内存?

java static static-methods static-members

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

错误:"不推荐使用类型Window中的方法show()"

这是一个简单的程序,只需打开一个AWT.我使用eclipse,我得到上面显示的frame.show(); Eclipse正在用一条线穿过"show".我想要这个程序只需显示一个300px乘300px的框架窗口.下面是完整的代码:

    Frame frame = new Frame("Hello World");
    // ...        
    frame.show(); 
Run Code Online (Sandbox Code Playgroud)

java deprecated

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

c ++中的静态计数器

我正在尝试创建一个Data类,其对象每个都拥有唯一的ID.

我希望第一个对象的ID为1,第二个为2,等等.我必须使用a static int,但所有对象都具有相同的ID,而不是1,2,3 ......

这是Data班级:

class Data
{
private:
   static int ID;
public:
   Data(){
   ID++;
   }
};
Run Code Online (Sandbox Code Playgroud)

我怎么能这样做,所以第一个ID将是1,第二个将是2,等等.?

c++ static counter class

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

Eclipse RCP IPageLayout困扰

我有一个Eclipse RCP应用程序,有三种列布局:

在此输入图像描述

编辑区位于最右侧.现在,当你开始IPageLayout使用时,编辑器区域已经被添加.没关系:我们在编辑器的左边添加区域B,在B的左边添加区域A,布局正是我们需要的.

问题是,当您在A和B之间移动窗框时,视图A和B会在不调整编辑区域大小的情况下发生变化(好;)但是当您在B和编辑区域之间移动另一个窗框时,所有三个视图都会调整大小; 布局管理器用于保持A和B宽度的比例,这不是我们想要的.我们希望用户能够独立移动每个窗格,并使其仅影响它接触的两个视图.

看起来这样做的根本原因是当你得到你的编辑器时,编辑器已就位IPageView,因此你必须将IFolderLayouts相对于它定位.如果您可以相对于B定位编辑器,那么调整大小会做正确的事情.

所以我的问题:

  1. 有没有办法告诉IPageView编辑器相对于视图的位置,而不是相反?
  2. 除此之外,是否还有其他方法可以影响布局算法,比如编写某种布局管理器?

java layout swt eclipse-rcp

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

如何为自定义数据结构创建哈希码?

我已经制作了一个自定义的"Coordinate"数据结构,它根据某个系统定义了一个对象的位置.

坐标定义如下:

public class Coordinate
{
    public int X;
    public int Y;
    private int face;
    public int Face
    {
        get { return face; }
        set
        {
            if (value >= 6 | value < 0)
                throw new Exception("Invalid face number");
            else
                face = value;
        }
    }
    private int shell;
    public int Shell
    {
        get { return shell; }
        set
        {
            if (value < 0)
                throw new Exception("No negative shell value allowed");
            else
                shell = value;
        }
    }

    public Coordinate(int face, int …
Run Code Online (Sandbox Code Playgroud)

c# hash

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

java.lang.UnsatisfiedLinkError:dbopen

我正在尝试在android应用程序的代码块上编写一个Android测试用例.该代码块将与数据库(sqlcipher库函数)特定的dbopen()函数进行交互.运行应用程序时,它工作正常.当我们尝试为该代码块执行测试用例时(涉及数据库交互).它给出以下错误:java.lang.UnsatisfiedLinkError:dbopen

可以看看这个并提出建议.

测试用例无权调用调用sqlcipher库函数的函数.是否需要任何权限,或者此类测试用例是否有任何特定的过程?

完整错误日志:

            04-30 12:08:33.997: I/TestRunner(2169): started: teststateMachine(com.americanlogistics.mdd.rhapsody.view.test.SigninViewsateMachineTest)
            04-30 12:08:34.147: W/dalvikvm(2169): No implementation found for native Linfo/guardianproject/database/sqlcipher/SQLiteDatabase;.dbopen (Ljava/lang/String;I)V
            04-30 12:08:34.164: I/TestRunner(2169): failed: teststateMachine(com.americanlogistics.mdd.rhapsody.view.test.SigninViewsateMachineTest)
            04-30 12:08:34.164: I/TestRunner(2169): ----- begin exception -----
            04-30 12:08:34.184: I/TestRunner(2169): java.lang.UnsatisfiedLinkError: dbopen
            04-30 12:08:34.184: I/TestRunner(2169):     at info.guardianproject.database.sqlcipher.SQLiteDatabase.dbopen(Native Method)
            04-30 12:08:34.184: I/TestRunner(2169):     at info.guardianproject.database.sqlcipher.SQLiteDatabase.<init>(SQLiteDatabase.java:1870)
            04-30 12:08:34.184: I/TestRunner(2169):     at info.guardianproject.database.sqlcipher.SQLiteDatabase.openDatabase(SQLiteDatabase.java:863)
            04-30 12:08:34.184: I/TestRunner(2169):     at info.guardianproject.database.sqlcipher.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:897)
            04-30 12:08:34.184: I/TestRunner(2169):     at info.guardianproject.database.sqlcipher.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:107)
            04-30 12:08:34.184: I/TestRunner(2169):     at com.americanlogistics.mdd.rhapsody.database.SendQueueDBAdapter.open(SendQueueDBAdapter.java:45)
            04-30 12:08:34.184: I/TestRunner(2169):     at com.americanlogistics.mdd.rhapsody.database.SendQueueDBAdapter.databaseHelperInstance(SendQueueDBAdapter.java:38)
            04-30 12:08:34.184: I/TestRunner(2169):     at com.americanlogistics.mdd.rhapsody.common.ApplicationController.startDatabase(ApplicationController.java:530)
            04-30 12:08:34.184: I/TestRunner(2169): …
Run Code Online (Sandbox Code Playgroud)

android unit-testing

6
推荐指数
2
解决办法
5131
查看次数

在for循环中重新创建ArrayList的最快方法

在Java中,使用以下函数为巨大的矩阵X打印其列不同的元素:

// create the list of distinct values
List<Integer> values = new ArrayList<Integer>();

// X is n * m int[][] matrix
for (int j = 0, x; j < m; j++) {
    values.clear();
    for (int i = 0; i < n; i++) {
        x = X[i][j];
        if (values.contains(x)) continue;
        System.out.println(x);
        values.add(x);
    }
}
Run Code Online (Sandbox Code Playgroud)

首先,我按列(索引j)和内部按行(索引i)进行迭代.

对于不同的矩阵,此函数将被调用数百万次,因此应优化代码以满足性能要求.我想知道值数组.使用values = new ArrayList<Integer>();values = null替代它会更快values.clear()吗?

java arraylist clear

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