0

java的心得汇集20篇

浏览

1667

范文

20

篇1:java实习心得总结

范文类型:心得体会,工作总结,全文共 591 字

+ 加入清单

第一,扎实的理论知识是前提。

实习之前,我们一直认为,经过三年的学习,我们的会计理论知识已经很扎实了,只要掌握了规律,就不会有问题。但是在实习过程中,我们发现平时学到的东西远远不够,在细节上犯了很多错误。另外,根据相关的实习资料,我们在填制原始凭证、记账、编制各种账目时,经常会被堵。回过头来看原因,大部分都是因为平时理论知识不扎实,经不起实战的考验,这也是我们这次实习学到的重要一课。

第二,理论联系实际是关键。

通过这次实习,我们也发现熟练的理论知识对我们来说是不够的。我们学了这么久,可以说基本掌握了会计的专业基础知识、基础理论、基本方法和结构体系。但在这个实践中还是很难,这是因为我们意识到,会计理论离开了实践过程,就全是零,实用性和实践性对会计人员来说很重要,离开了实践环节的理论只是纸上谈兵。

第三,足够的耐心和细心是保证。

会计是一项繁琐的工作,我们在这次实习中深刻体会到了这一点。刚开始实习的时候,一天到晚无聊的账目和数字让我烦透了,以至于单纯填制凭证记账会让试算不均匀。犯错越多越浮躁,犯错越多,从而形成恶性循环。后来我们意识到这个不足之后,小心翼翼的填补,既加快了速度,又提高了效率,事半功倍。因此,在会计工作中,我们不应该粗心、粗心和浮躁。其实做什么都一样,需要有一颗平常心。

通过这次实习,我增强了自己的实践能力。做事的态度也有所改善。只在学校实习一个月,就受益终身!

展开阅读全文

篇2:关于java实习心得总结

范文类型:心得体会,工作总结,全文共 921 字

+ 加入清单

初次涉及java领域,感觉到Java入门是好像没有C,C++入门快,工具也没有什么TurboC,VisualC++好用,什么JA_HOME,CLASSPATH,虚拟机等概念都是初次基础,旁边的人都很少用Java的。感觉Java就是做Applet的。让我不可思议的是JA2,JDK,J2SE,J2EE,J2ME等新名词在自己的脑海里蔓延。搭起Java开发环境后,记得刚开始还是用UltraEdit编辑并编译的慢慢的改用JCreator了,要开始干项目了,以前从书上看到的东西,在项目中有了很好的机会去温习,开始主要是用Swing,开发桌面系统,放置一个按钮怎么也放不好,后来才知道有一个布局管理器。后来开始涉及到数据库访问,JDBC。随后Java规范了。最开始*的规范是JDBCSpecification,很多概念一目了然,尤其是DATABASE的事务性控制,自己对于她的理解慢慢的有了较为深入的了解。对于开发C/S结构,比如,Swing+JDBC,开发数据库应用系统,让我学会开发两层结构的应用系统。

开发豆豆网时,基于Linux+JSP+JavaBean+Oracl的系统。不同于Swing+JDBC的开发模式,系统之间多了一层;同时,很多开发技术和面向左面系统不一样,比如分页技术。

完成项目后,自己对于Java的很多方面都比较了解了。开始思考一个问题,J2EE是什么东西?。我们学习Java大概有3个方向,第一,桌面系统,包括C/S结构;第二,J2ME,面向无限领域,很有潜力的家伙,看*的手机用户就知道了。第三,面向企业应用、计算的平台,J2EE。

通过实习,我自身发生了重大的转变,我相信我会在JA开发这条路上走的更长更远。

实习虽然结束了但是给我的感触很大。在信息时代,学习是不断地汲取新信息,获得事业进步的动力。作为一名即将毕业的大学生更应该把学习作为保持工作积极性的重要途径。

实习,是开端也是结束。展现在自己面前的是一片任自己驰骋的沃土,也分明感受到了沉甸甸的责任。在今后的工作和生活中,我将继续学习,深入实践,不断提升自我。

实习的同时也让我了解到了自己的不足,我会继续努力,完善自我。对于学校的精心安排和指导老师的用心辅导非常感谢.

展开阅读全文

篇3:java读书心得

范文类型:心得体会,全文共 36011 字

+ 加入清单

注:框架可以用word菜单中的 “视图/文档结构图” 看到

j2ee模式

value object(值对象) 用于把数据从某个对象/层传递到其他对象/层的任意java对象。

通常不包含任何业务方法。

也许设计有公共属性,或者提供可以获取属性值的get方法。

jsp

1.jsp的基础知识

__

_____ | directive (指令)

| |-- scripting (脚本)

jsp -------| |__ action (动作)

|

|_____template data :除jsp语法外,jsp引擎不能解读的东西

1)在jsp中使用的directive(指令)主要有三个:

a) page指令

b) include指令

c) taglib指令

在jsp的任何地方,以任何顺序,一个页面可以包含任意数量的page指令

2)scripting(脚本)包括三种类型

a) ;

b) ;

c) ;

3)action(动作)

标准的动作类型有:

a) ;

b) ;

d) ;

e) ;

f) ;

g) ;

h) ; 日记日记300字

1. 注释: ;

;

2. ;

session可以不赋值,默认为true,如果session=”false”,则在jsp页面中,隐含的变量session就不能使用。

3. 请求控制器结构(request controller)

也被称之为jsp model 2 architecture

这种途径涉及到使用一个servlet或一个jsp作为一个应用程序或一组页面的入口点。

为创建可维护的jsp系统,request controller是最有用的方式之一。

不是jsp,而是java类才是放置控制逻辑的正确的地方。

请求控制器的命名模式为: controller.jsp

请求控制器类的命名模式为: requestcontroller

2.jsp中的javabean

jsp三种bean的类型

1) 页面bean

2) 会话bean

3) 应用bean

大多数的系统会使用一个会话bean来保持状态,而对每一个页面使用一个页面bean 来对复杂的数据进行表示。

页面bean是一个模型,而jsp是一个视图。

3.custom tag

bean是信息的携带者,

而tag更适用于处理信息。

标记库包含一个标记库描述符(tld)和用于实现custom tag的java类

在翻译阶段,jsp容器将使用tld来验证页面中的所有的tag是否都被正确的使用。

标记处理程序只是一个简单的适配器,而真正的逻辑是在另一个类中实现的,标记处理程序只是提供了一个供其他的可复用的类的jsp接口

servlet

1.servletconfig

 一个servletconfig对象是servlet container在servlet initialization的时候传递给servlet的。

servletconfig包涵 servletcontext 和 一些 name/value pair (来自于deployment descriptor)

 servletcontext接口封装了web应用程序的上下文概念。

2.会话跟踪

1) session

 当一个client请求多个servlets时,一个session可以被多个servlet共享。

 通常情况下,如果server detect到browser支持cookie,那么url就不会重写。

2) cookie

 在java servlet中,如果你光 cookie cookie = new cookie(name,value)

那么当用户退出browser时,cookie会被删除掉,而不会被存储在客户端的硬盘上。

如果要存储 cookie,需加一句 cookie.setmaxage(200)

 cookie是跟某一个server相关的,运行在同一个server上的servlet共享一个cookie.

3) url rewriting

在使用url rewriting来维护session id的时候,每一次http请求都需要encodeurl

典型的用在两个地方

1) out.print(“form action=” ”);

out.print(response.encodeurl(“sessionexample”));

out.print(“form action=” ”);

out.print(“method = get>;”);

2) out.print(“

;

out.print(response.encodeurl(“sessionexample?database=foo&datavalue=bar”));

out.println(“” >;url encoded ;”);

3.singlethreadmodel

默认的,每一个servlet definition in a container只有一个servlet class的实例。

只有实现了singlethreadmodel,container才会让servlet有多个实例。

servlet specification上建议,不要使用synchronized,而使用singlethreadmodel。

singlethreadmodel(没有方法)

保证servlet在同一时刻只处理一个客户的请求。

singlethreadmodel是耗费资源的,特别是当有大量的请求发送给servlet时,singlethreadmodel的作用是使包容器以同步时钟的方式调用service方法。

这等同于在servlet的service方法种使用synchronized.

single thread model一般使用在需要响应一个heavy request的时候,比如是一个需要和数据库打交道的连接。

2. 在重载servlet地init( )方法后,一定要记得调用super.init( );

3. the client通过发送一个blank line表示它已经结束request

而the server通过关闭the socket来表示response已结束了。

4. 一个http servlet可以送三种东西给client

1) a single status code

2) any number of http headers

3) a response body

5. servlet之间信息共享的一个最简单的方法就是

system.getproperties.put(“key”,”value”);

6. post和get

post:将form内各字段名称和内容放置在html header内传送给server

get: ?之后的查询字符串要使用urlencode,经过urlencode后,这个字符串不再带有空格,以后将在server上恢复所带有的空格。

get是web上最经常使用的一种请求方法,每个超链接都使用这种方法。

7. web.xml就是web applicatin 的deployment descriptor

作用有:组织各类元素

设置init param

设置安全性

8. request dispatcher用来把接收到的request forward processing到另一个servlet

要在一个response里包含另一个servlet的output时,也要用到request dispatcher.

9. servlet和jsp在同一个jvm中,可以通过serveltcontext的

setattribute( )

getattribute( )

removeattribute( )

来共享对象

10. 利用request.getparameter( )得到的string存在字符集问题。

可以用 strtitle = request.getparameter(“title”);

strtitle = new string(strtitle.getbytes(“8859-1”),”gb2312”);

如果你希望得到更大得兼容性

string encoding = response.getcharacterencoding;

//确定application server用什么编码来读取输入的。

strtitle = new string(strtitle.getbytes(encoding),”gb2312”);

xml

1.xml基础知识

1. 一个xml文档可以分成两个基本部分:

首部( header )

内容( content )

2. xml名字空间规范中指定:

xml文档中的每一个元素都处在一个名字空间中;如果没有指定的名字空间,缺省的名字空间就是和该元素相关联的名字空间。

3. a document that is well-formed obeys all of the rules of xml documents (nested tags, etc.)

" if a well-formed document uses a document type definition (more on these in a minute), and it follows all the rules of the dtd, then it is also a valid document

4. a tag is the text between the ;

" an element is the start tag, the end tag,and everything (including other elements) in between

5. 标签( tags ) 实际上包含了“元素”( elements ) 和 “属性”( attributes )两部分。

用元素( elements )来描述有规律的数据。

用属性( attributes ) 来描述系统数据。

如果你有一些数据要提供给某个应用程序,该数据就可能要用到一个元素。

如果该数据用于分类,或者用于告知应用程序如何处理某部分数据,或者该数据从来没有直接对客户程序公开,那么它就可能成为一种属性。

6. cdata (读作:c data ) c是character的缩写。

.xml.sax.reader

/|

org.xm.l.sax.xmlreader

/|

org.apche.xerces.parsers.saxparser

2.webservice

2.1 webservice的基本概念

webservice是一种可以接收从internet或者intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。

这种技术允许网络上的所有系统进行交互。随着技术的发展,一个web服务可以包含额外的指定功能并且可以在多个b2b应用中协作通讯。

web服务可以理解请求中上下文的关系,并且在每一个特定的情况下产生动态的结果。这些服务会根据用户的身份,地点以及产生请求的原因来改变不同的处理,用以产生一个唯一的,定制的方案。这种协作机制对那些只对最终结果有兴趣的用户来说,是完全透明的。

uddi

在用户能够调用web服务之前,必须确定这个服务内包含哪些商务方法,找到被调用的接口定义,还要在服务端来编制软件。所以,我们需要一种方法来发布我们的web服务。

uddi (universal description, discovery, and integration) 是一个主要针对web服务供应商和使用者的新项目。uddi 项目中的成员可以通过uddi business registry (ubr) 来操作web服务的调用,ubr是一个全球性的服务。

web服务供应商可以在ubr中描述并且注册他们的服务。

用户可以在ubr中查找并定位那些他们需要的服务。

uddi是一种根据描述文档来引导系统查找相应服务的机制。

uddi包含标准的“白皮书”类型的商业查询方式,

“黄皮书”类型的局部查找,以及

“绿皮书”类型的服务类型查找。

uddi利用soap消息机制(标准的xml/http)来发布,编辑,浏览以及查找注册信息。它采用xml格式来封装各种不同类型的数据,并且发送到注册中心或者由注册中心来返回需要的数据。

wsdl

对于商业用户来说,要找到一个自己需要使用的服务,他必须知道如何来调用。

wsdl (web services description language) 规范是一个描述接口,语义以及web服务为了响应请求需要经常处理的工作的xml文档。这将使简单地服务方便,快速地被描述和记录。

以下是一个wsdl的样例:

targetnamespace=""

xmlns:tns="" (5)(6)(7)(8)(9)(10)(11)(12)(13)(14)(15)

xmlns:xsd1=""

xmlns:soap=";

xmlns=";>;

xmlns=";>;

type="tns:stockquoteporttype">;

transport=";/>;

soapaction=""/>;

;my first service;

它包含了以下的关键信息:

消息的描述和格式定义可以通过xml文档中的;和; 标记来传送。

; 标记中表示了消息传送机制。 (e.g. request-only, request-response, response-only) 。

; 标记指定了编码的规范 。

; 标记中表示服务所处的位置 (url)。

wsdl在uddi中总是作为一个接口描述文档。因为uddi是一个通用的用来注册wsdl规范的地方,uddi的规范并不限制任何类型或者格式描述文档。这些文档可能是一个wsdl文档,或者是一个正规的包含导向文档的web页面,也可能只是一个包含联系信息的电子邮件地址。

现在java提供了一个 java api for wsdl (jwsdl)规范。它提供了一套能快速处理wsdl文档的方法,并且不用直接对xml文档进行操作,它会比jaxp更方便,更快速。

soap

当商业用户通过uddi找到你的wsdl描述文档后,他通过可以simple object access protocol (soap) 调用你建立的web服务中的一个或多个操作。

soap是xml文档形式的调用商业方法的规范,它可以支持不同的底层接口,象http(s)或者smtp。

之所以使用xml是因为它的独立于编程语言,良好的可扩展性以及强大的工业支持。之所以使用http是因为几乎所有的网络系统都可以用这种协议来通信,由于它是一种简单协议,所以可以与任何系统结合,还有一个原因就是它可以利用80端口来穿越过防火墙。

soap的强大是因为它简单。soap是一种轻量级的,非常容易理解的技术,并且很容易实现。它有工业支持,可以从各主要的电子商务平台供应商那里获得。

从技术角度来看,soap详细指明了如何响应不同的请求以及如何对参数编码。一个soap封装了可选的头信息和正文,并且通常使用http post方法来传送到一个http 服务器,当然其他方法也是可以的,例如smtp。soap同时支持消息传送和远程过程调用。以下是一个soap请求。

post /stockquote http/1.1

host: www.stockquoteserver

content-type: text/xml; charset="utf-8"

content-length: nnnn

soapaction: "some-uri"

xmlns:soap-env=";

〖5〗〖6〗〖7〗〖8〗〖9〗〖10〗〖11〗〖12〗〖13〗〖14〗〖15〗

soap-env:encodingstyle=";/>;

;sunw;

jaxr

为了支持uddi在java平台上的功能,java apis for xml registries (jaxr)允许开发者来访问注册中心。

值得注意的是,jaxr并不是建立web服务必需的,你可以利用其他常用的xml apis来直接集成这些协议。

jaxr是一个方便的api,它提供了java api来发布,查找以及编辑那些注册信息。它的重点在于基于xml的b2b应用,复杂的地址本查找以及对xml消息订阅的支持等web服务。

它也可以用来访问其他类型的注册中心,象ebxml注册中心。

这些对web服务的注册信息进行的操作,可以使用当前的一些web服务工具来完成(例如第三方的soap和ebxml消息工具)。另外,当jaxp提供了一致并具有针对性的api来完成这些操作,这将使开发变得更加容易。

jax/rpc

