java开发相关的问题
来源:南宁优就业IT培训学校时间:2021/4/25 11:24:21
java开发常见的问题
进程异常退出
系统OOM Killer//grep kill/var/log/messages,查看kill时对应的内存占用total-vm,anon-rss,file-rss。
人为的kill//history|grep-i kill。
代码代用system.exit()//反查代码。
JVM自身bug//DirectMemory的默认大小是64M,而JDK6之前和JDK6的某些版本的SUN JVM,存在一个BUG,在用-Xmx设定堆空间大小的时候,也设置了DirectMemory的大小。加入设置了-Xmx2048m,那么jvm终可分配的内存大小为4G多一些,是预期的两倍。解决方式是设置jvm参数-XX:MaxDirectMemorySize=128m,指定DirectMemory的大小。
内存问题//内存不足,比如申请一个大的对象的时间。不能及时gc。
native stack溢出导致//不受jvm控制,但是被java占用的。
索引越界异常。当访问某个序列的索引值小于0或大于等于序列大小时,抛出该异常,java.lang.IndexOutOfBoundsException。遇到该问题,需检查索引值是否正确。
空指针异常。这个是java开发中常见的问题之一,碰到空指针异常,首先需要定位是哪一句出现了异常,然后再判断是那个对象出现了异常。
类型转换异常。java.lang.ClassCastException。如果你知道要访问的的对象的具体类型,直接转换成该类型即可。如果不能确定类型可以通过下面的两种方式进行处理,通过o.getClass().getName()得到具体的类型,可以通过输出语句输出这个类型,然后根据类型进行进行具体的处理。通过if的语句来判断o的类型是什么。
内存溢出异常。ava.lang.OutOfMemoryError。我们可以通过手动改变tomcat启动时的MaxPermSize和PermSize。
文件找不到异常。java.io.FileNotFoundException也是我们在开发中经常遇到的问题。抛出该异常时,我们需要去检查文件路径是否正确,或者是否存在。
jdk版本不同导致的异常,此时我们需要检查jdk版本。
尊重原创文章,转载请注明出处与链接:http://www.peixun360.com/3175/news/350807/违者必究!
以上就是南宁优就业IT培训学校 小编为您整理 java开发相关的问题的全部内容。