当前位置:  技术问答>java相关

OutOfMemoryError & setString

    来源: 互联网  发布时间:2015-06-14

    本文导语:  1.我在编写一个Java Application的时候,运行时遇到一个OutOfMemoryError错误(printStack是空的),然后程序就终止了。好像不是每次都这样。这是怎么回事呢? 2.PrepareStatement的setString会把java的内部数据类型(String)转为SQL的varcha...

1.我在编写一个Java Application的时候,运行时遇到一个OutOfMemoryError错误(printStack是空的),然后程序就终止了。好像不是每次都这样。这是怎么回事呢?
2.PrepareStatement的setString会把java的内部数据类型(String)转为SQL的varchar类型是吗?我用oracle数据库,一个表中的某个字段是varchar2(2048),在程序中用setString时原以为可以判断String的length是否超过2048,若超过就在程序中截取再调setString,但是发现实际运行时还是报SQL错,说插入时字符长度超过2048了。如果判断length是否超过256就不会有问题,这和unicode有关吗?

|
1.Orcale中存储字符也使用是unicode,不会存在编码问题.
2.JVM内存空间在其启动可以通过参数设定,但根据运行情况会不断的申请或释放内存,很难控制。在一个简单的Application中出现这个问题,最好还是检查一下你的代码,看一看是否有可能有隐含的指向无用对象的句柄或者输入的数据可能过大。
3.wyalchemy的建议也有道理,JDBC的Driver和数据库要保持同样的版本,尤其是Oracle.
4.对于比较长的字符串,使用setLong和getLong,象LOB类型一样进行流操作,使用方法可以你看一看JDK API文档。用setString或getString写或读出的字符有限制(大小忘记了)。

|
按理说应该不会有你说的情况出现,贴写相关的东西出来看看再说?

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间java.lang类outofmemoryerror的类成员方法: outofmemoryerror定义及介绍
  • 第二次make时出现java.lang.OutOfMemoryError?
  • 为什么 java.lang.OutOfMemoryError
  • java.lang.OutOfMemoryError<<no stack trace available>>
  • Java OutOfMemoryError
  • java.lang.outOfMemoryError是什么错误?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3