为了使开发人员专注于建立象soap那样的基于xml的请求,jcp正在开发基于rpc (jax/rpc) 的java api。jax/rpc是用来发送和接收方法调用请求的,它基于xml协议,象soap,或者其他的象xmlp (xml protocol,要了解更多可以参考)。jax/rpc使你不用再关注这些协议的规范,使应用的开发更快速。不久,开发人员就不用直接以xml表示方法调用了。

目前有很多第三方实现了soap,开发人员可以在不同的层次上调用soap,并选择使用哪一种。将来,jax/rpc会取代这些apis并提供一个统一的接口来构造以及处理soap rpc请求。

在接收一个从商业伙伴那里过来的soap请求的时候,一个java servlet用jax/rpc来接收这个基于xml的请求。一旦接收到请求后,servlet会调用商务方法,并且把结果回复给商业伙伴。

jaxm

当从商业合作伙伴那里接收一个web服务的请求时,我们需要java api实现一个servlet来处理ebxml消息,就象我们用jax/rpc来处理soap请求一样。

java api for xml messaging (jaxm) 是集成xml消息标准(象ebxml消息或者soap消息)的规范。

这个api是用来推动xml消息处理的,它检测那些预定单的消息格式以及约束。它控制了所有的消息封装机制,用一种直观的方式分割了消息中的信息,象路由信息,发货单。这样,开发人员只要关注消息的有效负载,而不用去担心那些消息的重复处理。

目前的开发人员用jaxp来实现jaxm将要提供的功能,jaxm将会提供一套非常具有针对性的api来处理基于xml的消息传送。这将大大简化开发人员的代码,并使它们具有统一的接口。

jaxm和jax/rpc的差别在于处理消息导向的中间件以及远程过程调用的不同。jaxm注重于消息导向,而jax/rpc是用来完成远程过程调用的。以下是图解。

请注意,在jaxm 和 jax/rpc技术成熟之前,开发人员还是依赖于第三方的soap apis,象apache soap, idooxoap, 以及 glue。当jaxm 和 jax/rpc正式发布后,它将为当前不同的soap和ebxml消息提供统一的接口。就象jdbc位多种不同的数据库提供统一的接口。

jaxb

xml绑定技术可以把xml文档和java对象进行自由转换。

用jaxb,你可以在后台的ejb层,把xml文档转换成java对象。同样你也可以把从ejb中取出的java对象转换成xml文档返回给用户。

jaxb接口提供了比sax和dom更高级的方法来处理xml文档。它提供的特性可以在xml数据和java类之间互相映射,提供了一个简单的方法来转换xml数据。它比逐个解析标记更简单。

2.2 建立weservice的步骤

在建立weservice的时候,有三个主要步骤:

1.建立客户端联接

为了允许applets,applications,商业合作伙伴,浏览器和pdas 使用web服务。

2.实现web服务

包括工作流,数据传送,商业逻辑以及数据访问。这些功能是隐藏在web服务后,并且为客户端工作的。

3.联接后台系统

这个系统可能包括一个或多个数据库,现存的企业信息系统,商业合作伙伴自己的系统或者web服务,以及在多个系统中共享的数据。

基于j2ee的web服务的核心构架:

rmi

1. rmi-iiop

2. rmi 是在java中使用remote method invocation的最初的方法,rmi使用java.rmi包

rmi-iiop 是rmi的一个特殊版本,rmi-iiop可以和corba兼容,rmi-iiop使用java.rmi包和javax.rmi

jaf(java活动构架)

开发者可以使用jaf来决定任意一块数据的类型、封装对数据的访问、寻找合适的操作、实例化相关的bean来执行这些操作等。

例如,javamail就是使用jaf根据mime类型来决定实例化那一个对象。

ejb

1. ejb组件实现代码的限制

ejb组件的约束

ejb的开发者并不需要在ejb的组件实现代码中编写系统级的服务,ejb提供商/开发

者需知道并且严格地遵守一些限制,这些限制与开发稳定的和可移植的ejb组件的利益有

关。

以下是你应该回避使用的一些java特色,并且在你的ejb组件的实现代码中要严格限

制它们的使用:

1.使用static,非final 字段。建议你在ejb组件中把所有的static字段都声明为final型的。这样可以保证前后一致的运行期语义,使得ejb容器有可以在多个java虚拟机之间分发组件实例的灵活性。

2.使用线程同步原语来同步多个组件实例的运行。避免这个问题,你就可以使ejb容器灵活的在多个java虚拟机之间分发组件实例。

3.使用awt函数完成键盘的输入和显示输出。约束它的原因是服务器方的商业组件意味着提供商业功能而不包括用户界面和键盘的i/o功能。

4.使用文件访问/java.io 操作。ejb商业组件意味着使用资源管理器如jdbc来存储和检索数据而不是使用文件系统api。同时,部署工具提供了在部署描述器(descriptor)中存储环境实体,以至于ejb组件可以通过环境命名上下文用一种标准的方法进行环境实体查询。所以,使用文件系统的需求基本上是被排除了。

5.监听和接收socket连接,或者用socket进行多路发送。ejb组件并不意味着提供网络socket服务器功能,但是,这个体系结构使得ejb组件可以作为socket客户或是rmi客户并且可以和容器所管理的环境外面的代码进行通讯。

6.使用映象api查询ejb组件由于安全规则所不能访问的类。这个约束加强了java平台的安全性。

7.欲创建或获得一个类的加载器,设置或创建一个新的安全管理器,停止java虚拟机,改变输入、输出和出错流。这个约束加强了安全性同时保留了ejb容器管理运行环境的能力。

8.设置socket工厂被urls serversocket,socket和stream handler使用。避免这个特点,可以加强安全性同时保留了ejb容器管理运行环境的能力。

9.使用任何方法启动、停止和管理线程。这个约束消除了与ejb容器管理死锁、线程

和并发问题的责任相冲突的可能性。

通过限制使用10-16几个特点,你的目标是堵上一个潜在的安全漏洞:

10.直接读写文件描述符。

11.为一段特定的代码获得安全策略信息。

12.加载原始的类库。

13.访问java一般角色所不能访问的包和类。

14.在包中定义一个类。

15.访问或修改安全配置对象(策略、安全、提供者、签名者和实体)。

16.使用java序列化特点中的细分类和对象替代。

17.传递this引用指针作为一个参数或者作为返回值返回this引用指针。你必须使用

sessioncontext或entitycontext中的getejbobject的结果。

java2平台的安全策略

以上所列的特点事实上正是java编程语言和java2标准版中的标准的、强有力的特色。ejb容器允许从j2se中使用一些或全部的受限制的特色,尽管对于ejb组件是不可用的,但需通过j2se的安全机制来使用而不是通过直接使用j2se的api。

java2平台为ejb1.1规范中的ejb容器所制定的安全策略定义了安全许可集,这些许可在ejb组件的编程限制中出现。通过这个策略,定义了一些许可诸如:java.io.filepermission,.netpermission,java.io.reflect.reflectpermission,java.lang.security.securitypermission,以便加强先前所列出的编程限制。

许多ejb容器没有加强这些限制,他们希望ejb组件开发者能遵守这些编程限制或者是带有冒险想法违背了这些限制。违背这些限制的ejb组件,比标准方法依赖过多或过少的安全许可,都将很少能在多个ejb容器间移植。另外,代码中都将隐藏着一些不确定的、难以预测的问题。所有这些都足以使ejb组件开发者应该知道这些编程限制,同时也应该认真地遵守它们。

任何违背了这些编程限制的ejb组件的实现代码在编译时都不能检查出来,因为这些特点都是java语言和j2se中不可缺少的部分。

对于ejb组件的这些限制同样适用于ejb组件所使用的帮助/访问(helper/access)类,j2ee应用程序使用java文档(jar)文件格式打包到一个带.ear(代表enterprise archive)扩展名的文件中,这个ear文件对于发送给文件部署器来说是标准的格式。ear文件中包括在一个或多个ejb-jar文件中的ejb组件,还可能有ejb-jar所依赖的库文件。所有ear文件中的代码都是经过深思熟虑开发的应用程序并且都遵守编程限制和访问许可集。

未来版本的规范可能会指定通过部署工具来定制安全许可的能力,通过这种方法指定了一个合法的组件应授予的许可权限,也指定了一个标准方法的需求:如从文件系统中读文件应有哪些要求。一些ejb容器/服务器目前在它们的部署工具中都提供了比标准权限或多或少的许可权限,这些并不是ejb1.1规范中所需要的。

理解这些约束

ejb容器是ejb组件生存和执行的运行期环境,ejb容器为ejb组件实例提供了一些服务如:事务管理、安全持久化、资源访问、客户端连接。ejb容器也负责ejb组件实例整个生命期的管理、扩展问题以及并发处理。所以,ejb组件就这样寄居在一个被管理的执行环境中--即ejb容器。

因为ejb容器完全负责ejb组件的生命期、并发处理、资源访问、安全等等,所以与容器本身的锁定和并发管理相冲突的可能性就需要消除,许多限制都需要使用来填上潜在的安全漏洞。除了与ejb容器责任与安全冲突的问题,ejb组件还意味着仅仅聚焦于商务逻辑,它依赖于ejb容器所提供的服务而不是自己来直接解决底层的系统层的问题。 3 4 5 6 7 8 9 10 11 12 13 14 15

可能的问题

通常,ejb组件在容器之间的移植不可避免地与如下问题相关:

1.它需要依靠的受限制的特点在特定ejb容器中没有得到加强。

2.它需要依靠的非标准的服务从容器中可获得。

为了保证ejb组件的可移植性和一致的行为,你应该使用一个具有与java2平台安全

策略集相一致的策略集的容器来测试ejb组件,并且其加强了前述的编程限制。

总结

ejb组件开发者应该知道这些推荐的关于ejb组件的编程限制,明白它们的重要性,并且从组件的稳定性和可移植性利益方面考虑来遵循它们。因为这些编程限制能阻止你使用标准的java语言的特点,违背了这些编程限制在编译时不会知道,并且加强这些限制也不是ejb容器的责任。所有这些原因都使你应很小心地遵守这些编程限制,这些限制在组件的合同中已经成为了一个条款,并且它们对于建造可靠的、可移植的组件是非常重要的。

2. 优化ejb

entity bean为在应用程序和设计中描述持久化商业对象(persistent business objec ts)提供了一个清晰的模型。在java对象模型中,简单对象通常都是以一种简单的方式进行处理但是,很多商业对象所需要的事务化的持久性管理没有得到实现。entity bean将持久化机制封装在容器提供的服务里,并且隐藏了所有的复杂性。entity bean允许应用程序操纵他们就像处理一个一般的java对象应用。除了从调用代码中隐藏持久化的形式和机制外,entity bean还允许ejb容器对对象的持久化进行优化,保证数据存储具有开放性,灵活性,以及可部署性。在一些基于ejb技术的项目中,广泛的使用oo技术导致了对entity bean的大量使用,sun的工程师们已经积累了很多使用entity bean的经验,这篇文章就详细阐述的这些卡发经验:

*探索各种优化方法

*提供性能优化和提高适用性的法则和建议

*讨论如何避免一些教训。

法则1:只要可以,尽量使用cmp

cmp方式不仅减少了编码的工作量,而且在container中以及container产生的数据库访问代码中包括了许多优化的可能。container可以访问内存缓冲中的bean,这就允许它可以监视缓冲中的任何变化。这样的话就在事物没有提交之前,如果缓存的数据没有变化就不用写到数据库中。就可以避免许多不必要的数据库写操作。另外一个优化是在调用find方法的时候。通常情况下find方法需要进行以下数据库操作:

查找数据库中的纪录并且获得主键

将纪录数据装入缓存

cmp允许将这两步操作优化为一步就可以搞定。[具体怎么做我也没弄明白,原文没有具体阐述]

法则2:写代码时尽量保证对bmp和cmp都支持

许多情况下,ejb的开发者可能无法控制他们写的bean怎么样被部署,以及使用的container是不是支持cmp.

一个有效的解决方案是,将商业逻辑的编码完全和持久化机制分离。再cmp类中实现商业逻辑,然后再编写一个bmp类,用该类继承cmp类。这样的话,所有的商业逻辑都在cmp类中,而持久化机制在bmp中实现。[我觉得这种情况在实际工作中很少遇到,但是作者解决问题的思路值得学习]

法则3:把ejbstore中的数据库访问减小到最少。

如果使用bmp,设置一个缓存数据改变标志dirty非常有用。所有改变数据库中底层数据的操作,都要设置dirty,而在ejbstore中,首先检测dirty的值,如果dirty的值没有改变,表明目前数据库中的数据与缓存的一致,就不必进行数据库操作了,反之,就要把缓存数据写入数据库。

法则4:总是将从lookup和find中获得的引用进行缓存。(cache)

引用缓存对session bean和entity bean 都是适用的。

通过jndi lookup获得ejb资源。比如datasource,bean的引用等等都要付出相当大的代价。因此应该避免多余的lookup.可以这样做:

将这些引用定义为实例变量。

从setentitycontext(session bean使用setsessioncontext)方法查找他们。setentitycontext方法对于一个bean实例只执行一次,所有的相关引用都在这一次中进行查找,这样查找的代价就不是那么昂贵了。应该避免在其他方法中查找引用。尤其是访问数据库的方法:ejbload和ejbstore,如果在这些频繁调用的方法中进行datasource的查找,势必造成时间的浪费。

调用其他entity bean的finder方法也是一种重量级的调用。多次调用finder方法的代价非常高。如果这种引用不适合放在setentitycontext这样的初始化时执行的方法中执行,就应该在适当的时候缓存finder的执行结果。只是要注意的是,如果这个引用只对当前的entity有效,你就需要在bean从缓冲池中取出来代表另外一个实体时清除掉这些引用。,这些操作应该在ejbactivate中进行。

法则5:总是使用prepare statements

这条优化法则适用于所有访问关系数据库的操作。

数据库在处理每一个sql statement的时候,执行前都要对statement进行编译。一些数据库具有缓存statement和statement的编译后形式的功能。数据库可以把新的statement和缓存中的进行匹配。然而,如果要使用这一优化特性,新的statement要必须和缓存中的statement完全匹配。

对于non-prepared statement,数据和statement本身作为一个字符串传递,这样由于前后调用的数据不同而不能匹配,就导致无法使用这种优化。而对于prepared statement,数据和statement是分开传递给数据库的,这样statement就可以和cache中已编译的statement进行匹配。statement就不必每次都进行编译操作。从而使用该优化属性。

【5】【6】【7】【8】【9】【10】【11】【12】【13】【14】【15】

这项技术在一些小型的数据库访问中能够减少statement将近90%的执行时间。

法则6:完全关闭所有的statement

在编写bmp的数据库访问代码时,记住一定要在数据库访问调用之后关闭statement,因为每个打开的statement对应于数据库中的一个打开的游标。

security

1.加密

对称加密

(1)分组密码

(2)流密码

常用的对称加密算法:

des和tripledes

blowfish

rc4

aes

非对称加密

常用的非对称加密算法

rsa

elgamal

会话密钥加密(对称加密和非对称加密一起使用)

常用的会话密钥加密协议

s/mime

pgp

ssl和tls ssl是在application level protocal和transport protocal之间的。

比如:http和tcp/ip之间

ssl 提供了服务器端认证和可选的客户端认证,保密性和数据完整性。

提供基于ssl方式的传输加密和认证,确保以下三种安全防护:

数据的机密性和准确性、

服务器端认证

客户端认证。

客户端认证比服务器端认证不很普遍的原因是每一个要被认证的客户都必须有一张verisign这样的ca签发的证书。

通常,在进行身份认证的时候,应当只接受一个ca,这个ca的名字包含在客户证书中。

由于不可能随意创建一个由指定ca签发的证书,所以这可以有效的防御通过伪造证书来进行的攻击尝试。

2.认证(authentication)

认证就是确定一条消息或一个用户的可靠性的过程。

1.消息摘要

md5

sha和sha-1

2.消息认证码(message authientication codes,mac)

3.数字签名

用户可以用自己的密钥对信息加以处理,由于密钥仅为本人所有,这样就产生了别人无法生成的文件,也就形成了数字签名

