小编Ogr*_*m33的帖子

如何计算方法在Java中的执行时间?

如何获得方法的执行时间?是否有Timer实用程序类用于计算任务需要多长时间等等?

Google上的大多数搜索会返回计划线程和任务的计时器的结果,这不是我想要的.

java timing

792
推荐指数
26
解决办法
65万
查看次数

C#vs Java Enum(适用于C#的新手)

我已经用Java编程了一段时间,只是投入了一个完全用C#编写的项目.我正试图加快C#的速度,并注意到在我的新项目中几个地方使用的枚举,但乍一看,C#的枚举似乎比Java 1.5+实现更简单.任何人都可以枚举C#和Java枚举之间的差异,以及如何克服这些差异?(我不想开始语言火焰战,我只想知道如何在C#中做一些我以前用Java做的事情).例如,有人可以发布一个C#对应的Sun着名的Planet枚举示例吗?

public enum Planet {
  MERCURY (3.303e+23, 2.4397e6),
  VENUS   (4.869e+24, 6.0518e6),
  EARTH   (5.976e+24, 6.37814e6),
  MARS    (6.421e+23, 3.3972e6),
  JUPITER (1.9e+27,   7.1492e7),
  SATURN  (5.688e+26, 6.0268e7),
  URANUS  (8.686e+25, 2.5559e7),
  NEPTUNE (1.024e+26, 2.4746e7),
  PLUTO   (1.27e+22,  1.137e6);

  private final double mass;   // in kilograms
  private final double radius; // in meters
  Planet(double mass, double radius) {
      this.mass = mass;
      this.radius = radius;
  }
  public double mass()   { return mass; }
  public double radius() { return radius; }

