小编tgd*_*ies的帖子

当Hibernate刷新会话时,它如何判断会话中的哪些对象是脏的?

我对Hibernate的理解是,当对象从DB加载时,它们被添加到Session中.在不同的点上,根据您的配置,会话被刷新.此时,修改后的对象将写入数据库.

Hibernate如何确定哪些对象是"脏的"并且需要编写?

Hibernate生成的代理是否拦截了对字段的赋值,并将对象添加到Session中的脏列表中?

或者Hibernate是否查看Session中的每个对象并将其与对象的原始状态进行比较?

还是完全不同的东西?

java orm session hibernate flush

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

Java 模式变量作用域

我正在阅读 Oracle 的官方文档来了解Java 17 中的模式变量范围。在以下示例中,该方法testScope1按照文档中的说明工作,但该方法testScope2给出了编译错误。我无法弄清楚为什么void该方法的返回类型会导致问题?

interface Vehicle{}
class Car implements Vehicle{}

class Pattern{
    public int testScope1(Vehicle v){
        if(!(v instanceof Car c)){
            return 1;
        }
        System.out.println(c.toString());  //WORKS FINE
        return 2; 
    }
    public void testScope2(Vehicle v){
        if(!(v instanceof Car c)){
                 
        }
        System.out.println(c.toString());  //COMPILE TIME ERROR: Cannot resolve symbol c
    }
}
Run Code Online (Sandbox Code Playgroud)

java instanceof java-17

10
推荐指数
2
解决办法
1206
查看次数

为什么 Maven 警告故障安全 forkCount 不应为零?

我在配置forkCount中设置为零maven-failsafe-plugin,以便mvnDebug在调试时可以在测试中轻松使用和设置断点。

这会导致警告:

参数 forkCount 不应为 0,不分叉 JVM 进行测试会降低测试准确性,请确保 <forkCount> >= 1。

这是为什么?不分叉对准确性有什么影响?

maven maven-failsafe-plugin

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

在 Amazon Linux 上使用堆栈静态链接 Haskell 程序,以在 AWS Lambda 上使用

我正在尝试在 EC2 实例上构建静态链接的“hello world”Haskell 程序,以便在 AWS Lambda 上运行它。

我对“简单”stack.yaml 的唯一修改是:

ghc-options:
    "*": -static -optc-static -optl-static -optl-pthread
Run Code Online (Sandbox Code Playgroud)

我首先收到以下错误:

[ec2-user@ip-172-31-0-238 lambdatest]$ stack build
lambdatest-0.1.0.0: configure
Configuring lambdatest-0.1.0.0...
lambdatest-0.1.0.0: build
Preprocessing executable 'lambdatest' for lambdatest-0.1.0.0...
Linking .stack-work/dist/x86_64-linux/Cabal-1.22.4.0/build/lambdatest/lambdatest ...
/usr/bin/ld: cannot find -lgmp
/usr/bin/ld: cannot find -lm
/usr/bin/ld: cannot find -lrt
/usr/bin/ld: cannot find -ldl
/usr/bin/ld: cannot find -lpthread
/usr/bin/ld: cannot find -lc
collect2: error: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

我尝试的第一件事是安装 gmp-devel:

[ec2-user@ip-172-31-0-238 lambdatest]$ sudo yum install gmp-devel.x86_64
Loaded plugins: priorities, update-motd, upgrade-helper
Package …
Run Code Online (Sandbox Code Playgroud)

linux haskell amazon-ec2 haskell-stack

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

为什么我的带有嵌入式 tomcat 的 Springboot 在处理第一个请求时太慢?

环境

操作系统:macOS Mojave 版本 10.14.5(centOS 也有同样的问题)

Springboot:2.1.6.RELEASE(内嵌tomcat 9.0.21),war

