标签: implementation

Gradle Implementation vs API配置

我正在试图弄清楚构建我的依赖项时有什么区别apiimplementation配置.
在文档中,它说implementation有更好的构建时间,但是,在类似的问题中看到这个 评论我想知道它是否属实.
由于我不是gradle的专家,我希望有人可以提供帮助.我已经阅读了文档,但我想知道一个易于理解的解释.

implementation dependencies android gradle

183
推荐指数
8
解决办法
5万
查看次数

现实世界中是否曾经针对小输入使用过具有高时间复杂度的算法?

假设我们有一个问题,某个算法(我们称之为算法_1)的时间复杂度为 ,O(n^2)另一个算法(我们称之为算法_2)的时间复杂度为O(n),但实际上我们看到n < 1000算法_1 更快,否则算法_2 更快是比较快的。

为什么我们不能直接写这样的代码:

if ( n < 1000)
  do algorithm_1
else
  do algorithm_2
Run Code Online (Sandbox Code Playgroud)

这是程序员真正做的事情还是有缺点?

对于较小的程序,这似乎是一个好主意。

algorithm implementation time-complexity

66
推荐指数
7
解决办法
5963
查看次数

房间找不到实施

我在测试Room数据库时遇到问题:当我运行测试时,我得到以下异常:

java.lang.RuntimeException: cannot find implementation for database.TicketDatabase. TicketDatabase_Impl does not exist
at android.arch.persistence.room.Room.getGeneratedImplementation(Room.java:92)
at android.arch.persistence.room.RoomDatabase$Builder.build(RoomDatabase.java:454)
at com.sw.ing.gestionescontrini.DatabaseTest.setDatabase(DatabaseTest.java:36)
at java.lang.reflect.Method.invoke(Native Method)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runners.Suite.runChild(Suite.java:128)
at org.junit.runners.Suite.runChild(Suite.java:27)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at org.junit.runner.JUnitCore.run(JUnitCore.java:115)
at android.support.test.internal.runner.TestExecutor.execute(TestExecutor.java:59)
at android.support.test.runner.AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:262)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1886)
Run Code Online (Sandbox Code Playgroud)

类DatabaseTest:

public class DatabaseTest {

    TicketDatabase database;
    DAO …
Run Code Online (Sandbox Code Playgroud)

implementation android android-room

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

应该将哪个提供程序用于Java Persistence API(JPA)实现

我想为我的Web应用程序使用Java Persistence API(JPA).

有流行的JPA实现,如Hibernate,ToplinkEclipseLink.什么实施是一个很好的选择,为什么?

java provider implementation persistence jpa

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

DDD - 应实施哪一层DTO

如果我的问题很天真,我会倾向于DDD,所以道歉.我想我需要使用本地数据传输对象才能向用户显示数据,因为许多属性不属于任何实体/值对象.

但是,我不确定应该在域域层或应用程序服务层中实现此DTO的位置.DTO实现似乎是域的一部分,但这意味着当我在服务层中创建DTO集合并将其传递给表示层时,我必须在表示层中引用域层,这似乎是错误的.

使用DDD原则实现DTO的正确方法是什么?

implementation domain-driven-design layer dto

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

截至2016年,是否有一个方案实施支持100%的R7RS(小)没有偏差?

我愿意学习Scheme.我想坚持使用R7RS,因为它是最后一个标准.然而,似乎在Scheme当前实现上存在很多碎片,并且大多数碎片停留在R5RS或R6RS的一部分.

我发现的唯一一个支持R7RS的部分是Kawa,但由于它在JVM上运行,它不支持尾调用优化,这是针对该实现的一个强点.

Scheme计划世界是否真的那么支离破碎,甚至还没有R7RS完全实现呢?我问,因为如果没有,我一赶上,我就打算建一个; 但是,如果存在,最好不要重新发明轮子并为某种实施做出贡献.

如果您有信息,请不仅要回答姓名,还要提供适当的进一步信息(实施的官方网站,甚至邮件组的摘录都可以作为参考).

顺便说一句,我不是在考虑Racket,因为它不再是Scheme了.

lisp scheme implementation r6rs r7rs

22
推荐指数
2
解决办法
6076
查看次数

从 CPython 文档中澄清“应该可以更改 1 的值”

请参阅此链接:https : //docs.python.org/3/c-api/long.html#c.PyLong_FromLong

当前的实现为 -5 到 256 之间的所有整数保留了一个整数对象数组;当您在该范围内创建一个 int 时,您实际上只是取回了对现有对象的引用。所以,应该可以改变 1 的值。我怀疑 Python 的行为,在这种情况下,是 undefined。:-)

在这种情况下,粗线是什么意思?

python implementation cpython

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

在.NET中,委托的内部实现是什么?

我理解委托人的声明是这样的:

public delegate int PerformCalculation(int x, int y);
Run Code Online (Sandbox Code Playgroud)

但是,必须有更多的事情发生.委托的目的是提供指向方法的指针,为此,您将对方法的引用封装在委托中.

这个参考是什么类型的结构(代表内部)?我也明白你可以在委托中封装对多个方法的引用.这是否意味着委托中有一个包含这些数组的数组?

此外,委托中定义了哪些方法等.当您使用简洁声明委托时,实际发生了什么:

public delegate int PerformCalculation(int x, int y);
Run Code Online (Sandbox Code Playgroud)

编辑:一些澄清.声明委托时,编译器会自动创建一个从System.MulticastDelegate继承的密封类.如果你用ildasm查看你的程序集,你可以看到这个.这很整洁.基本上,使用一个语句,您将在编译时获得为您生成的全新类,并且它具有您需要的所有功能.

.net c# implementation delegates internal

18
推荐指数
2
解决办法
2540
查看次数

私人模板功能

我有一节课:

class C {
private:
  template<int i>
  void Func();

  // a lot of other functions
};
Run Code Online (Sandbox Code Playgroud)

C.cpp

// a lot of other functions

template<int i>
void C::Func() {
 // the implementation
}

// a lot of other functions
Run Code Online (Sandbox Code Playgroud)

我知道,在cpp文件中移动模板实现并不是最好的主意(因为它不会从其他cpp中看到,它可能包含带有模板声明的标头).

但私人功能怎么样?谁能告诉我是否有在.cpp文件中实现私有模板功能的缺点?

c++ implementation templates private

18
推荐指数
2
解决办法
6272
查看次数

JVM是否为每个对象创建一个互斥锁以实现'synchronized'关键字?如果没有,怎么样?

作为一个越来越熟悉Java的C++程序员,看到语言级别支持锁定任意对象而没有任何声明对象支持这种锁定,这有点奇怪.为每个对象创建互斥锁似乎是一个自动选择的高成本.除了内存使用,互斥体在某些平台上是OS有限的资源.如果互斥锁不可用但你的性能特征明显不同,你可以旋转锁定,我希望这会损害可预测性.

在所有情况下,JVM是否足够智能以识别特定对象永远不会成为synchronized关键字的目标,从而避免创建互斥锁?可以懒惰地创建互斥锁,但是这会引发自举需要互斥锁的自举问题,即使解决了这个问题,我也认为仍然需要一些开销来跟踪是否已经创建了互斥锁.所以我假设如果这样的优化是可能的,它必须在编译时或启动时完成.在C++中,由于编译模型这样的优化是不可能的(你不知道对象的锁是否会跨库边界使用),但我对Java的编译和链接知道不够了解如果适用相同的限制.

c++ java implementation synchronization jvm

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