为什么设置了heap最大内存为4096之后,只用了2048就内存溢出

数据库有六十万数据,要进行批量更新

执行程序报错

java.lang.OutOfMemoryError: Java heap space

idea内存已改

-Xms1024m

-Xmx4096m

-XX:ReservedCodeCacheSize=1024m

设置了heap最大内存为4096之后

使用visualVM查看内存发现只用了2048就溢出了,,为啥没到4096呢。

图片说明

代码如下

@Test

public void testDBUpdateBatch() throws SQLException {
    //三十万数据
    //OK,查询数据用时:235  OK,查询数据用时:348  OK,查询数据用时:214
    //OK,用时:6389         OK,用时:5179        OK,用时:5737
    //OK,查询数据用时:165
    //OK,用时:47915   大量时间消耗在for语句里面随机赋值
    Connection conn = DBUtil.getConnection();
    PreparedStatement psmt = null;
    Long startTime1 = System.currentTimeMillis();
    Statement stmt = DBUtil.getConnection().createStatement();
    ResultSet rs = stmt.executeQuery("select id from Table1 where id > 7");
    List<Integer> list = new ArrayList<>();
    while(rs.next()){//如果对象中有数据,就会循环打印出来
   //     System.out.println(rs.getInt("id")+","+rs.getString("column2"));
        list.add(rs.getInt("id"));
    }
    Long endTime1 = System.currentTimeMillis();
    System.out.println("OK,查询数据用时:" + (endTime1 - startTime1));
    Long startTime = System.currentTimeMillis();
    Random random =new Random();
    float min = 1f;
    float max = 100000000f;
    try {
        conn.setAutoCommit(false);
        String sql = "update Table1 " +
                "set idn = ? ,column2 = ? ,column2n = ? ,column3 = ?,column3n = ?,column4 = ?,column4n=?,column5=?,column5n=?,column6=?,column6n=?,column7=?,column7n=?,column8=?,column8n=?,column9=?,column9n=?,column10=?,column10n=?,column11=?,column11n=? " +
                "where id = ?";
        psmt= conn.prepareStatement(sql);
        for (Integer i : list){
            int a = random.nextInt(1000000);
            int b = random.nextInt(1000000);
            psmt.setInt(1, a);
            psmt.setString(2, UUID.randomUUID().toString());
            psmt.setString(3, UUID.randomUUID().toString());
            java.util.Date date = new java.util.Date();
            psmt.setObject(4, new Timestamp(date.getTime()));
            psmt.setObject(5, new Timestamp(date.getTime()));
            psmt.setDate(6, new Date(date.getTime()));
            psmt.setDate(7, new Date(date.getTime()));
            psmt.setBigDecimal(8, new BigDecimal(a+"."+b));
            psmt.setBigDecimal(9, new BigDecimal(a+"."+b));
            psmt.setBigDecimal(10, new BigDecimal(a+"."+b));
            psmt.setBigDecimal(11, new BigDecimal(a+"."+b));
            psmt.setFloat(12, min + random.nextFloat() * (max - min));//随机float
            psmt.setFloat(13, min + random.nextFloat() * (max - min));
            psmt.setString(14, "char"+UUID.randomUUID().toString());
            psmt.setString(15, "char"+UUID.randomUUID().toString());
            psmt.setInt(16, random.nextInt(100000000)*100);
            psmt.setInt(17, random.nextInt(100000000)*100);
            psmt.setInt(18, random.nextInt(2));
            psmt.setInt(19, random.nextInt(2));//[0,2) 生成0或者1
            psmt.setBigDecimal(20, new BigDecimal(a+"."+b));
            psmt.setBigDecimal(21, new BigDecimal(a+"."+b));
            //psmt.setInt(1, 666);
            //psmt.setString(2, "齐天大圣孙悟空");
            psmt.setInt(22, i);
            psmt.addBatch();
        }
        psmt.executeBatch();
        conn.commit();
        Long endTime = System.currentTimeMillis();
        System.out.println("OK,用时:" + (endTime - startTime));

    }catch (Exception e){
        e.printStackTrace();
    }finally {
        if(psmt!=null)psmt.close();
        if(conn!=null)conn.close();
    }

}