  // universal gravitational constant  (m3 kg-1 s-2) …
Run Code Online (Sandbox Code Playgroud)

c# java enums language-comparisons

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

尝试使用java.exe -jar运行我的jar时出现NoClassDefFoundError ...出了什么问题?

我有一个应用程序,我正在尝试将其包装到jar中以便于部署.当作为一组可从CLASSPATH访问的类运行时,应用程序编译并运行正常(在Windows cmd窗口中).但是当我在我的类中运行并尝试在同一cmd窗口中使用java 1.6运行它时,我开始获得异常:

C:\dev\myapp\src\common\datagen>C:/apps/jdk1.6.0_07/bin/java.exe -classpath C:\myapp\libs\commons -logging-1.1.jar -server -jar DataGen.jar
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
    at com.example.myapp.fomc.common.datagen.DataGenerationTest.<clinit>(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
    at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
    ... 1 more
Run Code Online (Sandbox Code Playgroud)

有趣的是,违规的LogFactory似乎是在commons-logging-1.1.jar中,它位于指定的类路径中.jar文件(是的,它确实存在):

C:\dev\myapp\src\common\datagen>dir C:\myapp\libs\commons-logging-1.1.jar
 Volume in drive C is Local Disk
 Volume Serial Number is ECCD-A6A7

 Directory of C:\myapp\libs

12/11/2007  11:46 AM            52,915 commons-logging-1.1.jar
           1 File(s)         52,915 bytes
           0 Dir(s)  10,956,947,456 bytes free
Run Code Online (Sandbox Code Playgroud)

commons-logging-1.1.jar文件的内容:

C:\dev\myapp\src\common\datagen>jar -tf C:\myapp\libs\commons-logging-1.1.jar
META-INF/
META-INF/MANIFEST.MF
org/ …
Run Code Online (Sandbox Code Playgroud)

java jar classpath executable-jar

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

如何在Windows中设置长Java类路径?

我正在尝试在Windows XP命令行上手动运行特定的JUnit测试,该命令行在类路径中具有异常多的元素.我尝试了几种变体,例如:

set CLASS_PATH=C:\path\a\b\c;C:\path\e\f\g;....
set CLASS_PATH=%CLASS_PATH%;C:\path2\a\b\c;C:\path2\e\f\g;....
...
C:\apps\jdk1.6.0_07\bin\java.exe -client oracle.jdevimpl.junit.runner.TestRunner com.myco.myClass.MyTest testMethod
Run Code Online (Sandbox Code Playgroud)

(其他变体是将类路径全部设置在一行上,通过-classpath将类路径设置为java的参数").它始终归结为控制台抛出它的错误:

The input line is too long.
The syntax of the command is incorrect.
Run Code Online (Sandbox Code Playgroud)

这是一个JUnit测试,测试一个相当大的现有遗留项目,所以没有关于重新安排我的目录结构更合理的建议,这些类型的解决方案暂时没有.我只是试图对这个项目进行快速测试并在命令行上运行它,控制台正在阻止我.救命!

java junit classpath

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

链接服务器是否有"IF EXISTS"测试?

我希望能够以编程方式(在T-SQL中)检查我当前的服务器和数据库是否已存在特定的链接服务器(如果链接尚不存在,我可以创建它).我试过这样的东西:

IF OBJECT_ID('myserver\devdb_1') IS NULL
BEGIN
  PRINT 'Does not exist, need to create link'
  EXEC master.dbo.sp_addlinkedserver @server = N'myserver\devdb_1', 
                                     @srvproduct=N'SQL Server'
END
ELSE
  PRINT 'Link already exists'
Run Code Online (Sandbox Code Playgroud)

但OBJECT_ID测试始终返回null,即使该链接已存在.任何方法都可以检查T-SQL,以便我的其余代码可以假设链接始终存在?

t-sql sql-server linked-server

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

(Oracle)Java JVM如何知道闰秒发生了什么?

一个闰秒会发生在6月30日,2015年不同的操作系统似乎以不同的方式处理这种情况.在我的特定情况下,我们运行的Red Hat 6.4系统具有严重依赖于时间的自定义Java(JDK 1.7)软件.根据最近我发现的一些Red Hat发布的信息,我们系统的NTP守护进程将确保操作系统通过重复23:59:59两次自动处理闰秒.

我的问题是:如果我有一个长期运行的JDK 1.7进程,它是如何知道闰秒发生的?我的意思是,Java最终如何知道IERS人们决定插入闰秒?该日期的文件似乎表明意识到闰秒,但似乎无助地模糊.我可以假设JDK,当Date构造或Calendar.getInstance()调用适当的对象 时,它是否通过底层操作系统的日期时间处理以获得适当的"实际"时间值?(在我的情况下,听起来它会重复第二次23:59:59,因为这就是操作系统将如何处理它).

java time datetime utc

34
推荐指数
3
解决办法
4882
查看次数

模板类里面的模板函数的C++特化

什么是专门用于模板类中的模板函数的C++语法?例如,考虑我有以下两个类及其用法.我希望能够为不同类型提供方法X :: getAThing()的专门实现.例如:int,std :: string,任意指针或类等.

template <class c1> class X {
public:
   template<typename returnT> returnT getAThing(std::string param);
   static std::string getName();
private:
   c1 theData;
};

// This works ok...
template <class c1> std::string X<c1>::getName() {
   return c1::getName();
}

// This blows up with the error:
// error: prototype for 'int X<c1>::getAThing(std::string)' does not match any in class 'X<c1>'
template <class c1> template <typename returnT> int X<c1>::getAThing(std::string param) {
   return getIntThing(param); // Some function that crunches on param and returns an int. …
Run Code Online (Sandbox Code Playgroud)

c++ syntax templates template-specialization

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

"thread dump"是什么意思

我想知道java线程转储是什么.有人可以帮我理解线程转储是什么以及它与正在运行的java程序有什么关系?

java multithreading

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

如何在C#中隐藏(删除)基类的方法?

问题的本质是,给定一个类层次结构如下:

class A
{
    protected void MethodToExpose()
    {}

    protected void MethodToHide(object param)
    {}
}

class B : A
{
    new private void MethodToHide(object param)
    {}

    protected void NewMethodInB()
    {}
}

class C : B
{
    public void DoSomething()
    {
        base.MethodToHide("the parameter"); // This still calls A.MethodToHide()
        base.MethodToExpose(); // This calls A.MethodToExpose(), but that's ok
        base.NewMethodInB();
    }
}
Run Code Online (Sandbox Code Playgroud)

如何防止从类"B"继承的任何类看到该方法A.MethodToHide()?在C++中,通过使用诸如的声明这很容易class B : private A,但是这种语法在C#中无效.

对于那些感兴趣的人(或者想知道我真正想做什么),我们要做的是为Rhino.Commons.NHRepository创建一个包装器,它隐藏了我们不希望暴露给我们的开发人员组的方法,因此我们可以采用千篇一律的方式开发我们的应用程序,新开发人员可以轻松遵循.所以是的,我相信"Is-A"测试对整个链(WidgetRepository Is-A BaseRepository Is-A NHRepository)是有效的.

编辑:我应该提到,为了论证,A类是我们控制范围之外的API类.否则问题变得相当容易.

c# inheritance language-features inheritance-prevention

18
推荐指数
4
解决办法
4万
查看次数

如果调用JNI DeleteGlobalRef(),相应的java对象是否会被垃圾回收?

我的意思是,如果我在C++中创建一个全局引用jobject,然后将其传递给某些Java代码,并删除调用DeleteGlobalRef(),那么底层的java对象是否可能立即被垃圾收集,以便任何未来的Java代码已经引用该对象可能会返回NullPointerException?具体来说,如果我有一些C++代码执行类似这样的简化示例:

static jobject myObjGlobalRef;
static JNIEnv* env = /* call to create a JVM and get the JNI env */;
jobject ReturnMyObj()
{
    /* <<Code that defines class, constructorId, and param1 goes here>> */

    jobject localObj = env->NewObject(class, constructorId, param1);
    myObjGlobalRef = env->NewGlobalRef(localObj);
}

void DeleteMyObj()
{
    env->DeleteGlobalRef(myObjGlobalRef);
}

myObjGlobalRef = ReturnMyObj();

jobject otherExistingGlobalRef = /* Assume we get another global ref to another parent obj somewhere else */
/*  ... other code here ... */
// Invoke some method …
Run Code Online (Sandbox Code Playgroud)

c++ java java-native-interface

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