java常见错误集锦

合集下载

java常见错误以及可能原因集锦

java常见错误以及可能原因集锦

java常见错误以及可能原因集锦java常见错误以及可能原因集锦0、需要标识符a) 不在函数内1、非法表达式开始b) 可能:丢失括号 .2. no data founda) 可能:setInt(1,100)中,没有100这个值3. 找不到符号a) 可能:没导入包4. 指定了无效URLa) 可能:数据库名或IP错误,即连接出错5. 类路径没有找到a) 可能: ClassNotFoundException: oracle.jdbc.driver.OracleDriverb) 原因: 一般是指包名写错,或者没有import包,或者没有在类路径中找到jar文件c) 解决: 没有加载Oracle驱动jar,在.bash_profile中把ojdbc14.jar加进来6. 空指针异常a) 可能: 数据源错误比如数据库名或IP错误7. 不能执行查询a) 可能: 数据库中表的问题,比如列名不存在8. invalid identitya) 可能: 列名出错9. 若在数据库中创建了两个sequence ,运行时出现异常可能是先后执行了多次select 语句,导致与原有的序列号产生冲突10. 表名或列名不存在a) 可能:表不存在或者没有插入数据到表中11. 不支持的类,类的版本错误a) 可能:没有导入jdk5.0,或者编译器仍为1.412. MappingNotFoundExceptiona) Maybe: In the Eclipse Not refersh , or not exist in the dirctory13. HibernateException: /hibernate.cfg.xml not founda) Maybe1: hibernate.cfg.xml not in the root directoryb) Maybe2: Could not parse configuration .c) resolve: database not connect or use another database14. ConstraintViolationExceptiona) Maybe: used a not true database15. 驱动没有找到或者 JDBC Driver not found可能:连接数据库的驱动jar包不存在或者版本不一致,比如将旧的版本换成新的会造成该类错误16. 空指针异常,/doc/e411973287.html,ng.NullPointerExce ptiona) 可能1:数据库连接出错,比如在hibernate.cfg.xml中的数据错误会导致异常。

审查Java代码的十一种常见错误

审查Java代码的十一种常见错误

代码审查是消灭Bug最重要的方法之一,这些审查在大多数时候都特别奏效。

由于代码审查本身所针对的对象,就是俯瞰整个代码在测试过程中的问题和Bug。

并且,代码审查对消除一些特别细节的错误大有裨益,尤其是那些能够容易在阅读代码的时候发现的错误,这些错误往往不容易通过机器上的测试识别出来。

本文就常见的Java代码中容易出现的问题提出一些建设性建议,以便您在审查代码的过程中注意到这些常见的细节性错误。

通常给别人的工作挑错要比找自己的错容易些。

别样视角的存在也解释了为什么作者需要编辑,而运动员需要教练的原因。

不仅不应当拒绝别人的批评,我们应该欢迎别人来发现并指出我们的编程工作中的不足之处,我们会受益匪浅的。

正规的代码审查(code inspection)是提高代码质量的最强大的技术之一,代码审查—由同事们寻找代码中的错误—所发现的错误与在测试中所发现的错误不同,因此两者的关系是互补的,而非竞争的。

如果审查者能够有意识地寻找特定的错误,而不是*漫无目的的浏览代码来发现错误,那么代码审查的效果会事半功倍。

在这篇文章中,我列出了11个Java编程中常见的错误。

你可以把这些错误添加到你的代码审查的检查列表(checklist)中,这样在经过代码审查后,你可以确信你的代码中不再存在这类错误了。

一、常见错误1# :多次拷贝字符串测试所不能发现的一个错误是生成不可变(immutable)对象的多份拷贝。

不可变对象是不可改变的,因此不需要拷贝它。

最常用的不可变对象是String。

如果你必须改变一个String对象的内容,你应该使用StringBuffer。

下面的代码会正常工作:String s = new String ("Text here");但是,这段代码性能差,而且没有必要这么复杂。

你还可以用以下的方式来重写上面的代码:String temp = "Text here";String s = new String (temp);但是这段代码包含额外的String,并非完全必要。

java中常见错误

java中常见错误

java中常见错误编译器错误编译器错误信息是在Java软件代码通过编译器运⾏时创建的.⼀定要记住,编译器可能会为⼀个错误抛出许多错误信息.因此,修复第⼀个错误并重新编译,可以解决很多问题。