2个回答

4096是你这个脚本的最大内存。
怎么说呢,举例子吧,比如你有个一个中等的锅做菜。然后你看了下实际的食材,你说这些食材一个大锅是可以装得下的,于是你就做菜了。但是菜做完你懵逼了,我这个菜给配置的大锅,是完全可以装下的啊,但是为什么还漏出来了呢?原因很明显,因为实际上你只有一个中等的锅,没有大锅。但是你只看到了你计划里用到的大锅,你没看到你实际上只有个中等锅。就是这样,如果实际上你也有个大锅的话,按理来说应该是不会漏出来的。

qq47990166
qq47990166 学到了,感谢~
大约一年之前 回复
weixin_42080504
have_power 回复qq47990166: 那我直接说了,改那个该死的java虚拟机JVM内存,IDE工具里也可以看也有办法看,正常来说默认的JVM最大是你物理内存的四分之一,最小是六十四分之一,去看看吧。
大约一年之前 回复
qq47990166
qq47990166 额,没找到应该改哪
大约一年之前 回复
weixin_42080504
have_power 找你大锅的配置文件
大约一年之前 回复
qq47990166
qq47990166 能否让我实际拥有一个大锅啊
大约一年之前 回复

额,眼瞎,没看到Max值。最好获取内存溢出时的日志分析具体原因。

qq47990166
qq47990166 已经解决了~ 感谢~
大约一年之前 回复
xinnian468153
迷路的公民 回复qq47990166: 最好获取内存溢出时的内存日志进行分析,这样更好确定原因
大约一年之前 回复
qq47990166
qq47990166 64的 jdk11.0.2
大约一年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
JVM内存溢出Java heap space

报错java.lang.OutOfMemoryError: Java heap space 这个是内存溢出吧? 在网上搜索了一些资料, 说修改TOMCAT_HOME/bin/catalina.bat,在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行: set JAVA_OPTS=%JAVA_OPTS% -server -Xms800m -Xmx800m -XX:MaxNewSize=256m 但是JVM在启动的时候会自动设置Heap size的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。 这里电脑安装内存8G(8192M),1/4就是2084M,那我不是要设置-Xmx大于2084M,然后 -Xms要和-Xmx 设置一样大吗?

关于内存溢出 Java heap space

