java处理timestamp以及和date转换关系的总结

java处理timestamp以及和date转换关系的总结
java处理timestamp以及和date转换关系的总结

Java中Date及Timestamp时间相关内容(基本上看这一份就可以了)java.util.date java.sql.date java.sql.timestamp

整理一:

这里的一片文章,我个人认为讲解的很详细,有对 java.sql.Date的使用还有困惑的请看。

java.sql.Date 只存储日期数据不存储时间数据

// 会丢失时间数据

preparedStatement.setDate(1, new java.sql.Date(date.getTime()));

//可以这样来处理

preparedStatement.setTimestamp(1, new java.sql.Timestamp(new

java.util.Date().getTime()));

//想要得到完整的数据,包括日期和时间,可以这样

java.util.Date d = resultSet.getTimestamp(1);

//这样处理更合适一些,可以避免一些潜在Timestamp 问题

java.util.Date d = new

java.util.Date(resultSet.getTimestamp(1).getTime());

自己补的话

这样的话:

往数据库存储的时候可以接收 java.util.Date类型再用getTime()

方法得到代表那个Date对象的long值,再以这个long值构造一个Timestamp 对象存进数据库中。

从存数据库里取的时候,可以先得到Timestamp用他的getTime()方法得到long值,再以这个long值构造一个 java.util.Date对象,这样就可以对这个Date对象操作了。不如说 new SimpleTimeFormat("yyyyy-MM-dd

HH:mm:ss").format()等等

整理二:

用Timestamp来记录日期时间还是很方便的,但有时候显示的时候是不需要小数位后面的毫秒的,这样就需要在转换为String时重新定义格式。

Timestamp转化为String:SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//定义格式,不显示毫秒Timestamp now = new Timestamp(System.currentTimeMillis());//获取系统当前时间 String str = df.format(now); String转化为Timestamp: SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String time = df.format(new Date()); Timestamp ts =

Timestamp.valueOf(time);

整理三:在 ResultSet中我们经常使用的setDate或getDate的数据类型是java.sql.Date,而在平时java程序中我们一般习惯使用 java.util.Date。因此在DAO层我们经常会碰到这俩种数据类型的相互转换,经过了一个下午的折腾,鄙人对两者的转换方法做出了小小总结,希望大家不吝指教。

两者的关系

https://www.360docs.net/doc/7d14040151.html,ng.Object

|

+---java.util.Date

|

+----java.sql.Date

从这个图中我们可以知道java.sql.Date是从java.util.Date继承过来的。

相互转换

1. 使用getTime()函数

这两个类都提供了getTime()函数,用于返回对应的毫秒数(long类型)。利用这个函数可以实现转换:

java.util.Date utilDate = new

java.util.Date(sqlDate.getTime()); // sql -> util

java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime()); // util -> sql

2. 使用SimpleDateFormat类实现转换

SimpleDateFormat 是一个以国别敏感的方式格式化和分析数据的具体类。它允许格式化 (date -> text)、语法分析 (text -> date)和标准化。SimpleDateFormat dateFormat = new SimpleDateFormate("yyyy-MM-dd

HH:mm:ss");

java.util.Date utilDate = dateFormat.parse(sqlDate.toString());

3. 直接转换

由于java.sql.Date是从java.util.Date中继承过来的,所以可以直接用:utilDate = sqlDate;

4. 另类获得日期的方法:

SimpleDateFormat sy=new SimpleDateFormat("yyyy");

SimpleDateFormat sm=new SimpleDateFormat("MM");

SimpleDateFormat sd=new SimpleDateFormat("dd");

String syear=sy.format(date);

String smon=sm.format(date);

String sday=sd.format(date);

ps: java.util.Date类中的getYear()要加上1900才可得到实际值,getMonth()则要加上1

有关java中的Date,String,Timestamp之间的转化问题

一.获取系统当前时间:

1.System.out.println(new Timestamp(new java.util.Date().getTime)); //包含时分

2.System.out.println(new java.sql.Date(new java.util.Date().getTime)); //不包含时分秒

3.通过格式化类获取任意格式的时间

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss SSS"); String time = sdf.format(Calendar.getInstance().getTime());

System.out.println(time);

sql包的Date类没有无参的构造函数,而util的Date类有无参的构造函数java.util.Date date = new java.util.Date();是正确的 //Tue Jun 15

09:04:23 CST 2010

java.sql.Date date = new java.sql.Date();是错误的

但是sql包的Date有一个带long型参数的构造函数,因此可以使用以下方式

java.sql.Date date = new java.sql.Date(new

java.util.Date().getTime()); //2010-6-17

new java.util.Date():构造函数没有接受任何参数. 而这个构造函数在内部使用了System.currentTimeMillis() 方法来从系统获取日期. 下面是util包的Date的构造方法:

public Date() { this(System.currentTimeMillis()); }

还发现一件怪异的事情:

// String转化成date String str = "9-29-2001";

System.out.println(java.sql.Date.valueOf(str));

输出:

0016-10-21

真是奇怪.

三. Date转化成String

//Date转化成String: SimpleDateFormat sdf = new

SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");

System.out.println(sdf.format(new Date()));

输出:

2010-06-17 16:30:21 781

四. Timestamp转化成String

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//定义格式,不显示毫秒

Timestamp now = new Timestamp(System.currentTimeMillis());//获取系统当前时间

String str = df.format(now);

System.out.println(str);

输出:

2010-06-17 16:46:34

五. String转化成Timestamp

SimpleDateFormat df1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); java.util.Date date11 = df1.parse("2010-6-2 16:10:38.00");

String time = df1.format(date11);

Timestamp ts = Timestamp.valueOf(time);

System.out.println(ts);

输出:

2010-06-02 16:10:38.0

引用

还发现一件怪异的事情:

// String转化成date String str = "9-29-2001";

System.out.println(java.sql.Date.valueOf(str));

Date#valueOf(String)的String格式都是yyyy-mm-dd.

引用

五. String转化成Timestamp

SimpleDateFormat df1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); java.util.Date date11 = df1.parse("2010-6-2 16:10:38.00");

String time = df1.format(date11);

Timestamp ts = Timestamp.valueOf(time);

System.out.println(ts);

这样的构造是没有效率的,Timestamp 是 java.util.Date的子类,可以这么做:new Timestamp(java.util.Date#getTime());

段箭*残箫写道

还发现一件怪异的事情:

// String转化成date String str = "9-29-2001";

System.out.println(java.sql.Date.valueOf(str));

输出:

0016-10-21

真是奇怪.

你从公元 9年1月1日算起,加上2001天,和29个月,时间就是公元 16年10月21日

Timestamp是由java.util.Date和单独的毫微秒值组成。只有整数秒才会存储在java.util.Date组件中。小数秒(毫微秒)是独立存在的。传递java.util.Date类型的值时,Timestamp.equals(Object)方法永远不会返回true,因为日期的毫微秒组件是未知的。鉴于Timestamp类和上述java.util.Date类之间的不同,建议代码一般不要将Timestamp值视为java.util.Date的实例。Timestamp和

java.util.Date之间的继承关系实际上指的是实现继承,而不是类型继承。

Timestamp的解释1:

timestamp 这个类的构造函数是

Java代码

1.Timestamp(Date timestamp, CertPath signerCertPath)

date对象是不需要制定格式的。。。我不明白有什么地方需要用到这个类,你完全可以通过long来表示时间。。。

虽然不理解你的做法,但是如果你要yyyy-mm-dd hh:mm:ss

Java代码

1.Date d1 = new Date();

2.SimpleDateFormat smf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"

);