1. “… expected”缺少分号";"或右括号")"private static double volume(String solidom, double alturam, double areaBasem, double raiom) {double vol;if (solidom.equalsIgnoreCase("esfera"){vol=(4.0/3)*Math.pi*Math.pow(raiom,3);}else {if (solidom.equalsIgnoreCase("cilindro") {vol=Math.pi*Math.pow(raiom,2)*alturam;}else {vol=(1.0/3)*Math.pi*Math.pow(raiom,2)*alturam;}}return vol;}2. “unclosed string literal”字符串不以引号结束public abstract class NFLPlayersReference {private static Runningback[] nflplayersreference;private static Quarterback[] players;private static WideReceiver[] nflplayers;public static void main(String args[]){Runningback r = new Runningback("Thomlinsion");Quarterback q = new Quarterback("Tom Brady");WideReceiver w = new WideReceiver("Steve Smith");NFLPlayersReference[] NFLPlayersReference;Run();// {NFLPlayersReference = new NFLPlayersReference [3];nflplayersreference[0] = r;players[1] = q;nflplayers[2] = w;for ( int i = 0; i < nflplayersreference.length; i++ ) {System.out.println("My name is " + " nflplayersreference[i].getName());nflplayersreference[i].run();nflplayersreference[i].run();nflplayersreference[i].run();System.out.println("NFL offensive threats have great running abilities!");}}private static void Run() {System.out.println("Not yet implemented");}}3. “illegal start of an expression”产⽣原因很多,错误信息帮助不⼤} // ADD IT HEREpublic void newShape(String shape) {switch (shape) {case "Line":Shape line = new Line(startX, startY, endX, endY);shapes.add(line);break;case "Oval":Shape oval = new Oval(startX, startY, endX, endY);shapes.add(oval);break;case "Rectangle":Shape rectangle = new Rectangle(startX, startY, endX, endY);shapes.add(rectangle);break;default:System.out.println("ERROR. Check logic.");}}} // REMOVE IT FROM HERE}4. “cannot find symbol”标识符在声明时的拼写可能与在代码中使⽤时不同变量未被声明变量在声明的范围之外使⽤没有导⼊类5. “public class XXX should be in file”类名和⽂件名不匹配package javaapplication3;public class Robot {int xlocation;int ylocation;String name;static int ccount = 0;public Robot(int xxlocation, int yylocation, String nname) {xlocation = xxlocation;ylocation = yylocation;name = nname;ccount++;}}public class JavaApplication1 {public static void main(String[] args) {robot firstRobot = new Robot(34,51,"yossi");System.out.println("numebr of robots is now " + ount);}}6. “incompatible types”类型不⼀致test.java:78: error: incompatible typesreturn stringBuilder.toString();required: intfound: String1 error7. “invalid method declaration; return type required”没有声明返回类型public class Circle{private double radius;public CircleR(double r){radius = r;}public diameter(){double d = radius * 2;return d;}}8. “method in class cannot be applied to given types”⼊参类型错误RandomNumbers.java:9: error: method generateNumbers in class RandomNumbers cannot be applied to given types; generateNumbers();required: int[]found:generateNumbers();reason: actual and formal argument lists differ in length9. “missing return statement”没有写返回语句public String[] OpenFile() throws IOException {Map<String, Double> map = new HashMap();FileReader fr = new FileReader("money.txt");BufferedReader br = new BufferedReader(fr);try{while (br.ready()){String str = br.readLine();String[] list = str.split(" ");System.out.println(list);}}catch (IOException e){System.err.println("Error - IOException!");}}10. “possible loss of precision”精度丢失,如将实数赋值给 int 类型的变量将 double 类型数据赋值给 int 类型的变量11. “reached end of file while parsing”缺少"}"public class mod_MyMod extends BaseModpublic String Version(){return "1.2_02";}public void AddRecipes(CraftingManager recipes){recipes.addRecipe(new ItemStack(Item.diamond), new Object[] {"#", Character.valueOf('#'), Block.dirt});}12. “unreachable statement”存在语句执⾏不到for(;;){break;... // unreachable statement}int i=1;if(i==1)...else... // dead code13. “variable might not have been initialized”变量未初始化int x;if (condition) {x = 5;}System.out.println(x); // x may not have been initialized14. “Operator .. cannot be applied to ”使⽤了未定义的类型operator < cannot be applied to ng.Object,ng.Object15. “inconvertible types”类型⽆法强转,如: 布尔值⽆法转为整型TypeInvocationConversionTest.java:12: inconvertible types found : java.util.ArrayList<ng.Class<? extends TypeInvocationConversionTest.Interface1>> required: java.util.ArrayList<ng.Class<?>>lessRestrictiveClassList = (ArrayList<Class<?>>) classList;16. “missing return value”没有出参或出参类型不正确17. “cannot return a value from method whose result type is void”返回值类型为 void,但是有返回值public static void move(){System.out.println("What do you want to do?");Scanner scan = new Scanner(System.in);int userMove = scan.nextInt();return userMove;}18. “non-static variable . . . cannot be referenced from a static context”静态⽅法引⽤⾮静态变量public class StaticTest {private int count=0;public static void main(String args[]) throws IOException {count++; //compiler error: non-static variable count cannot be referenced from a static context}}19. “non-static method . . . cannot be referenced from a static context”class Sample{private int age;public void setAge(int a){age=a;}public int getAge(){return age;}public static void main(String args[]){System.out.println(“Age is:”+ getAge());}}20. “(array) not initialized”声明了数组,但没有初始化AClass[] array = {object1, object2}As is:AClass[] array = new AClass[2];…array[0] = object1;array[1] = object2;But not:AClass[] array;…array = {object1, object2};。

java的常见问题及解决方法

java的常见问题及解决方法

1."mons.collections.SequencedHashMap"'s signer information does not match signer information of other classes in the same package这是由于struts提供的commons-beanutils.jar和hibernate提供的commons-collections.jar冲突成的,可以从spring提供的lib中找到这个两个jarng.IllegalStateException: No data type for node:org.hibernate.hql.ast.tree.IdentNode用hql 时,忘了给表名加别名,如select p from Position,应该是select p from Position p3.The Server didn 't send back a proper XML response用FCKEditor时原因:解析不了xml文件解决方法:情况一:web.xml的配置是否正确,具体查看《FCKEditor使用指南.pdf》,还有fckeditor自带的几个jar 包情况二:加入serializer.jar,xalan.jar情况三:把项目下的fckeditor包删了,重新加入一遍.eclipse.swt.SWTError: No more handles [Unknown Mozilla path (MOZILLA_FIVE_HOME not set)]SWTError:没有更多的处理[未知Mozilla的路径(MOZILLA_FIVE_HOME未设置)]环境:linux下运行swt程序(我出现此问题是,在linux下嵌套浏览器)原因:firefox版本不一致解决:重装一个firefox,并设置相关变量5.Exception in thread "main" org.eclipse.swt.SWTError: No more handles [Could not detect registered XULRunner to use]环境:用XULRunner 在java application中嵌套浏览器原因:没有注册XULRunner解决:window下环境中,在程序中加入,如(第二个参数是下载解压后的存放路径):static{System.setProperty("org.eclipse.swt.browser.XULRunnerPath", "C:\\xulrunner");}6.Exception in thread "main" ng.UnsatisfiedLinkError: noswt-win32-3536 or swt-win32 in swt.library.path, java.library.path or the jar file环境:用DJ Natvie Swing时,在java application中嵌套浏览器,且在windows环境下运行正常,但在linux下却包此异常原因:windows下与linux下使用的swt jar包不一样解决:在windows下用swt-3.5M6-win32-win32-x86.jar,在linux下用swt-3.5.1-gtk-linux-x86.jar7.Exception in thread "main" .ProtocolException:cannot write to a URLConnection if doOutput=false - call setDoOutput(true)环境:用URLConnection送某url发送数据时原因:doOutput=false时,不能发送数据解决:如urlConnection.setDoOutput(true).SocketException: Connection resetat .SocketInputStream.read(SocketInputStream.java:168)at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264)at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306)at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158)at java.io.InputStreamReader.read(InputStreamReader.java:167)at java.io.BufferedReader.fill(BufferedReader.java:136)at java.io.BufferedReader.readLine(BufferedReader.java:299)at java.io.BufferedReader.readLine(BufferedReader.java:362)at com.eagle.service.AutoUpdate.run(AutoUpdate.java:43)环境:j2se socket编程时,服务器端报错原因1:服务器端用BufferedReader,时,没有读到一行解决:客户端用PrintWriter, pw.println(),不能用pw.print(),因为br.readLine()是读一行环境:j2se socket编程时,服务器端/客户端在br.readLine()时报错原因2:服务器端用BufferedReader,br.readLine()时,客户端/服务器已经退出,但是并未通过服务器/客户端,即服务器端/客户端的socket还没有关闭,当用br.readLine()时就会出现这种情况解决:在关闭客户端时要socket.close(),同时还要向服务器发送一条退出的信息,这样让服务器知道某个客户端已经关闭,它就可以终止对此客户端的线程了,反之服务器也是一样.hibernate.PropertyAccessException: Null value was assigned toa property of primitive type setter of er环境:hibernate原因:oolean类型的值为null,boolean类型的值必须是true/false解决:save or update时给boolean类型的值赋true/false10.用占位符查询时出现空指针ng.NullPointerExceptionatorg.hibernate.hql.ast.ParameterTranslationsImpl.getNamedParameterExpectedType(ParameterTranslat ionsImpl.java:63)at org.hibernate.engine.query.HQLQueryPlan.buildParameterMetadata(HQLQueryPlan.java:245)at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:95)at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:54)at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:71)at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133)at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112)at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1583)at .struts.action.LoginAction.execute(LoginAction.java:72)at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)atorg.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11Ba seProtocol.java:664)at .PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)at .LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)at ng.Thread.run(Thread.java:595)环境:hibernate原因:HQL 不能解析解决:错误写法:String hql = "select m from com.eagle.oa.model.Message m where m.ids like: id";正确写法:String hql = "select m from com.eagle.oa.model.Message m where m.ids like:id";ng.IndexOutOfBoundsException: Remember that ordinal parameters are 1-based!原因:在使用hibernate的session.createQuery(.....)时设置参数的下标应该从0开始解决:如:return session.createQuery("from User u where erName = ? and password = ?").setParameter(0, name).setParameter(1, password).uniqueResult();.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: com.wxj.entities.Group环境:hibernate原因:某个实例的属性一个对象,这个对象没有保存,还是暂态的对象解决:先保存这个对象,或是在另一端加inverse = true13.ORA-01461: can bind a LONG value only for insert into a LONG column环境:oracle原因:jar冲突解决:换成classes12.jar包即可14.ERROR LazyInitializationException:19 - could not initialize proxy - the owning Session was closed环境:SSH原因:当一个类或属性设置了lazy="true",操作对象时,session已经关闭了解决:使用Spring的过滤器openSessionInView.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in read-only mode (FlushMode.NEVER/MANUAL): Turn your Session into MIT/AUTO or remove 'readOnly' marker from transaction definition.环境:SSH原因:这个异常产生的主要原因是DAO采用了Spring容器的事务管理策略,如果操作方法的名称和事务策略中指定的被管理的名称不能够匹配上,spring 就会采取默认的事务管理策略(PROPAGATION_REQUIRED,read only).如果是插入和修改操作,就不被允许的,所以包这个异常解决:修改spring配置文件中相关事务管理部分mon.beans.ProbeException: There is no READABLE property named 'eid' in class 'com.wxj.entity.Student'环境:ibatis原因:在给对象做操作,设置参数时,指定的参数不是对象中有的属性,就会抛出此异常解决:核对对象的属性ng.OutOfMemoryError: PermGen space环境:很多,如ssh整合时原因:不断的更新class,造成应用重启,最终造成代码区的内存空间满了解决:方法很多,1重启,2增加代码区的大小,3少更新class,4有时可能是log4j造成的问题,建议使用common-loggin.jar 5,优化代码以下来自CSDN的jinhuiyu:在JVM中如果98%的时间是用于GC且可用的Heap size 不足2%的时候将抛出此异常信息,可以用如下方法解决(根据你的实际情况设置大小),但是这只是临时的解决方法,更重要的是改造你的CODE1.可以在windows 更改系统环境变量加上JAVA_OPTS=-Xms64m -Xmx512m2,如果用的tomcat,在windows下,可以在C:\tomcat5.5.9\bin\catalina.bat 中加上:set JAVA_OPTS=-Xms64m -Xmx256m位置在: rem Guess CATALINA_HOME if not defined 这行的下面加合适.3.如果是linux系统Linux 在{tomcat_home}/bin/catalina.sh的前面,加set JAVA_OPTS='-Xms64 -Xmx512'18.在客户端使用dwr时,即跨域访问时,出现“拒绝访问“及“找不到某个属性”的问题(在服务器端调用时却正常)环境:在客户端使用dwr原因:1。