这是启动命令 nohup java -Xmx3550m -Xms3550m -XX:MaxPermSize=1024M -XX:ParallelGCThreads=20 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC ![这个是各个阶段的内存](https://img-ask.csdn.net/upload/201810/29/1540800183_263658.png) ![这个是前面的对象占用空间比例](https://img-ask.csdn.net/upload/201810/29/1540800209_792036.png) 我们业务主要有上传下载,涉及到同步需要做轮询,有的接口基本上固定五秒跑一次 现在每天大概中午的时候就会 Java heap space 也不知道是代码也没有看到死循环什么的 有没有大神指点一下

应用部署到weblogic 10.3上+jdk版本 1.6,如何设置可产生heap dump文件?

我在weblogic的配置文件setDomainEvn.sh文件中,已经配置:-XX:+HeapDumpOnOutOfMemoryError -XX:+HeapDumpOnCtrlBreak,并且在该文件中新增: export IBM_HEAPDUMP=true export IBM_HEAP_DUMP=true export IBM_HEAPDUMP_OUTOFMEMORY=true export IBM_JAVADUMP_OUTOFMEMORY=true export IBM_JAVACORE_OUTOFMEMORY=true export IBM_HEAPDUMPDIR=/weblogic/domain/ 但是,当内存溢出时,仍旧没有.hprof文件生成! 求大神赐教

请问用jmap -heap查到的大小与top查java进程占用的res内存为什么不相同?

同样的一个java进程,用top查询: PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 5466 root 15 0 2369m 106m 10m S 0.0 1.3 0:08.02 java 占用的内存RES是106m, 而用jmap -heap查到是这样: Heap Configuration: MinHeapFreeRatio = 40 MaxHeapFreeRatio = 70 MaxHeapSize = 2074083328 (1978.0MB) NewSize = 1310720 (1.25MB) MaxNewSize = 17592186044415 MB OldSize = 5439488 (5.1875MB) NewRatio = 2 SurvivorRatio = 8 PermSize = 21757952 (20.75MB) MaxPermSize = 85983232 (82.0MB) Heap Usage: PS Young Generation Eden Space: capacity = 17760256 (16.9375MB) used = 9450928 (9.013107299804688MB) free = 8309328 (7.9243927001953125MB) 53.21391763722325% used From Space: capacity = 5046272 (4.8125MB) used = 131072 (0.125MB) free = 4915200 (4.6875MB) 2.5974025974025974% used To Space: capacity = 5373952 (5.125MB) used = 0 (0.0MB) free = 5373952 (5.125MB) 0.0% used PS Old Generation capacity = 86441984 (82.4375MB) used = 34584152 (32.982017517089844MB) free = 51857832 (49.455482482910156MB) 40.00851253020755% used PS Perm Generation capacity = 21757952 (20.75MB) used = 9505648 (9.065292358398438MB) free = 12252304 (11.684707641601562MB) 43.688155944088855% used 使用的加起来51m左右 请问应该怎样查一个java进程所占用的内存? 看了一些国外的文章,说java heap查的只有堆内存和 Perm 内存的大小,JVM 中还有栈内存,JNI等,每个线程还得占据一定的内存,有没有什么命令可以查询这些内存呢?

java Xmx最大能设为多少

我机器是12G的物理内存,win7 64位的操作系统,jdk 1.7 32位的,我用eclipse的run as java application启动应用程序,启动参数设置了-Xmx1100m -Xms1100m竟然报错 Error occurred during initialization of VM Could not reserve enough space for object heap 把上面的值修改为1024m就ok了 很不理解,为啥,按照道理32位的jdk,至少能设置2G的内存吧,怎么才能1G,而且我也确认了,再出错的那个时刻,系统可用的物理内存,至少还有5G,不理解,还望各位指点

内存溢出,Java heap space,jvm垃圾回收好像没有用,内存一直在加

读取大图片的时候 BufferedImage image = ImageIO.read(is); 这个老报错,图片量一多起来就内存溢出了,内存一直增加,在eclipse配置了垃圾回 收也不行,还是一直增,不知道怎么解决,大神们指导下了 ![图片说明](https://img-ask.csdn.net/upload/201707/18/1500371436_732776.png) ![图片说明](https://img-ask.csdn.net/upload/201707/18/1500371454_266084.png)

为什么tomcat实际使用内存会超过Xmx设置

系统: jdk1.5.0_21 + tomcat-5.5.15 java配置项: JAVA_OPTS='-Xms3096m -Xmx3096m -Dsun.net.inetaddr.ttl=180' top: PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 11021 work 15 0 5439m 4.5g 19m S 99.9 57.5 2002:16 /home/work/serversoft/jdk1.5.0_21/bin/java -Xms3096m -Xmx3096m -Dsun.ne jmap 如下: ./jmap -heap 11021 Attaching to process ID 11021, please wait... Debugger attached successfully. Server compiler detected. JVM version is 1.5.0_21-b01 using thread-local object allocation. Parallel GC with 4 thread(s) Heap Configuration: MinHeapFreeRatio = 40 MaxHeapFreeRatio = 70 MaxHeapSize = 3246391296 (3096.0MB) NewSize = 2686976 (2.5625MB) MaxNewSize = -65536 (-0.0625MB) OldSize = 1835008 (1.75MB) NewRatio = 2 SurvivorRatio = 8 PermSize = 21757952 (20.75MB) MaxPermSize = 88080384 (84.0MB) Heap Usage: PS Young Generation Eden Space: capacity = 849674240 (810.3125MB) used = 484249472 (461.8162841796875MB) free = 365424768 (348.4962158203125MB) 56.992368275163905% used From Space: capacity = 2097152 (2.0MB) used = 2097152 (2.0MB) free = 0 (0.0MB) 100.0% used To Space: capacity = 5636096 (5.375MB) used = 0 (0.0MB) free = 5636096 (5.375MB) 0.0% used PS Old Generation capacity = 2164260864 (2064.0MB) used = 1473276648 (1405.0261001586914MB) free = 690984216 (658.9738998413086MB) 68.07296996892885% used PS Perm Generation capacity = 80281600 (76.5625MB) used = 45063680 (42.97607421875MB) free = 35217920 (33.58642578125MB) 56.13201530612245% used 为什么RES(4.5g) > Xmx(3G)? 是否存在内存泄漏? 我的程序中使用了JNI。 另外:我只设置了Xms 和 Xmx 是不是不起作用啊? 大家给点建议,谢谢

idea 设置内存溢出设置错了,现在启动不了,怎么在外面修改内存设置

idea 设置内存溢出设置错了,现在启动不了,怎么在外面修改内存设置

堆内存分析以查找内存泄漏

<div class="post-text" itemprop="text"> <p>In a pretty memory intense program, I'm trying to find memory leaks (or GC issues) because it eats too much memory over hours, and so decided to start pprof (by importing "net/http/pprof", starting server on 6060, and finally connecting to it with "<a href="http://localhost:6060/debug/pprof/heap?debug=1" rel="nofollow noreferrer">http://localhost:6060/debug/pprof/heap?debug=1</a>"). There are some points I don't understand, maybe somebody can help?</p> <p>First, the memory summary at the very end says (I added some ' to make i more readable):</p> <pre><code># Alloc = 4'702'361'800 # TotalAlloc = 22'597'867'947'496 # Sys = 32'198'957'880 # Lookups = 0 # Mallocs = 43'685'679'881 # Frees = 43'674'183'514 # HeapAlloc = 4'702'361'800 # HeapSys = 31'045'058'560 # HeapIdle = 25'753'124'864 # HeapInuse = 5'291'933'696 # HeapReleased = 24'779'595'776 # HeapObjects = 11'496'367 </code></pre> <p>suggesting there is 4.7GB allocated on heap (HeapUse 5.2GB, probably due to fragmentation?)... but at the very first line, I see</p> <pre><code>heap profile: 4117: 118'349'192 [33286087: 7'831'672'653'232] @ heap/1048576 </code></pre> <p>which seems to say that 118MB was seen in 4117 objects - both values are much smaller than the sizes above, how can that be, and how so I find about the other ~4.5GB? The profile seems to be about only these 120MB.</p> <p>Then I also checked the whole situation with htop (it is on a Ubuntu 18 box with 64GB of RAM). This reports for that process 37.9GB of virtual memory and 29.9GB of reserved memory. While the 29.9GB match more or less HeapSys, I don't understand the virtual memory (which I think is underlied by physical memory)... Go seems to tell me that 24GB (HeapReleased) of the 30GB was returned to the OS, but htop does not seem to see this? I also read at some place Go does never return heap back to the OS, but the Go doc says <code>HeapReleased is bytes of physical memory returned to the OS.</code>.</p> <p>A final problem: when I write a memroy dump using <code>debug.WriteHeapDump</code>, I can't read the result data back with "go tool pprof binaryfile heapdumpfile", it tells me <code>hheapdump: parsing profile: unrecognized profile format</code> and <code>failed to fetch any source profiles</code></p> </div>

tomcat设置为4g内存后不能启动?

tomcat设置为4g内存后不能启动,服务器内存为8G,怎么解决? Could not reserve enough space for object heap Could not create the Java virtual machine. Error occurred during initialization of VM 不知道有没有人遇到过,为什么tomcat6不能设置大内存?

内存溢出错误-Java heap space

环境是纯JAVA 用Eclipse开发 功能是通过API获取微博信息 之前在网上找到相关错误资料说是修改JVM的HEAP大小 但我修改后还是报错。希望大家提供解决方案或者思路 谢谢 **报错信息:** Exception in thread "main" java.lang.OutOfMemoryError: Java heap space at org.apache.commons.collections.map.ListOrderedMap.<init>(ListOrder ap.java:100) at net.sf.json.JSONObject.<init>(JSONObject.java:1450) at net.sf.json.JSONObject._fromJSONObject(JSONObject.java:919) at net.sf.json.JSONObject.fromObject(JSONObject.java:155) at net.sf.json.JSONSerializer.toJSON(JSONSerializer.java:108) at net.sf.json.AbstractJSON._processValue(AbstractJSON.java:238) at net.sf.json.JSONArray._processValue(JSONArray.java:2513) at net.sf.json.JSONArray.processValue(JSONArray.java:2538) at net.sf.json.JSONArray.addValue(JSONArray.java:2525) at net.sf.json.JSONArray._fromJSONArray(JSONArray.java:1096) at net.sf.json.JSONArray.fromObject(JSONArray.java:121) at net.sf.json.JSONSerializer.toJSON(JSONSerializer.java:105) at net.sf.json.AbstractJSON._processValue(AbstractJSON.java:238) at net.sf.json.JSONObject._processValue(JSONObject.java:2655) at net.sf.json.JSONObject.processValue(JSONObject.java:2721) at net.sf.json.JSONObject.setInternal(JSONObject.java:2736) at net.sf.json.JSONObject._fromJSONObject(JSONObject.java:944) at net.sf.json.JSONObject.fromObject(JSONObject.java:155) at net.sf.json.JSONSerializer.toJSON(JSONSerializer.java:108) at net.sf.json.AbstractJSON._processValue(AbstractJSON.java:238) at net.sf.json.JSONObject._processValue(JSONObject.java:2655) at net.sf.json.JSONObject.processValue(JSONObject.java:2721) at net.sf.json.JSONObject.setInternal(JSONObject.java:2736) at net.sf.json.JSONObject._fromJSONObject(JSONObject.java:944) at net.sf.json.JSONObject.fromObject(JSONObject.java:155) at net.sf.json.JSONSerializer.toJSON(JSONSerializer.java:108) at net.sf.json.AbstractJSON._processValue(AbstractJSON.java:238) at net.sf.json.JSONArray._processValue(JSONArray.java:2513) at net.sf.json.JSONArray.processValue(JSONArray.java:2538) at net.sf.json.JSONArray.addValue(JSONArray.java:2525) at net.sf.json.JSONArray._fromJSONArray(JSONArray.java:1096) at net.sf.json.JSONArray.fromObject(JSONArray.java:121)

编译ARM提示heap空间不足

环境: virutualbox虚拟机 ubuntu 32bit 编译器: arm-none-eabi-gcc 问题:编译提示heap空间不足,具体提示如下图: ![图片说明](https://img-ask.csdn.net/upload/201606/22/1466559731_568020.png) 尝试过扩大虚拟机内存,增大到2G,但是问题依然。 请问这是为什么?? 谢谢

关于tomcat报OutOfMemoryError: Java heap space

我有台16G内存的服务器,JVM用的默认值(听说默认最小是1/64,最大是1/4即256M和4096M), 但是运行一段时间后报了java.lang.OutOfMemoryError: Java heap space异常,tomcat也挂了,我远程服务器上去看,发现tomcat只占了40万K的内存, 总内存也只占用了20%,倒是CPU占在70%(正常情况下应该是10%以下)。 求支招啊,怎么解决。 我觉得应该是程序陷入了某个死循环,但是我不知道这个bug在哪(有没有可以监控请求所占用资源的东东呢),还有没有其他什么可能会造成这种情况呢?

为什么golang中的内存不减少?

<div class="post-text" itemprop="text"> <p>When the server started , the memory it took was about 83MB, which I checked by <code>top</code>. And When some connections were accepted and did something , the memory it took was about 500MB, Then, I closed all the connections and server cleard all the structs, after sometime, the memory decreased a little , about 30MB.The memory didn't return to the level when the server started. </p> <p>when server started , I looked up heap info</p> <pre><code># runtime.MemStats # Alloc = 7251528 # TotalAlloc = 52713992 # Sys = 15010040 # Lookups = 49 # Mallocs = 2072338 # Frees = 2038576 # HeapAlloc = 7251528 # HeapSys = 12025856 # HeapIdle = 2121728 # HeapInuse = 9904128 # HeapReleased = 0 # HeapObjects = 33762 # Stack = 425984 / 425984 # MSpan = 75504 / 81920 # MCache = 4800 / 16384 # BuckHashSys = 1457768 # NextGC = 11496656 </code></pre> <p>And when all connections closed, after sometime and gc, I looked up again</p> <pre><code># runtime.MemStats # Alloc = 5845912 # TotalAlloc = 13053679584 # Sys = 73128248 # Lookups = 794 # Mallocs = 22728491 # Frees = 22699056 # HeapAlloc = 5845912 # HeapSys = 60112896 # HeapIdle = 52166656 # HeapInuse = 7946240 # HeapReleased = 0 # HeapObjects = 29435 # Stack = 3719168 / 3719168 # MSpan = 88608 / 180224 # MCache = 4800 / 16384 # BuckHashSys = 1597264 # NextGC = 9428528 </code></pre> <p>And I didn't know why it decrease so little. Because I have already clear the variables saved in server. Would anyone give some advice on how I find the problom?</p> <p>PS. It is not concerned about goroutine, I checked it, and the numbers of goroutine didn't increase. And I already use pprof and open gcdebug.</p> </div>

如何查看jvm的堆(Heap)?

> http://geek.csdn.net/news/detail/124175 他怎么看到Heap里的情况的? ![图片说明](https://img-ask.csdn.net/upload/201611/17/1479359061_413729.png)

java.lang.OutOfMemoryError: Java heap space java内存溢出问题 有错误信息

2013-12-26 11:18:09 [ERROR]-[rmss:165] Housekeeping log.error( : java.lang.OutOfMemoryError: Java heap space at java.lang.AbstractStringBuilder.<init>(AbstractStringBuilder.java:45) at java.lang.StringBuilder.<init>(StringBuilder.java:68) at org.logicalcobwebs.proxool.HouseKeeper.sweep(HouseKeeper.java:90) at org.logicalcobwebs.proxool.HouseKeeperThread.run(HouseKeeperThread.java:39) 2013-12-26 11:18:09 [ERROR]-[rmss:105] Prototype org.logicalcobwebs.proxool.ProxoolException: Unexpected prototyping problem at org.logicalcobwebs.proxool.Prototyper.buildConnection(Prototyper.java:229) at org.logicalcobwebs.proxool.Prototyper.sweep(Prototyper.java:102) at org.logicalcobwebs.proxool.PrototyperThread.run(PrototyperThread.java:44) Caused by: java.lang.OutOfMemoryError: Java heap space at sun.security.util.DerInputBuffer.toByteArray(DerInputBuffer.java:51) at sun.security.util.DerInputStream.toByteArray(DerInputStream.java:131) at sun.security.x509.X500Name.parseDER(X500Name.java:767) at sun.security.x509.X500Name.<init>(X500Name.java:290) at sun.security.x509.CertificateIssuerName.<init>(CertificateIssuerName.java:65) at sun.security.x509.X509CertInfo.parse(X509CertInfo.java:668) at sun.security.x509.X509CertInfo.<init>(X509CertInfo.java:152) at sun.security.x509.X509CertImpl.parse(X509CertImpl.java:1729) at sun.security.x509.X509CertImpl.<init>(X509CertImpl.java:179) at sun.security.provider.X509Factory.engineGenerateCertificate(X509Factory.java:90) at java.security.cert.CertificateFactory.generateCertificate(CertificateFactory.java:305) at com.sun.net.ssl.internal.ssl.HandshakeMessage$CertificateMsg.<init>(HandshakeMessage.java:404) at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:124) at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:516) at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:454) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:884) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1112) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1139) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1123) at com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(Unknown Source) at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(Unknown Source) at com.microsoft.sqlserver.jdbc.SQLServerConnection.loginWithoutFailover(Unknown Source) at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(Unknown Source) at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(Unknown Source) at java.sql.DriverManager.getConnection(DriverManager.java:582) at java.sql.DriverManager.getConnection(DriverManager.java:154) at org.logicalcobwebs.proxool.DefaultConnectionBuilder.buildConnection(DefaultConnectionBuilder.java:39) at org.logicalcobwebs.proxool.Prototyper.buildConnection(Prototyper.java:159) ... 2 more Caused by: java.lang.OutOfMemoryError: Java heap space at sun.security.util.DerInputBuffer.toByteArray(DerInputBuffer.java:51) at sun.security.util.DerInputStream.toByteArray(DerInputStream.java:131) at sun.security.x509.X500Name.parseDER(X500Name.java:767) at sun.security.x509.X500Name.<init>(X500Name.java:290) at sun.security.x509.CertificateIssuerName.<init>(CertificateIssuerName.java:65) at sun.security.x509.X509CertInfo.parse(X509CertInfo.java:668) at sun.security.x509.X509CertInfo.<init>(X509CertInfo.java:152) at sun.security.x509.X509CertImpl.parse(X509CertImpl.java:1729) at sun.security.x509.X509CertImpl.<init>(X509CertImpl.java:179) at sun.security.provider.X509Factory.engineGenerateCertificate(X509Factory.java:90) at java.security.cert.CertificateFactory.generateCertificate(CertificateFactory.java:305) at com.sun.net.ssl.internal.ssl.HandshakeMessage$CertificateMsg.<init>(HandshakeMessage.java:404) at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:124) at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:516) at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:454) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:884) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1112) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1139) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1123) at com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(Unknown Source) at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(Unknown Source) at com.microsoft.sqlserver.jdbc.SQLServerConnection.loginWithoutFailover(Unknown Source) at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(Unknown Source) at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(Unknown Source) at java.sql.DriverManager.getConnection(DriverManager.java:582) at java.sql.DriverManager.getConnection(DriverManager.java:154) at org.logicalcobwebs.proxool.DefaultConnectionBuilder.buildConnection(DefaultConnectionBuilder.java:39) at org.logicalcobwebs.proxool.Prototyper.buildConnection(Prototyper.java:159) at org.logicalcobwebs.proxool.Prototyper.sweep(Prototyper.java:102) at org.logicalcobwebs.proxool.PrototyperThread.run(PrototyperThread.java:44) 将excle数据读取后插入数据库出错

