常见的java代码问题 java代码常见问题汇总-成都快上网建站

常见的java代码问题 java代码常见问题汇总

北大青鸟java培训:Java环境搭建及常见错误?

本篇文章介绍了java软件包的下载,环境搭建,及操作过程中出现的常见问题,成都电脑培训在此进行汇总,希望对大家有所帮助。

公司主营业务:做网站、成都做网站、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联公司是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联公司推出建阳免费做网站回馈大家。

.搭建步骤1.安装配置A.在官网上下载jdk;B.在本地安装下载的jdk软件;C.配置环境变量:右击“我的电脑”--选择“属性”--“高级系统设置”--“环境变量”;D.在弹出的对话窗口中,在”系统变量”部分,点击”新建”(下面一个新建按钮),弹出”新建系统变量”对话框,在变量名中输入%JAVA_HOME%,在变量值中输入jdk安装路径,例如:d:/java/jdk1.8,点击”确定”按钮;E.在系统变量中,找到Path变量,点击编辑”按钮”,弹出”编辑系统变量”对话框,将光标选中变量值输入框,并且移动到输入框最前端,并输入以下内容:%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar说明:%JAVA_HOME%即为第4步配置的变量,代表了jdk的安装路径,配置在Path中,是为了让计算机能够找到java相关的命令,因为操作系统是从Path配置的路径中寻找命令;在Path中还可以配置其他软件的命令,需要注意的是所有命令中间必须用分号(;)相隔,保证配置内容的完整性。

3.安装测试打开运行窗口(window+r),在窗口中输入cmd,打开cmd窗口,输入命令java-version显示出java版本信息,即表示安装成功二.常见错误1.jdk下载版本出错A.在jdk的官网上,首先是按照操作系统进行分类,主要是Linux和windows系统下的不同版本;B.其次是计算机处理器不同所需版本不同,下载jdk之前,应先知道计算机处理器是哪种类型,一般来说都是64位或者32位,在官网上都有相应的版本,64位的jdk名称内都有x64字样,而32位的jdk名称内都有x86字样;C.最后是jdk版本的问题,作为一门企业级的编程语言,java一直在不断的升级,相应的jdk也一直在更新,如果下载了不适合本地其他软件或实际需求的jdk,那么很可能会造成软件不兼容的问题,也会在程序中存在bug的隐患,所以在选择jdk版本时一定要考虑实际开发环境,根据实际需求来选择。

2.jdk环境配置出错A.JAVA_HOME配置出错:jdk的安装目录下会有jre文件夹,通常只配置到bin和lib文件夹所在目录(即jre上级目录),在后续配置中引入JAVA_HOME变量即可,如%JAVA_HOME%/bin;B.在JAVA_HOME的变量值中,不能有标点符号,否则会路径出错;C.在编辑Path变量时,每一项变量之间都要有分号进行分割,否则操作系统会将两个变量当做一个变量来处理,所以为了安全起见,在path的变量值的最前面或最后面配置java路径,同时用逗号分割,避免直接插入造成混淆;D.配置完成后切记点击确定按钮保存配置;E.配置完成后,在cmd命令窗口进行测试一定要使用java-version,否则没有效果。

3.不当的卸载操作A.在安装jdk后,控制面板中的程序内会出现JavaSEDevelop字样的程序,这些程序无需用户进行手动升级或手动设置,不要随意进行卸载;B.配置好jdk后,尽量避免更改jdk的安装路径,否则系统会找不到java相关名令,如果修改了jdk的安装路径,则将%JAVA_HOME%的变量值替换为新路径即可。

Java编程中常见的错误有哪些

相信作为程序员的我们在对程序进行编译过程中经常会遇到错误,或者在运行过程中出现错误,在这里主要跟大家谈谈经常遇到的一些异常与错误,以及解决办法。

异常是指程序在编译或运行过程出现的错误。

在java.lang包中Throwable包含了所有的异常。

Error (错误) 和Exception(异常)

(1)Error(错误)

一旦发生无法修复,但可以避免发生。

常见错误类:

IOError:I/O错误,当发生严重的I/O错误时,抛出此错误。

VirtualMachineError :虚拟机错误,当 Java 虚拟机崩溃或用尽了它继续操作所需的资源时,抛出该错误。

StackOverflowError:栈内存满了,当应用程序递归太深而发生堆栈溢出时,抛出该错误。

OutofMemoryError:堆内存满了,因为内存溢出或没有可用的内存提供给垃圾回收器时,Java 虚拟机无法分配一个对象,这时抛出该异常。

以上是一些常见的错误,在Error类中还有一些别的错误(参照文件Java.lang.Throwable.Error).