3.String s1=smf.format(d1);

4.System.out.println(s1);

beneo (架构师) 2010-12-31

呵,兄弟,你描述得真的是很难理解:

1、timestamp到底是指数据库的字段类型,还是java中的java.sql.Timestamp 类

2、如果你是指数据库查询的比较的话, 跟""、null这种值比较是没问题的

3、

构造函数1:

// 已不建议使用

@Deprecated

public Timestamp(int year, int month, int date,

int hour, int minute, int second, int nano)

构造函数2:

// time时间对应的毫秒数

public Timestamp(long time)

如:Timestamp ts = new Timestamp(1293804215328);

4、如果说构建Timestamp对象的话,那么格式有限制的只有这方法了Timestamp ts1 = Timestamp.valueOf("2010-12-31 22:22:22"); Timestamp ts2 = Timestamp.valueOf("2010-12-31 22:22:22.23");

格式必须为:yyyy-mm-dd hh:mm:ss[.f...]

解释2:

一般在页面通过时间查询的时候,在后台获取到的值为字符串,要设置到Date或Timestamp 对象中时,需要将时间字符串转化为对象。

Java代码

1.import java.sql.Timestamp;

2.import java.text.DateFormat;

3.import java.text.ParseException;

4.import java.text.SimpleDateFormat;

5.import java.util.Date;

6.

7./**

8. *

9. */

10.

11./**

12. * @author qiuzj

13. *

14. */