jboss 设置jvm,内存占用过多情况

JAVA_OPTS="-Xss256k -Xms4000m -Xmx8000m -Xmn2000m -XX:MaxNewSize=512m -XX:MaxPermSize=512M -XX:+UseParallelGC -XX:ParallelGCThreads=16 -XX:-UseGCOverheadLimit -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/app/corefile/ -XX:+UseParallelOldGC -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000" 这个是我jboss7.1.1 中 bin 目录下 standalone.conf 文件中的配置,机器为32G内存,现在这个配置用top命令查看系统内存一直在增加,在超过最高限之后cpu使用率就会增加很多,然后jboss就会卡死了。 有没有jboss优化的大神碰到过这种情况,谢谢!

Java上运行Strassen算法,显示Java Heap Space异常,根据网上修改设置也没用

Java上运行Strassen算法,数据规模大于10000,显示Java Heap Space异常,根据网上修改设置也没用,显示是动态数组建立有问题,应该怎么修改??谢谢。

为什么要把-Xms、-Xmx设置成相等的值?

> http://zhouanya.blog.51cto.com/4944792/1370017/ 7) 优化配置。 a.设置-Xms、-Xmx相等; b.设置NewSize、MaxNewSize相等; c.设置Heap size, PermGen space: 网上很多文章说,设置-Xms和-Xmx相等,解释说这样jvm就不会动态的调整内存的大小了,动态调整大小会很耗费性能吗?当虚拟机需要大量内存的时候,就自动给分配大量的内存,不需要的时候,就把内存调的小一些,这很符合逻辑啊!