(2)Exception(异常)

一旦发生,可以捕获并处理,不会导致程序终止,有时可以避免有时无法避免。

异常的分类:

1.编译时异常(需要强制处理)       2.运行时异常(不需要强制处理)

常见的异常有:

IOException:输入输出流异常

FileNotFoundException:文件找不到的异常

ClassNotFoundException:类找不到的异常

DataFormatException:数据格式化异常

NoSuchFieldException:没有匹配的属性异常

NoSuchMethodException:没有匹配的方法异常

SQLException:数据库操作异常

TimeoutException:执行超时异常

常见的运行时异常:

RuntimeException:运行时异常

NullPointerException:空指针异常

ArrayIndexOutofBoundsException:数组越界异

ClassCastException:类型转换异常

IllegalArgumentException:非法的参数异常

InputMismatchException:输入不匹配

以上是常见的一些异常,另外还有别的异常,参见文件:Java.lang.Throwable.Exception

既然我们常常会遇到一些异常,那我们如何来处理这些异常就是一个急需解决的事情。

(1) 如何处理编译时异常?

方法一:将需要处理的代码块放在一个try...catch...中

try{

//需要处理异常的代码

}catch(XXXException ef){

ef.printStackTrace();

}

我们方法一就是要将我们不确定的代码放入try......catch中,先进行try一下,如果没有异常,则不会触发catch,没有输出,一旦出现异常,那么catch就会工作,在catch中捕获异常信息,根据异常信息进行补救措施。

如以下代码:

方法二:在出现异常的方法上直接向上抛出异常,throws

void ff() throws XXXException{

}

将出现的异常的代码中,放入如上的方法中,就会将异常抛给该方法的上一级,在主函数上继续向上抛,最终抛给JVM java虚拟机,让JVM来解决该问题。

如代码:

注意:在catch和throws的时候如果不确定是什么异常,就直接写一个Exception.

(2) 如何处理运行时异常?

1.一般情况下,运行时异常是不用处理的 

2.在某些情况下,如果对发生异常的结果进行处理,也可以对运行时异常进行try...catch...

以上就是一些我们处理编译时异常和运行时异常的方法。

在程序出现异常时,有时候我们可以自定义异常,以便我们能够发现是什么异常。

那么如何自定义异常??

1.当运行时,程序出现意外,可以抛出异常对象来结束程序

如:

//抛出运行时异常对象

RuntimeException ef = new RuntimeException("下标越界!index:"+index+" ,size:"+size());

throw ef;

2.对于编译时异常,同样可以抛出异常对象

但在方法定义时候必须加上throws

如:

public void test(int t) throws Exception{

if (t 0 || t 100) {

Exception ef = new Exception("数据错误");

throw ef;

}

}

例如:

运行结果:

从结果可以看出,我们在输入数据的时候出现错误,这样通过自定义异常能够让我们更直接快速的找到运行或编译时的异常。

在上述中我们分别提到了三种throw,分别是Throwable,Throws以及throw,那么到底三者有什么区别?

Throwable:是指在在Java.lang包中的一个类,其包含了所有的异常和错误,其中类Error和Exception 是它

的子类。

Thows:是指在解决编译时异常,将方法中异常抛给上一级,在方法后面要加Throw Exception来进行抛。

throw:是指在自定义异常时,如果方法出现异常,那么将作为引用方法的对象抛出。即抛出异常。

北大青鸟java培训:代码重构过程中会产生哪些常见问题?

相信大家在开发软件和进行软件维护的时候也会发现,有时候我们会针对一些软件的功能进行代码重构来让系统运行更加的稳定。

今天天津java培训就一起来了解一下,在代码重构的过程中都会遇到哪些问题。

1、离线任务和模型的管理问题。

我们做在线服务的都有体会,我们经常容易对线上业务逻辑代码更关注一些,而往往忽视离线代码任务的管理和维护。

但离线代码任务和模型在推荐场景中又至关重要。

因此如何有效维护离线代码和任务,是我们面临的一个问题。

2、特征日志问题。

在推荐系统中,我们常常会遇到特征拼接和特征的『时间穿越』的问题。

所谓特征时间穿越,指的是模型训练时用到了预测时无法获取的『未来信息』,这主要是训练label和特征拼接时时间上不够严谨导致。

如何构建便捷通用的特征日志,减少特征拼接错误和特征穿越,是我们面临的二个问题。

3、服务监控问题。

一个通用的推荐系统应该在基础监控上做到尽可能通用可复用,减少具体业务对于监控的开发量,并方便业务定位问题。

4、离线任务和模型的管理问题。