数字签名可以

1)保证数据的完整性

2)验证用户的身份

数字签名采用一个人的私钥计算出来,然后用公钥去检验。

hash算法 私钥加密

原报文 ――――――>;报文摘要( message digest ) ―――――>;数字签名

原报文和数字签名一起被发送到接受者那里,接受者用同样的hash算法得到报文摘要,然后用发送者的公钥解开数字签名。

比较是否相同,则可以确定报文确定来自发送者。

验证数字签名必须使用公钥,但是,除非你是通过安全的方式直接得到,否则不能保证公钥的正确性。(数字证书可以解决这个问题)

一个接受者在使用公钥(public key)检查数字签名(digital signature)的可信度时,通常先要检查收到的公钥(public key)是否可信的。

因此发送方不是单单地发送公钥(public key),而是发送一个包含公钥(public key)的数字证书(cetificate )。

4.数字证书

数字证书是一个经证书授权中心数字签名的包含公开密钥所有者信息以及公开密钥的文件。

数字证书cetificate中包括:

i. 用户的公钥(public key)

ii. 用户的一些信息,如姓名,email

iii. 发行机构的数字签名(digital signature), 用于保证证书的可信度

iv. 发行机构的一些信息

数字证书的格式遵循x.509国际标准。

注意:一个数字证书certificate并不适用于多种browser,甚至一种browser的多个版本。

数字标识由公用密钥、私人密钥和数字签名三部分组成。

当在邮件中添加数字签名时,您就把数字签名和公用密钥加入到邮件中。数字签名和公用密钥统称为证书。您可以使用 outlook express 来指定他人向您发送加密邮件时所需使用的证书。这个证书可以不同于您的签名证书。

收件人可以使用您的数字签名来验证您的身份,并可使用公用密钥给您发送加密邮件,这些邮件必须用您的私人密钥才能阅读。

要发送加密邮件,您的通讯簿必须包含收件人的数字标识。这样,您就可以使用他们的公用密钥来加密邮件了。当收件人收到加密邮件后,用他们的私人密钥来对邮件进行解密才能阅读。

在能够发送带有数字签名的邮件之前,您必须获得数字标识。如果您正在发送加密邮件,您的通讯簿中必须包含每位收件人的数字标识。

数字证书,可以是个人证书或 web 站点证书,用于将身份与"公开密钥"关联。只有证书的所有者才知道允许所有者"解密"或进行"数字签名"的相应"私人密钥"。当您将自己的证书发送给其他人时,实际上发给他们的是您的公开密钥,这样他们就可以向您发送只能由您使用私人密钥解密和读取的加密信息。

通过浏览器使用数字证书,必须先要设置浏览器软件 internet explorer 或 netscape使用此证书,才能开始发送加密或需要数字签名的信息。访问安全的 web 站点(以"https"打头的站点)时,该站点将自动向您发送他们的web站点证书。

3.ca(证书授证中心)

ca机构,又称为证书授证(certificate authority)中心,作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。ca中心为每个使用公开密钥的用户发放一个数字证书,数字证书的作用是证明证书中列出的用户合法拥有证书中列出的公开密钥。ca机构的数字签名使得攻击者不能伪造和篡改证书。在set交易中,ca不仅对持卡人、商户发放证书,还要对获款的银行、网关发放证书。它负责产生、分配并管理所有参与网上交易的个体所需的数字证书,因此是安全电子交易的核心环节。

〖5〗〖6〗〖7〗〖8〗〖9〗〖10〗〖11〗〖12〗〖13〗〖14〗〖15〗

对证书的信任基于对根证书的信任. 例如在申请sheca的个人数字证书前,需要先下载根证书,然后再进行各类证书的申请。

下载根证书的目的:

网络服务器验证(s);安全电子邮件(e)

申请个人数字证书可以为internet用户提供发送电子邮件的安全和访问需要安全连接(需要客户证书)的站点。

1)个人数字证书

a.个人身份证书

个人身份证书是用来表明和验证个人在网络上的身份的证书,它确保了网上交易和作业的安全性和可靠性。可应用于:网上炒股、网上理财、网上保险、网上缴费、网上购物、网上办公等等。个人身份证书可以存储在软盘或ic卡中。

b.个人安全电子邮件证书

个人安全电子邮件证书可以确保邮件的真实性和保密性。申请后一般是安装在用户的浏览器里。用户可以利用它来发送签名或加密的电子邮件。

用户在申请安装完安全安全电子邮件数字证书后,就可以对要发送的邮件进行数字签名。收信人收到该邮件后,就可以看到数字签名的标记,这样就可以证明邮件肯定来自发信者本人,而不是别人盗用该帐号伪造信件,同时也保证该邮件在传送过程中没被他人篡改过任何数据。

安全电子邮件中使用的数字证书可以实现:

保密性 通过使用收件人的数字证书对电子邮件加密。如此以来,只有收件人才能阅读加密的邮件,在internet上传递的电子邮件信息不会被人窃取,即使发错邮件,收件人也无法看到邮件内容。

认证身份 在internet上传递电子邮件的双方互相不能见面,所以必须有方法确定对方的身份。利用发件人数字证书在传送前对电子邮件进行数字签名即可确定发件人身份,而不是他人冒充的。

完整性 利用发件人数字证书在传送前对电子邮件进行数字签名不仅可确定发件人身份,而且传递的电子邮件信息也不能被人在传输过程中修改。

不可否认性 由于发件人的数字证书只有发件人唯一拥有,故发件人利用其数字证书在传送前对电子邮件进行数字签名,发件人就无法否认发过这个电子邮件。

outlook express中的个人安全电子邮件证书

签名邮件带有签名邮件图标。

签名邮件可能出现的任何问题都将在本信息之后可能出现的“安全警告”中得到描述。如果存在问题,您应该认为邮件已被篡改,或并非来自所谓的发件人。

当收到一封加密邮件时,您应该可以自信地认为邮件未被任何第三者读过。outlook express 会自动对电子邮件解密, 如果在您的计算机上装有正确的数字标识。

2)企业数字证书

a.企业身份证书

企业身份证书是用来表明和验证企业用户在网络上身份的证书,它确保了企业网上交易和作业的安全性和可靠性。可应用于:网上证券、网上办公、网上交税、网上采购、网上资金转帐、网上银行等。企业身份证书可以存储在软盘和ic卡中。

b.企业安全电子邮件证书

企业安全电子邮件证书可以确保邮件的真实性和保密性。申请后一般是安装在用户的浏览器里。企业可以利用它来发送签名或加密的电子邮件。

可使用 windows 中的证书服务来创建证书颁发机构 (ca),它负责接收证书申请、验证申请中的信息和申请者的身份、颁发证书、吊销证书以及发布证书吊销列表 (crl)。

通常,当用户发出证书申请时,在其计算机上的加密服务提供程序 (csp) 为用户生成公钥和私钥对。用户的公钥随同必要的识别信息发送至 ca。如果用户的识别信息符合批准申请的 ca 标准,那么 ca 将生成证书,该证书由客户应用程序检索并就地存储。

4.set

安全接口层协议——ssl(se cure socketslayer),并且已经几乎成为了目前www 世界的事实标准。这一标准使用公共密钥编码方案来对传输数据进行加密,在双方之间建立一个internet 上的加密通道,从而使第三方无法获得其中的信息,其思路与目前流行的方案大致相同,目的都是要保护数据不被未经授权的第三方所窃听,或即使窃听到也不知所云。但就象 一样,ssl 在认证方面没有任何作为,它们都需要通过另外的手段来确认身份和建立双方彼此间的信任,然后再通过ssl 进行交易。

正是由于ssl 标准在认证方面的缺憾,所以set 才有存在的必要。set(secure electronic transactions) 规范由masterc ard 和visa 公司于1996 年发布,专家们认为set 是保证用户与商家在电子商务与在线交易中免受欺骗的重要手段。传统的信用卡交易者总在担心不诚实的店员会将自己的信用卡号码透露给他人,而在线交易也是如此,持卡者总在担心服务器端的管理员会将信用卡号码泄露出去,或者担心黑客会在管理员不知情的情况下盗取信用卡号码。事实上这些担心都是必要的,而set 标准则可以保证用户的信用卡号码只传送给信用卡公司进行认证,不会被系统管理员看到,也不会留在交易服务器的硬盘上给黑客以可乘之机。

5.pki

pki是一种易于管理的、集中化的网络安全方案。它可支持多种形式的数字认证: 数据加密、数字签字、不可否认、身份鉴别、密钥管理以及交叉认证等。pki可通过一个基于认证的框架处理所有的数据加密和数字签字工作。p ki标准与协议的开发迄今已有20xx年的历史,目前的pki已完全可以向企业网络提供有效的安全保障。 〖5〗〖6〗〖7〗〖8〗〖9〗〖10〗〖11〗〖12〗〖13〗〖14〗〖15〗

pki是一种遵循标准的密钥管理平台,它能够为所有网络应用透明地提供采用加密和数字签名等密码服务所必需的密钥和证书管理。pki必须具有

1)ca、

2)证书库、

3)密钥备份及恢复系统、

4)证书作废处理系统、

5)客户端证书处理系统

等基本成分,构建pki也将围绕着这五大系统来构建

一个pki由众多部件组成,这些部件共同完成两个主要功能:

1)为数据加密

2)创建数字认证。

服务器(即后端)产品是这一系统的核心,这些数据库管理着数字认证、公共密钥及专用密钥( 分别用于数据的加密和解密)。

ca数据库负责发布、废除和修改x.509数字认证信息,它装有用户的公共密钥、证书有效期以及认证功能(例如对数据的加密或对数字签字的验证) 。为了防止对数据签字的篡改,ca在把每一数字签字发送给发出请求的客户机之前,需对每一个数字签字进行认证。一旦数字认证得以创建, 它将会被自动存储于x.500目录中,x.500目录为树形结构。ldap(lightweight directory access protocol)协议将响应那些要求提交所存储的公共密钥认证的请求。ca为每一用户或服务器生成两对独立的公共和专用密钥。其中一对用于信息的加密和解密, 另一对由客户机应用程序使用,用于文档或信息传输中数字签字的创建。

大多数pki均支持证书分布,这是一个把已发布过的或续延生命期的证书加以存储的过程。这一过程使用了一个公共查询机制,x.500目录可自动完成这一存储过程。影响企业普遍接受p ki的一大障碍是不同ca之间的交叉认证。假设有两家公司,每一家企业分别使用来自不同供应商的ca,现在它们希望相互托管一段时间。如果其后援数据库支持交叉认证, 则这两家企业显然可以互相托管它们的ca,因而它们所托管的所有用户均可由两家企业的ca所托管。

* 认证机关

ca是证书的签发机构,它是pki的核心。众所周知,构建密码服务系统的核心内容是如何实现密钥管理,公钥体制涉及到一对密钥,即私钥和公钥, 私钥只由持有者秘密掌握,无须在网上传送,而公钥是公开的,需要在网上传送,故公钥体制的密钥管理主要是公钥的管理问题,目前较好的解决方案是引进证书(certificate)机制。

证书是公开密钥体制的一种密钥管理媒介。它是一种权威性的电子文档,形同网络计算环境中的一种身份证,用于证明某一主体(如人、服务器等)的身份以及其公开密钥的合法性。在使用公钥体制的网络环境中, 必须向公钥的使用者证明公钥的真实合法性。因此,在公钥体制环境中,必须有一个可信的机构来对任何一个主体的公钥进行公证,证明主体的身份以及他与公钥的匹配关系。c a正是这样的机构,它的职责归纳起来有:

1、验证并标识证书申请者的身份;

2、确保ca用于签名证书的非对称密钥的质量;

3、确保整个签证过程的安全性,确保签名私钥的安全性;

4、证书材料信息(包括公钥证书序列号、ca标识等)的管理;

5、确定并检查证书的有效期限;

6、确保证书主体标识的唯一性,防止重名;

7、发布并维护作废证书表;

8、对整个证书签发过程做日志记录;

9、向申请人发通知。

其中最为重要的是ca自己的一对密钥的管理,它必须确保其高度的机密性,防止他方伪造证书。ca的公钥在网上公开,整个网络系统必须保证完整性。

* 证书库

证书库是证书的集中存放地,它与网上"白页”类似,是网上的一种公共信息库,用户可以从此处获得其他用户的证书和公钥。

构造证书库的最佳方法是采用支持ldap协议的目录系统,用户或相关的应用通过ldap来访问证书库。系统必须确保证书库的完整性,防止伪造、篡改证书。

* 密钥备份及恢复系统

* 证书作废处理系统

* pki应用接口系统

pki的价值在于使用户能够方便地使用加密、数字签名等安全服务,因此一个完整的pki必须提供良好的应用接口系统,使得各种各样的应用能够以安全、一致、可信的方式与p ki交互,确保所建立起来的网络环境的可信性,同时降低管理维护成本。最后,pki应用接口系统应该是跨平台的。

许多权威的认证方案供应商(例如verisign、thawte以及gte)目前都在提供外包的pki。外包pki最大的问题是,用户必须把企业托管给某一服务提供商, 即让出对网络安全的控制权。如果不愿这样做,则可建造一个专用的pki。专用方案通常需把来自entrust、baltimore technologies以及xcert的多种服务器产品与来自主流应用程序供应商(如microsoft、netscape以及qualcomm)的产品组合在一起。专用pk i还要求企业在准备其基础设施的过程中投入大量的财力与物力。

7.jaas

扩展jaas实现类实例级授权

“java 认证和授权服务”(java authentication and authorization service,jaas)

在 jaas 下,可以给予用户或服务特定的许可权来执行 java 类中的代码。在本文中,软件工程师 carlos fonseca 向您展示如何为企业扩展 jaas 框架。向 jaas 框架添加类实例级授权和特定关系使您能够构建更动态、更灵活并且伸缩性更好的企业应用程序。

大多数 java 应用程序都需要某种类实例级的访问控制。例如,基于 web 的、自我服务的拍卖应用程序的规范可能有下列要求: 《5》《6》《7》《8》《9》《10》《11》《12》《13》《14》《15》

任何已注册(经过认证)的用户都可以创建一个拍卖,但只有创建拍卖的用户才可以修改这个拍卖。

这意味着任何用户都可以执行被编写用来创建 auction 类实例的代码,但只有拥有该实例的用户可以执行用来修改它的代码。通常情况下,创建 auction 实例的用户就是所有者。这被称为类实例所有者关系(class instance owner relationship)。

该应用程序的另一个要求可能是:

任何用户都可以为拍卖创建一个投标,拍卖的所有者可以接受或拒绝任何投标。

再一次,任何用户都可以执行被编写用来创建 bid 类实例的代码,但只有拥有该实例的用户会被授予修改该实例的许可权。而且,auction 类实例的所有者必须能够修改相关的 bid 类实例中的接受标志。这意味着在 auction 实例和相应的 bid 实例之间有一种被称为特定关系(special relationship)的关系。

不幸的是,“java 认证和授权服务”(jaas)— 它是 java 2 平台的一部分 — 没有考虑到类实例级访问控制或者特定关系。在本文中,我们将扩展 jaas 框架使其同时包含这两者。推动这种扩展的动力是允许我们将访问控制分离到一个通用的框架,该框架使用基于所有权和特定关系的策略。然后管理员可以在应用程序的生命周期内更改这些策略。

在深入到扩展 jaas 框架之前,我们将重温一下 java 2 平台的访问控制机制。我们将讨论策略文件和许可权的使用,并讨论 securitymanager 和 accesscontroller 之间的关系。

java 2 平台中的访问控制

在 java 2 平台中,所有的代码,不管它是本地代码还是远程代码,都可以由策略来控制。策略(policy)由不同位置上的代码的一组许可权定义,或者由不同的签发者定义、或者由这两者定义。许可权允许对资源进行访问;它通过名称来定义,并且可能与某些操作关联在一起。

抽象类 java.security.policy 被用于表示应用程序的安全性策略。缺省的实现由 sun.security.provider.policyfile 提供,在 sun.security.provider.policyfile 中,策略被定义在一个文件中。清单 1 是一个典型策略文件示例:

清单 1. 一个典型的策略文件

// grant these permissions to code loaded from a sample.jar file

// in the c drive and if it is signed by xyz

grant codebase "file:/c:/sample.jar", signedby "xyz" {

// allow socket actions to any host using port 8080

permission .socketpermission "*:8080", "accept, connect,

listen, resolve";

// allows file access (read, write, execute, delete) in

// the users home directory.

permission java.io.filepermission "${user.home}/-", "read, write,

execute, delete";

};

securitymanager 对 accesscontroller

在标准 jdk 分发版中,控制代码源访问的机制缺省情况下是关闭的。在 java 2 平台以前,对代码源的访问都是由 securitymanager 类管理的。securitymanager 是由 java.security.manager 系统属性启动的,如下所示:

java -djava.security.manager

在 java 2 平台中,可以将一个应用程序设置为使用 java.lang.securitymanager 类或者 java.security.accesscontroller 类管理敏感的操作。accesscontroller 在 java 2 平台中是新出现的。为便于向后兼容,securitymanager 类仍然存在,但把自己的决定提交 accesscontroller 类裁决。securitymanager 和 accesscontroller 都使用应用程序的策略文件确定是否允许一个被请求的操作。清单 2 显示了 accesscontroller 如何处理 socketpermission 请求:

清单 2. 保护敏感操作

public void somemethod {

permission permission =

new .socketpermission("localhost:8080", "connect");

accesscontroller.checkpermission(permission);

// sensitive code starts here

socket s = new socket("localhost", 8080);

}

在这个示例中,我们看到 accesscontroller 检查应用程序的当前策略实现。如果策略文件中定义的任何许可权暗示了被请求的许可权,该方法将只简单地返回;否则抛出一个 accesscontrolexception 异常。在这个示例中,检查实际上是多余的,因为缺省套接字实现的构造函数也执行相同的检查。

在下一部分,我们将更仔细地看一下 accesscontroller 如何与 java.security.policy 实现共同合作安全地处理应用程序请求。

运行中的 accesscontroller

accesscontroller 类典型的 checkpermission(permission p) 方法调用可能会导致下面的一系列操作:

accesscontroller 调用 java.security.policy 类实现的 getpermissions(codesource codesource) 方法。

getpermissions(codesource codesource) 方法返回一个 permissioncollection 类实例,这个类实例代表一个相同类型许可权的集合。

accesscontroller 调用 permissioncollection 类的 implies(permission p) 方法。

接下来,permissioncollection 调用集合中包含的单个 permission 对象的 implies(permission p) 方法。如果集合中的当前许可权对象暗示指定的许可权,则这些方法返回 true,否则返回 false。

[1][2][3][4][5][6][7][8][9][10][11][12][13][14][15]

现在,让我们更详细地看一下这个访问控制序列中的重要元素。

permissioncollection 类

大多数许可权类类型都有一个相应的 permissioncollection 类。这样一个集合的实例可以通过调用 permission 子类实现定义的 newpermissioncollection 方法来创建。java.security.policy 类实现的 getpermissions 方法也可以返回 permissions 类实例 — permissioncollection 的一个子类。这个类代表由 permissioncollection 组织的不同类型许可权对象的一个集合。permissions 类的 implies(permission p) 方法可以调用单个 permissioncollection 类的 implies(permission p) 方法。

codesource 和 protectiondomain 类

许可权组合与 codesource(被用于验证签码(signed code)的代码位置和证书)被封装在 protectiondomain 类中。有相同许可权和相同 codesource 的类实例被放在相同的域中。带有相同许可权,但不同 codesource 的类被放在不同的域中。一个类只可属于一个 protectiondomain。要为对象获取 protectiondomain,请使用 java.lang.class 类中定义的 getprotectiondomain 方法。

许可权

赋予 codesource 许可权并不一定意味着允许所暗示的操作。要使操作成功完成,调用栈中的每个类必须有必需的许可权。换句话说,如果您将 java.io.filepermission 赋给类 b,而类 b 是由类 a 来调用,那么类 a 必须也有相同的许可权或者暗示 java.io.filepermission 的许可权。

在另一方面,调用类可能需要临时许可权来完成另一个拥有那些许可权的类中的操作。例如,当从另一个位置加载的类访问本地文件系统时,我们可能不信任它。但是,本地加载的类被授予对某个目录的读许可权。这些类可以实现 privilegedaction 接口来给予调用类许可权以便完成指定的操作。调用栈的检查在遇到 privilegedaction 实例时停止,有效地将执行指定操作所必需的许可权授予所有的后继类调用。

使用 jaas

顾名思义,jaas 由两个主要组件组成:认证和授权。我们主要关注扩展 jaas 的授权组件,但开始我们先简要概述一下 jaas 认证,紧接着看一下一个简单的 jaas 授权操作。

jaas 中的用户认证

jaas 通过添加基于 subject 的策略加强了 java 2 中定义的访问控制安全性模型。许可权的授予不仅基于 codesource,还基于执行代码的用户。显然,要使这个模型生效,每个用户都必须经过认证。

jaas 的认证机制建立在一组可插登录模块的基础上。jaas 分发版包含几个 loginmodule 实现。loginmodules 可以用于提示用户输入用户标识和密码。logincontext 类使用一个配置文件来确定使用哪个 loginmodule 对用户进行认证。这个配置可以通过系统属性 java.security.auth.login.config 指定。一个示例配置是:

java -djava.security.auth.login.config=login.conf

下面是一个登录配置文件的样子:

example {

com.ibm.resource.security.auth.loginmoduleexample required

debug=true userfile="users.xml" groupfile="groups.xml";

};

认识您的主体

subject 类被用于封装一个被认证实体(比如用户)的凭证。一个 subject 可能拥有一个被称为主体(principal)的身份分组。例如,如果 subject 是一个用户,用户的名字和相关的社会保险号可能是 subject 的某些身份或主体。主体是与身份名关联在一起的。

principal 实现类及其名称都是在 jaas 策略文件中指定的。缺省的 jaas 实现使用的策略文件与 java 2 实现的策略文件相似 — 除了每个授权语句必须与至少一个主体关联在一起。javax.security.auth.policy 抽象类被用于表示 jaas 安全性策略。它的缺省实现由 com.sun.security.auth.policyfile 提供,在 com.sun.security.auth.policyfile 中策略定义在一个文件中。清单 3 是 jaas 策略文件的一个示例:

清单 3. 示例 jaas 策略文件

// example grant entry

grant codebase "file:/c:/sample.jar", signedby "xyz",

principal com.ibm.resource.security.auth.principalexample "admin" {

// allow socket actions to any host using port 8080

permission .socketpermission

"*:8080", "accept, connect, listen, resolve";

// allows file access (read, write, execute, delete) in

// the users home directory.

permission java.io.filepermission

"${user.home}/-", "read, write, execute, delete";

};

这个示例与清单 1 中所示的标准 java 2 策略文件相似。实际上,唯一的不同是主体语句,该语句声明只有拥有指定主体和主体名字的 subject(用户)被授予指定的许可权。

再一次,使用系统属性 java.security.auth.policy 指出 jaas 策略文件驻留在何处,如下所示:

java -djava.security.auth.policy=policy.jaas

subject 类包含几个方法来作为特殊 subject 执行工作;这些方法如下所示:

public static object

doas(subject subject, java.security.privilegedaction action) 3 4 5 6 7 8 9 10 11 12 13 14 15

public static object

doas(subject subject, java.security.privilegedaction action)

throws java.security.privilegedactionexception

jaas 中的授权

清单 4 显示一个授权请求的结果,该请求使用清单 3 中显示的 jaas 策略文件。假设已经安装了 securitymanager,并且 logincontext 已经认证了一个带有名为“admin”的 com.ibm.resource.security.auth.principalexample 主体的 subject。

清单 4. 一个简单的授权请求

public class jaasexample {

public static void main(string args) {

...

// where authenticateduser is a subject with

// a principalexample named admin.

subject.doas(authenticateduser, new jaasexampleaction);

...

}

}

public class jaasexampleaction implements privilegedaction {

public object run {

filewriter fw = new filewriter("hi.txt");

fw.write("hello, world!");

fw.close;

}

}

这里,敏感代码被封装在 jaasexampleaction 类中。还要注意,调用类不要求为 jaasexampleaction 类代码源授予许可权,因为它实现了一个 privilegedaction。

扩展 jaas

大多数应用程序都有定制逻辑,它授权用户不仅仅在类上执行操作,而且还在该类的实例上执行操作。这种授权通常建立在用户和实例之间的关系上。这是 jaas 的一个小缺点。然而,幸运的是,这样设计 jaas 使得 jaas 可以扩展。只要做一点工作,我们将可以扩展 jaas,使其包含一个通用的、类实例级的授权框架。

在文章开头处我已经说明了,抽象类 javax.security.auth.policy 被用于代表 jaas 安全性策略。它的缺省实现是由 com.sun.security.auth.policyfile 类提供。policyfile 类从 jaas 格式的文件(象清单 3 中显示的那个一样)中读取策略。

我们需要向这个文件添加一个东西为类实例级授权扩展策略定义:一个与许可权语句相关的可选关系参数。

缺省 jaas 许可权语句的格式如下:

permission ; [name], [actions];

我们在这个许可权语句的末尾添加一个可选的关系参数来完成策略定义。下面是新许可权语句的格式:

permission ;

[name], [actions], [relationship];

在为类实例级授权扩展 jaas 时要注意的最重要的一点是:许可权实现类必须有一个带三个参数的构造函数。第一个参数是名称参数,第二个是行为参数,最后一个是关系参数。

解析新文件格式

既然文件格式已经改变,就需要一个新的 javax.security.auth.policy 子类来解析文件。

为简单起见,我们的示例使用了一个新的 javax.security.auth.policy 子类 com.ibm.resource.security.auth.xmlpolicyfile,来从 xml 文件读取策略。在实际的企业应用程序中,关系数据库更适合执行这个任务。

使用 xmlpolicyfile 类代替缺省的 jaas 访问控制策略实现的最容易的方法是向 java.security 属性文件添加 auth.policy.provider=com.ibm.resource.security.auth.xmlpolicyfile 条目。java.security 属性文件位于 java 2 平台运行时的 lib/security 目录下。清单 5 是与 xmlpolicyfile 类一起使用的样本 xml 策略文件:

清单 5. 一个 xml 策略文件

;

;

;

"com.ibm.resource.security.auth.principalexample" name="users">;

"com.ibm.resource.security.auth.resourcepermission"

name="com.ibm.security.sample.auction"

actions="create" />;

"com.ibm.resource.security.auth.resourcepermission"

name="com.ibm.security.sample.auction"

actions="read" />;

"com.ibm.resource.security.auth.resourcepermission"

name="com.ibm.security.sample.auction"

actions="write"

relationship="owner" />;

"com.ibm.resource.security.auth.resourcepermission"

name="com.ibm.security.sample.bid"

actions="create" />;

"com.ibm.resource.security.auth.resourcepermission"

name="com.ibm.security.sample.bid"

actions="read" />;

"com.ibm.resource.security.auth.resourcepermission"

【5】【6】【7】【8】【9】【10】【11】【12】【13】【14】【15】

name="com.ibm.security.sample.bid"

actions="write"

relationship="owner" />;

"com.ibm.resource.security.auth.resourcepermission"

name="com.ibm.security.sample.bid"

actions="accept"

relationship="actionowner" />;

;

;

;

在这个示例策略文件中,任何与名为 principalexample 的用户有关的用户(subject)都可以创建并读取一个 auction.class 实例。但是,只有创建该实例的用户才可以更新(写)它。这是第三个 permission 元素定义的,该元素包含值为 owner 的 relationship 属性。bid.class 实例也是一样,除了相应 auction.class 实例的所有者可以更改投标接受标志。

resource 接口

要求类实例级访问控制的类必须实现 resource 接口。该接口的 getowner 方法返回类实例的所有者。fulfills(subject subject, string relationship) 方法被用于处理特定关系。另外,这些类使用 com.ibm.resource.security.auth.resourcepermission 类保护敏感代码。例如,auction 类拥有下列构造函数:

public auction {

permission permission =

new resourcepermission("com.ibm.security.sample.auction", "create");

accesscontroller.checkpermission(permission);

}

所有者关系

resourcepermission 类的 implies(permission p) 方法是这个框架的关键。implies 方法就等同性比较名称和行为属性。如果定义了一个关系,那么必须把受保护的类实例(resource)传递到 resourcepermission 构造函数中。resourcepermission 类理解所有者关系。它将类实例的所有者与执行代码的 subject(用户)进行比较。特定关系被委托给受保护类的 fulfills 方法。

例如,在清单 5 中所示的 xml 策略文件中,只有 auction 类实例的所有者可以更新(写)文件。该类的 setter 方法使用清单 6 中显示的保护代码:

清单 6. 运行中的 implies(permission) 方法