大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了

大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

程序员请照顾好自己,周末病魔差点一套带走我。

程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。

ArrayList源码分析(入门篇)

ArrayList源码分析 前言: 写这篇博客的主要原因是,在我上一次参加千牵科技Java实习生面试时,有被面试官问到ArrayList为什么查找的速度较快,插入和删除的速度较慢?当时我回答得不好,很大的一部分原因是因为我没有阅读过ArrayList源码,虽然最后收到Offer了,但我拒绝了,打算寒假学得再深入些再广泛些,下学期开学后再去投递其他更好的公司。为了更加深入理解ArrayList,也为

我以为我学懂了数据结构,直到看了这个导图才发现,我错了

数据结构与算法思维导图

String s = new String(" a ") 到底产生几个对象?

老生常谈的一个梗,到2020了还在争论,你们一天天的,哎哎哎,我不是针对你一个,我是说在座的各位都是人才! 上图红色的这3个箭头,对于通过new产生一个字符串(”宜春”)时,会先去常量池中查找是否已经有了”宜春”对象,如果没有则在常量池中创建一个此字符串对象,然后堆中再创建一个常量池中此”宜春”对象的拷贝对象。 也就是说准确答案是产生了一个或两个对象,如果常量池中原来没有 ”宜春” ,就是两个。...

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