Java中常见错误和异常解决方法(打印)要点

Java中常见错误和异常解决方法(打印)要点

ng.NullPointerException原因是:有空指针,有地址没赋值2.Exception in thread "main" ng.ArithmeticException: / by zero原因是除数是03.ArrayIndexOutOfBoundsException原因是:数组越界ng.NumberFormatException原因是:数字格式化有问题5.Unhandled exception type Exception原因是:没有进行异常处理6.进行国际化操作的时候遇到这样的错误:Exception in thread "main" java.util.MissingResourceException: Can't find bundle for base name Message, locale zh_CN答:因为在命令提示符中,是没有错误的解决方法是:在myeclipse中,会出现这个错误java国际化之Can't find bundle for base name1.初步学习最近在学习ResourseBundle时遇到了“Can't find bundle for base name ”这个错误搞了很久才解决了。

原因就是类路径问题要将属性文件放在类路径中!百度里很多都是教程但没有涉及到解决方法!2.中文显示:测试文件java 代码package com.lht.ResourseBundleStudy;import java.util.ResourceBundle;public class ResourseBundleDemo {public static void main(String[] args) {ResourceBundle resource = ResourceBundle.getBundle("test");System.out.print(resource.getString("msg0") + "!");System.out.println(resource.getString("msg1") + "!"); }}test.propertiesmsg0="Hello World"msg1="da jia hao"开始自己测试的时候:将属性文件放在bin/下也试过也不行无赖中就在google中搜索了一下终于在sun的java论坛(/thread.jspa?threadID=660477&messageID=4231534)中找到了线索下面是帖子的内容:I've solved the problem the best way possible. Basically what i've done is added a new class folder named config to the project home dir. Then i added this classfolder to the classpath in project properties. After doing all of this you only need to reference the properties file by "Email".Hope this helps anyone else who is having similiar problems.基本意思就是在src下建立classes(名字无所谓)文件夹将属性文件存放在下面,然后将这个文件夹加入类路径中!运行就可以了:加入类路径的方法:你的工程文件夹->properties->选择Libraries选项卡->Add Class Folder 将刚才建立的文件夹加入就可以了!结果如下:"Hello World"!"da jia hao";!2.中文显示在classes目录下建立message_CH.properties内容如下:ms0="大家好"同样用上面的测试文件!结果如下:"?ó????"!乱码怎么回事啊!在百度里搜索后找到了答案有以为网友写的很清楚:/3885062.html 下面引用如下:原理Property文件中,使用的编码方式根据机器本身的设置可能是GBK或者UTF-8。

Java问题集锦-001

Java问题集锦-001

Java问题集锦说明:为了大家更好地学习好Java,我将从今天开始,专门收集来自于08网络1班、2班、3班的上机操作出现的Java问题,这些问题很有代表性的,以便于同学们快速排除Java故障,少走弯路,提高学习效率。

【编号】001【收集日期】2009年9月2日星期三【来源班级】08网路2班【来源地点】B409【课程节次】7-8【问题1】文件名与类名不一致这是一个初学Java常见的错误,Java要求文件名与类名必须相同。

例如文件名为:Test_a1.java则类名必须是Test_a1,即是:public class Test_a1{……}【问题2】大小写敏感这是一个初学Java常见的错误,Java对大写高度敏感,因为Java不单单在windows操作系统运行,也可以在Linux操作系统运行,而Linux对大小写是感度敏感的。

例如调用Java类【String】,不能写成【string】【问题3】编码规范编码规范是非常重要的,企业要求非常严格,因此初学者必须一开始就要规范起来。

规范要求:每一个级段要三个空格。

级段开始字符与结束字符对齐。