在包括推荐系统的算法方向中,需要构建大量离线任务支持各种数据计算业务,和模型的定时训练工作。

但实际工作中,我们往往忽略离线任务代码管理的重要性,当时间一长,各种数据和特征的质量往往无法保证。

为了尽可能解决这样的问题,我们从三方面来做,一,将通用推荐系统依赖的离线任务的代码统一到一处管理;二,结合公司离线任务管理平台,将所有任务以通用包的形式进行管理,这样保证所有任务的都是依赖新包;三,建设任务结果的监控体系,将离线任务的产出完整监控起来。

5、特征日志问题。

AndrewNg之前说过:『挖掘特征是困难、费时且需要专业知识的事,应用机器学习其实基本上是在做特征工程。

』我们理想中的推荐系统模型应该是有干净的RawData,方便处理成可学习的Dataset,通过某种算法学习model,来达到预测效果不断优化的目的。

但现实中,我们需要处理各种各样的数据源,有数据库的,有日志的,有离线的,有在线的。

这么多来源的RawData,不可避免的会遇到各种各样的问题,比如特征拼接错误,特征『时间穿越』等等。

这里边反应的一个本质问题是特征处理流程的规范性问题。

那么我们是如何来解决这一点呢,先,我们用在线代替了离线,通过在线落特征日志,而不是RawData,并统一了特征日志Proto,如此就可以统一特征解析脚本。

java中常见的几种异常

1、空指针异常类:NullPointerException

调用了未经初始化的对象或者是不存在的对象。经常出现在创建图片,调用数组这些操作中,比如图片未经初始化,或者图片创建时的路径错误等等。对数组操作中出现空指针, 即把数组的初始化和数组元素的初始化混淆起来了。

数组的初始化是对数组分配需要的空间,而初始化后的数组,其中的元素并没有实例化, 依然是空的,所以还需要对每个元素都进行初始化(如果要调用的话)。

2、数据类型转换异常:java.lang.ClassCastException

当试图将对某个对象强制执行向下转型,但该对象又不可转换又不可转换为其子类的实例时将引发该异常,如下列代码。

Object obj = new Integer(0);

String str = obj;

3、没有访问权限:java.lang.IllegalAccessException

当应用程序要调用一个类,但当前的方法即没有对该类的访问权限便会出现这个异常。对程序中用了Package的情况下要注意这个异常。

4、方法的参数错误:java.lang.IllegalArgumentException

比如g.setColor(int red,int green,int blue)这个方法中的三个值,如果有超过255的也会出现这个异常,因此一旦发现这个异常,我们要做的,就是赶紧去检查一下方法调用中的参数传递是不是出现了错误。

5、数组下标越界异常:java.lang.IndexOutOfBoundsException

查看调用的数组或者字符串的下标值是不是超出了数组的范围,一般来说,显示(即直接用常数当下标)调用不太容易出这样的错,但隐式(即用变量表示下标)调用就经常出错了。

还有一种情况,是程序中定义的数组的长度是通过某些特定方法决定的,不是事先声明的,这个时候先查看一下数组的length,以免出现这个异常。

6、文件已结束异常:EOFException

当程序在输入的过程中遇到文件或流的结尾时,引发异常。因此该异常用于检查是否达到文件或流的结尾

7、文件未找到异常:FileNotFoundException

当程序试图打开一个不存在的文件进行读写时将会引发该异常。该异常由FileInputStream,FileOutputStream,RandomAccessFile的构造器声明抛出,即使被操作的文件存在,但是由于某些原因不可访问,比如打开一个只读文件进行写入,这些构造方法仍然会引发异常。

8、字符串转换为数字异常:NumberFormatException

当试图将一个String转换为指定的数字类型,而该字符串确不满足数字类型要求的格式时,抛出该异常.如现在讲字符型的数据“123456”转换为数值型数据时,是允许的。

但是如果字符型数据中包含了非数字型的字符,如123#56,此时转换为数值型时就会出现异常。系统就会捕捉到这个异常,并进行处理。

9、指定的类不存在: java.lang.ClassNotFoundException

这里主要考虑一下类的名称和路径是否正确即可,通常都是程序试图通过字符串来加载某个类时可能引发异常。比如:调用Class.forName;或者调用ClassLoad的finaSystemClass;或者LoadClass;

10、实例化异常:java.lang.InstantiationException

当试图通过Class的newInstance方法创建某个类的实例,但程序无法通过该构造器来创建该对象时引发。Class对象表示一个抽象类,接口,数组类,基本类型 。该Class表示的类没有对应的构造器。


网站栏目:常见的java代码问题 java代码常见问题汇总
当前链接:http://kswjz.com/article/dopspgo.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流