讲一个程序员如何副业月赚三万的真实故事

loonggg读完需要3分钟速读仅需 1 分钟大家好,我是你们的校长。我之前讲过,这年头,只要肯动脑,肯行动,程序员凭借自己的技术,赚钱的方式还是有很多种的。仅仅靠在公司出卖自己的劳动时...

上班一个月,后悔当初着急入职的选择了

最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了。他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能没有收入来源。所以匆忙选了一家公司,实际上是一个大型外包公司,主要派遣给其他手机厂商做外包项目。**当时承诺待遇还不错,所以就立马入职去上班了。但是后面入职后,发现薪酬待遇这块并不是HR所说那样,那个HR自...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

玩转springboot启动banner定义所得

最近接手了一个springboot项目,不是不熟悉这个框架,启动时打印的信息吸引了我。 这不是我熟悉的常用springboot的打印信息啊,我打开自己的项目: 还真是的,不用默认的感觉也挺高大上的。一时兴起,就去研究了一下源代码,还正是有些收获,稍后我会总结一下。正常情况下做为一个老程序员,是不会对这种小儿科感兴趣的,不就是一个控制台打印嘛。哈哈! 于是出于最初的好奇,研究了项目的源代码。看到

带了6个月的徒弟当了面试官,而身为高级工程师的我天天修Bug......