我是Spring Boot的新手,我认为这对我的项目有帮助。现在我已经完成了我的工作,但是一个奇怪的现象困扰着我。我的项目响应第一个请求大约需要 5 分钟,它花费 5 分钟而不是 5 秒,第一次之后的请求似乎正常。它非常慢,所以我需要你的帮助。

jstack我的帮助下,大部分时间都花在了做下面的事情上,同样是做拆包战争。

"http-nio-15281-exec-5" #105 daemon prio=5 os_prio=31 tid=0x00007f988eaff800 nid=0x13b03 runnable [0x0000700013218000]
   java.lang.Thread.State: RUNNABLE
    at java.util.zip.Inflater.inflateBytes(Native Method)
    at java.util.zip.Inflater.inflate(Inflater.java:259)
    - locked <0x00000007bac79ab0> (a java.util.zip.ZStreamRef)
    at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:152)
    at java.util.zip.ZipInputStream.read(ZipInputStream.java:194)
    at java.util.jar.JarInputStream.read(JarInputStream.java:207)
    at java.util.zip.ZipInputStream.closeEntry(ZipInputStream.java:140)
    at java.util.zip.ZipInputStream.getNextEntry(ZipInputStream.java:118)
    at java.util.jar.JarInputStream.getNextEntry(JarInputStream.java:142)
    at java.util.jar.JarInputStream.getNextJarEntry(JarInputStream.java:179)
    at org.apache.catalina.webresources.JarWarResourceSet.getArchiveEntries(JarWarResourceSet.java:117)
    - locked <0x00000007810e7770> (a java.lang.Object)
    at org.apache.catalina.webresources.AbstractArchiveResourceSet.getResource(AbstractArchiveResourceSet.java:253)
    at org.apache.catalina.webresources.StandardRoot.getResourceInternal(StandardRoot.java:282)
    at org.apache.catalina.webresources.Cache.getResource(Cache.java:62)
    at org.apache.catalina.webresources.StandardRoot.getResource(StandardRoot.java:217)
    at org.apache.catalina.webresources.StandardRoot.getClassLoaderResource(StandardRoot.java:226)
    at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2303)
    at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:865)
    at org.springframework.boot.web.embedded.tomcat.TomcatEmbeddedWebappClassLoader.findClassIgnoringNotFound(TomcatEmbeddedWebappClassLoader.java:119)
    at org.springframework.boot.web.embedded.tomcat.TomcatEmbeddedWebappClassLoader.doLoadClass(TomcatEmbeddedWebappClassLoader.java:84)
    at …
Run Code Online (Sandbox Code Playgroud)

java performance tomcat spring-boot embedded-tomcat

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

用于计算百分比的Java算术

我的java应用程序中有一点问题.

我必须计算他们完成后的分数,我使用这种方法:

public Float ScoreProcent(int questions, int correct){
    Float x = new Float(questions);
    Float y = new Float(correct);

    Float num = (float) (100 / questions * correct);
    return num;
}
Run Code Online (Sandbox Code Playgroud)

但是,当我有38个问题且38个是正确的时,它显示76个.

java math

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

为什么我们可以说hashmap的复杂度是O(1)

我使用hashmap很长时间了,我一直相信它的复杂度是O(1)。

我知道hashmap的关键是哈希函数,它可以将一个键映射到一个值。如果哈希函数设计得好,冲突可以保持在可接受的水平。

今天我读了一个哈希函数,如下所示,它将字符串哈希为哈希码:

unsigned long hash(unsigned char *str)
{
    unsigned long hash = 5381;
    int c;

    while (c = *str++)
        hash = ((hash << 5) + hash) + c; /* hash * 33 + c */

    return hash;
}
Run Code Online (Sandbox Code Playgroud)

显然,存在一个while循环,所以它的复杂度是O(n)。

现在我很困惑。hashmap的复杂度总是O(1)吗?或者复杂度取决于我们如何设计哈希函数,这意味着如果哈希函数不够好,复杂度可能是 O(n) 甚至更糟?

c++ algorithm hashtable hashmap

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