小编Ell*_*ott的帖子

进程成为僵局受害者的原因

我有一个选择的过程需要很长时间才能完成,大约需要5到10分钟.
我目前没有使用NOLOCK作为MS SQL数据库引擎的提示.
与此同时,我们有另一个进程在进行更新并插入到同一个数据库和相同的表中.
第一个过程已经开始,最近过早地结束了一条消息

SQLEXCEPTION:事务在锁资源上与另一个进程死锁,并被选为死锁牺牲品.

第一个进程在相同条件但在数据库较小的其他站点上运行,因此所讨论的select语句需要更短的时间(大约30秒左右).在这些其他站点中,我没有在这些其他站点中获得死锁消息.我也没有在最初遇到问题的网站上收到此消息,但是,我认为,随着数据库的增长,我相信我必须超过一些门槛.这是我的问题:

  1. 执行事务所花费的时间是否会使关联进程更有可能被标记为死锁牺牲品.
  2. 如果我用NOLOCK提示执行select,这会解决问题吗?
  3. 我怀疑在select语句中作为WHERE子句的一部分检查的datetime字段导致慢查找时间.我可以根据此字段创建索引吗?这是可取的吗?

sql-server deadlock

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

为什么有java单例类?你什么时候需要使用一个

我理解单例类只能有一个实例,但我不明白为什么这个有用.为什么不只是创建一个包含静态变量和方法的类,并在需要时使用synchronize以确保没有两个线程同时在类中执行方法.我只是不明白为什么有人会经历创造这种类的麻烦.我知道我在这里遗漏了一些东西.

谢谢,

java singleton design-patterns

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

在另一个字符串中搜索字符串数组的最有效方法

我有一大堆字符串,看起来像这样:String temp [] = new String [200000].

我有另一个字符串,让我们称它为bigtext.我需要做的是遍历temp的每个条目,检查是否在bigtext中找到该条目,然后根据它进行一些工作.所以,骨架代码看起来像这样:

for (int x = 0; x < temp.length; x++) {
  if (bigtext.indexOf(temp[x]) > -1 {

  //do some stuff
  } else continue;
}
Run Code Online (Sandbox Code Playgroud)

因为temp中有很多条目,并且有很多bigtext实例,所以我想以最有效的方式做到这一点.我想知道如果有更好的方法可以做到这一点,我所概述的是最有效的方法来迭代搜索.

谢谢,

埃利奥特

java arrays algorithm performance

19
推荐指数
4
解决办法
2951
查看次数

将外部jar放在JAVA_HOME/lib/ext目录中是件坏事吗?

我们有一个在JRE环境中运行的应用程序.该应用程序使用一些外部jar,我们已将它们放在JAVA_HOME/lib/ext文件夹中.这对我们来说已经有好几年了,但最近一位新的程序员加入了我们的团队,并且似乎强调这是一件多么糟糕的事情.在我进一步深入了解这个开发人员之前,我无法理解为什么并且我正在尝试做一些研究.这里有什么我想念的吗?

java jar

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

Java indexOf函数比Rabin-Karp更有效吗?文本的搜索效率

几周前我向Stackoverflow提出了一个问题,即创建一个有效的算法来搜索大块文本中的模式.现在我使用String函数indexOf进行搜索.一个建议是使用Rabin-Karp作为替代方案.我按如下方式编写了一个小测试程序来测试Rabin-Karp的实现,如下所示.

public static void main(String[] args) {
    String test = "Mary had a little lamb whose fleece was white as snow";

    String p = "was";
     long start  = Calendar.getInstance().getTimeInMillis();
     for (int x = 0; x < 200000; x++)
         test.indexOf(p);
     long end = Calendar.getInstance().getTimeInMillis();
     end = end -start;
     System.out.println("Standard Java Time->"+end);

    RabinKarp searcher = new RabinKarp("was");
    start  = Calendar.getInstance().getTimeInMillis();
    for (int x = 0; x < 200000; x++)
    searcher.search(test);
    end = Calendar.getInstance().getTimeInMillis();
    end = end -start;
    System.out.println("Rabin Karp time->"+end);

}
Run Code Online (Sandbox Code Playgroud)

以下是我正在使用的Rabin-Karp的实现: …

java string algorithm search rabin-karp

15
推荐指数
3
解决办法
8669
查看次数

尝试将更改提交到分支时的Subversion警告消息

我通过复制trunk目录在subversion中创建了一个分支.但是现在当我提交更改分支时,我收到此警告消息:"您的工作副本指向......似乎是一个标记!您应该在提交之前先切换到分支或主干."

如果我只是忽略错误消息并保存到目标目录,那么更改似乎会出现但警告消息是什么?

谢谢,

埃利奥特

svn

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

如何在Eclipse中使用JUnit

我是Eclipse的长期用户,但对于JUnit来说,这是一个新手.我有很多java项目,我想开始围绕这些项目中的方法编写测试用例.我只是想知道为此目的设置Eclipse环境的最佳方法.假设我有一个典型的项目,在指定的包中有一个典型的src目录.如何将测试用例附加到该项目.一些问题:1.我不希望测试用例成为我在项目中创建的任何构建的一部分.我想参考测试套件中的分支.

我是否要在要测试的软件包下设置一个单独的测试目录?我有一个单独的测试包吗?做这个的最好方式是什么?

java eclipse junit

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

使用JCheckBox的图标

我有一个swing应用程序,我想在其中使用带有图标的JCheckbox.我构建了如下图标:

   JCheckBox unsubmit = new JCheckBox("Unsubmit",applet.undo);
Run Code Online (Sandbox Code Playgroud)

当我这样做时,标签和图标出现在我的GUI中,但框本身无处可寻.如果我构建没有图标的JCheckBox,则框会回来.我已经尝试调整按钮的首选大小,但它没有任何效果.

谁知道这里发生了什么?

谢谢,

埃利奥特

java swing jcheckbox

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

在Java选项卡窗格中控制颜色

我一直在努力解决这个问题.

我试图在JTabbedPane中出现一个淡蓝色背景.我已经尝试了一切,似乎没有任何工作.

以下是我的代码.如果您运行它,它将显示选项卡,当选择浅蓝色背景和顶部的东西蓝色边框.我想控制这种颜色.但是怎么样?

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.plaf.ColorUIResource;
public class Main extends JFrame {
  JTabbedPane tab=new JTabbedPane();
  public Main() {
     setSize(300,300);
     setTitle("Test Tab pane");
     tab.add("First",new myPanel("First"));
     tab.add("Second",new myPanel("Second"));
     tab.add("Third",new myPanel("Third"));
     tab.add("Fourth",new myPanel("Fourth"));
     tab.addChangeListener(new ChangeTab());
     getContentPane().add(tab,BorderLayout.CENTER);
     setVisible(true);
     for(int i=0;i<tab.getTabCount();i++){
          if(i != tab.getSelectedIndex())
            tab.setBackgroundAt(i,Color.orange);
            tab.setForeground(Color.BLACK);
     }
     tab.setOpaque(true);
     UIManager.put("TabbedPane.contentAreaColor ",ColorUIResource.GREEN);
     UIManager.put("TabbedPane.selected",ColorUIResource.GREEN);
     UIManager.put("TabbedPane.background",ColorUIResource.GREEN);
     UIManager.put("TabbedPane.shadow",ColorUIResource.GREEN);
  }

  public static void main(String[] args) {
    Main main = new Main();
  }

  class ChangeTab implements ChangeListener{
    public void stateChanged(ChangeEvent e){
        tab.validate();
        System.out.println(tab.getSelectedIndex());
        for(int i=0;i<tab.getTabCount();i++){ …
Run Code Online (Sandbox Code Playgroud)

java swing jtabbedpane

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

java日期差异拼图

我想计算一个日期时间差,但我得到一些奇怪的结果:这是源:

   import java.util.Calendar;
    import java.util.Collections;
    import java.util.Vector;

    public class Main {

        static Calendar dcal = Calendar.getInstance();
    static Calendar ccal = Calendar.getInstance();
    public static void main(String[] args) {
        dcal.set(2011, 1, 27);
        ccal.set(2011,2,1);
        long dtime = dcal.getTimeInMillis();
        long ctime = ccal.getTimeInMillis();
        long diff = ctime - dtime;
        int hours = (int) (diff / (1000 * 60 * 60));
        System.out.println("hours->"+hours);

    }

}
Run Code Online (Sandbox Code Playgroud)

当我将ccal设置为2011年1月31日时,日期差异为96小时,但当我将其设置为2011年2月1日时,日期差异为48小时.怎么会这样?什么是补救措施?

谢谢,

埃利奥特

java time

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