小编k3b*_*k3b的帖子

如何使java内存泄漏的junit测试通过?

我有一个可能分配大量数据的java类。

我编写了一个 junit 测试,应该检查内存泄漏,类似于下面的代码。

不幸的是测试失败了。

@Test
public void shoudNotMemoryLeak()
{
    Runtime runtime = Runtime.getRuntime();
    // make shure that gc has collected all
    System.gc ();
    System.runFinalization ();

    // memory before creating my sut
    long memoryUsedBefore = runtime.freeMemory();
    long memoryUsedAfter = 0;

    // this consumes memory
    StringBuilder sut = new StringBuilder("hello world");

    // make memory available to gc
    sut = null;

    // make shure that gc has collected all
    System.gc ();
    System.runFinalization ();

    // memory after creating my sut
    memoryUsedAfter = runtime.freeMemory(); …
Run Code Online (Sandbox Code Playgroud)

java junit memory-leaks

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

.net命名约定:长度和计数之间是否存在语义差异?

为了获得dotnet中的子项目的数量,有时我不得不问一个属性Lenght有时我要问一个属性Count.

这种区别有什么理由吗?

例:

   int[] a; if (a.Length == 0) ....
   IList<int> b; if (b.Count == 0) ....
Run Code Online (Sandbox Code Playgroud)

注意IEnumerable Count()和Length之间的区别听起来相似,但不回答Length和Count之间的语义

.net

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

Fluent-Nibernate与wpf:约会使用uNhAddIns ... ObservableListType <T>默认?

我试图使用Fluent-Nibernate和需要Observable集合的wpf(实现INotifyCollectionChanged接口).

uNHAddins:NHibernate的非官方插件我找到了

    uNhAddIns.WPF.Collections.Types.ObservableListType<T>
Run Code Online (Sandbox Code Playgroud)

实现INotifyCollectionChanged.它可以像这样在Fluent-Nibernate中配置

    namespace FluentNHibernateTutorial.Mappings
    {
        public class StoreMap : ClassMap<Store>
        {
            public StoreMap()
            {
                Id(x => x.Id);
                Map(x => x.Name);
                HasManyToMany(x => x.Products)
                 .CollectionType<uNhAddIns.WPF.Collections.Types
                                      .ObservableListType<Product>>()
                 .Cascade.All()
                 .Table("StoreProduct");
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

有没有人知道如何使用Fluent-Nibernate 实现一个总是使用ObservableListType作为默认IList实现的约定?

更新:完美的解决方案可以替代Fluent-NHibernate-Automapper

collections wpf nhibernate-mapping fluent-nhibernate nhibernate-collections

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

Android Compat 类如何工作

有两个班级

1) AppCompatActivity
2) GestureDetectorCompat.
Run Code Online (Sandbox Code Playgroud)

根据 android 文档,这些类是为旧的 android 平台提供支持的。我想知道这是如何工作的。尽管 GestureDetector 和 GestureDetectorCompat 具有相同的 API。GestureDetectorCompat 如何在不存在 GestureDetector 的旧平台上工作?

android

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

为什么我要为Android 4.0及更高版本扩展AppCompatActivity而不是Activity?

当我为Android 2.2编写第一个Android应用程序时,我的活动不得不使用,extends AppCompatActivity因为片段在Android 2.2中不可用。

如今,许多为Android 4.0和更高版本编写的应用extends AppCompatActivity代替了extends Activity。由于Android 4支持片段和样式,因此仍然需要使用AppCompatActivity吗?

Android Studio向导还会为生成代码AppCompatActivity

注意:这个问题通常与“ AppCompat” 无关(例如对Android 6权限的支持,它仅与活动和片段处理有关。

[更新]我什么真正的问题是关于concreate什么下的Android 4.0版本的AppCompatActivity活动可以比Android的4.0 Actrivity做例子if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.XXX)不能做。我发现AppCompatActivity添加了get / setSupportXXXX

到目前为止,我得到的唯一具体示例是使用Material Design视图。

android android-appcompat

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

如何使今年的2038年问题junit测试按预期工作

我正在编写一些代码,由于Java 溢出,因此Year_2038_problem会在2038年1月19日之后停止工作,Date所以我可以创建一个junit测试,该测试在2036年开始失败,给我2年的时间来修复它。

首先要创建一个失败的测试,我又增加了25年的时间,并且对测试没有失败感到惊讶。

@Test
public void warn2038Overflow() {
    Calendar c = Calendar.getInstance();
    c.add(Calendar.YEAR, 25);

    // today is 2019 plus 25 years becomes 2044 which should overflow
    assertEquals("No calendar overflow", true,
            c.getTimeInMillis() > 0l);
}
Run Code Online (Sandbox Code Playgroud)

有什么线索为什么这不会失败?

我正在将Android-Studio-3.4.1与java-1.8.0_152(64位)结合使用,并具有'junit:junit:4.12'和'androidx.test:runner:1.1.0'

java junit year2038

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