即将毕业的应届毕业生一枚,现在只拿到了两家offer,但最近听到一些消息,其中一个offer,我这个组据说客户很少,很有可能整组被裁掉。 想问大家: 如果我刚入职这个组就被裁了怎么办呢? 大家都是什么时候知道自己要被裁了的? 面试软技能指导: BQ/Project/Resume 试听内容: 除了刷题,还有哪些技能是拿到offer不可或缺的要素 如何提升面试软实力:简历, 行为面试,沟通能...

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

男生更看重女生的身材脸蛋,还是思想?

往往,我们看不进去大段大段的逻辑。深刻的哲理,往往短而精悍,一阵见血。问:产品经理挺漂亮的,有点心动,但不知道合不合得来。男生更看重女生的身材脸蛋,还是...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发(16k)

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

终于懂了TCP和UDP协议区别

终于懂了TCP和UDP协议区别

你打算用Java 8一辈子都不打算升级到Java 14,真香

我们程序员应该抱着尝鲜、猎奇的心态,否则就容易固步自封,技术停滞不前。

无代码时代来临,程序员如何保住饭碗?

编程语言层出不穷,从最初的机器语言到如今2500种以上的高级语言,程序员们大呼“学到头秃”。程序员一边面临编程语言不断推陈出新,一边面临由于许多代码已存在,程序员编写新应用程序时存在重复“搬砖”的现象。 无代码/低代码编程应运而生。无代码/低代码是一种创建应用的方法,它可以让开发者使用最少的编码知识来快速开发应用程序。开发者通过图形界面中,可视化建模来组装和配置应用程序。这样一来,开发者直...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

《经典算法案例》01-08:如何使用质数设计扫雷(Minesweeper)游戏

我们都玩过Windows操作系统中的经典游戏扫雷(Minesweeper),如果把质数当作一颗雷,那么,表格中红色的数字哪些是雷(质数)?您能找出多少个呢?文中用列表的方式罗列了10000以内的自然数、质数(素数),6的倍数等,方便大家观察质数的分布规律及特性,以便对算法求解有指导意义。另外,判断质数是初学算法,理解算法重要性的一个非常好的案例。

立即提问
相关内容推荐