public void setname(string newname) {

permission permission =

new resourcepermission("com.ibm.security.sample.auction", "write", this);

accesscontroller.checkpermission

展开阅读全文

篇4:计算机java实习心得感悟

范文类型:心得体会,全文共 3112 字

+ 加入清单

作为就业培训,项目的好坏对培训质量的影响十分大,常常是决定性的作用。这篇文章是关于在学习java软件开发时练习项目的总结,简单总结为以下几点:

1、项目一定要全新的项目,不能是以前做过的

2、项目一定要企业真实项目,不能是精简以后的,不能脱离实际应用系统

3、在开发时要和企业的开发保持一致

4、在做项目的时候不应该有参考代码

长话短说就是以上几点,如果你想要更多的了解,可以继续往后看。

一:项目的地位

因为参加就业培训的学员很多都是有一定的计算机基础,大部分都具备一定的编程基础,尤其是在校或者是刚毕业的学生,多少都有一些基础。

他们欠缺的主要是两点:

(1)不能全面系统的、深入的掌握某种技术,也就是会的挺多,但都是皮毛,不能满足就业的需要。

(2)没有任何实际的开发经验,完全是想象中学习,考试还行,一到实际开发和应用就歇菜了。

解决的方法就是通过项目练习,对所学知识进行深化,然后通过项目来获取实际开发的经验,从而弥补这些不足,尽快达到企业的实际要求。

二:如何选择项目

项目既然那么重要,肯定不能随随便便找项目,那么究竟如何来选择呢?根据Java的研究和实践经验总结,选择项目的时候要注意以下方面:

1:项目不能太大,也不能太小

这个要根据项目练习的阶段,练习的时间,练习的目标来判断。不能太大,太大了做不完,也不能太小,太小了没有意义,达不到练习的目的。

2:项目不能脱离实际应用系统

项 目应该是实际的系统,或者是实际系统的简化和抽象,不能够是没有实战意义的教学性或者是纯练习性的项目。因为培训的时间有限,必须让学员尽快地融入到实际 项目的开发当中去。任何人接受和掌握一个东西都需要时间去适应,需要重复几次才能够真正掌握,所以每个项目都必须跟实际应用挂钩。

3:项目应能覆盖所学的主要知识点

学以致用,学完的知识点需要到应用中使用,才能够真正理解和掌握,再说了,软件开发是一个动手能力要求很高的行业,什么算会了,那就是能够做出来,写出代码来,把问题解决了,你就算会了。

4:最后综合项目一定要是实际应用系统

学 员经过这个项目的练习,就要走上实际的工作岗位了,如果这个系统还达不到实际应用系统的标准,学员练习过后也还是达不到企业实际的需要,那么这个培训应该 说质量就不高了。理想的状况是这个项目就是实际项目,到时候学员就业到另外一个公司,不过是换个地方干活而已,完全没有技能上的问题。

三:Java怎么选择项目

这个不是靠想象,而是根据实际的情况一步一步分析出来的(呵呵要卖弄一下:这也算是逻辑思维),当然这里只是讨论方法,不涉及具体的项目案例。

我们可以采用倒推的方式来分析:

(1)最终的项目一定是真实的项目,也就是要把学员训练到能够独立开发实际应用,通常我们还不能选最简单的项目,因为学员的吸收还要有一个折扣,所以最终的项目应该选实际项目中中等难度的项目

(2)最终项目定下来过后,开始分解这个项目,看看为了达到完成这个项目需要哪些技术和知识点,以及每部分知识点的深度,然后定出每个分阶段的任务

(3)然后开始选择分阶段的项目,分阶段的项目应该比刚才分析出来的分阶段任务稍稍复杂点,这样才能达到训练的目标。定下分阶段项目后,同样去分解,定出为了完成他所需要的各部分知识点和深度。

(4)然后是选择上课期间的演示项目,演示的项目是为了做分阶段项目服务的,可以认为是分阶段项目的分阶段项目

(5)最终把要求掌握的知识点和要求掌握的深度,分散到日常教学和练习中。 好了,把上面的分析用正向描述就是:

日常教学和练习中学习和掌握的知识 ==〉演示项目 ==〉分阶段项目 ==〉综合项目 ==〉胜任企业实际开发需要。

附注:有了好的项目还要有好的训练方法(这个另外立文讨论),最最基本和重要的一条就是:绝对要指导学生亲自动手做,而不是看和听,所以尽量不要选择有现成代码的项目,演示用的项目也最好不配发代码,让学生能够跟着做出来才是真的掌握了。

上面阐述了Java对项目的态度和基本选择方法,这里再把其中几个重要的、与众不同的特点阐述如下:

1:真项目

项 目一定要真实,要是企业实际应用的,不能是教学性的项目,否则会脱离实达不到项目实训的效果。还有一个一定要是最新的项目,企业的要求也是在不断变化的, 应用技术的方向和层次也在不断变化,这些都体现在最新项目的要求上,旧项目所要求的技术和层次很可能已经过时了,根本达不到训练的目的。

Java的做法是:没有固定项目,每个班做项目之前会从企业获取最新的项目需求,然后经过挑选和精心设计,以保证既能训练技术,又能得到实际的开发经验。这样实现了跟企业的同步,企业做什么,我们就学什么,然后也跟着做什么。

2:真流程

开发的流程也要跟企业的实际开发保持一致。从项目立项开始,到需求分析、概要设计、详细设计、编码、测试的各个环节,都要完全按照真实的开发流程来做。

Java的主力老师都是实战出身,在Java开发方面都至少有七年以上的开发经验,同时具备多年的项目管理经验,所以能够完全按照企业开发的流程来训练学生。

3:真环境

开发的环境也要跟企业一样,包括常用的开发工具、开发平台、应用服务器、常用插件、测试工具、项目管理工具、项目管理文档等等。

Java的做法是:构建跟企业完全一样的环境,然后跟企业开发一样,分团队开发。老师就相当于项目经理,一个班分成多个小组,每个组有自己的Team Leader,大家分工合作,共同完成项目。

4:真开发

这是Java最与众不同的一点,Java深知:软件是做出来的,而不是听出来或者看出来的,企业需要能实际开发的人员,而不是只听过、看过但不能做的人。所以Java十分强调:项目一定要让学生动手写出来。

Java的做法是:老师做为项目经理,带领着大家一起去做需求分析、概要设计、数据结构设计、接口设计、重要业务流程的分析设计等,然后由学生们分团队进行开发,实现整个项目。这里有几个与众不同:

(1):现场带领学生一起做分析和设计,而不是预先做好了来讲讲。因为需要学生学习的是分析设计的过程和方法,而不是已经做好的结果。

(2):Java选用的项目基本都是企业最新的项目,很多都是Java的学生和企业在同期开发,所以是不配发源代码的。这样也断绝了学生的依赖思想,认认真真去开发。可能有同学会问:为什么不选择有源代码的项目呢,那样还可以参考学习啊!

这 是一个典型的误区:觉得通过看人家的代码能够加快自己的学习。这个方法对有经验的人来讲是对的,但是对于还在学习期间,没有经验的学员来讲,就是一个认识 的误区了。因为你也许能看懂代码的语法,但根本看不懂代码背后的含义,看不懂代码的设计,看不懂为什么要这么实现,看不懂代码所体现的思想,其实,看了跟 没看没有多大区别。

事实上,Java界最不缺的就是代码了,那么多开源软件,小到一个工具,到企业级ERP都有开源的,而且很多都是大师级的 作品,说实话比你参考的那些代码质量高多了,但是又有多少人能真正看明白呢,原因就在于达不到那个水平,看不懂代码背后所体现的设计和思想以及为什么要这 么做,效果也就不好了。当然不排除有这样的高人是能够完全能理解和掌握这些大师级作品的,但估计不会是刚开始学习Java开发的学生,所以Java根据多年的培训经验,友情提 示:在初学阶段,看一千遍,听一千遍,都不如自己动手写一遍所达到的学习效果。自己能写出来的功能才是你真正掌握的功能,而不是你看得代码或者是听老师讲 的,就算讲过看过,但是自己做不出来,那都不算会。Java的主力老师都是实战出身,在Java开发方面都至少有七年以上的开发经验,同时具备多年的项目管理经验,所以能够完全按照企业开发的流程来训练学生。

展开阅读全文

篇5:java读书心得

范文类型:心得体会,全文共 507 字

+ 加入清单

给孩子买了好几本童话故事书,今天讲到格林童话我想大家都看过,其中的青蛙王子。故事内容大意是:一位公主在井边玩耍,不小心,她的金球掉到井里,自己又没办法去捞,只好哭泣。这时从井里钻出一只丑陋的大青蛙,说愿意帮公主把球捞上来,但从今往后要合公主同桌吃饭、同床睡觉,公主答应了。可是当球捞上来后,公主却不想兑现自己的诺言。但国王却坚持说:“你不管答应了什么,都得办到。”公主只好豪不情愿地依从。就在青蛙上床睡觉时,公主抓起它狠狠往墙上一摔,想叫青蛙吃吃苦头,没想到,奇迹发生了,青蛙被公主一摔,变成了英俊的王子,他们结了婚,成了恩爱夫妻。我想,如果公主说话不算数,她也不会有最后的幸福,所以说,欺骗和不守信用的人不会有好结果,一诺千金才是做人的本分。 再说,国王就是国王,他要自己的女儿说话算数,说明他本人更是金口玉言,不然怎么会当上国王呢? 也许有人问:假如青蛙不变成王子,那不苦了公主?当然这是有可能的,实际上人世间青蛙变王子的事毕竟很少,

所以,公主在事先就应当考虑到这一点,如果你愿意牺牲自己去换取金球,你就答应青蛙,否则就不要轻易承诺。要估计到将来任何事情都有可能发生,抱着侥幸心或者耍什么诡计,往往没有好结果。

展开阅读全文

篇6:java实习心得总结

范文类型:心得体会,工作总结,全文共 1809 字

+ 加入清单

为期近1个月的实习结束了,我在实习中学到了很多在课堂上根本就学不到的知识,收益匪浅.现在我对这2个月的实习做一个工作小结。

一、作为学生,生产实践是学生对专业知识的进一步巩固和认识。

也是我们顺利融入社会化大生产的一项有利保障。因为学生自古以来都是以学为本,社会实践的机会机会相对较少。而社会对大学生的要求即使社会实践,社会生产经验都具备的员工。因此,对于我们来讲,动手能力是我们能成功就业的关键。同时生产实践,也是对我们协作能力,处理同学关系的一次锻炼。大学作为一个“熔炉”,为我们提供了许多培养社会经验的机会,但是相对于社会生产关系而言,我们却知之甚少。而生产关系的认识又是我们事业发展不得忽视的。因此,适当处理协作关系是我们能够开展事业的关键。

二、要善于沟通:

要想在短暂的实习时间内,尽可能多的学一些东西,这就需要跟老师有很好的沟通,加深彼此的了解,刚到实习的地方,老师并不了解你的工作学习能力,不清楚你掌握了哪些知识,不清楚你想了解什么样的知识,所以跟老师建立起很好的沟通是很必要的。同时我觉得这也是我们将来走上社会的一把不可获缺的钥匙。通过沟通了解,老师我有了大体的了解,一边有针对性的教我一些会计实际知识,一边根据我的兴趣给予我更多的指导与帮助,在这次的工作中,我真正学到了会计教科书上所没有的知识,拥有了实践经验,这才真正体现了知识的真正价值,学以致用。

三、充满激情与耐心:

激情与耐心,就像火与冰,看似两种完全不同的东西,却能碰撞出最美丽的火花。在中心时,老师就跟我说,想做软件这一块,激情与耐心必不可少,在编写程序这方面,这一行业就像做新闻工作,需要你有耐心去实事求是,而你的耐心就要用到不断的学习新知识,提高自己的专业水平当中去。在一些具体的工作当中也是这样的。后来我又进行了自主学习,一遍又一遍的研究,自然有些烦,但我用我的热情与耐心克服这些困难,老师也教给我一些自己的宝贵的经验。这些在平常的书本上仅仅是获得感性的认识,而在这里真的实践了,才算是真正的掌握了,也让我认识到了自己的不足,告诫自己,不管做什么,切忌眼高手低,要善于钻研。老师说对每个程序都要细心耐心,具有基本的专业素养,因为细心负责是做好每一件事情所必备的基本条件,基本的专业素养是做好工作的前提。

四、关于具体编码:

开发几个项目之后,对编写程序有了更进一步的了解。

好的程序应该具有:易读性,易扩展性,容错性。

易读性:所有变量和函数以及类名用简单易懂易记忆的命名方式。所有类和函数甚至变量都有关键的注释说明。这点很重要,也是最基础的。如果代码书写不够美观和易懂,我想自己以后也不想再看。就更别谈功能的扩展和新版本开发了。

易扩展性:整体系统架构逻辑简单清晰。模块与模块之间尽量做到互不影响,也就是尽可能的独立。这部分工作主要体现在前期设计工作中,需要掌握好的设计经验和方法才能够做得比较好。

容错性:对数据流和指针以及数组都做数据有效性检查;对第三方接口的调用失败的容错性。对所有代码都做调用失败后的错误处理。以及在大的工程中加入trace文件输出,把关键的数据流和关键处理部分的操作信息输出。以便对工程异常情况产生条件的定位,及时解决问题。

我觉得程序员能在这三方面做得很好就算一个优秀的programmer了。

经过过去一个月的实践和实习,我对未来充满了美好的憧憬,在未来的日子,我将努力做到以下几点:

一、继续学习,不断提升理论素养。

在信息时代,学习是不断地汲取新信息,获得事业进步的动力。作为一名年轻人更应该把学习作为保持工作积极性的重要途径。走上工作岗位后,我积极响应单位号召,结合工作实际,不断学习理论、技能知识和社会知识,用先进的理论武装头脑,用精良的业务知识提升能力,以广博的社会知识拓展视野。

二、努力实践,自觉进行角色转化。

“理论是灰色的,生活之树常青”,只有将理论付诸于实践才能实现理论自身的价值,也只有将理论付诸于实践才能使理论得以检验。同样,一个人的价值也是通过实践活动来实现的,也只有通过实践才能锻炼人的品质,彰现人的意志。

三、提高工作积极性和主动性

一个月的实习期很快过去了,是开端也是结束。展现在自己面前的是一片任自己驰骋的沃土,也分明感受到了沉甸甸的责任。在今后的工作和生活中,我将继续学习,深入实践,不断提升自我,努力创造业绩,继续为社会创造更多的价值。

最后感谢实习单位领导和老师们对我的辅导和帮助,我会继续努力的。

展开阅读全文

篇7:关于java实习心得总结

范文类型:心得体会,工作总结,全文共 2757 字

+ 加入清单

在本学期的开学初期,我们在学校机房进行了为期三周的JA实训。现在即将结束了,回首本学期的java学习,重点还是在学习概念等一些常识性的东西,通过这次为期三周的实训,遇到了很多自己感兴趣的问题,就会很有兴趣,当然学知识可不能凭自己的爱好和一时兴趣,不能遇到自己不敢兴趣的问题就把它抛给同学,要学会自己踏踏实实认真的去解决问题。要一步一个脚印,认认真真,踏踏实实,理论与实践相结合,在扎实掌握课本实例和内容之后,有一定的扩展阅读和课外学习,充分全面的了解JA的应用和扩展运用。

本次我们小组所做的程序是小小通讯录基本功能已经较好的完成,可是还是有一些不完善,比如我们的通讯录没有能够做到把通讯录里所储存的信息以列表的形式展现出来,所以还是有些不完善,,我们的指导老师对我们的程序作出了大体评价,发现我们的思想还是处于一个比较简单的过程当中,老师的几句简单评价,就带给我们无与伦比的冲击性,由于我们写程序的经验尚且较少,很多东西无法考虑到位,老师的点评,使我们认识到了不足与今后的前进方向与目标,使我们更加具有动力与激情,拥有了继续认真学习JA的信心,拥有了成为一位合格的高级程序员的壮志,在编写程序的过程当中,我们在一开始就遇到了问题,一直在纠结与是使用数据库连接还是使用文件,经过老师的耐心讲解,我们了解到了尚未接触到的Jar包等一些列名词,但是经过数据库的抒写与连接发现SQL20xx与SQL20xx无法同步,所以最终我们选择了使用文件来进行这次程序的编写,第二个问题就是我们的程序在进行按钮新窗口的链接,在新窗口弹出时,无法将老窗口关闭,纠结了好久,询问老师,老师还给我用了父子的生动例子来讲解,最终我们查找JDK,查找类的用法终于完美解决!甚是兴奋! 在我所学的语言当中,我自认为JA是一门比较强大的面向对象的编程语言,不仅仅因为它的跨平台性,更多的是因为它的灵活多变和实用性较强,可以说比较的经典和强悍。

所以学好java语言有很大的用处,这次实训,面对一道陌生的题目和要求时,不应慌张和无措,首先应该想到这和课本上的哪些知识具有结合点,回忆和分析这种结构的算法和具体实施方法,综合考虑其他的方面,例如:该题的易写性和易懂性及其他的问题的可利用性。在编写时,一个小小的符号,一个常量变量的设定,这都无不考量着我们的细心和严谨,所以学习JA,不仅对我们以后学习其他语言有很大的好处,而且也让我们知道了和理解了作为一个编程人员首先应具有的良好心理素质,那就是冷静思考和专心致志。对待学术知识应该是严谨和认真。

这次实训,我们更多学到的是不懂就问和自己应该尽自己的全力去尝试,哪怕失败,只要自己尽自己的全力,和身边同学一起探讨而不是抄袭,团结合作,发挥团队意识,最后在自己的努力下,终于运行成功,这种成就感美不可言,心情愉悦至极。据我了解,软件工程专业培养的工程型人才要富有创新精神。软件工程技术人员致力于开发可靠好用的计算机产品和软件产品,必须具有扎实宽泛的知识面和较高的社会责任感,必须了解最新的技术进展、能够综合运用各方面技术并深刻理解设计一个合格产品所涉及的多方面因素,如市场需求、用户习惯等。另外,

这两个学科领域是相辅相成的,并共同推进计算机技术的方展。计算机技术的发展会推动软件的开发,软件工业则对计算机科学技术的进展以及软件应用领域的扩展起着重要的推动作用。软件工程人才的就业前景十分看好。

未来几年,国内外高层次软件人才将供不应求。毕业生主要在各大软件公司、企事业单位、高等院校、各大研究所、国防等重要部门从事软件设计、开发、应用与研究工作。有数据表明,我国软件出口规模达到215亿元,软件从业人员达到72万人,在中国十大IT职场人气职位中,软件工程师位列第一位,软件工程人才的就业前景十分乐观。信息化是IT界的焦点。而信息化的实现,除了需要技术支持,人才也是很重要的环节。如何培养与国际接轨的高素质软件工程人才,已经成为中国软件产业的当务之急。

软件产业的发展水平,决定了一个国家的信息产业发展水平及其在国际市场上的综合竞争力。目前,我国软件高级人才的短缺已经成为制约我国软件产业快速发展的一个瓶颈。在中国,国内市场对软件人才的需求每年高达20万人,而高校计算机毕业生中的软件工程人才还很缺乏,尤其是高素质的软件工程人才的极度短缺。尽快培养起适合信息产业所需要的高素质软件工程人才,已经成为信息化工作中的重中之重。Java具有如此好的就业与发展前景,使我更加坚定了软件开发这条道路。但是自己还与很多不足,需要努力学习与改进,关键是读这个专业要自己动手实践,自己解决实践中发生的问题,对任何程序要懂得举一反

如果指望按书本的步骤做..指望每学期死记硬背通过考试..那绝对是没前途了..如果一个软件工程的学生都是在玩电脑游戏中度过每个学期的..那就不要期望毕业能找到本专业的好工作了.... Sun公司副总裁、Sun研究院院士、软件部首席技术官詹姆斯戈士林(JamesGosling)博士以Java技术之父闻名于世。作为Sun研究院院士,他亲手设计了Java语言,完成了Java技术的原始编译器和虚拟机。在他的带领下,Java现已成为互联网的标准编程模式以及分布式企业级应用的事实标准,其跨平台的技术优势为网络计算带来了划时代的变革。自1995年5月正式推出的20xx年以来,Java已从编程语言发展成为全球第一大通用开发平台。Java技术已为计算机行业主要公司所采纳,同时也被越来越多的国际技术标准化组织所接受。1999年,Sun推出了以Java2平台为核心的J2EE、J2SE和J2ME三大平台。随着三大平台的迅速推进,在世界上形成了一股巨大的Java应用浪潮。作为唯一在互联网上开发的语言,Java平台以其移动性、安全性和开放性受到追捧。 目前,中国的软件人才主要有两方面的欠缺,一是英语水平差,二是软件开发经验缺乏。针对这种情况,很多软件学院大幅增加了英语课时,同时广泛采用国外原版教材,部分基础课和专业课采用双语教学甚至全英文授课。各软件学院还特别强调实践环节。像清华软件学院90%的专业课程都配有课程实验大作业,学生从本科二年级起就能根据兴趣选择参加各种研究所的研究工作。所以我还要努力学习英语,提高自己各方面技能Java如此潮流,我就更具信心,争取早如成为一名合格的专业性人才!

最后终于要结束了,大家都有种释怀的感觉,当然我想我更多的是兴奋和自己掌握了知识之后的饱满感,学知识就像吃东西一样,吃饱了就应该好好的消化。要不断的温习和运用,做到举一反三,将所学知识充分融入到平时的学习生活中去,为以后的工作做好坚实的基础。感谢学校和老师能够为我们提供这次机会,让我们更好的掌握和了解JA这门语言。谢谢!

展开阅读全文

篇8:java读书心得

范文类型:心得体会,全文共 2098 字

+ 加入清单

她是一朵开到极致的玫瑰,鲜艳欲滴;她是一朵幽怨的花,因为她的美,无人能懂。她有着美丽的容颜,却在家人的安排下嫁给了年长很多的工作机器卡列宁。一个只醉心于勋章和名爵的男人,怎么能给她想要的爱情呢?

即使她已经身为人妻,身为人母,可是内心还是有着对美好爱情的向往。所以当她遇上福伦斯基这样英俊、有财的上流人士时,无可救药的与他坠入爱河也是一种必然。也许,以传统的道德观念来看,安娜是一个不守妇道的人。可是,没有人有权力去指责她的什么,因为《福音》中说:“你们当中谁是没有罪的,谁就可以先拿石头打她”。

安娜与福伦斯基两个人的爱,其实真的很不容易。身处贵族,身上便多了一道无形的枷锁。这两个人,可以不顾所有的去相爱,这种勇气就已经显得弥足珍贵了。可以不管自己的身份、地位,爱了便是爱了。只是这种爱,在那个虚伪的“高尚”的上流社会中,永远都不可能得到祝福的,收到的永远都只有耻笑与唾骂。即使卡列宁爱的不是安娜,但身为沙皇官僚制度化身的他是无论如何也不能容忍安娜的背叛的。从一开始,就已经注定了安娜与福伦斯基的悲惨结局。

安娜放下所有:与丈夫卡列宁决裂;忍痛把儿子抛在家里;放弃安逸的生活,与福伦斯基私奔到国外。福伦斯基也甘愿放下过去花花公子的生活,陪着安娜细水长流。私奔,多么美好的字眼。两个相爱的人,抛开所有的束缚,狠狠的爱一场。我觉得很佩服,也很羡慕。因为,至少我自己,拿不出那样的勇气去爱一个人。故事发展到这儿,在童话故事中的结局就应该是从此,王子和公主过上了幸福的生活。可是,这毕竟不是童话,残酷的现实赤裸裸的摆在安娜和福伦斯基面前。两个人都是娇生惯养的,终究还是过不惯清贫的日子,所以他们又不得不重返那个所谓的上流社会,又不得不去沾染上流社会虚伪的污泥。

重新回到上流社会的福伦斯基要去奋力打拼,自然花在安娜身上的精力也就少了许多。可是安娜这个孩子气的女人,想要的只是福伦斯基能偶在身边多陪陪她。他们俩本来就不牢固的感情,在上流社会的风吹雨打中更显单薄。在激清之后,安娜想起了道德,想起了她最最深爱的儿子;福伦斯基想起了责任和义务。安娜不能彻底放弃她的孩子,也不能彻底无视舆论的恶评;福伦斯基不能彻底告别过去风花雪月的生活,也无力去承担安娜带来的责任与义务。他们这份轰轰烈烈的爱,终究抵不过世俗的纷扰和自身性格的弱点,他们竟渐渐发展到了不能理解。安娜对福伦斯基的爱越强烈,就越感到对方对自己的冷淡和厌倦。安娜毕竟还是一个小女人。她觉得自己为福伦斯基付出了所有,却得不到相同的回报,福伦斯基反而离自己越来越远。“我真不该那么死心塌地的做他的情妇,可我又没有办法,我克制不了自己。我对他的热情使他反感,他却弄得我生气,但是又毫无办法。”安娜就像一个小孩子一样倔强地向福伦斯基要更多的爱。可是福伦斯基自私得没法给她更多了。安娜渐渐看不到生活的希望,想要找陶丽倾诉,却又遭到陶丽与吉蒂的羞辱。吉蒂曾与福伦斯基有过一段情,曾经是福伦斯基深爱过的人啊!安娜这个要强的小女人怎么能忍受这种羞辱呢!

亲情、爱情、友情,这三样人生最重要的寄托如今都远离安娜而去了。走投无路的她决定用死来惩罚福伦斯基。她来到了那个最初与福伦斯基邂逅的火车站。静静地躺在了冰冷的铁轨上。“一种仿佛她准备入浴时所体会到的心情袭上了她的心头,于是她画了个十字。这种熟悉的画十字的姿势在她心中唤起了一系列少女时代和童年时代的回忆,笼罩着一切的黑暗突然破裂了,转瞬间生命以它过去的全部辉煌的欢乐呈现在她面前。但是她目不转睛地盯着开过来的第二节车厢的车轮,车轮与车轮之间的中心点刚和她对正了,她就抛掉红皮包,缩着脖子,两手扶着地投到车厢下面,她微微地动了一动,好像准备马上又站起来一样,扑通跪下去了。同一瞬间,一想到她在做什么,她吓得毛骨悚然。‘我在哪里?我在做什么?为什么呀?’她想站起身来,把身子仰到后面去,但是什么巨大的无情的东西撞在她的头上,从她的背上碾过去了。‘上帝,饶恕我的一切!’她说,感觉得无法挣扎……”她,就这样离开了这个世界,离开了这个让她又爱又恨的世界。她这朵令人艳羡的红玫瑰,开到了荼靡……

其实我觉得安娜很傻,傻到位一个离自己越来越远的男人付出了生命的代价。她这朵开到极致的花,永远停滞在列车驶过她身上的那一刻。她对爱的理解太理想化了。她认为爱情就是24小时黏在一起,不离不弃;她认为爱情就是私自占有,不允许对方与其他女人有任何来往,尤其是与他有过情史的女人,比如吉蒂和索金娜小姐;她以为爱情就是轰轰烈烈,每分钟想跳120次,然后晕倒在对方怀里……她不懂得给对方留一点空间,更何况是福伦斯基这样不甘寂寞的男人;她也不懂得细水长流,更不知道所有美好的爱情最终都会在柴米油盐中湮没。她也以为福伦斯基不再爱她了,其实不是不爱了,只是这份爱褪去了往日的激清,变得更加沉稳了。

安娜,你死了,的确是解脱了,但你却留下福伦斯基一个人独自咀嚼爱情的痛苦。让爱的人痛不欲生,这难道是你想要的吗?

可是,爱情本来就毫无逻辑,更没有所谓的规律。爱了便是爱了,痛也无所谓了;放了便放了,曾经的那些,都会淡的。

安娜这朵开到荼靡的花,依旧在那条铁轨上摇曳……

展开阅读全文

篇9:关于java实习心得总结

范文类型:心得体会,工作总结,全文共 887 字

+ 加入清单

在本学期的二周时间内,我们在学校机房进行了为期二周的java实训。现在即将结束了,回首本学期的java学习,重点还是在学习概念等一些常识性的东西,也学到平常在课堂中没有学到的东西,在JAVA API中又多认识了几种类,使我对JAVA产生了浓厚的兴趣。两周的时间说长也不长,在这两周中,我们的实训任务是仓库管理系统,在演示过程中,并没有觉得它有很难,但在实际编程过程中,却遇到了各种各样的错误,这也多亏了老师的指点和班级同学的帮忙,使我一步步克服了实训过程中遇到的困难。虽然我所做的系统并没有实现所有功能,但是我觉得自己进步了,很多原来都不懂的东西现在都已经了解了,也培养了我的团队合作精神,让我感受到了集体的温暖。实训的过程与课堂上的讲课比,更为有趣,因为可以真正的自己动手操作,使我对老师上课所讲的内容有了更深一步的了解,使我在以后的编程中可以灵活运用。我期待以后有更多类似的实训,使我们可以多掌握一项技能,也可以让我们在以后找工作中可以有更多的实践经验。学知识可不能凭自己的爱好和一时兴趣,要一步一个脚印,认认真真,踏踏实实,理论与实践相结合,在扎实掌握课本实例和内容之后,有一定的扩展阅读和课外学习,充分全面的了解JAVA的应用和扩展运用。

在我所学的语言当中,我自认为JAVA是一门比较强大的面向对象的编程语言,不仅仅因为它的跨平台性,更多的是因为它的灵活多变

和实用性较强,可以说比较的经典和强悍。所以学好java语言有很大的用处,这次实训,我们更多学到的是不懂就问和自己应该尽自己的全力去尝试,哪怕失败,只要自己尽自己的全力,和身边同学一起探讨而不是抄袭,团结合作,发挥团队意识,最后在自己的努力下,终于运行成功,这种成就感美不可言,心情愉悦至极。

最后终于要结束了,大家都有种释怀的感觉,当然我想我更多的是兴奋和自己掌握了知识之后的饱满感,学知识就像吃东西一样,吃饱了就应该好好的消化。要不断的温习和运用,做到举一反三,将所学知识充分融入到平时的学习生活中去,为以后的工作做好坚实的基础。感谢学校和老师能够为我们提供这次机会,让我们更好的掌握和了解JAVA这门语言。

展开阅读全文

篇10:关于java实习心得总结

范文类型:心得体会,工作总结,全文共 2418 字

+ 加入清单

经过一个学期的学习,java的课程已经结束了。可是我知道,学习java的路上,我们才刚刚起步。学Java之前我听许多人说Java很难,学了之后我感觉Java确实不容易,想学好它并非易事。我觉得学Java必须做到三步走:

1.课前认真预习。

2.课上认真听讲。

3.课下认真复习。

我想只有做好这三步,自己才能跟上老师的步子。

回想一下学习Java时的情景,我仍然兴奋不已。其实在刚接触Java时,自己确实有点晕,但经过一段时间学习,逐渐走出了迷雾。刚开始学习循环时,我觉得那一块很不熟悉,做题时,思路半天才理出来。经过一段时间的练习,我渐渐的走出了第一个迷雾。但是到了

第六章,我彻底晕了,看书看得也一知半解晕晕乎乎的。类与对象是在学了第七、八章后弄清的。到了最后一章,学到字符串时,传递参数真让我晕啊,然后我又是练习,最后略微弄明白了点。我总结了我学Java的特点:先是不懂,后明白,再次不懂,又明白,又一次晕,最后弄清。经过三起三落,经过几个迷雾之后,我对Java也有了更为深入的了解,就学会了Java。

Java学起来很有趣,通过学习Java可以提高自己的逻辑能力。在学习Java期间我们做了一些程序,我们班的同学也都积极准备,完成的还不错!在做程序时,我遇到了一些难题,有时也会出现错误,时间长了弄得我心烦意乱,但是我知道只有坚持下去才会成功。 因为Java是一种面向对象的编程语言,刚接触Java的人可能会感觉比较抽象,不过没关系不用着急,上课的时候认真听老师讲解,一些概念知识慢慢去理解,课后多做练习,熟能生巧,哪怕是你的记性再好,课后不去强化练习也没用,只有多练了,当你在做项目时你才能很熟练的写出你想要代码。平日在练习时若遇到不会的题目或是在项目中遇到解决不了的问题,首先不要急着去问老师,或是急着上百度搜答案,那样即使你得到了正确答案,以后在其它地方遇到同样的问题,你还是不知道怎么解决!所以说,在遇到问题时,自己先想想要怎么解决,回顾一下老师上课的内容,如果自己还是想不出什么好方法的话,也可以向同学请教请教,三人行必有我师,你不懂的地方其他同学可能知道。如果还是没能解决,那只有问老师或是上网搜索查找相应的解决方法了。好好理解其解决思路。真的弄不懂时我就问同学一起解决。通过几个阶段的练习,我觉得又把学过的知识复习了一遍,通过同学之间的交流沟通,我觉得我们班的学习氛围更加浓厚了。

我觉得把Java学会的关键一点就是坚持练习。学习Java时每天必须保证一定量的练习,我们老师也说学习编程语言没有捷径可走。真的,只有每天反复操作了,经常写代码了,我们在遇到问题时才有一定的思路。欲速则不达,学习编程语言需要一个比较漫长的阶段,不能一步登天,这需要一个过程,在这个过程中慢慢积累经验,扎实基础。不要以为写出了一个简单的小程序,就认为自己已经学的很好了,这只不过是在你学习编程过程中一个小小的实践。不要满足于现状,要不断完善自己的知识体系,善于总结实践经验。要端正自己的学习态度,是主动去学,而不是被动!提高自学能力。学习编程的秘诀是:编程、编程、再编程。不仅要多实践,而且要快实践。

我们在看书的时候,不要等到你完全理解了才动手敲代码,而是应该在看书的同时敲代码,程序运行的各种情况可以让你更快更牢固的掌握知识点。程序代码是软件开发最重要的成果之一,其中渗透了程序员的思想与灵魂。当你学习一个类以后,你就可以自己写个简单的例子程序来运行一下,看看有什么结果,然后再多调用几个类的方法,看看运行结果,这样非常直观的把类给学会了,而且记忆非常深刻。然后不应该满足把代码调通,你应该想想看如果我不这样写,换个方式,再试试行不行。记得哪个高人说过学习编程就是个破坏的过程,把书上的例子,自己学习Documentation编写的例子在运行通过以后,不断的尝试着用不同的方法实现,不断的尝试破坏代码的结构,看看它会有什么结果。通过这样的方式,你会很彻底的很精通的掌握Java。举个例子,我们都编过Hello World ,一开始很多同学不是很理解为什么main方法一定要这样来定义public static void main(String args),能不能不这样写? 我刚也有这样的疑问。想知道答案吗?很简单,你把main改个名字运行一下,看看报什么错误,然后根据出错信息进行分析;把main的public取掉,在试试看,报什么错误;static去掉还能不能运行;不知道main方法是否一定要传一个String数组的,把String改掉,改成int,或者String试试看;不知道是否必须写args参数名称的,也可以把args改成别的名字,看看运行结果如何。我当初学习Java的时候就是这样做的,把Hello World程序反复改了七八次,不断运行,分析运行结果,最后就彻底明白为什么main方法是这样定义的了。这样虽然比较费时间,不过一个例子程序这样反复破坏几次之后。我就对这个相关的知识彻底学通了。有时候甚至故意写一些错误的代码来运行,看看能否得到预期的运行错误。这样对于编程的掌握是及其深刻的。

对学习编程来说,不要求英语,但不能一点不会,。最起码像JAAPI文档这些东西还是要能看懂的,连猜带懵都可以;旁边再开启一个"金山词霸"。看多了就会越来越熟练。在学JA的同时学习英文,一箭双雕多好。另外好多软件需要到英文网站下载,你要能够找到它们,这些是最基本的要求。英语好对你学习有很大的帮助。

学习Java这段时间,有时候会觉得有点苦,但是我觉得正是有了你奋斗时的苦,才能换来学成后的甜。当你经过认真写代码做完一个项目时,你会有一种成就感。心里有一种说不出的喜悦之情。

学习Java靠得是韧劲,靠得是拼劲,考得是坚持不懈。如果做好了这几点,我想Java对你来说不会太难。还有,你自己要有信心,相信自己能学会。以上就是我在学了Java后的一些感言。

展开阅读全文

篇11:java读书心得

范文类型:心得体会,全文共 525 字

+ 加入清单

这个寒假我读了《查理和巧克力工厂》,这本书生动有趣,书中查理。巴克特家很穷,连饭都吃不饱。他们家还有四个老人,分别是小查理的爷爷、奶奶、姥姥、姥爷,他们实在太老了,站都站不起来。

在他们家能看到的地方有一个大巧克力工厂,那个工厂的主人是威利。旺卡先生。小查理非常好奇威利旺卡先生制作的巧克力,也非常喜欢吃巧克力糖。但他家里穷,平时根本吃不到。只有他每年过生日的时候,他的爸爸妈妈才会给他买一块巧克力糖。

有一次,旺卡先生举行了一金奖券活动,得到金奖券的人可以参观巧克力工厂,并得到一辈子都吃不完的巧克力。但只有五名幸运的小朋友可以得到,这五个金奖券都放在普通巧克力糖纸里面。

最终,小查理跟另外四位幸运儿得到了金奖券。于是五个小朋友一起去参观工厂。在参观过程中,有四个小朋友因为看到那些极有诱惑力的巧克力景象而触范了威利。旺卡设定的规矩,最终没能参观完工厂就被淘汰了,只有小查理走到了最后。

原来,威利。旺卡先生是想通过这次参观工厂的活动为自己找巧克力工厂的继承人,他发现小查理不受诱惑,坚持原则,正是自己要找的人,于是把巧克力工厂送给了小查理。

通过这个故事,让我感觉到,做一个懂事、守规矩的人是多么的重要,不守规矩最终会害了自己,遵守规矩自己也会从中受益。

展开阅读全文

篇12:java读书心得

范文类型:心得体会,全文共 855 字

+ 加入清单

以前阿秀曾经跟我提到过这本书,我貌似也看见她在我电脑里也下过这本书,当时我也没在意。后来也托她的福,张章同学把这本书交到了我手里!当然当时的使用权不属于我,后来因为些原因最终使用权还是属于我了。照这么回忆其实我跟这本书还挺有缘,若不是我在莫大的东台大润发超市巧遇张章同学三次,这本书也不会到我手里啊!

这本书主要讲述的是,作者采访精神病人时的故事。通俗的说,就是以精神病人的角度去看这个,我们不断质疑的世界。

其实生活中我们常常质疑这个世界,例如先有蛋还是先有鸡,活着的真正目的到底是为了什么等等一系列的质疑!我们正常人也许只是从表面分析一下。而精神病患者往往会偏执于他们所执著的事,把一些微小的事放大化的来看,以至于做出些极端的事情。所以在正常人的眼里他们病了,俗称“精神病患者”。

书中提到有很多精神病医师因为长时间跟精神病患者接触最终他们也“病”了,也许在他们的内心深处本来就存在些因素。因为长时间跟精神病患者接触他们内心里面的平衡点被打乱了,所以“病”了!其实天才与疯子只是一线之隔,关键在于内心里那个平衡点!

书中有两个爱情故事。但是可以用一段文字说明。摘抄的。

指间的戒指不再闪亮

婚纱在衣柜早就尘封

我们的容颜都已慢慢苍老

感谢你带给我的每一天

正是因为你

我才有勇气说:

“永远,永远。”

第一个故事是一位臆想症的老人,老伴逝去多年,依然认为他活着。

第二个故事是一位丧偶的中年人,不断的学习生理等课程,为了复活爱人。

感触很深,然后静默不言。

’‘’‘’‘’‘’‘’‘’‘书中有一段是讲“角度问题”。一个女“患者” 说在工作外她会是个孩子,她喜欢这个新鲜的世界,而不是去习惯这个世界,每个人都有权利选择自己的喜好而不是必须跟别人一样的态度!这个女人其实没有问题,反而是认为她有问题的人才有问题。不是每个人都习惯墨守成规,孩子是的列子。不是所有大多数人认为对的事情就是对的,大多数人认为错的事情就是错的!而那个“大多数“的界限往往让我们思想上有限制了,所以渐渐的我们也就习惯了!

书中结尾是我最喜欢的一句话“人生若只如初见“!

展开阅读全文

篇13:java读书心得

范文类型:心得体会,全文共 274 字

+ 加入清单

我爱看书。你肯定会问为什么?来听听我的故事吧!

从小,我就对书有一种特别的感情:哭闹时,玩具和零食都无法使我开心,但只有有书,我就会马上停下来,在一旁静静地看书;上小学时,为了能多读书,一下课我就会马上奔向图书馆看书,把老师上课时讲的东西都忘得一干二净;在家时,我读起书来就忘了吃饭,忘了睡觉。

高尔基曾说过:“书籍是人类进步的阶梯。”我们想要进步,就要多读书、读好书,我国的古代诗人杜甫曾说过:“读书破万卷,下笔如有神。”我们要读书才能提高写作水平。读书吧,在书的海洋里自由地畅游吧!它将会使你一生受益,使你成为21世纪有文化的青少年。一起来读书吧!

展开阅读全文

篇14:java读书心得

范文类型:心得体会,全文共 985 字

+ 加入清单

首选很感谢Joshua Bloch写的这本书,当然更感谢我们的司令翻译。至少目前我看到的100页的内容,基本没发现翻译很别扭的地方,包括错别字也没有发现,至少没有影响到我对书中内容的理解。再次感谢。

在后面的读书心得里,我会根据我的个人理解,将书中的各个知识点逐个和大家分享。 书中的一些观点我也不是完全赞同的,呵呵(估计是我的水平不够,呵呵呵)。

我们先看全书第一个问题:考虑用静态工厂方法代替构造器。

也就是,不再使用 new 这种方式来获得一个类的实例,而是通过工厂方法获得。

优点:

1 有名字

这个我体会还是比较深的,在JDK里,我见过一个类的最多的构造器数量,有16个。大家可以看看 java.math.BigDecimal 这个类就知道了。

就算一个类的构造器有4个左右,我想你很可能在使用的时候会极其注意,不要选错了到底是用哪一个。

所以,如果能提供一个很好命名的方法来实现构造类,确实是一个不错的主意,比如

BigDecimal.getInstanceFromString(...); 我想这个名字虽然有点垃圾,但要表达的意思确实异常的明确。

在一些第三方的库里面,这种情况更加突出。我许多时候不得不看看API文档,来区分我的那个int参数到底是使用三个参数的构造器,还是使用四个参数的构造器。因为他们太像了。

2 可以单例

这个就不用说了,你可以在方法里干你要做的任何事情,而new绝对会给你一个新的实例。

3 可以返回任何子类型。

这个对于系统的扩展是很有用处的。new 已经决定了你肯定要这个类,而静态方法却可以修改,不一定肯定返回你方法所在的类,可以在必要时替换为一个子类。

4 代码简便

这点我体会不深,呵呵

不过这个写法我确实经常用

List list = new ArrayList;

后面的那个ArrayList里面的 String就是一个例子吧。不过我倒是不是很在意这个,因为我很喜欢这样写了。

下面这个例子看上去确实不错。呵呵!

[java] view plain copypublic class Test extends Thread {

public static void main(String args) {

Test te = Test.newInstance;

}

public static Test newInstance {

return new Test;

}

}

展开阅读全文

篇15:关于java实习心得总结

范文类型:心得体会,工作总结,全文共 1144 字

+ 加入清单

经过五天的java实训,感触很深,收获也很大,对自己的缺点也有了很多的认识,回首本学期JA学习,重点还是在学习概念等一些常识性的东西,关于类型、变量、接口、输入输出流、分析异常、抛出异常,后期主要是小程序运用,Gui界面设计和事件。

在我学习的语言中,我自己认为Java是一门比较强大的面向对象的编程语言,不仅仅是因为它的跨平台型还有它的较强的实用性,强悍的嵌入性。

本次实训主要是针对我们对项目流程不熟悉和对整体项目的把握不清楚,学习数据库的设计和表的建设以及表与表之间的联系,还有一些代码的编写,这些都是我们所不熟悉的也是我们最薄弱的部分。

通过这一周的实训,虽然实训的时间不长,但是总体上收获挺大的,当我们正式准备学习实训java编程技术时,让我感到非常高兴,因为java一直学的是课本知识,所以实训对于我来说是必须要学会熟练操作的。当然开始学习后也并非是想象中那样顺利,开始的学习让我异常感到学习任务的艰巨,因为学习中我遇到了很多以前未曾遇到的难点,有时后也难免会失去耐心,但是,通过老师的指导,自己的努力的练习,我顺利的化解了一道道的障碍。克服了Java学习上的一道道难关,现在自己已经基本掌握了java的基础知识。

有些知识点以前没有学过,但我也没有去研究,实训时突然间觉得自己真的有点无知,虽然现在去看依然可以解决问题,但要浪费许多时间,这一点是我必须在以后的学习中加以改进的地方,同时也要督促自己在学习的过程中不断的完善自我。另外一点,也是在实训中必不可少的部分,就是同学之间的互相帮助。所谓当局者迷,旁观者清,有些东西感觉自己做的是时候明明没什么错误,偏偏程序运行时就是有错误,让其他同学帮忙看了一下,发现其实是个很小的错误。所以说,相互帮助是很重要的一点,这在以后的工作或生活中也是很关键的。俗话说:要想为事业多添一把火,自己就得多添一捆材。此次实训,我深深体会到了积累知识的重要性。在实训当中我们遇到了不少难题,但是经过我们大家的讨论和老师细心的一一指导,问题得到了解决。两个月的实训结束了,收获颇丰,同时也更深刻的认识到要做一个合格的程序员并非我以前想像的那么容易,最重要的还是细致严谨。社会是不会要一个一无是处的人的,所以我们要更多更快地从一个学生向工作者转变,总的来说我对这次实习还是比较满意的,它使我学到了很多东西,为我以后的学习做了引导,点明了方向。

这次实训,我们更多学到的是不懂就要问和自己应该尽自己的全力去尝试,哪怕失败,也要尽自己的全力,和身边的同学一起探讨而不是抄袭,团队合作和发挥团队意识,最后在自己的努力下终于运行成功,这种感觉美不可言,心情愉悦至极,有很强的成就感。

最后,我自己感觉这次实训的收获还是很大的,我相信在不久的将来我们会有自己的一片天空。

展开阅读全文

篇16:关于java实习心得总结

范文类型:心得体会,工作总结,全文共 1428 字

+ 加入清单

此次只实训了短短的三周。虽说时间很短,但其中的每一天都使我收获很大、受益匪浅,它不但极大地加深了我对一些理论知识的理解,不仅使我在理论上对java有了全新的认识,在实践能力上也得到了提高,真正地做到了学以致用,更学到了很多做人的道理,对我来说受益非浅。除此以外,我知道了什么叫团队,怎样和团队分工合作;同时我还学会了如何更好地与别人沟通,如何更好地去陈述自己的观点,如何说服别人认同自己的观点。这也是第一次让我亲身感受到理论与实际的相结合,让我大开眼界。也是对以前所学知识的一个初审吧!这次实训对于我以后学习、找工作也是受益菲浅的,在短短的三周中相信这些宝贵的经验会成为我今后成功的重要的基石;这对于我的学业,乃至我以后人生的影响无疑是极其深远的。

这次实训虽然是我们的第一次,不过同学们表现不错,由此看来,我们在进入大学的这几个月里学到了不少的专业知识,只是自己感觉不到而已。对于所学专业,我们不能过于自卑和担忧,否则会妨碍自己学习。实训是学习java的重要环节,有利于我们巩固专业知识、掌握工作技能,提高就业筹码。

我把本次为期三周的实训看作是“理论与实践相结合的桥梁”。通过这周的实训和学习,我知道了此次实训的目的,也清楚目前自己的不足,那就是缺乏相应的知识与经验,对所学的专业知识不能够很好地运用于实践操作。正所谓“百闻不如一见”,经过这次自身的切身实践,我才深切地理会到了“走出课堂,投身实践”的必要性。平时,我们只能在课堂上与老师一起纸上谈兵,思维的认识基本上只是局限于课本的范围之内,也许就是这个原因就导致我们对专业知识认识的片面性,使得我们只知所以然,而不知其之所以然!限制了我们网络知识水平的提高。但是课本上所学到的理论知识是为我们的实际操作指明了方向、提供相应的方法,真正的职业技巧是要我们从以后的实际工作中慢慢汲取的。而针对实际操作中遇到的一些特殊的问题,我们不能拘泥于课本,不可纯粹地“以本为本”。

在这次实训中我得到了许多收获,我第一次体会到java工程师的工作是什么样子的,也发现了很多不曾注意到的细节,在实训的演示过程中,我对作为一名java工程师注意的事项应该从小事做起、从基本做起。把职业能力训练与职业素质有机的结合起来。相信这对我接下来学习专业知识会起到很有效的帮助,在接下来的几个月里,我会以作为一名职业人的身份在这几个方面要求自己,严格自我,向java工程师靠近。

而经过这次实训,让我明白如果是一个完整项目的开发,必须由团队来分工合作,否则,即费力又费时还做不好这个项目。因此不管在工作中还是在生活中要和老师、同学保持良好的关系是很重要的。做事首先要学做人,要明白做人的道理,如何与人相处是现代社会的做人的一个最基本的问题。对于自己这样一个即将步入社会的人来说,需要学习的东西很多,他们就是最好的老师,正所谓“三人行,必有我师”,我们可以向他们学习很多知识、道理。

实训结束了感觉虽然辛苦,但很充实。我想这就是java工程师的工作。我也体会到java工程师成功地完成一个任务的那种兴奋,那种小有成就的感觉是只有置身其中的人才能体会的。

总之,这次实训为我提供了与众不同的学习方法和学习体会,从书本中面对现实,为我将来走上社会打下了扎实的基础。作为在校计算机专业的学生,现在我能做的就是吸取知识,提高自身的综合素质,提高自己的职业技能,自己有了能力,到时候才会是“车到山前必有路”。我相信在不久的未来,会有属于我自己的一片天空。

展开阅读全文

篇17:关于java实习心得总结

范文类型:心得体会,工作总结,全文共 3110 字

+ 加入清单

作为就业培训,项目的好坏对培训质量的影响十分大,常常是决定性的作用。这篇文章是关于在学习JA软件开发时练习项目的总结,简单总结为以下几点:

1、项目一定要全新的项目,不能是以前做过的

2、项目一定要企业真实项目,不能是精简以后的,不能脱离实际应用系统

3、在开发时要和企业的开发保持一致

4、在做项目的时候不应该有参考代码

长话短说就是以上几点,如果你想要更多的了解,可以继续往后看。

一:项目的地位

因为参加就业培训的学员很多都是有一定的计算机基础,大部分都具备一定的编程基础,尤其是在校或者是刚毕业的学生,多少都有一些基础。

他们欠缺的主要是两点:

(1)不能全面系统的、深入的掌握某种技术,也就是会的挺多,但都是皮毛,不能满足就业的需要。

(2)没有任何实际的开发经验,完全是想象中学习,考试还行,一到实际开发和应用就歇菜了。

解决的方法就是通过项目练习,对所学知识进行深化,然后通过项目来获取实际开发的经验,从而弥补这些不足,尽快达到企业的实际要求。

二:如何选择项目

项目既然那么重要,肯定不能随随便便找项目,那么究竟如何来选择呢?根据java的研究和实践经验总结,选择项目的时候要注意以下方面:

1:项目不能太大,也不能太小

这个要根据项目练习的阶段,练习的时间,练习的目标来判断。不能太大,太大了做不完,也不能太小,太小了没有意义,达不到练习的目的。

2:项目不能脱离实际应用系统

项 目应该是实际的系统,或者是实际系统的简化和抽象,不能够是没有实战意义的教学性或者是纯练习性的项目。因为培训的时间有限,必须让学员尽快地融入到实际 项目的开发当中去。任何人接受和掌握一个东西都需要时间去适应,需要重复几次才能够真正掌握,所以每个项目都必须跟实际应用挂钩。

3:项目应能覆盖所学的主要知识点

学以致用,学完的知识点需要到应用中使用,才能够真正理解和掌握,再说了,软件开发是一个动手能力要求很高的行业,什么算会了,那就是能够做出来,写出代码来,把问题解决了,你就算会了。

4:最后综合项目一定要是实际应用系统

学 员经过这个项目的练习,就要走上实际的工作岗位了,如果这个系统还达不到实际应用系统的标准,学员练习过后也还是达不到企业实际的需要,那么这个培训应该 说质量就不高了。理想的状况是这个项目就是实际项目,到时候学员就业到另外一个公司,不过是换个地方干活而已,完全没有技能上的问题。

三:Java怎么选择项目

这个不是靠想象,而是根据实际的情况一步一步分析出来的(呵呵要卖弄一下:这也算是逻辑思维),当然这里只是讨论方法,不涉及具体的项目案例。

我们可以采用倒推的方式来分析:

(1)最终的项目一定是真实的项目,也就是要把学员训练到能够独立开发实际应用,通常我们还不能选最简单的项目,因为学员的吸收还要有一个折扣,所以最终的项目应该选实际项目中中等难度的项目

(2)最终项目定下来过后,开始分解这个项目,看看为了达到完成这个项目需要哪些技术和知识点,以及每部分知识点的深度,然后定出每个分阶段的任务

(3)然后开始选择分阶段的项目,分阶段的项目应该比刚才分析出来的分阶段任务稍稍复杂点,这样才能达到训练的目标。定下分阶段项目后,同样去分解,定出为了完成他所需要的各部分知识点和深度。

(4)然后是选择上课期间的演示项目,演示的项目是为了做分阶段项目服务的,可以认为是分阶段项目的分阶段项目

(5)最终把要求掌握的知识点和要求掌握的深度,分散到日常教学和练习中。 好了,把上面的分析用正向描述就是:

日常教学和练习中学习和掌握的知识 ==〉演示项目 ==〉分阶段项目 ==〉综合项目 ==〉胜任企业实际开发需要。

附注:有了好的项目还要有好的训练方法(这个另外立文讨论),最最基本和重要的一条就是:绝对要指导学生亲自动手做,而不是看和听,所以尽量不要选择有现成代码的项目,演示用的项目也最好不配发代码,让学生能够跟着做出来才是真的掌握了。

上面阐述了Java对项目的态度和基本选择方法,这里再把其中几个重要的、与众不同的特点阐述如下:

1:真项目

项 目一定要真实,要是企业实际应用的,不能是教学性的项目,否则会脱离实达不到项目实训的效果。还有一个一定要是最新的项目,企业的要求也是在不断变化的, 应用技术的方向和层次也在不断变化,这些都体现在最新项目的要求上,旧项目所要求的技术和层次很可能已经过时了,根本达不到训练的目的。

Java的做法是:没有固定项目,每个班做项目之前会从企业获取最新的项目需求,然后经过挑选和精心设计,以保证既能训练技术,又能得到实际的开发经验。这样实现了跟企业的同步,企业做什么,我们就学什么,然后也跟着做什么。

2:真流程

开发的流程也要跟企业的实际开发保持一致。从项目立项开始,到需求分析、概要设计、详细设计、编码、测试的各个环节,都要完全按照真实的开发流程来做。

Java的主力老师都是实战出身,在Java开发方面都至少有七年以上的开发经验,同时具备多年的项目管理经验,所以能够完全按照企业开发的流程来训练学生。

3:真环境

开发的环境也要跟企业一样,包括常用的开发工具、开发平台、应用服务器、常用插件、测试工具、项目管理工具、项目管理文档等等。

Java的做法是:构建跟企业完全一样的环境,然后跟企业开发一样,分团队开发。老师就相当于项目经理,一个班分成多个小组,每个组有自己的Team Leader,大家分工合作,共同完成项目。

4:真开发

这是Java最与众不同的一点,Java深知:软件是做出来的,而不是听出来或者看出来的,企业需要能实际开发的人员,而不是只听过、看过但不能做的人。所以Java十分强调:项目一定要让学生动手写出来。

Java的做法是:老师做为项目经理,带领着大家一起去做需求分析、概要设计、数据结构设计、接口设计、重要业务流程的分析设计等,然后由学生们分团队进行开发,实现整个项目。这里有几个与众不同:

(1):现场带领学生一起做分析和设计,而不是预先做好了来讲讲。因为需要学生学习的是分析设计的过程和方法,而不是已经做好的结果。

(2):Java选用的项目基本都是企业最新的项目,很多都是Java的学生和企业在同期开发,所以是不配发源代码的。这样也断绝了学生的依赖思想,认认真真去开发。可能有同学会问:为什么不选择有源代码的项目呢,那样还可以参考学习啊!

这 是一个典型的误区:觉得通过看人家的代码能够加快自己的学习。这个方法对有经验的人来讲是对的,但是对于还在学习期间,没有经验的学员来讲,就是一个认识 的误区了。因为你也许能看懂代码的语法,但根本看不懂代码背后的含义,看不懂代码的设计,看不懂为什么要这么实现,看不懂代码所体现的思想,其实,看了跟 没看没有多大区别。

事实上,Java界最不缺的就是代码了,那么多开源软件,小到一个工具,到企业级ERP都有开源的,而且很多都是大师级的 作品,说实话比你参考的那些代码质量高多了,但是又有多少人能真正看明白呢,原因就在于达不到那个水平,看不懂代码背后所体现的设计和思想以及为什么要这 么做,效果也就不好了。当然不排除有这样的高人是能够完全能理解和掌握这些大师级作品的,但估计不会是刚开始学习Java开发的学生,所以Java根据多年的培训经验,友情提 示:在初学阶段,看一千遍,听一千遍,都不如自己动手写一遍所达到的学习效果。自己能写出来的功能才是你真正掌握的功能,而不是你看得代码或者是听老师讲 的,就算讲过看过,但是自己做不出来,那都不算会。Java的主力老师都是实战出身,在Java开发方面都至少有七年以上的开发经验,同时具备多年的项目管理经验,所以能够完全按照企业开发的流程来训练学生。

展开阅读全文

篇18:java读书心得

范文类型:心得体会,全文共 1440 字

+ 加入清单

有一句名言这样写道:世界上没有比友谊更完美、更令人愉快的东西了;没有友谊,世界仿佛失去了太阳。这让使我想起了最近我读完的一本书——《我亲爱的甜橙树》,它让我懂得了一个道理:没有友谊的世界是无味的,友谊是不会因为死亡而分开的。

故事中的葡萄牙人“老葡”和一棵甜橙树是书中主人公泽泽最好的朋友。老葡曾是泽泽的“敌人”,因为扒车,老葡以前狠狠揍了他的屁股,他也发誓要“杀了他”。有一天,泽泽被玻璃扎伤了脚,被细心的老葡发现了,老葡就带泽泽清除了伤口。之后,泽泽悄悄地去找老葡,跟他谈自己的种种奇思异想,跟着老葡一齐去郊游……渐渐地他们成了一对真正的、永久的朋友,他们一齐承诺,一齐履行承诺。泽泽的另一个好朋友们是他的甜橙树——明基诺。当泽泽心里有委屈时,他总是去找那棵甜橙树,向它倾诉烦恼,诉说痛苦。

自从泽泽有了这份令人珍惜的友谊后,他渐渐发现,原先现实生活中也能感受到温暖与爱,他因此变得“对一切都温柔”,他也不再搞恶作剧了,他努力使自己转成一个好孩子。就在他满怀期望的时候,不幸的消息突然来临:先是因为修路而要砍掉小甜橙树,之后老葡突遇车祸,当最好的两个朋友突然离开的时候,泽泽因悲哀过度而发烧昏迷。最后有一天当泽泽康复时,老葡已不在,小甜橙树也成了一棵普通的小树,然而在泽泽的心灵深处依然把老葡和小甜橙树当作他最好的朋友,他们一齐发现的事仍然是他幻想世界里最美的记忆。

读着读着,我觉得现实生活中的友谊也是无处不在的,真挚的友谊就在我身边,同桌汪辰阳和我之间的友情就是十分珍贵的。以前,我不怎样喜欢他,因为他常常和同桌吵架。但是,自从我们成为了同桌之后,就改变了对他的看法。记得有一次,我上美术课忘带了要用的材料,急得像热锅上的蚂蚁,团团转。汪辰阳仿佛看穿了我的心思,就关心地对我说:“你这天是不是没有带美术材料?我多带了,我们一齐用吧!”听了之后,一阵温暖涌上心头,我连忙说:“谢谢!谢谢!”而他却轻描淡写地回答:“我们是同桌,还是朋友,这是就应的!”听了这句朴实的话,让我更觉得朋友就是当对方遇到困难时,毫不犹豫地伸出手来帮对方一把。于是,我告诉自己,如果有一天他碰到困难我也要像他那样,热情地帮忙。

我有困难,你帮忙;你有困难,我解决,人间将是多么温馨阿。有一次课间,我发现他正眉头紧皱,坐在那儿仿佛在思索什么似的。我就轻轻地用手肘碰了碰他:“你怎样了?是不是有题目不会做阿?让我来看看!”他“嗯”了一声,我看了看题目,正好是我解过的题,我就耐心、详细地把答题步骤一遍一遍地讲给他听,直到他听懂为止,帮忙他攻克了这道“难题”。这天他不但提前完成了订正作业,而且还多做了课外作业。放学的时候,他向我表示感谢,我说:“不用谢,我们是朋友嘛!”当我们一前一后走在放学的路上时,我的情绪是那样的愉快,真是:赠人玫瑰,手有余香。这更加使我明白了友情的珍贵,友谊的价值。还有一次,已经放学了,但是天空还下着大雨。我没带伞,在走廊上团团转,陈熙言仿佛看穿了我的心思,她走过来说:“你没带伞吧!我带了两把,借给你一把!”就掏出伞,递给我。我接过伞,忙说:“谢谢你!你真是雪中送炭阿!谢谢了!”当我走在放学的路上时,我的心是那样的温暖。我想:以后我也要多多帮忙他人使自己也温暖到他人!

无论从《我亲爱的甜橙树》的主人公泽泽身上,还是从我自己身边所发生的点滴友情小故事,让我深深明白:每个人都有朋友,朋友之间存在着友情,我们就应珍惜这样的友情,没有友谊的生活毫无好处,阳光般温暖的友情之花开遍整个世界。

展开阅读全文

篇19:关于java实习心得总结

范文类型:心得体会,工作总结,全文共 634 字

+ 加入清单

1.学java切忌浮躁,欲速则不达,初学者请不要被新技术迷惑,先把基础学扎实,一步一个脚印的逐步学习,不要想着一步登天。我们要如水底磐石切不可做那水上浮萍,浮躁的人永远学不到什么东西。软件开发之路是充满荆棘与挑战之路,也是充满希望,有捷径可走。梦想像《天龙八部》中虚竹一样被无崖子醍醐灌顶而轻松获得一甲子功力,是很不现实的。每天仰天大叫"天神啊,请赐给我一本葵花宝典吧",殊不知即使你获得了葵花宝典,除了受自宫其身之苦外,你也不一定成得了"东方不败",倒是成"西方失败"的几率高一点。"不走弯路,就是捷径",佛经说的不无道理。

2.要有自我约束力?春来不是读书天,夏日炎炎正好眠,秋来蚊虫冬又冷,背起书包待明年。总有一些理由不学习。这样下去,我们的java之树永远长不大。古人云:“人静而后安,安而能后定,定而能后慧,慧而能后悟,悟而能后得。”很有道理。在四川大足佛教石刻艺术中,有一组大型佛雕《牧牛图》,描绘了一个牧童和牛由斗争、对抗到逐渐融合、协调,最后合而为一的故事。佛祖说:“人的心魔难伏,就像牛一样,私心杂念太多太多;修行者就要像牧童,他们,驯服他们,以完美自己的人生。”我们学java也一样,要能够驯服那些影响我们学习的大牛、小牛,抵制各种,集中精力,专心学习。

3.操作实践前多看视频,我个人的经验和理解,边看视频边实践是学习编程语言的捷径。首先在电脑上安装编程软件,然后根据视频里例子进行验证理解,最后要懂得总结并动手多做些项目,从而熟练掌握java语言。

展开阅读全文

篇20:关于java实习心得总结

范文类型:心得体会,工作总结,全文共 875 字

+ 加入清单

在本学期的二周时间内,我们在学校机房进行了为期二周的JA实训。现在即将结束了,回首本学期的java学习,重点还是在学习概念等一些常识性的东西,也学到平常在课堂中没有学到的东西,在JA API中又多认识了几种类,使我对JA产生了浓厚的兴趣。两周的时间说长也不长,在这两周中,我们的实训任务是仓库管理系统,在演示过程中,并没有觉得它有很难,但在实际编程过程中,却遇到了各种各样的错误,这也多亏了老师的指点和班级同学的帮忙,使我一步步克服了实训过程中遇到的困难。虽然我所做的系统并没有实现所有功能,但是我觉得自己进步了,很多原来都不懂的东西现在都已经了解了,也培养了我的团队合作精神,让我感受到了集体的温暖。实训的过程与课堂上的讲课比,更为有趣,因为可以真正的自己动手操作,使我对老师上课所讲的内容有了更深一步的了解,使我在以后的编程中可以灵活运用。我期待以后有更多类似的实训,使我们可以多掌握一项技能,也可以让我们在以后找工作中可以有更多的实践经验。学知识可不能凭自己的爱好和一时兴趣,要一步一个脚印,认认真真,踏踏实实,理论与实践相结合,在扎实掌握课本实例和内容之后,有一定的扩展阅读和课外学习,充分全面的了解JA的应用和扩展运用。

在我所学的语言当中,我自认为JA是一门比较强大的面向对象的编程语言,不仅仅因为它的跨平台性,更多的是因为它的灵活多变

和实用性较强,可以说比较的经典和强悍。所以学好java语言有很大的用处,这次实训,我们更多学到的是不懂就问和自己应该尽自己的全力去尝试,哪怕失败,只要自己尽自己的全力,和身边同学一起探讨而不是抄袭,团结合作,发挥团队意识,最后在自己的努力下,终于运行成功,这种成就感美不可言,心情愉悦至极。

最后终于要结束了,大家都有种释怀的感觉,当然我想我更多的是兴奋和自己掌握了知识之后的饱满感,学知识就像吃东西一样,吃饱了就应该好好的消化。要不断的温习和运用,做到举一反三,将所学知识充分融入到平时的学习生活中去,为以后的工作做好坚实的基础。感谢学校和老师能够为我们提供这次机会,让我们更好的掌握和了解JA这门语言。

展开阅读全文