p ublic class Test_a1{p ublic static void main(String[] s){S ystem.out.println("最简单的java application 程序。

河职院08网路专业。

姓名、学号");}}例如:上述的“蓝色”是一级段,“红色”为二级段,“绿色”为三级段,段与段之间必须有三个空格差。

同一个级段必须对齐。

【问题4】环境变量问题Java有三个环境变量path、JA V A_HOME、CLASSPATH。

path是windows寻找运行程序的路径,如果Java路径没有在path中定义将无法运行Java。

JA V A_HOME是很重要的定义,后面学习复杂一点的Java程序要用到这个环境变量,其含义跟字面解析一样,就是安装的Java的总目录是什么?CLASSPATH非常重要,如果定义错误,将无法运行Java程序,出现的错误是找不到类,信息是:Exception in thread "main" ng.NoClassDefFoundError,另外,CLASSPA TH的第一个字符是小数点“.”,接着是分号,含义是Java运行的时候将在当前目录寻找Java的类即后缀是“.class”的文件来运行。

java学习中错误汇总

java学习中错误汇总

java学习中错误汇总1.每次进行保存时,级联对象都自动改变。

(如回复、留言是多对一的关系,如果在进行过程中不刷新,有新的留言保存后,回复的留言外键值将自动改变为新的留言ID)解决方法:在Spring的配置文件,Action配置中加上:scope="prototype"。

原因可能是:默认情况下,从bean工厂所取得的实例为Singleton(bean的singleton属性) Singleton: Spring容器只存在一个共享的bean实例,默认的配置。

Prototype: 每次对bean的请求都会创建一个新的bean实例。

2.使用fckeditor时候,保存的内容都以"<p>...<p>"此方式显示。

解决方法:显示时,为:<s:property value="#ist.content" escape="false"/>原因:<s:property>标签的escape属性默认为true,即不解析html代码,直接将其输出。

若要想输出html的效果,则要改为false.而fckeditor恰好是一个可视化HTML编辑器。

3.javamail中的两个错误:(1)Exception in thread "main" ng.NoClassDefFoundError:com/sun/mail/util/LineInpu tStream原因:原因是jar包版本不统一,解决方法如下: 删除Java EE 5 Libraries/javaee.jar/mail里的包有东西.解决方法:用rar打开X:/Program Files/MyEclipse 6.5 /myeclipse/eclipse/plugins/com.genuitec.eclipse.j2eedt. core_6.5.0.zmyeclipse650200806/data/libraryset/EE_5 ,然后删除mail。

Java开发最容易写的10个bug

Java开发最容易写的10个bug

Java开发最容易写的10个bug原⽂链接:那个谁,今天⼜写 bug 了,没错,他说的好像就是我。

作为 Java 开发,我们在写代码的过程中难免会产⽣各种奇思妙想的 bug ,有些 bug 就挺让⼈⽆奈的,⽐如说各种空指针异常,在 ArrayList 的迭代中进⾏删除操作引发异常,数组下标越界异常等。

如果你不⼩⼼看到同事的代码出现了我所描述的这些 bug 后,那你就把我这篇⽂章甩给他你甩给他⼀篇⽂章,并让他关注了⼀波cxuan,你会收获他在后⾯像是如获⾄宝并满眼崇拜⼤神的⽬光。

废话不多说,下⾯进⼊正题。

错误⼀:Array 转换成 ArrayListArray 转换成 ArrayList 还能出错?这是哪个笨。

等等,你先别着急说,先来看看是怎么回事。

如果要将数组转换为 ArrayList,我们⼀般的做法会是这样List<String> list = Arrays.asList(arr);Arrays.asList() 将返回⼀个 ArrayList,它是 Arrays 中的私有静态类,它不是 java.util.ArrayList 类。

如下图所⽰Arrays 内部的 ArrayList 只有 set、get、contains 等⽅法,但是没有能够像是 add 这种能够使其内部结构进⾏改变的⽅法,所以 Arrays 内部的 ArrayList 的⼤⼩是固定的。

如果要创建⼀个能够添加元素的 ArrayList ,你可以使⽤下⾯这种创建⽅式:ArrayList<String> arrayList = new ArrayList<String>(Arrays.asList(arr));因为 ArrayList 的构造⽅法是可以接收⼀个 Collection 集合的,所以这种创建⽅式是可⾏的。

错误⼆:检查数组是否包含某个值检查数组中是否包含某个值,部分程序员经常会这么做:Set<String> set = new HashSet<String>(Arrays.asList(arr));return set.contains(targetValue);这段代码虽然没错,但是有额外的性能损耗,正常情况下,不⽤将其再转换为set,直接这么做就好了:return Arrays.asList(arr).contains(targetValue);或者使⽤下⾯这种⽅式(穷举法,循环判断)for(String s: arr){if(s.equals(targetValue))return true;}return false;上⾯第⼀段代码⽐第⼆段更具有可读性。

Java问题集锦-002

Java问题集锦-002

老黄牛软件工作室 黄锡波 1/1 Java 问题集锦
【编号】002
【收集日期】2009年9月4日星期五
【来源班级】08网路1、3班
【来源地点】C403、B511
【课程节次】1-2,3-4
【问题5】文件名与类名的第一个字母必须大写
这是一个初学Java 常见的错误,Java 编码规范规定文件名与类名的第一个字母必须大写。

【问题6】Java 的代码,除了注释里的内容和字符串里面的内容之外,不能有中文字符。

这是一个初学Java 常见的错误,例如逗号,不能写成中文的“,”号,例如字母“S ”,不能写成中文字符“S”。

这些错误将造成编译不通过,由于英文字符与中文字符看起来很接近,要排除这些故障非常困难。

Java Web开发中的常见问题汇总与解决方案

Java Web开发中的常见问题汇总与解决方案

Java Web开发中的常见问题汇总与解决方案Java Web开发是现在互联网行业中非常热门的技术方向之一,它的发展势头也是越来越迅猛。

然而,在开发Java Web应用程序的过程中,总会遇到各种各样的问题,有的是因为技术不够熟练导致的,有的是由于环境不同而产生的。

为了让大家更好地掌握Java Web开发,本文将为您汇总整理了一些Java Web开发中常见的问题,并提供相应的解决方案。

一、数据访问异常在Java Web开发中,我们经常会遇到与数据库相关的异常。

尤其是在开发大型系统时,访问数据库的错误可能会成倍地影响系统的性能和可靠性。

以下列举一些常见的数据访问异常和解决方案。

1、连接池过期连接池过期是一个非常常见的问题,尤其是在系统高并发的情况下,会造成系统性能的明显下降。

解决方法是通过合理的配置和优化连接池的使用,提高系统的吞吐量和稳定性。

2、防止数据库死锁死锁是在高并发系统中经常遇到的问题之一。

如果多个线程并发访问数据库的同一个资源,就有可能导致死锁的产生。

要解决这个问题,可以通过使用数据库的锁机制来避免死锁的产生。

3、被动连接关闭一些数据库和Java ORM框架对于空闲连接资源的回收策略不同,可能会导致被动关闭连接的情况发生。

解决方案是做好连接池的配置和优化,避免过度的空闲连接资源占用。

二、Web服务器异常Java Web开发中的Web服务器异常也是非常常见的问题。

以下列举一些常见的Web服务器异常和解决方案。

1、多线程并发处理异常在高并发的情况下,Web服务器可能会产生并发处理异常,这种情况下就需要通过合理的代码设计和服务器配置来保证系统的性能和稳定性。

2、内存溢出和内存泄漏内存溢出和内存泄漏是很多Java Web开发者常常碰到的问题。

要解决这个问题,可以通过调整JVM内存参数,优化代码的编写和设计,避免无意中创建了对象并长时间占用内存资源。

3、负载均衡异常Java Web应用程序在高并发的情况下,可能会导致负载均衡的异常。

JAVA常见错误处理方法

JAVA常见错误处理方法

JAVA常见错误处理方法JAVA常见错误处理方法Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。

本文特意为大家收集整理了JAVA常见错误处理方法,希望大家喜欢!ng.OutOfMemoryError: Java heap space原因:Heap内存溢出,意味着Young和Old generation的内存不够。

解决:调整java启动参数-Xms -Xmx 来增加Heap内存。

ng.OutOfMemoryError: unable to create new native thread原因:Stack空间不足以创建额外的线程,要么是创建的线程过多,要么是Stack空间确实小了。

解决:由于JVM没有提供参数设置总的stack空间大小,但可以设置单个线程栈的大小;而系统的用户空间一共是3G,除了Text/Data/BSS /MemoryMapping几个段之外,Heap和Stack空间的总量有限,是此消彼长的。

因此遇到这个错误,可以通过两个途径解决:1.通过-Xss启动参数减少单个线程栈大小,这样便能开更多线程(当然不能太小,太小会出现StackOverflowError);2.通过-Xms -Xmx 两参数减少Heap大小,将内存让给Stack(前提是保证Heap空间够用)。

ng.OutOfMemoryError: PermGen space原因:Permanent Generation空间不足,不能加载额外的类。

解决:调整-XX:PermSize= -XX:MaxPermSize= 两个参数来增大PermGen内存。

一般情况下,这两个参数不要手动设置,只要设置-Xmx足够大即可,JVM会自行选择合适的'PermGen大小。

ng.OutOfMemoryError: Requested array size exceeds VM limit原因:这个错误比较少见(试着new一个长度1亿的数组看看),同样是由于Heap空间不足。

Java开发中的常见错误及其解决方案

Java开发中的常见错误及其解决方案

Java开发中的常见错误及其解决方案Java是一种跨平台、面向对象、高性能的编程语言,广泛用于Web应用程序开发、移动应用程序开发、游戏开发等方面。

然而,在开发Java应用程序的过程中,常常会出现一些错误和问题,这些问题可能是语法错误、逻辑错误、性能问题等等。

本文将讨论Java开发中的一些常见问题及其解决方案,帮助开发者更好地理解和应对这些问题。

1. 内存泄露内存泄露是一种常见的Java错误。

它指的是程序不必要地占用了内存,但却没有释放。

当一个程序不断运行时,这些未释放的内存会积累,最终导致程序崩溃或变慢。

解决方案:追踪内存泄露的原因并修复它。

可以使用诸如Eclipse Memory Analyzer(MAT)等工具来分析程序内存,找出内存泄漏的原因。

修复内存泄漏通常涉及检查代码中的对象生命周期、确保适当释放资源等。

2. 空指针异常空指针异常是Java程序员最常遇到的问题之一。

它通常是由于访问一个空对象引用而导致的。

这种错误很容易发生,因为程序员可能忘记了为某些对象赋值或在不为空的情况下使用这些对象。

解决方案:添加有效的空对象检查。

程序员应该在使用对象之前检查其是否为空,以避免空指针异常。

可以使用条件语句或对象的非空检查运算符来实现这一点。

3. 类型转换异常类型转换异常通常发生在试图将一个类型转换为不兼容的另一个类型时。

例如,将字符串转换为数字时,如果字符串不是数字,则会发生类型转换异常。

解决方案:使用合适的类型转换方法。

程序员应该使用适当的类型转换方法,例如parseInt方法将字符串转换为整数,以避免类型转换异常。

此外,程序员应该检查数据类型是否兼容,避免尝试将不兼容的数据类型进行转换。

4. 并发问题并发问题是在多个线程同时访问共享数据时发生的问题。

这种情况可能导致数据不一致、死锁、竞争条件等问题。

在Java开发中,常见的并发问题包括线程安全性、死锁、条件竞争等。

解决方案:使用同步措施。

同步措施是指在多个线程中访问共享数据时保持数据一致性的方法。

JAVA一些错误代码

JAVA一些错误代码

JAVA⼀些错误代码//算术异常ArithmeticExecption//空指针异常类NullPointerException//类型强制转换异常ClassCastException//数组负下标异常NegativeArrayException//数组下标越界异常ArrayIndexOutOfBoundsException//违背安全原则异常SecturityException//⽂件已结束异常EOFException//⽂件未找到异常FileNotFoundException//字符串转换为数字异常NumberFormatException//操作数据库异常SQLException//输⼊输出异常IOException//⽅法未找到异常NoSuchMethodException//抽象⽅法错误,当应⽤试图调⽤抽象⽅法时抛出ng.AbstractMethodError//断⾔错误,⽤来指⽰⼀个断⾔失败的情况ng.AssertionError//类循环依赖错误,若检测到类之间循环依赖则抛出该异常ng.ClassCircularityError//类格式错误ng.ClassFormatError//错误基类,标识严重程序运⾏问题,不应被应⽤程序捕获的反常情况ng.Error//⾮法访问错误,违反域或⽅法的可见性声明ng.IllegalAccessError//不兼容的类变化错误,当正在执⾏的⽅法所依赖的类定义发⽣了不兼容的改变时,抛出该异常ng.IncompatibleClassChangeError//实例化错误,构造⼀个抽象类或者接⼝时抛出该异常ng.InstantiationError//内部错误ng.InternalError//链接错误ng.LinkageError//未找到类定义错误,找不到该类的定义时抛出该错误ng.NoClassDefFoundError//域(成员变量,字段)不存在错误ng.NoSuchFieldError//⽅法不存在错误ng.NoSuchMethodError//内存不⾜错误ng.OutOfMemoryError//线程已结束ng.ThreadDeath//未知错误ng.UnknownError//未满⾜的链接错误ng.UnsatisfiedLinkError//不⽀持的类版本错误ng.UnsupportedClassVersionError//验证错误ng.VerifyError//虚拟机错误ng.VirtualMachineError//算术条件异常,如整数除零ng.ArithmeticException//数组索引越界异常ng.ArrayIndexOutOfBoundsException//数组存储异常,存放⾮数组声明类型ng.ArrayStoreException//类型转换异常ng.ClassCastException//找不到类异常ng.ClassNotFoundException//克隆不⽀持异常,如没有实现Cloneable接⼝ng.CloneNotSupportedException//枚举常量不存在异常ng.EnumConstantNotPresentException//根异常ng.Exception//⾮法访问异常ng.IllegalAccessException//⾮法的监控状态异常ng.IllegalMonitorStateException//⾮法的状态异常ng.IllegalStateException//⾮法的线程状态异常ng.IllegalThreadStateException//索引越界异常ng.IndexOutOfBoundsException//实例化异常ng.InstantiationException//被中断异常ng.InterruptedException//数组⼤⼩为负值异常ng.NegativeArraySizeException//属性不存在异常,当访问某个类的不存在的属性时抛出该异常ng.NoSuchFieldException//⽅法不存在异常ng.NoSuchMethodException//空指针异常。

JAVA中运行时异常

JAVA中运行时异常

总结了一下JAVA中常见的几种RuntimeException,大约有如下几种:1.NullPointerException -空指针引用异常2.ClassCastException -类型强制转换异常。

3.IllegalArgumentException -传递非法参数异常。

4.ArithmeticException -算术运算异常5.ArrayStoreException -向数组中存放与声明类型不兼容对象异常6.IndexOutOfBoundsException -下标越界异常7.NegativeArraySizeException -创建一个大小为负数的数组错误异常8.NumberFormatException -数字格式异常9.SecurityException -安全异常10.UnsupportedOperationException -不支持的操作异常如下:RuntimeException是开发中最容易遇到的,下面列举一下常见的RuntimeException:1、NullPointerException:见的最多了,其实很简单,一般都是在null对象上调用方法了。

String s=null;booleaneq=s.equals(""); // NullPointerException这里你看的非常明白了,为什么一到程序中就晕呢?public intgetNumber(String str){if(str.equals("A")) return 1;else if(str.equals("B")) return 2;}这个方法就有可能抛出NullPointerException,我建议你主动抛出异常,因为代码一多,你可能又晕了。

public intgetNumber(String str){if(str==null) throw new NullPointerException("参数不能为空");//你是否觉得明白多了if(str.equals("A")) return 1;else if(str.equals("B")) return 2;}2、NumberFormatException:继承IllegalArgumentException,字符串转换为数字时出现。

java常见错误

java常见错误

5个常见错误1、空指针错误 ng.NullPointerException使用基本的JAVA数据类型,变量的值要么已经是默认值,如果没有对其正常赋值,程序便不能通过编译,因此使用基本的JAVA数据类型(double,float, boolean,char,int,long)一般不会引起空指针异常。

由此可见,空指针异常主要跟与对象的操作相关。

下面先列出了可能发生空指针异常的几种情况及相应解决方案:不管对象是否为空就直接开始使用。

(JSP)代码段1:out.println(request.getParameter("username"));描述:代码段1的功能十分简单,就是输出用户输入的表域"username"的值。

说明:看上去,上面的语句找不出什么语法错误,而且在大多数情况下也遇不到什么问题。

但是,如果某个用户在输入数据时并没有提供表单域"username"的值,或通过某种途径绕过表单直接输入时,此时request.getParameter("username")的值为空(不是空字符串,是空对象null。

),out对象的println方法是无法直接对空对象操作,因此代码段1所在的JSP页面将会抛出"ng.NullPo interException"异常。

即使对象可能为空时,也调用ng.Object或Object对象本身的一些方法如toString(), equals(Object obj)等操作。

(JSP)代码段2:String userName = request.getParameter("username");If (userName.equals("root")){....}描述:代码段2的功能是检测用户提供的用户名,如果是用户名称为"root"的用户时,就执行一些特别的操作。

Java报错原因汇总

Java报错原因汇总

Java报错原因汇总 1. ng.nullpointerexception这个异常⼤家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调⽤了未经初始化的对象或者是不存在的对象,这个错误经常出现在创建图⽚,调⽤数组这些操作中,⽐如图⽚未经初始化,或者图⽚创建时的路径错误等等。

对数组操作中出现空指针,很多情况下是⼀些刚开始学习编程的朋友常犯的错误,即把数组的初始化和数组元素的初始化混淆起来了。

数组的初始化是对数组分配需要的空间,⽽初始化后的数组,其中的元素并没有实例化,依然是空的,所以还需要对每个元素都进⾏初始化(如果要调⽤的话)2. ng.classnotfoundexception这个异常是很多原本在jb等开发环境中开发的程序员,把jb下的程序包放在wtk下编译经常出现的问题,异常的解释是"指定的类不存在",这⾥主要考虑⼀下类的名称和路径是否正确即可,如果是在jb下做的程序包,⼀般都是默认加上package的,所以转到wtk下后要注意把package的路径加上。

3. ng.arithmeticexception这个异常的解释是"数学运算异常",⽐如程序中出现了除以零这样的运算就会出这样的异常,对这种异常,⼤家就要好好检查⼀下⾃⼰程序中涉及到数学运算的地⽅,公式是不是有不妥了。

4. ng.arrayindexoutofboundsexception这个异常相信很多朋友也经常遇到过,异常的解释是"数组下标越界",现在程序中⼤多都有对数组的操作,因此在调⽤数组的时候⼀定要认真检查,看⾃⼰调⽤的下标是不是超出了数组的范围,⼀般来说,显⽰(即直接⽤常数当下标)调⽤不太容易出这样的错,但隐式(即⽤变量表⽰下标)调⽤就经常出错了,还有⼀种情况,是程序中定义的数组的长度是通过某些特定⽅法决定的,不是事先声明的,这个时候,最好先查看⼀下数组的length,以免出现这个异常。

Java开发常见问题及解决方法有哪些

Java开发常见问题及解决方法有哪些

Java开发常见问题及解决方法有哪些在 Java 开发的过程中,开发者们常常会遇到各种各样的问题。

这些问题可能会影响开发进度,甚至导致项目出现严重的错误。

本文将探讨一些常见的 Java 开发问题,并提供相应的解决方法。

一、内存泄漏问题内存泄漏是 Java 开发中常见的问题之一。

当程序不再使用某些对象,但这些对象仍被引用而无法被垃圾回收器回收时,就会发生内存泄漏。

随着时间的推移,内存泄漏可能会导致程序占用大量内存,最终导致系统性能下降甚至崩溃。

解决内存泄漏问题的方法通常包括:1、及时释放不再使用的对象引用,例如将对象设置为`null` 。

2、避免在长生命周期的对象中引用短生命周期的对象。

3、使用合适的数据结构和算法,以减少不必要的对象创建和引用。

二、并发编程中的同步问题在多线程环境下,并发编程中的同步问题容易导致数据不一致和竞态条件。

例如,多个线程同时访问和修改共享数据时,如果没有正确的同步机制,可能会得到错误的结果。

解决同步问题的常见方法有:1、使用`synchronized` 关键字来同步代码块或方法,确保同一时刻只有一个线程能够访问共享资源。

2、使用`Lock` 接口提供的更灵活的锁机制。

3、采用线程安全的数据结构,如`ConcurrentHashMap` 、`ConcurrentLinkedQueue` 等。

三、空指针异常空指针异常是 Java 开发中最常见的运行时异常之一。

当程序尝试访问一个`null` 引用的对象成员或方法时,就会抛出空指针异常。

避免空指针异常的方法包括:1、在使用对象之前,始终进行非空检查。

2、初始化对象时,确保给予有效的初始值,而不是依赖默认的`null` 值。

四、异常处理不当不正确的异常处理可能会导致程序隐藏重要的错误信息,或者在异常发生时无法进行有效的恢复操作。

正确处理异常的要点:1、不要捕获过于宽泛的异常类型,应尽量捕获具体的异常类型。

2、在捕获异常后,应根据具体情况进行适当的处理,如记录错误日志、回滚事务或向用户提供有意义的错误提示。

Java常见编译错误信息及说明

Java常见编译错误信息及说明

Java编译错误信息及说明1、java:33: 不是语句解释:程序中出现了没有任何意义的字符(串),可能是无意中打出了没有任何意义的字符;2、java:34: 需要';'解释:某条语句没有以分号结束;3、java:36: 缺少返回语句解释:带返回值的函数缺少return语句;4、java:33: 不兼容的类型解释:运算符两边的数据类型不一致或者不能做隐式转换;5、java:36: 无法访问的语句解释:此语句永远不可能被执行,可能是此语句之前存在类似于while(true)的语句,导致此语句永远不可能被执行;6、java:34: 非法的表达式开始解释:有不符合语法规范的表达式出现;7、java:34: 找不到符号解释:使用了没有定义或没有引入的变量;8、java:33: 非法字符:\65307解释:在中文输入状态下输入了一些标点符号;9、java:18: 不可转换的类型解释:运算符两边的数据类型不一致或者不能做隐式转换;10、java:19: "else" 不带有"if"解释:编译器找到else语句但是没有找到与之对应的if语句,可能是由于大括号没有成对出现;11、java:12: 可能损失精度解释:把高精确度类型的数据赋值给低精确度类型的变量;12、java:17: 需要')'解释:括号没有成对出现;13、java:8: 可能尚未初始化变量s解释:局部变量s没有赋初值;14、java:7: 不可比较的类型:int 和Boolean解释:运算符两边操作数的数据类型不符合运算符的使用规范;15、java:6: 已在isLeap(int) 中定义year解释:变量year被重复定义;16、java:21: 字符字面值的行结尾不合法解释:程序语句的结尾不是java规定的结束符号,而是其他的符号;17、java:9: 需要<标识符>解释:可能是由于用户指定了数据类型,但未指定该类型的变量名;18、java:8: 无法从静态上下文中引用非静态变量this解释:在静态方法中使用了非静态变量this;19、java:12: 在switch 或loop 外部中断解释:在非循环语句或非switch语句中使用了中断循环功能的语句break;20、java:21: 对于结果类型为void 的方法,无法返回值解释:空返回值方法中出现了return语句;21、java:12: 需要数组,但找到int解释:在应该出现数组的地方没有找到数组类型的变量,而是找到int类型的变量;22、java:13: 无法将Node 中的setData(int) 应用于()解释:一般情况下是方法调用时缺少了参数;23、java:5: 缺少数组维数解释:数组的定义过程中没有指定数组的维数;24、进行语法解析时已到达文件结尾解释:一般情况是缺少{}造成的;25、需要为class、interface 或enum解释:一般情况下是多了{}造成的;26、无法为最终变量length 指定值解释:Length为final类型的变量,值不能修改。

java程序错误类型及异常处理

java程序错误类型及异常处理

java程序错误类型及异常处理⼀、程序的错误类型在程序设计中,⽆论规模是⼤是⼩,错误总是难免的。

程序的设计很少有能够⼀次完成,没有错误的(不是指HelloWorld这样的程序,⽽是要实现⼀定的功能,具备⼀定实⽤价值的程序),在编程的过程中由于种种原因,总会出现这样或那样的错误,这些程序的错误就是我们常说的“Bug”,⽽检测并修正这些错误的⽅法就是“Debug”(调试)。

基本上所有的集成开发环境都提供了强⼤的和程序调试功能,在程序进⾏编译,连接,运⾏时,会对程序中错误进⾏诊断。

程序的错误可以抽象分为三类:语法错误、运⾏错误和逻辑错误。

1、语法错误是指由于编程中输⼊不符合语法规则⽽产⽣的。

程序编译就通不过,程序不能运⾏起来。

此类错误最简单,调试起来⽐较容易例如:表达式不完整、缺少必要的标点符号、关键字输⼊错误、数据类型不匹配、循环语句或选择语句的关键字不匹配等。

通常,编译器对程序进⾏编译的过程中,会把检测到的语法错误以提⽰的⽅式列举出来,⼜称为编译错误。

语法错误的调试,则可以由集成开发环境提供的调试功能来实现,在程序进⾏编译时,编译器会对程序中的语法错误进⾏诊断。

编译诊断的语法错误分为3中:致命错误、错误和警告。

(1)致命错误:这个错误⼤多是编译程序内部发⽣的错误,发⽣这类错误时,编译被迫中⽌,只能重新启动编译程序,但是这类错误很少发⽣,为了安全,编译前最好还是先保存程序。

(2)错误:这个错误通常是在编译时,语法不当所引起的。

例如:括号不匹配,变量未声明等。

产⽣这类错误时,编译程序会出现报错提⽰,我们根据提⽰对源程序进⾏修改即可。

这类错误是出现最多的。

(3)警告:是指被编译程序怀疑有错,但是不确定,有时可强⾏通过。

例如:没有加void声明的主函数没有返回值,double数据被转换为float类型等。

这些警告中有些会导致错误,有些可以通过。

常规解决⽅法:此类错误⼀般程序编译系统会⾃动提⽰相应的错误地点和错误原因,⽐如哪⼀⾏代码少了个括号等诸如此类的提⽰,常见的错误,看懂直接改正即可,如果是看不懂原因,可以将错误提⽰信息输⼊搜索引擎查找⼀下,⼀般都能找到具体的解决办法。

java常见的语法错误有哪些

java常见的语法错误有哪些

java常见的语法错误有哪些java常见的语法错误有哪些Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。

那么java 常见的语法错误有哪些?以下仅供参考!具体如下:1.变量可能未初始化错误提示:Abc.java:9: variable i might not have been initializedSystem.out.println(i);中文说明:变量i可能没有赋值就使用了。

例子说明:int i;System.out.println(i);2.变量重复定义错误提示:Abc.java:9: i is already defined in main(ng.String[]) int i = 2;中文说明:变量重复定义了例子说明:int i = 1; int i = 2;3. 找不到符号:Test6.java:26: cannot find symbolsymbol : variable jlocation: class Test6if(j < 0) {4. 找不到类的错误Main.java:4: cannot find symbolsymbol : class T1location: class MainT1 a = new T1();5. 找不到方法的错误Main.java:5: cannot find symbolsymbol : method a()location: class T a.a();6.找不到类错误提示:Test.java:1: class Test1 is public, should be declared in a file named Test1.java public class Test1 {中文说明:test1是公共的,必须在文件中声明例子说明:建一个文件为T est;在工具中打开这样写public class Test11 {}; 就会报这个错误7 找不到这个类(类名跟文件名不一致)NoClassDefFoundError: asa (wrong name: ASA)8. 数组下标越界ng.ArrayIndexOutOfBoundsException: 1at Test2.test2(Test2.java:30)at Test2.main(Test2.java:6)9. 字符串下标越界ng.StringIndexOutOfBoundsException: String index out of range: 6at ng.String.charAt(String.java:558)at Test2.test3(Test2.java:41)at Test2.main(Test2.java:7)10. 空指向Exception in thread "main" ng.NullPointerExceptionat Next.main(Next.java:31)11.空返回值错误提示:Test1.java:54: 'void' type not allowed hereSystem.out.println(a5.OnExit());中文说明;此处不允许使用void返回值例子说明:如果声明一个void的方法,那就不能直接输出来Public static void edit() {}System.out.println(Test.edit());12. 缺少返回值asa.java:8: missing return statementint fan(){}^1 error13. 没有返回值的方法中不需要返回值asa.java:10: cannot return a value from method whose result type is void return a;^1 error14. 引用的方法入参不对Next.java:66: cannot find symbolsymbol : method createTempFile(ng.String,ng.String,ng.String) location: class java.io.FileFile ll = f.createTempFile("let","java","aaa");15. 缺少形参del() in sms.service.Service cannot be applied to (int)16. 无效的方法声明(需要返回类型)invalid method declaration; return type requiredpublic byteValue(){17. 要求传入的是数组,却传入了字符串array required, but ng.String found18 找不到构造方法Main.java:4: cannot find symbolsymbol : constructor T()location: class T new T();19、数字格式化异常Exception in thread "main" ng.NumberFormatException: null20. 不兼容的类型错误提示:Test1.java:41: incompatible typesfound : ng.String[]required: java.io.File[]File [] a3 = a11.list();中文说明:不兼容的类型21. 非静态方法不能在静态上下文中引用non-static method cannot be referenced from a static context22. 不是静态方法而用静态方式调用(类名。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

java常见错误以及可能原因集锦0、需要标识符a) 不在函数内1、非法表达式开始b) 可能:丢失括号 .2. no data founda) 可能:setInt(1,100)中,没有100这个值3. 找不到符号a) 可能:没导入包4. 指定了无效URLa) 可能:数据库名或IP错误,即连接出错5. 类路径没有找到a) 可能: ClassNotFoundException: oracle.jdbc.driver.OracleDriverb) 原因: 一般是指包名写错,或者没有import包,或者没有在类路径中找到jar文件c) 解决: 没有加载Oracle驱动jar,在.bash_profile中把ojdbc14.jar加进来6. 空指针异常a) 可能: 数据源错误比如数据库名或IP错误7. 不能执行查询a) 可能: 数据库中表的问题,比如列名不存在8. invalid identitya) 可能: 列名出错9. 若在数据库中创建了两个sequence ,运行时出现异常可能是先后执行了多次select 语句,导致与原有的序列号产生冲突10. 表名或列名不存在a) 可能:表不存在或者没有插入数据到表中11. 不支持的类,类的版本错误a) 可能:没有导入jdk5.0,或者编译器仍为1.412. MappingNotFoundExceptiona) Maybe: In the Eclipse Not refersh , or not exist in the dirctory13. HibernateException: /hibernate.cfg.xml not founda) Maybe1: hibernate.cfg.xml not in the root directoryb) Maybe2: Could not parse configuration .c) resolve: database not connect or use another database14. ConstraintViolationExceptiona) Maybe: used a not true database15. 驱动没有找到或者 JDBC Driver not found可能:连接数据库的驱动jar包不存在或者版本不一致,比如将旧的版本换成新的会造成该类错误16. 空指针异常, ng.NullPointerExceptiona) 可能1:数据库连接出错,比如在hibernate.cfg.xml中的数据错误会导致异常。

