扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
Unknown Source就是未知的源文件。
成都创新互联是一家专业提供大洼企业网站建设,专注与网站设计制作、成都网站设计、H5页面制作、小程序制作等业务。10年已为大洼众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。
原因是:class文件中没有源文件的相关调试信息。在用javac命令进行编译的时候没有指定调试信息。Java中的动态代理类的接口参数的类型不是一个普通的数组,而是类型为Class?[] interfaces,这里参考JDK文档中java.lang.reflect.Proxy。
解决方法:
在不确定时,先做判断,判断msg中是否含有“:”,然后使用substring(int arg0)。
String msg = fromServer.readUTF();
int m1 = 0;
String msgnew= new String();
if(msg.contains( ":")){
m1 = msg.indexOf( ":");
msgnew = new String(msg.substring(m1));
}
java产生异常的情况有很多种,比如说你想把一个字符串型“123”转成int型123,ok,这样没有问题。代码如下:\x0d\x0aString a = "123";\x0d\x0aint b = Integer.parseInt(a);\x0d\x0a但是如果你尝试如下写法\x0d\x0aString a = "abc";\x0d\x0aint b = Integer.parseInt(a);\x0d\x0a编译器是不会给你提示任何错误,只有等程序真正运行到此处的时候,才会发生异常,以为parseInt无法将字符串"abc"转成int型。\x0d\x0a我举得例子只是异常中的一种\x0d\x0a另外,Java 异常的种类有三大类,可分为可检测异常,非检测异常和自定义异常。\x0d\x0a可检测异常\x0d\x0a可检测异常经编译器验证,对于声明抛出异常的任何方法,编译器将强制执行处理或声明规则,例如:sqlExecption 这个异常就是一个检测异常。你连接 JDBC 时,不捕捉这个异常,编译器就通不过,不允许编译。\x0d\x0a非检测异常\x0d\x0a非检测异常不遵循处理或声明规则。在产生此类异常时,不一定非要采取任何适当操作,编译器不会检查是否已解决了这样一个异常。例如:一个数组为 3 个长度,当你使用下标为3时,就会产生数组下标越界异常。这个异常 JVM 不会进行检测,要靠程序员来判断。有两个主要类定义非检测异常:RuntimeException 和 Error。\x0d\x0aError 子类属于非检测异常,因为无法预知它们的产生时间。若 Java 应用程序内存不足,则随时可能出现 OutOfMemoryError;起因一般不是应用程序的特殊调用,而是 JVM 自身的问题。另外,Error 一般表示应用程序无法解决的严重问题。\x0d\x0aRuntimeException 类也属于非检测异常,因为普通 JVM 操作引发的运行时异常随时可能发生,此类异常一般是由特定操作引发。但这些操作在 Java 应用程序中会频繁出现。因此,它们不受编译器检查与处理或声明规则的限制。\x0d\x0a自定义异常\x0d\x0a自定义异常是为了表示应用程序的一些错误类型,为代码可能发生的一个或多个问题提供新含义。可以显示代码多个位置之间的错误的相似性,也可以区分代码运行时可能出现的相似问题的一个或者多个错误,或给出应用程序中一组错误的特定含义。例如,对队列进行操作时,有可能出现两种情况:空队列时试图删除一个元素;满队列时试图添加一个元素。则需要自定义两个异常来处理这两种情况。
static{...}是静态块,而只有{...}的是叫做构造块。
静态块在一个程序里面只执行一次;
而构造块是,只要建立一个对象,构造代码块都会执行一次。
静态块优先于主方法的执行,静态块优先于构造快,然后是构造方法的执行,而且只执行一次!
所以输出结果是:
static
block
instance1
block
instance2
在不同的package下是允许出现两个名字相同的类的,只要你在引入的时候注意就行了。但是尽量不要这么做,毕竟有风险
eclipse运行Java代码出现原因很多,具体问题具体分析。
解决方案:
如果是web项目,不要在打开的文件上右击,要到项目路径上去右击”run as“,之后选择“server”。
如果是mian方法项目,需要找到带有main方法的类,之后打开这个类,之后“run as”,之后选择“java applet”即可。
运行效果图
解释原因:rrrr的无参数构造方法里调用了init();
init()方法里出现了new rrrr();
new rrrr()又会再次调用init() ,也就是一个没有出口的循环,所以程序无法运行;
解决办法:
listener = new rrrr(); //删除这行代码!!!!!!!!!
w_xbjm.addActionListener(this); //把这里的参数写入this 关键字,代表自身
w_xbjm.setActionCommand("新建");
w_dakd.addActionListener(this);//把这里的参数写入this 关键字,代表自身w_dakd.setActionCommand("打开");
还有一个小问题需要解决下
setLayout(new FlowLayout());//删除这行代码.
因为默认的边界布局BorderLayout就非常适合这个记事本了程序了;设置成FlowLayout反而不能完整显示出文本域
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流