15.public class Test {

16.

17. /**

18. * @param args

19. * @throws ParseException

20. */

21. public static void main(String[] args) throws ParseExceptio

n {

22. // 日期时间格式

23. DateFormat datetimeDf = new SimpleDateFormat("yyyy-MM-d

d HH:mm:ss");

24.

25. // 假设这个是从前台查询传过来的时间字符串

26. String dateStr = "2010-12-31 22:22:22";

27.

28. // 根据日期时间格式将时间字符串转化为对象

29. Timestamp ts = Timestamp.valueOf(dateStr);

30. Date date = datetimeDf.parse(dateStr);

31.

32.

33. // 日期

34. DateFormat dateDf = new SimpleDateFormat("yyyy-MM-dd");

35.

36. // 日期字符串

37. dateStr = "2010-12-31";

38.

39. // 根据日期格式将时间字符串转化为对象

40. date = dateDf.parse(dateStr);

41. ts = new Timestamp(date.getTime());

42.

43. }

44.

45.}

解释4:

应该仔细的阅读api的,你看在java.sql.Timestamp有个long型的构造函数Timestamp(long),这样的话你可以输入long型的变量,long型的构造请参阅Calendar

此外,将使用 JDBC 时间戳转义格式的 String 对象转换为 Timestamp 值的话,你可以使用Timestamp#valueOf(String)

输入的字符串可以是二者之一,对应不同的精度:

* yyyy-mm-dd hh:mm:ss 格式下的字符数

* yyyy-mm-dd hh:mm:ss.[fff...] 格式下的字符数(fff表示纳秒)

以上,是回答你的问题,以下是推荐给你的

一般来说,我们可以通过js直接生成yyyy-mm-dd hh:mm:ss的字符串的,因为js的时间,我们都是通过日历点出来的,一般都有年月日还有小时分秒,你可以参考以下链接

https://www.360docs.net/doc/7d14040151.html,/yank/archive/2008/08/14/1267746.html

https://www.360docs.net/doc/7d14040151.html,/projects/calendar/

https://www.360docs.net/doc/7d14040151.html,/blodfox777/archive/2008/08/13/1266639.html

没有显示小时分秒的多试试几个

beneo (架构师) 2011-01-01

Java代码

1.public void doPost(HttpServletRequest request, HttpServletRespo

nse response)

2. throws ServletException, IOException {

3.

4. Timestamp timeUseForSearchInDatabase = null;

5.

6. //假设你前台传来的用于查询的时间字符串名称为

searchDate

7. String searchDate = request.getParameter("searchDate");

8. //假设你前台传入的日期格式为

2010-08-05 11:20:12(yyyy-MM-dd HH:mm:ss)

9. if (null != searchDate && !"".equals(searchDate)) {

10. try {

11. timeUseForSearchInDatabase = new Timestamp(new

SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(searchDate).getTi me());

12. } catch (ParseException e) {

13. e.printStackTrace();

14. }

15. }

16.

17. //这时timeUseForSearchInDatabase就可以直接放到

Hibernate的实体对应字段中去了

18. //其实,hibernate中对应数据库中的DateTime类型,实体中

可以采用java.util.Date类型,

19. //另外,Hibernate中的timestamp类型的字段是可以为null

的,但不能为"";其实""你也注入不进去,因为""是字符串类型的,你所说的前台页面表单中

20. //什么也不输时报错,是因为页面中的任何表单不输入内容,传

到后台的值将都是字符串"",而不是null,这个你要处理的,你要将""

转换成null,

21. //你用了SSH,可以使用Struts的过滤器自动过滤,但也可以

使用我上面这种方法(虽然有点笨,有点烦,但还是比较实用的)。

22.

23. /**

24. * 下面向你介绍一下我对日期类型的处理办法:

25. * 1、页面前台:①、使用日期控件,直接限制用户的输入日期

格式(html页面中的日期输入控件有很多,我常用My97DatePicker,简介方便),这样前台用户输入的

26. * 日期要么是空字符串"",要么是我们预设好的日期格

式,传到后台后按照规则解析处理即可。②、使用js的验证功能强行用户输入指定格式的日期

27. * 2、业务逻辑层:使用我上面这中方法进行转换处理,将空字

符串""转换成null,将正确的日期字符串转换成对应的日期对象再使

用。

28. * 3、保存:①、使用Hibernate的实体直接保存,将转换成的

日期对象直接方法实体中即可(强调一下:日期字段是null是可以的,但""肯定不行)

29. * ②、使用Hql保存,也可直接将刚转换成的日期对

象作为参数传入hql

30. * ③、使用sql,sql中的日期是可以直接使用字符串

来保存的,所以不必转换,也可使用sql参入注入的方法注入到sql中后执行。

31. *

32. *

33. * 当然从数据库中取出数据用于前台展示,将是上面过程的逆

过程,首先取出数据,此时是一个日期对象,要使用SimpleDateFormat 进行格式化,转换成字符串传到

34. * 前台进行显示(如果是jsp页面可以在页面中处理,如果使用

Struts技术,可以使用Struts的标签技术,如果是使用像Ext、

Jquery Easy UI则在使用JSONObject

35. * 将数据格式化成json字符串时,为JSONObject格式化写一

个专门针对日期类型的处理器,那么在JSONObject进行格式化时,会自动按照处理器的要求将日期格式化成

36. * 你想要的字符串格式(比如:yyyy-MM-dd、

yyyy-MM-dd HH:mm:ss等等,你要做的就是为JSONObject格式化处理器传入一个日期格式表达式即可))

37. *

38. *

39. * 写的有点多了,偏了点题,不知是否能解决你的问

题!!!!!!!!!?????????????????

40. */

41. }

解释5:

数所库字段是DateTime类型,对应的是java.util.Date或java.sql.Date,java.sql.Timestamp对应的数据库类型是Timestamp。

java.util.Date或java.sql.Date是精确到毫秒的,某些数据库用Date来表示日期(精确到天)、用DateTime来表示日期和时间(精确到毫秒),如Oracle 则只有Date(精确到毫秒)。

java.sql.Timestamp是精确到纳秒的,对应数据库的Timestamp类型。

考虑到你用的是Struts,换回Date应该没问题了。

oracle 如何保存timestamp

保存时间戳问题

oracle 如何保存timestamp:

表字段设置成 TIMESTAMP类型就好了吧。

至于怎么生成 TIMESTAMP的值。这不是问题吧

oracle的timestamp类型使用

我们都知道date和timestamp都是对日期和时间的表示,只是两种类型的精确度不同,前者精确到秒,后者精确到小数秒(fractional_seconds_precision),可以是0 to 9,缺省是6。

但是对date类型的运算很简单,有很多函数可用来处理;而两个timestamp的差则是很直观地显示为多少天+多少小时+多少分钟+多少秒+多少小数秒,

SQL> create table test (T1 TIMESTAMP(6),

2 T2 TIMESTAMP(6));

表已创建。

SQL> insert into test values(

2 to_timestamp('2006-01-01 12:10:10.1','yyyy-mm-dd hh24:mi:ss.ff'),

3 to_timestamp('2006-01-01 12:20:10.2','yyyy-mm-dd hh24:mi:ss.ff'));

已创建1 行。

SQL>

SQL> insert into test values(

2 to_timestamp('2006-01-01 12:10:10.1','yyyy-mm-dd hh24:mi:ss.ff'),

3 to_timestamp('2006-01-02 12:20:10.2','yyyy-mm-dd hh24:mi:ss.ff'));

已创建1 行。

SQL>

SQL> insert into test values(

2 to_timestamp('2006-01-01 12:10:10.1','yyyy-mm-dd hh24:mi:ss.ff'),

3 to_timestamp('2006-01-02 13:40:20.2','yyyy-mm-dd hh24:mi:ss.ff'));

已创建1 行。

SQL> commit;

提交完成。

SQL>

两个timestamp的差则是很直观地显示为多少天+多少小时+多少分钟+多少秒+多少小数秒:

SQL> select t2-t1 from test;

+000000000 00:10:00.100000

+000000001 00:10:00.100000

+000000001 01:30:10.100000

SQL>

但要简单地转化为某一个精度却比较麻烦,用类似date类型的处理方法是不行的。如转化为分:

SQL> select 1440*(t2-t1) from test;

+000000010 00:02:24.000000000

+000001450 00:02:24.000000000

+000001530 04:02:24.000000000

SQL>

发现结果根本不是原先想要的,而是在原先的“多少天+多少小时+多少分钟+多少秒+多少小数秒”的每一项都乘以1440再进行进制处理。

最容易理解的就是用substr将两个timestamp的差进行分割转化处理:

SQL> SELECT substr((t2-t1),instr((t2-t1),' ')+7,2)

seconds,

2 substr((t2-t1),instr((t2-t1),' ')+4,2)minutes,

3 substr((t2-t1),instr((t2-t1),' ')+1,2)hours,

4 trunc(to_number(substr((t2-t1),1,instr(t2-t1,' '))))days,

5 trunc(to_number(substr((t2-t1),1,instr(t2-t1,' ')))/7) weeks

6 FROM test;

SECO MINU HOUR DAYS WEEKS

---- ---- ---- ---------- ----------

00 10 00 0 0

00 10 00 1 0

10 30 01 1 0

或者利用自定义函数来实现将天数转换成“天时分秒”格式:

CREATE OR REPLACE FUNCTION F_DAYS2STR(P_DAYS IN NUMBER DEFAULT 0)

RETURN VARCHAR2 IS

--Ver:1.0

--Created by xsb on 2005-05-26

--For: 将天数转换成天时分秒格式

DAYS NUMBER := NVL(P_DAYS, 0);

VD NUMBER; --天

VH NUMBER; --小时

VM NUMBER; --分

VS NUMBER; --秒

RESULT VARCHAR2(100); --返回值

BEGIN

VD := TRUNC(DAYS);

VH := TRUNC((DAYS - VD) * 24);

VM := TRUNC((DAYS - VD - VH / 24) * 24 * 60);

VS := TRUNC((DAYS - VD - VH / 24 - VM / 24 / 60) * 24 * 60 * 60);

SELECT DECODE(VD, 0, '', VD || '天') || DECODE(VH, 0, '', VH || '小时') ||DECODE(VM, 0, '', VM || '分') || DECODE(VS, 0, '', VS || '秒') INTO RESULT FROM DUAL;

RETURN(RESULT);

END;

SQL>

如果最后结果的精度要求不高时(在分或分以上时),就可以先将timestamp

转化为date再结算,这样就简单多了:

SQL> select (to_date(to_char(t2,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd

hh24:mi:ss'

)-to_date(to_char(t1,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd

hh24:mi:ss'))*24*60

2 from test;

10

1450

1530.16667

date转换为timestamp:

SELECT CAST(sysdate AS TIMESTAMP) from dual;

Java语言提供两种异常处理机制

得到一个异常对象是,它将会沿着方法的调用栈逐层回溯,寻找处理这一异常的代码。找到能够处理这种类型异常的方法后,运行时系统把当前异常交给这个方法处理;如果找不到可以捕获异常的方法,则运行时系统将终止,相应的Java程序也将退出。捕获异常是通过try-catch-finally语句实现的。语法为:try{ ... }catch(ExceptionName1 e){ ... }catch(ExceptionName2 e){ ... } ... }finally{ ... } 2)声明抛弃异常:当Java 程序运行时系统得到一个异常对象时,如果一个方法并不知道如何处理所出现的异常,则可在方法声明时,声明抛弃异常。声明抛弃异常是在一个方法声明中的throws子句中指明的。如:public int read() throws IOException{ ... } 其中throws IOException就是声明抛弃异常,throws后可以跟多个异常类型。 1. https://www.360docs.net/doc/7d14040151.html,ng.nullpointerexception 这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用了未经初始化的对象或者是不存在的对象,这个错误经常出现在创建图片,调用数组这些操作中,比如图片未经初始化,或者图片创建时的路径错误等等。对数组操作中出现空指针,很多情况下是一些刚开始学习编程的朋友常犯的错误,即把数组的初始化和数组元素的初始化混淆起来了。数组的初始化是对数组分配需要的空间,而初始化后的数组,其中的元素并没有实例化,依然是空的,所以还需要对每个元素都进行初始化(如果要调用的话) 2. https://www.360docs.net/doc/7d14040151.html,ng.classnotfoundexception 这个异常是很多原本在jb等开发环境中开发的程序员,把jb下的程序包放在wtk下编译经常出现的问题,异常的解释是"指定的类不存在",这里主要考虑一下类的名称和路径是否正确即可,如果是在jb下做的程序包,一般都是默认加上package的,所以转到wtk下后要注意把package的路径加上。 3. https://www.360docs.net/doc/7d14040151.html,ng.arithmeticexception 这个异常的 好好检查一下自己程序中涉及到数学运算的地方,公式是不是有不妥了。 4. 是超出了数组的范围,一般来说,显示(即直接用常数当下标)调用不太容易出这样的错,但隐式(即用变量表示下标)调用就经常出错了,还有一种情况,是程序中定义的数组的长度是通过某些特定方法决定的,不是事先声明的,这个时候,最好先查看一下数组的length,以免出现这个异常。 5. https://www.360docs.net/doc/7d14040151.html,ng.illegalargumentexception 这个异常的解释是"方法的参数错误",很多j2me的类库中的方法在一些情况下都会引发这样的错误,比如音量调节方法中的音量参数如果写成负数就会出现这个异常,再比如g.setcolor(int red,int green,int blue)这个方法中的三个值,如果有超过255的也会出现这个异常,因此一旦发现这个异常,我们要做的,就是赶紧去检查一下方法调用中的参数传递是不是出现了错误。 6. https://www.360docs.net/doc/7d14040151.html,ng.illegalaccessexception 这个异常的解释是"没有访问权限",当应用程序要调用一个类,但当前的方法即没有对该类的访问权限便会出现这个异常。对程序中用了package的情况下要注意这个异常。其他还有很多异常,我就不一一列举了,我要说明的是,一个合格的程序员,需要对程序中常见的问题有相当的了解和相应的解决办法,否则仅仅停留在写程序而不会改程序的话,会极大影响到自己的开发的。关于异常的全部说明,在api里都可以查阅。算术异常类:ArithmeticExecption 空指针异常类:NullPointerException 类型强制转换异常:ClassCastException 数组负下标异常:NegativeArrayException 数组下标越界异常:ArrayIndexOutOfBoundsException 违背安全原则异常:SecturityException 文件已结束异常:EOFException 文件未找到异常:FileNotFoundException 字符串转换为数字异常:NumberFormatException 操作数据库异常:SQLException 输入输出异常:IOException 方法未找到异常:NoSuchMethodException https://www.360docs.net/doc/7d14040151.html,ng.AbstractMethodError 抽象方法错误。当应用试图调用抽象方法时抛出。https://www.360docs.net/doc/7d14040151.html,ng.AssertionError 断言错。用来指示一个断言失败的情况。https://www.360docs.net/doc/7d14040151.html,ng.ClassCircularityError 类循环依赖错误。在初始化一个类时, 个文件中读取Java类,而检测到该文件的内容不符合类的有效格式时抛出。https://www.360docs.net/doc/7d14040151.html,ng.Error 错误。是所有错误的基类,用于标识严重的程序运行问题。这些问题通常描述一些不应被应用程序捕获的反常情况。https://www.360docs.net/doc/7d14040151.html,ng.ExceptionInInitializerError 初始化程序错误。当执行一个类的静态初始化程序的过程中,发生了异

java项目总结报告

篇一:《java项目总结》 项目总结 这是一次比较完整的团队合作项目,它要求团队各成员对系统的主体设计搭成一定的共识,这包括数据库设计,需求分析,以及其它一些细节,因此在编码之前的准备工作一定要充分。 在设计之前,我们两组对于数据库的设计进行了激烈的讨论,最后在一些关键的问题上统一了意见。接下来的工作便是需求分析,具体结构设计,并制订小组项目详细计划,项目的进行将严格按照所制订的计划执行。然后小组成员对各自的数据库进行了设计,并且以数据字典的形式进行了共享。 企业级人力资源系统分为十个子系统机构编制管理、人员信息管理、人事档案管理、考勤管理、薪资福利管理、社会保障管理、招聘管理、合同管理、查询统计管理、系统管理。我负责人员信息管理子系统,这方面需要处理的业务逻辑比较少,表单比较多,要把握好与其它子系统的关联。员工基本信息表是与其它子系统关联的桥梁,大部分表都涉及到与基本信息表的外键关联。其中,职员编号(employeeId)是作为外键关联的字段,我给它设置了自增长。有人认为在企业里,职员编号应该是有一定规律的数字,而不应该设置自增长。这样的是想法很

符合实际情况,后来我和两个组长讨论,认为自增长可以保证数据的唯一性,非自增长的主键在增加时可能遇到不可知的问题,并且其他组员的数据库已经设计好,改起来就麻烦了。因此最终职员编号采用了自增长。 有了上面的共识,接下来的重要工作便是依次完成表的增删改查、数据校验。其中,分页和批量删除是我计划最后完成的部分,并且一定要完成。 基本数据校验按各数据格式进行,例如手机号、e-mail等。另一方面要对职员编号与姓名的一致性,职员编号的存进行验证,这些通过DAO里面的方法实现,针对出错,用JS给出友好的提示。 在做好基本功能的前提下,争取做出特色。我尝试写了Hibernate分页、批量删除的代码,最后都测试成功。同时加入了JS控件,对于一些有特殊格式要求的字段,防止用户填写错误(比如日期的填写格式为yyyy-mm-dd),使系统更加人性化。经过讨论,对员工基本信息主表及与其关联的所有表,配置级联删除。当主表信息被删除时,与之外键关联的子表信息同时被删除。 回顾这段历程,遇到了一些瓶颈,例如批量删除时如何有效的处理选中的id,要明白它得到的是一个String[],需要转化成int[]就好办了。关于分页,我也是琢磨了好久。在网上看了不少实例,具体实现起来还是一头雾水。就在项目验收的前两天晚上,我决定自己写的试试。第一个方法是需要获取表里面总记录数count,按照套路执行hql,我这样处理了结果count=list.size();结果出了问题。

java开发实习心得体会

四川实习心得体会 计算本一班01210251y33 张焕炎 大四初始,我已经闻到了离别的气息,在这即将远离大学时代的时刻,才真正懂得回眸的意义。想想走过的路,想想现在的路,想想来时的路,不知道未来能否成功,既然选择了远方,就注定要风雨兼程! 在四川短暂的一个月里,我从基础入手,强化了java语言编程,学习了java 语言编程和编程概念与技巧。时间很短,但成长很快,无论是理论知识还是动手实践能力都得到了大幅度的提高。而将理论和实践相结合,相互促进,相互补充,使得学习更加透彻。通过用不同方法实现同一个项目,不断深入,层层推进,学以致用! 实践过程中,开发一个简单的小项目,包括如何将Java的思想运用到实际系统的详细设计之中。首先要将系统要实现的功能分为几大模块,然后每个分别完成,在此过程中使我加深了对Java的理解,以及如何进行工作的划分,与此同时熟练掌握Java语言的编辑,编译,调试程序,并将算法转变为程序实现。我将设计过程分为逻辑设计和详细设计两个步骤实现.逻辑设计指的是,对问题描述中涉及的对象定义相应的数据类型,定义主程序模块和各抽象数据类型及其代码;详细设计则为定义相应的模块的实现并写出各模块的实现代码。然后在连接数据库,编码测试,最后确定完成。 通过这次实践,使我灵活应用所学知识,独立完成问题分析,结合Java理论知识,编写程序解决指定问题。初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;提高综合运用所学的理论知识和方法独立分析和解决问题的能力。同时在这次实践中,培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。然而,在这次实践中,我觉得一个人完成一个项目是多么的艰难,在一些大型的项目中,团队合作是多么重要。尽管这次只是一个小项目,却也要耗费大量的精力。我学习了知识,也培养了实践能力,让我知道遇到一个问题,如何去寻找思路,如何去解决问题,最终完成整个事情。学习的过程中不可避免的遇到问题,这些问题有的只是一个符号错了,一个括号少了,这类的问题在他的文档,或者一般的网站上就能够找到,尤其是初学者的问题,不会是很难的问题,在你之前已经无数人问过了,不要害怕提问,但

java异常处理例题代码

App9_1.java:输出一个数组的所有元素,捕获数组下标越界异常和除娄为0异常。public class App9_1{ public static void main(String args[]){ int i; int[] a={1,2,3,4}; for(i=0;i<5;i++) System.out.println(" a["+i+"]="+a[i]); System.out.println("5/0"+(5/0)); } } App9_2.java:使用try-catch-finall语句对程序中的异常进行捕获与处理。 public class App9_2{ public static void main(String args[]){ int i; int a[]={1,2,3,4}; for (i=0;i<5;i++){ try{ System.out.print("a["+i+"]/"+i+"="+(a[i]/i)); } catch(ArrayIndexOutOfBoundsException e){ System.out.print("捕获到了数组下标越界异常"); } catch(ArithmeticException e){ System.out.print("异常类名称是:"+e); //显示异常信息 } catch(Exception e){ System.out.println("捕获"+e.getMessage()+"异常!"); //显示异常信息 } finally{ System.out.println(" finally i="+i); } } System.out.println("继续!!"); } } App9_3.java:使用throw语句在方法中抛出异常。 public class App9_3{ public static void main(String args[]){ int a=5,b=0; try{ if (b==0) throw new ArithmeticException(); //抛出异常,不是必须的 else System.out.println(a+"/"+b+"="+a/b); //若不抛出异常,则运行此行

程序设计异常处理机制

异常处理是程序设计中一个非常重要的方面,也是程序设计的一大难点,从C开始,你也许已经知道如何用if...else...来控制异常了,也许是自发的,然而这种控制异常痛苦,同一个异常或者错误如果多个地方出现,那么你每个地方都要做相同处理,感觉相当的麻烦!Java 语言在设计的当初就考虑到这些问题,提出异常处理的框架的方案,所有的异常都可以用一个类型来表示,不同类型的异常对应不同的子类异常(这里的异常包括错误概念),定义异常处理的规范,在1.4版本以后增加了异常链机制,从而便于跟踪异常!这是Java语言设计者的高明之处,也是Java语言中的一个难点,下面是我对Java异常知识的一个总结,也算是资源回收一下。 一、Java异常的基础知识 异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。比如说,你的代码少了一个分号,那么运行出来结果是提示是错误https://www.360docs.net/doc/7d14040151.html,ng.Error;如果你用System.out.println(11/0),那么你是因为你用0做了除数,会抛出https://www.360docs.net/doc/7d14040151.html,ng.ArithmeticException的异常。 有些异常需要做处理,有些则不需要捕获处理,后面会详细讲到。 天有不测风云,人有旦夕祸福,Java的程序代码也如此。在编程过程中,首先应当尽可能去避免错误和异常发生,对于不可避免、不可预测的情况则在考虑异常发生时如何处理。Java中的异常用对象来表示。Java对异常的处理是按异常分类处理的,不同异常有不同的分类,每种异常都对应一个类型(class),每个异常都对应一个异常(类的)对象。 异常类从哪里来?有两个来源,一是Java语言本身定义的一些基本异常类型,二是用户通过继承Exception类或者其子类自己定义的异常。Exception 类及其子类是Throwable的一种形式,它指出了合理的应用程序想要捕获的条件。 异常的对象从哪里来呢?有两个来源,一是Java运行时环境自动抛出系统生成的异常,而不管你是否愿意捕获和处理,它总要被抛出!比如除数为0的异常。二是程序员自己抛出的异常,这个异常可以是程序员自己定义的,也可以是Java语言中定义的,用throw 关键字抛出异常,这种异常常用来向调用者汇报异常的一些信息。 异常是针对方法来说的,抛出、声明抛出、捕获和处理异常都是在方法中进行的。 Java异常处理通过5个关键字try、catch、throw、throws、finally进行管理。基本过程是用try语句块包住要监视的语句,如果在try语句块内出现异常,则异常会被抛出,你的代码在catch语句块中可以捕获到这个异常并做处理;还有以部分系统生成的异常在Java运行时自动抛出。你也可以通过throws关键字在方法上声明该方法要抛出异常,然后在方法内部通过throw抛出异常对象。finally语句块会在方法执行return之前执行,一般结构如下: try{ 程序代码 }catch(异常类型1 异常的变量名1){ 程序代码 }catch(异常类型2 异常的变量名2){ 程序代码 }finally{ 程序代码 } catch语句可以有多个,用来匹配多个异常,匹配上多个中一个后,执行catch语句块时候仅仅执行匹配上的异常。catch的类型是Java语言中定义的或者程序员自己定义的,表示代

java学生管理系统实训报告

. Java学生管理系统实训报告 学号: 名:姓班级: 指导老师:

范文word . 一、项目计划 (1)项目名称:学生信息管理系统 (2)实训地点: (3)小组成员: 二、系统总体设计 (1)需求分析 学生信息管理系统,是对学生的个人信息,课程信息,成绩信息以信息化的方式进行管理,最大限度地减少各个环节可能出现的错误,有效减少因人力资源局限性导致的存储信息量大,信息存储错误,混淆等问题,合理进行信息存储,使学校能够合理录入学生的个人资料,学期成绩情况,以及课程安排,为学校师生的工作提供后方面。 通过实际调查,要求学生信息管理系统具有以下功能: 1.界面设计美观大方,方便,快捷,操作灵活。 2.实现强大的学生个人信息,课程信息,成绩信息的查询,修改,录入,删除管理。 3.实现强大的联系人信息及其类别的查询,录入,删除管理。 4.能够在不同的的操作系统下运行,不局限于特定的平台。 5.提供数据库备份与恢复功能。 6.提供友情平台,例如:计算机,方便对成绩的操作;

(2)项目计划安排 一项任务的成功完成,必须依靠合理的计划安排以及各种资源的有效利用。有计划、有步骤地进行软件开发,除了可以提高开发进度 范文word . 外,更能明确项目组各成员之间的职责及任务。项目进度表要安排每个成员的任务,并要求成员每天修改自己的进度,保证项目管理人员可以随时查看整个项目的进度,以及时发现问题,调整工作策略。(3)概要设计 概要设计是根据系统分析的需求和工作环境的情况对整个软件 的总体结构进行大致的设计。概要设计要坚持以下几个原则:1:细 分原则2:提高代码重用性:3:从上而下层层分析4:一致性原则5:提高独立性6:模块的大小要尽量适中。由于概要设计是整个设计的重中之重,牵一发而动全身,所以要努力做一个好的概要设计,才能在今后软件开发过程中不再反复。现在软件行业流行模式化驱动设计,将一些市场上比较成功的模式拿来用在自己的设计中。 (4)详细设计 概要设计是为了明确开发人员的工作步骤和工作目标。详细设计使开发人员可以轻松地完成代码的编写,并熟悉所编写的业务流程。(5)数据表设计 根据系统所需,可以得出需要以下数据表信息: 需要管理学生信息:学生表。 需要管理教师信息:教师表。

【心得体会范文】java实验心得体会精选

java实验心得体会精选 java实验心得体会一:软件专业java实习心得 大学生活临近了尾声,这短短的三年,却是我的人生中弥足珍贵 的时光。在这三年里,我从一个莽撞少年成长为一名合格的大学生, 用脱胎换骨来形容并不为过。总结过去可以拨开时间的迷雾,清晰的 回首所走过的路,从而为将来的人生旅程准备一些经验和教训。 大学生活主线是学习。大学学习是迥然不同于以往的一种新形式,它赋予了学习者更大的自主性和更广阔的思维空间,同时也对学习者 提出了更高的要求。在这种半开放式的教学模式下,要求学习者必须 有明确的学习目的,有更强的选择辨别能力和更强的自学能力。对于 这个方面,我应该感谢大学这四年的学习生涯,在这期间的历次挫折 与成功,使我真正知道了怎样进行自我学习,怎样有选择有目的的学习,随之而来的是自己自学能力和学习效率的提高。而学习之外的课 外科技活动的参与,同时也是对所学知识的一种巩固和加强,它不仅 提高了我的动手能力,拓宽了我的知识面,而且在不断的探索过程中,也促使自己学习更多更新的东西,这更进一步丰富了自己的理论知识。 通过此次实习,让我学到了很多课堂上更本学不到的东西,仿佛 自己一下子成熟了,懂得了做人做事的道理,也懂得了学习的意义, 时间的宝贵,人生的真谛。明白人世间一生不可能都是一帆风顺的, 只要勇敢去面对人生中的每个驿站!这让我清楚地感到了自己肩上的 重任,看清了自己的人生方向,也让我认识到了文秘工作应支持仔细 认真的工作态度,要有一种平和的心态和不耻下问的精神,不管遇到 什么事都要总代表地去思考,多听别人的建议,不要太过急燥,要对 自己所做事去负责,不要轻易的去承诺,承诺了就要努力去兑现。单 位也培养了我的实际动手能力,增加了实际的操作经验,对实际的文 秘工作的有了一个新的开始,更好地为我们今后的工作积累经验。

JAVA实验四异常处理

实验四异常处理 实验目的 1、掌握异常的概念和Java 异常处理机制。 2、掌握异常的定义、抛出和捕捉处理。 实验内容与要求 1、仔细读下面的JAVA语言源程序,自己给出程序的运行结果 import java.io.*; public class Ch31 { public static void main(String args[])throws IOException { int[] ko=new int[15]; int n,a; String x; BufferedReader keyin=new BufferedReader(new InputStreamReader(System.in)); System.out.print("Enter an integer:"); x=keyin.readLine(); n=Integer.parseInt(x); try { a=110/n; ko[15]=100; System.out.println("此描述无法执行!"); } catch(ArithmeticException e){ System.out.println("除数为0的错误"); } catch(ArrayIndexOutOfBoundsException f) { System.out.println("数组索引值大于数组长度的错误!"); } System.out.println("执行完catch的描述!!!"); } } 2.运行下面的程序,自己给出程序的运行结果。 import java.io.*; public class Ch32{ public Ch32(){ try{ int a[] = new int[2]; a[4] = 3; System.out.println("After handling exception return here?"); }catch(IndexOutOfBoundsException e){ System.err.println("exception msg:" + e.getMessage()); System.err.println("exception string:" + e.toString()); e.printStackTrace(); }finally{

JAVAWEB实训心得体会

jsp+servlet+mysql 论坛项目实训总结 实训人:程路峰学号: 11103303 通过为期 10 天的实训,我学习了很多关于 java web 的知识。在老师的正确指导下,顺利的完成了我的实训内容。在此,也有同学的帮助,在他们的帮助下我也受益匪浅。最终,能顺利完成实训的任务也很高兴。 在实训生活中,我了解开发项目的需求、设计、实现、确认以及维护等活动整个过程,让自己开始懂得一点软件工程的知识点。 首先,了解需求分析的重要性,比如:需求分析就是分析软件用户的需求是什么.如果投入大量的人力,物力,财力,时间,开发出的软件却没人要,那所有的投入都是徒劳.如果费了很大的精力,开发一个软件,最后却不满足用户的要求, 从而要重新开发过,这种返工是让人痛心疾首的.(相信大家都有体会)比如,用户需要一个 for linux 的软件,而你在软件开发前期忽略了软件的运行环境,忘了向用户询问这个问题,而想当然的认为是开发 for windows 的软件,当你千辛万苦地开发完成向用户提交时才发现出了问题,那时候你是欲哭无泪了,恨不得找块豆腐一头撞死。所以,需求分析是成功的第一步,就是要全面地理解用户的各项要求,并准确地表达所接受的用户需求。 然后呢?确实客户的需求的以后我们要做什么呢,那当然是设计和分析。此阶段主要根据需求分析的结果,对整个软件系统进行设计,如系统框架设计,数据库设计等等。软件设计一般分为总体设计和详细设计。好的软件设计将为软件程序编写打下良好的基础。 接下来是代码实现,此阶段是将网站项目设计的结果转换成计算机可运行的程序代码,我们这个项目为 4 个模块,1.界面,2.逻辑层。3 实现层。4.数据库及使用说明文档,分别为4 个小组成员完成。这阶段我学到很多编程的思想,如: 分层思想、mvc、三大架构的整合、dao 的编写。 编号程序之后就是软件测试了,此时在软件设计完成后要经过严密的测试,以发现软件在整个设计过程中存在的问题并加以纠正。由于时间有限,我们测试是简单的使用一下每一个功能。 在编写代码时,由于自己技术知识水平不广,常常遇到技术难题;还有自己没有良好的编程习惯,不注释,有时连自己也看懵了;编程的结构不好,维修和修改代码是很慢。这次实训让我意识到了自己做为计算机软件工程专业的学生,要想在以后的职业中崭露头角,除了要有过硬的理论知识,健康的体魄外,还必须具备良好的心理素质,使自己在以后的途中无论经历什么样的困难,都立于不败之地。“纸上得来终觉浅,绝知此事要躬行!”在这短短的时间里,让我深深的感觉到自己在实际应用中所学专业知识的匮乏。让我真真领悟到“学无止境” 这句话的涵义。而所学的,都是课本上没有而对我们又非常实用的东西,这又给我们的实训增加了浓墨淡采的光辉。我懂得了实际生活中,专业知识是怎样应用与实践的。 在这次实训中,我不仅知道了职业生涯所需具备的专业知识,而且让我深深体会到一个团队中各成员合作的重要性,要善于团队合作,善于利用别人的智慧,这才是大智慧。靠单一的力量是很难完成一个大项目的,在进行团队合作的时候,还要耐心听取每个成员的意见,使我们的组合达到更加完美。实训过程中,除了要专业知识,包括人际交往,沟通方式及相关礼节方面的内容,对于团队开发来说,团结一致使我深有体会。团队的合作 注重沟通和信任,不能不屑于做小事,永远都要保持亲和诚信,把专业理论运用到具体实践中,不仅加深我对理论的掌握和运用,还让我拥有了一次又一次难忘的开发经历,这也是实训最大的收获。

第九章-Java异常处理练习Word版

第九章异常 在Java应用程序中,异常处理是保证程序正常、可靠运行的一个重要方面,在前边已经遇到了简单的异常处理。本章实验将主要针对程序中常用的异常的处理及异常的应用。 9.1 实验一:异常处理及应用 实验目的 (1). 了解异常的基本概念、异常的的产生和异常处理的过程。 (2). 基本掌握异常在应用程序中的应用。 实验要求 编写应用程序,在程序中对常见的异常进行捕捉并作相应的处理。 实验内容 实验示例9.1.1 在上一章8.2.1的实验示例测试中,若没有输入答案或输入非数字字符,则在处理过程中会出现数据格式异常,修改实验示例8.2.1创建的Exercises类,添加捕获并处理异常的程序代码。 实现该示例的步骤如下: ⑴简要分析 根据题意,首先需要确定会产生异常的程序段,然后使用try~catch结构进行捕捉和处理异常地处理。由于主要处理数据格式异常,它由输入时的错误引起,所以,在处理异常时,就是返回到输入处,重新输入数据。 ⑵根据上述简要分析,给出如下修改后的参考程序代码(Exercise.java): /*这是一个小学生综合训练题测试的应用程序 *程序的名称:Exercise.java *程序中捕捉处理数据格式异常(NumberFormatException) */ import java.awt.*; import java.awt.event.*; import java.util.*; import javax.swing.*; public class Exercises extends StudentScreen implements ActionListener,KeyListener { int count = 0; int n1=0,n2=0; int total=0; int right=0; long timenum=0; Random rand=new Random();

JAVA实验报告心得

北京联合大学信息学院 “面向对象程序设计”课 程上机实验报告 题目: java上机实验心得体会 姓名(学号):专业:计算机科学与技术 编制时间: 2012年12月19日 版本:指导教师:北京联合大学-信息学院编制 实验1 熟悉java运行环境 实验目的:熟悉jdk环境和操作,编写简单的java应用程序。 心得体会:在该实验中,我碰到的问题是jdk环境变量的设置。解决方法是通过查阅资料书和网上搜索相关解决方法及同学的有力帮助。 实验2 选择语句练习 实验目的:正确理解并能够熟练操作和使用java的if和switch语句。 心得体会:我个人感觉有了c的编程基础,if和switch这些简单的流程控制语句运用起来比较轻松,实现简单的逻辑运算也跟c非常相近,所以上手比较快。但是在这次程序中,首次涉及到了java程序的数据输入,与c区别很大。但经过老师的讲解和查阅相关资料,基本明白相关的使用规则和注意事项。在第二个小题中还涉及到了charat()方法,经查阅jdk 文档,知道charat()方法返回一个位于提供给它的参数索引处的字符,如: (0)检索str中的第一个字符,()-1)检索最后一个字符。我运用此方法解决了比较字符串间首字母异同的问题。 实验3 迭代练习 实验4 方法的实现练习 实验目的:声明、定义和调用方法,理解实参和形参的含义。 心得体会:在该实验中,我掌握如何写方法、调用方法,并掌握如何向方法中传递信息和从方法中返回信息。方法声明为非void(构造方法除外)则需要用return语句返回一个相应类型的返回值。 实验5 简单类型数组练习 实验目的:学习创建简单类型的数组,并能用循环语句处理数组。 心得体会:通过该实验,我学会了如何让建立简单类型的数组,并掌握了将数组作为方法的传入参数和返回值。在该实验中,遇到的问题主要是如何将一个连续的多位数在存入数组时,每个数组元素只对应改多位数的一个组成数。我解决的方法如下: for(i=0; i<6; i++){ n[i] = aa%10; etname()是获得正在执行的线程的名字,().getid()是thread类中返回该线程的标识符的方法,().getpriority()是thread类中返回线程的优先级的方法。 实验12 i/o及文件处理 实验目的:掌握并使用java中的i/o和文件。 心得体会:对于该实验,由于比较难,只是基本掌握了文件读写的方法和规则,还有待17周java实训时继续攻坚克难。 结语:在这一系列的实验中,我基本掌握了java的编程规则、知识要点和一些小技巧,特别是对面向对象的编程思想和风格有了进一步的认识和体会。同时,因正确的编出程序而带来的成就感让我对编程更加感兴趣。对于在这些实验过程中,请教老师、同学互助、查阅资料等基本的学习方式,使我更加领悟到集体和团队的力量,也树立了敢于攻坚的信心。篇二:java实训心得 java实训心得 在上学期的最后一周和本学期的第一周,我和同组的学员在学校机房进行了java暑期实训,现在已经结束了。 回首上学期的java学习,重点还是在学习概念等一些常识性的东西,application应用程序和applet小程序,它的开发工具、数据类型、变量、接口、输入输出流等。学会分析异

java异常处理试题及答案

异常处理练习题 一、选择题 1.java中用来抛出异常的关键字是 (C) A、try B、catch C、throw D、finally 2.关于异常,下列说法正确的是(A) A、异常是一种对象 B、一旦程序运行,异常将被创建 C、为了保证程序运行速度,要尽量避免异常控制 D、以上说法都丌对 3.(A)类是所有异常类的父类。 A、Throwable B、Error C、Exception D、AWTError 4.java语言中,下列哪一子句是异常处理的出口(C) A、try{…}子句 B、catch{…}子句 C、finally{…}子句 D、以上说法都丌对 5.下列程序的执行,说法错误的是 (C) public class MultiCatch { public static void main(String args[]) { try { int a=args.length; int b=42/a; int c[]={1}; c[42]=99; System.out.println(“b=”+b); } catch(ArithmeticException e) { System.out.println(“除0异常:”+e); } catch(ArrayIndexOutOfBoundsException e) { System.out.println(“数组超越边界异常:”+e); } } } A、程序将输出第15行的异常信息 B、程序第10行出错 C、程序将输出“b=42”

D、程序将输出第15和19行的异常信息 6.下列程序的执行,说法正确的是(D) class ExMulti { static void procedure() { try { int c[]={1}; c[42]=99; } catch(ArrayIndexOutOfBoundsException e) { System.out.println(“数组超越界限异常:”+e); } } public static void main(String args[]) { try { procedure(); int a=args.length; int b=42/a; System.out.println(“b=”+b); } catch(ArithmeticException e) { System.out.println(“除0异常:”+e); } } } A、程序只输出第12行的异常信息 B、程序只输出第26行的异常信息 C、程序将不输出异常信息 D、程序将输出第12行和第26行的异常信息 7.下面程序抛出了一个“异常”并捕捉它。请在横线处填入适当内容完成程序。class TrowsDemo { static void procedure() throws IllegalAccessExcepton { System.out.println(“inside procedure”); throw__new_____IllegalAccessException(“demo”);

4M2S异常处理

4M 4M2S 异常对应方案 人员: 一人员: 1 确保每线配备班长1名、配膳员1名、修理员1名(ENTER FUSER可两线配备修理员一名),且全部培训为多能工。理由:在各线有人员流动时可确保每线2-3名的顶位人员,以保证生产品质的稳定。 2 作业自责不良发生过多时:a 各线管理管理人员及现场应自我检讨:员工作业方法是否培训到位;员工情绪是否过于波动;工治具/设备是否无异常等等;b 是否有其它不良因素影响到员工的正常作业;c 尽量少批评或采用婉转的方式教育员工。理由:作业员在正常状态下作业时,无异常或很少有异常发生,在出现自责过于频繁时应是受到其它因素的影响所致,这是作为一个管理者必须做到的;批评员工只能造成员工情绪的波动化,甚至将这一情绪带入生产中,产生更多不良。 设备/ 二设备/治工具 1 首先对各线的设备及治工具作一个易损评价,对易出现异常的设备及治工具应随时确保1-2套备品,并配备专柜存放,并确保白、晚班各有一人持有钥匙;理由:在生产因易损设备及治工具异常时可暂以备品替代使用,以确保生产线不因设备及治工具的异常而影响生产乃至出荷。 2 当设备及治工具(不易损伤且无备品类)出现异常时,应先对异常的影响的程度作出相应的评价:a 在不影响FUSER品质的情况下,可边生产边通知相关技术担当马上到现场进行修理或作出紧急处理方案;理由:异常的发生对FUSER的品质无任何影响,没必要作无畏停线安排,影响生产的正常进行。 b 在无法对异常的影响程度作出相应评价或影响FUSER品质时,应立即停止生产(出现异常的生产线),并保持异常现象,同时立即知会相关技术担当马上至现场进行修理;理由:异常的发生对FUSER的品质有影响,生产应坚持以品质确保为基本方针,在品质确保的状况下再进行生产能率的提高。不能一味地追求产量而忽视品质。 三方法 各线作业员应严格按照OIC/ACP的操作方法进行作业,当对OIC/ACP的作业方法存有疑问时,应立即报告班长并知会相关技术担当进行确认,严格按照技术担当的指示方法进行作业; 理由:1> OIC/ACP为生技人员经过实践操作总结出的操作方法; 2>生技人员对机能了解清楚,操

java管理系统项目总结

java管理系统项目总结 篇一:java管理系统项目总结期末将至,怕没有时间再去写这篇不成器的文章,所以早早写完,早早留给时间去复习。随着期末的临近,java课程也结束了,距离之前写过的“java-象棋设计心得”有差不多过了2个月了。我们的java课程主要做全班选出来的两个项目,一个是象棋,一个就是人事管理系统。做完都要通过答辩才能评分,以此两次来作为整个java学期的成绩。快走题了,就在这里止步回头! 这一次的主要通过问题->理解->修改->添加的步骤讲解,跟java-象棋设计心得的讲解思路基本上差不多。 ----问题篇 一开始着手这个java-人事管理系统项目的时候就感觉到这比之前的java-象棋项目难了,知识明显不够,需要边看书本源代码边查看API文档和通过网上来解惑。就这样,一周的时间就过去了,当然一周里还有很多课程需要跟上,所以并不是把一周的所有时间都花在项目设计上。 这里介绍一下我项目中遇到的一些“坎”: 1.布局管理器GridBagLayout的使用和GridBagConstraints类的使用

类和DefaultMutableTreeNode类和其他类的使用 面板和JSplitePane面板和其他面板 4.设计的界面的还原 5.数据库如何实现数据的保存 可见,问题多多,解决起来又会出现其它的问题,但我知道每一个项目必定存在多个类和面板的设计,设计的过程也是一个不断自我矛盾和自我更正的过程,只有这样设计出来的产品才符合我们的要求。其中首先要说问题的是界面的还原是比较耗费时间的,但这也是任何软件设计的第一步,所以必须理解透!其次就是数据库和SQL语言的学习,因为数据库是新知识,还没有可以通过课程来学习的,这就意味着只能通过自己学习新知识,这又是一个新问题的开始,但我知道必须要克服。最后就是动作的实现问题,例如:点击了这个节点,相应的功能是如何实现,是通过什么来实现的,这些问题也必须理解,因为是答辩问的最多问题。好了,问题篇就到这里了。 ----理解篇 理解的基本条件就是问题的产生,上篇说的就是问题篇,那么这里说的就是理解。或许这里有一些东西会跟java-象棋设计心得有些相同,所以会提醒一下就过了,理解是理解

java项目心得体会.doc

java项目心得体会 篇一:项目部心得体会 篇一: 项目心得体会 项目 心得体会 通过这次做项目, 使我对编程有了进一步的认识。做项目的时候,最重要的不是自己如何快速地将自己分配的 任务做完,而是要注重团队合作。一开始组内必须对这个项目的数据库的命名进行讨论,定 义表的属性的数据类型,表与表之间会有关联,所以有的属性的类型与长度必须定义一致, 这样访问数据库时才不会出错。如果一开始不将这些步骤统一下来的话,就会给后面的编程 带来一系列的问题。 我做的是销售管理, 做的内容包括查询销售记录、查询退货记录、销售添加和商品退货这四个界面。同时对四个 表进行处理,对销售主表、销售明细表这两个表插入数据;对销售主表和销售明细表进行退 货操作的同时,对退货表进行插入数据的操作;最后对销售主表和退

货表进行查询操作。 做这个项目的时候, 我浪费了太多的时间在销售添加界面上。首先对于界面的一些布局没有考虑清楚就动手,不 知道如何运用java语言来对数据库进行处理,对于细节方面考虑地不全面,导致了遇到了错 误就不停地修改。在插入数据到销售主表中停留的时间太长,不懂得运用打印功能来检查错 误。同时在修改库存的时候完全没有思路,只对库存进行了修改却在销售时没有对库存进行 判断,这就是程序的一大错误之处。正如老师所说,在第一个界面完成之后,接下来的商品 退货界面做起来就不太难了,对这个项目实现的功能也有了一定的了解,以及对这个项目如 何动作的有了基本的了解。 其实我在这个模块 遇到的最大的问题就是,一开始对这块模块到底实现的功能与细节分析得不彻底,所以在开 始编程的时候就手足无措。于是这部分的代码就出现了许多漏洞,然后在运行程序的时候就 不停地修补漏洞。接着就对这个界面的功能进行不停地完善,在修改的过程中也就浪费了许 多时间。

Java异常(习题)

java异常(习题) 练习 1. 填空 Java 中所有的错误都继承自______类;在该类的子类中, _______类表示严重的底层错误,对于这类错误一般处理的方式是___________; _______类表示例外、异常。 2. 查api,填空 异常类java.rmi.AlreadyBoundException,从分类上说,该类属于__________(已检查| 未检查)异常,从处理方式上说,对这种异常___________________; 异常类java.util.regex.PatternSyntaxException,从分类上说,该类属于_________(已检查|未检查)异常,从处理方式上说,对这种异常__________________。 4. (try-catch-finally)有如下代码:

问:当读入的n 分别为1,2,3,4,5 时,输出的结果分别是什么?

5. (自定义异常)创建两个自定义异常类MyException1 和MyException2。 要求: 1) MyException1 为已检查异常,MyException2 为未检查异常 2) 这两个异常均具有两个构造函数,一个无参,另一个带字符串参数,参数表示产生异常的详细信息。

问: 在//1 处,填入以下________代码可以编译通过,在//2 处,填入_________代码可以编译通过。 A. throws java.io.IOException B. throws java.io.FileNotFoundException, java.io.EOFException C. throws java.sql.SQLException D. 不能抛出任何异常。

数据库异常处理答案

一、实验/实习过程 实验题1在程序中产生一个ArithmeticException类型被0除的异常,并用catch 语句捕获这个异常。最后通过ArithmeticException类的对象e 的方法getMessage给出异常的具体类型并显示出来。 package Package1; public class除数0 { public static void main(String args[]){ try{ int a=10; int b=0; System.out.println("输出结果为:"+a/b); } catch(ArithmeticException e){ System.out.println("除数不能为0"+e.getMessage()); } } } 实验题2在一个类的静态方法methodOne()方法内使用throw 产生ArithmeticException异常,使用throws子句抛出methodOne()的异常,

在main方法中捕获处理ArithmeticException异常。 package Package1; public class抛出异常 { static void methodOne() throws ArithmeticException{ System.out.println("在methodOne中"); throw new ArithmeticException("除数为0"); } public static void main(String args[]){ try{ int a=10; int b=0; int c=1; System.out.println("输出结果为:"+a/b); } catch(ArithmeticException e){ System.out.println("除数不能为0"+e.getMessage()); } } }

相关文档
最新文档