17. 数据插入异常,GenericJDBCException: could not inserta) 可能1:没有建立表或者表中没有任何数据b) 可能2:插入数据后没有执行提交语句:commit18. LazyInitializationException 或者延迟加载异常a) 可能1:没有在查询语句中加fetch19. IdentifierGenerationExceptiona) 可能1:高位表没有初始化(比如hi_value中没有记录)20. could not initialize a collection: [hibernate.entity.Role.modules#32768] Syntax error: Encountered "-" at line 1, column 132.a) 错误原因:<set name="modules" table="module-role" lazy="false">红色字部分中“-”为非法字符,替换为module_role21. could not insert collection rows: [hibernate.entity.Module.roles#1]在Module.hbm.xml文件的如下配置中加入inverse=”true”<set name="roles" table="module_role" inverse="true">22.在部署Struts时,出现如下错误信息:HTTP Status 404 - Servlet action is not availabletype Status reportmessage Servlet action is not availabledescription The requested resource (Servlet action is not available) is not available.问题原因:1.、web.xml文件中未配置ActionServlet。

2、struts-config.xml文件未配置你要访问的Action。

3、你的jsp文件form标记中action属性的路径名称错误。

4、非以上三种情况。

针对以上4种情况相应的解决方案如下:1、在web.xml文件中加上ActionServlet的配置信息?????? /WEB-INF/struts-config.xml??2、在struts-config.xml文件检查你要访问的Action配置文件。

3、检查jsp文件form标记中action属性的路径名称是否与struts-config.xml文件中action标记的path属性的路径名称一致。

4、非以上情况的解决办法就是检查web容器的log日志,如果时tomcat则检查下logs 目录下的localhost_log文件,看里边是否记录有错误信息,然后根据错误信息提示将其纠正。

23.ng.NoClassDefFoundError: org/apache/commons/beanutils/Converter 缺少spring-framework-2.0.3\lib\jakarta-commons\commons-beanutils.jar24. java 代码Caused by: ng.NoClassDefFoundError:org/objectweb/asm/Type缺少spring-framework-2.0.3\lib\asm\asm-2.2.2.jar包,版本不同,该包的名字有相应的区别java 代码Caused by: ng.NoClassDefFoundError:org/dom4j/DocumentException缺少spring-framework-2.0.3\lib\dom4j\dom4j-1.6.1.jar包,版本不同,该包的名字有相应的区别把这个包进去就可以了:\Spring206\lib\dom4j、dom4j-1.6.1.jarjava 代码Caused by: ng.NoClassDefFoundError:org/apache/commons/collections/SequencedHashMap缺少spring-framework-2.0.3\lib\jakarta-commons\commons-collections.jar包,版本不同,该包的名字有相应的区别java 代码Caused by: ng.NoClassDefFoundError:net/sf/cglib/proxy/CallbackFilter缺少spring-framework-2.0.3\lib\cglib\cglib-nodep-2.1_3.jar包,版本不同,该包的名字有相应的区别java 代码Caused by: ng.NoClassDefFoundError:org/objectweb/asm/CodeVisitor缺少hibernate-3.2\lib\asm.jar包,版本不同,该包的名字有相应的区别java 代码org.hibernate.exception.SQLGrammarException: could not load an entity: [er#1]JAVA工程与WEB工程包的区别:一个是asm.jar,一个是jta.jarjava 代码Caused by: ng.NoClassDefFoundError:javax/transaction/TransactionManager缺少spring-framework-2.0.3\lib\j2ee\jta.jar包,版本不同,该包的名字有相应的区别此种错误请检查相应的***.hbm.xml配置文件的配置25, Exception in thread "main"org.springframework.dao.InvalidDataAccessResourceUsageException:could notget next sequence value; nested exception isorg.hibernate.exception.SQLGrammarException: could not get next sequence value Caused by: org.hibernate.exception.SQLGrammarException: could not get next sequence value原因:没有加Sequence或者数据库的方言写错了26,我的配置文件<id name="id" column="id"><generator class="native" /></id>然后我运行保存一条数据进去The database returned no natively generated identity value就会报这个错误因为你native是根据看底层数据库的能力选择identity, sequence 或者hilo中的一个而我建表的时候id没有指定alter table `student` change `id` `id` int auto_increment我们把我们的表的结构小小的改动一下就没问题了27,UpdateManager无法启动2007-08-09 15:21如果在应用程序安装过程中,暴力中断安装程序,会出现如下状况:1.apt-get remove 和dpkg --remove 无法删除软件2.UpdateManager无法启动3.新立得软件包管理程序无法启动以上可能是deb损坏之类造成的sudo dpkg -r sqldveloper正在读取软件包列表... 完成正在分析软件包的依赖关系树... 完成E: 软件包 sqldeveloper 需要重新安装,但是我无法找到相应的安装文件。

相关文档
最新文档