范文为教学中作为模范的文章,也常常用来指写作的模板。常常用于文秘写作的参考,也可以作为演讲材料编写前的参考。大家想知道怎么样才能写一篇比较优质的范文吗?下面是小编帮大家整理的优质范文,仅供参考,大家一起来看看吧。
java开发周报篇一
这是一份试图提纲挈领的读书笔记,《java编程思想》这本八百多页的书娓娓道来地包含了太多细节,这对读者是非常贴心的,我也强烈建议细细读这本书,如果你希望在短时间内学会java这种语言,那么这本书不是最好的选择,你可以看看谭浩强系列。我把看这本书的过程中,个人觉得每一章中最重要的思想、用整理在这里,希望自己回顾的时候有所参照和提高。也希望大家带着同样的目的来看本篇读书笔记。
第一章 对象导论
比起过程型语言编写的程序,用面向对象语言编写的程序更加简单、易于理解、可复用。《c++编程思想》里也有这一章,是一个抛砖引自己的玉的章节,不明白可以跳过,回头再看。
第二章 一切都是对象
java语言里面,一切都是对象,并且程序员是通过引用来操纵对象。一个简单的例子,非常轻松地让读者进入java的世界。需要注意的是java数据会储存在5个不同的地方:寄存器、堆栈、堆、常量存储、非ram存储,用new创建的一般对象都放在堆中,而特殊的基本对象放在堆栈中,如果想把基本对象也放在堆中,需要包装基本类型。
第三章 操作符
java中的操作符语法类似于c,所以学习起来一点困难也没有。要特别注意两个比较大的整数相加或者相乘的时候的溢出问题,用long或者biginteger解决这个问题。
第四章 控制执行流程
我想起《pointer on c》这本书第一章就有这一句话,本书适合那些希望迅速学习一门新语言而不是被“为什么if和for很重要”的弱智问题耽搁进度的读者。呵呵,这一章很不厌其烦地介绍了运算、操作符优先级、类型转换、选择循环等基本特性,有c或者c++编程经验的读者可以大概浏览一下。
第五章 初始化和清理
关于初始化:
1.初始化很重要,一定不要忘记。而且java编译器会很好的防止使用未初始化数据的意外,这是比c和c++更优的地方。
2.编译器初始化的顺序为:
a.类首次加载的时候,有关静态初始化的所有动作都会执行。
b.当用new calssname()创建对象的时候,会在堆上开辟足够的存储空间,这块存储空间被清零,然后执行字段的初始化动作。(这里的字段初始化都是非静态的,因为静态的变量已经在a中执行完毕,而且静态变量存储在不同的地方,静态数据只占用一份存储空间)
c.执行构造器
关于清理
c++关于清理的部分包含很大不确定性。目前需要知道的事情是,正常情况下,我们是不需要调用finalize方法的,而且垃圾回收区会自动回收不再使用的对象,同时我们需要自己注意一些需要关闭的文件。
需要注意的是,用=对数组进行“赋值”的时候,实际上是引用的传递,就是说,二者指向同一堆。
第六章 访问权限控制
关于包
你应该有一个自己的域名,这样发布你的java程序的时候,就可以将你的包名设置为你的域名倒转。想要正确让包工作,要正确设置classpath,对于新手来说,这的确是一个挑战。我当初就难到了。
关于访问权限修饰词
值得注意的是,如果两个编译单元放在同一个目录下并且都没有设置包名的话,他们对于对方都是拥有包访问权限的。访问权限修饰词是修饰方法和数据,而不是类。类只有两种访问权限,包访问权限或public访问权限。默认为包访问权限。如果不希望其它任何人对该类拥有访问权限,可以把所有的构造器设置为private。但是有一个例外,可以通过该类自己的static成员内部创建(于是就有了工厂设计模式和单例设计模式)。
第七章 复用类
有三种方法复用类:组合,继承,代理。
组合即是在新的类里面放上已经定义的类的对象,然后通过调用它的方法来实现自己的功能。
继承是通过extends关键词继承某一父类,这样就能访问父类的所有public方法(因此为了继承,一般的规则是将父类的所有数据成员都指定为private,将所有的方法都指定为public)。子类的初始化需要注意的是,(当创建了一个子类的对象时,该对象包含一个基类的子对象)java会在子类的构造器中插入对基类默认构造器的调用。但是如果没有默认的基类构造器,或者想调用一个带参数的基类构造器,就必须用关键词super显式地编写调用基类构造器的语句,并且配上适当的参数列表。
代理很有意思,(我们姑且使用导出类和基类这样的字眼,但要清楚我们不是在讨论继承里面的关键词)在导出类里保存一个基类的对象,然后用自己的方法对该基类的种种方法进行包装。
如何决定使用哪种方法复用类呢?is-a就继承,has-a就用组合。而且,组合比继承总体上使用更广泛、代价更小。
向上转型
这个就牛逼了,第八章,第九章,第十章都与此密切相关。看完本书之后印象最深的就是向上转型了。
使用final的原因有很多种,一定要弄清楚为什么使用final,是由于设计还是效率。
final作用于数据的时候:final作用在基本对象比如int上,该值就成为不可改变的,一旦被初始化就无法再被更改,但是作用在普通的对象引用的时候,final使引用恒定不变,但是引用指向的对象是可变的。编译器需要我们确保final对象一定要被初始化,我们可以通过在构造器中初始化他们,以达到相对自由的效果(称为空白final,我认为这个名字容易让人误解)。java允许在参数列表中以声明的方式将参数指明为final,这一特性主要用来向匿名内部类传递数据(这很重要)。
final作用于方法的时候,说明作者想保持该方法在继承的过程中不被改变,并且不被覆盖。同时,被final修饰的方法会被关闭“动态绑定”,这样编译器就会为final方法调用生成“有限”有效的代码。之所以说有限,是因为随着编译器的牛逼,它生成的代码越来越有效。
final作用于类的时候,即是作者声明对该类的设计不允许任何继承。
多态的重要基本原理就是向上转型:继承允许将对象视为它自己本身的类型或其基类型加以处处理。
将一个方法调用和一个方法主题关联起来称为绑定,java中所有的方法都是后期绑定(除了static方法和final方法),所以我们可以编写只与基类打交道的程序代码,并且这些代码对所有的导出类都可以正确运行。
(为什么static不动态绑定:因为static方法的主要用法就是用类名.方法名这样的方式来调用,不存在“发送消息给某个对象,让对象判断自己怎么做”这样的情况。
为什么final不动态绑定:这是早期final的一种用法,由程序员指定某方法为final,意味着程序员明了动态绑定的机制,并且声明该方法不需要动态绑定,这样可以获得更好的性能。这种用法已经很少使用了。)
初始化的时候,导出类的构造函数会自动调用基类的默认构造函数,此过程一直递归到最基本的基类。如果需要调用有参数的构造函数就需要手动执行。反过来,如果需要进行清理工作(大部分时候我们都不需要),务必手动执行基类的清理工作先。比如继承链的每个类都实现dispose()方法,那么执行某个类的清理工作的时候,e()。不过此种情况下,e()之前释放成员对象,清理顺序与执行顺序是相反的。
此外,构造器方面有更加复杂的调用机制,我们不用理它,只需要知道一条有效的准则“用尽可能简单的方法使对象进入正常状态,如果可以的话避免调用其它方法”。
java编译器能够允许向上多态,就是因为java的机制能保存对象的类型信息,即rtti,正因为这种机制,java编译器也允许向下转型,以获得扩展类的“扩展出”的方法。(另,扩展类“扩展”了方法的这种继承不是“纯继承”,这样做好不好?用户自己度量)。向下转型失败的话会抛出一个classcastexception。
虽然这一章都是在讲多态,但是多态并不总是解决问题最好的方案,它有可能使事情不必要地复杂起来,我们应该总是优先考虑更加灵活的组合。
第九章 接口
一种专门提供“接口”的类叫抽象类,若含有至少一个abstract方法,该类就必须被声明为abstract的。抽象方法没有方法体,派生类必须实现它,否则派生类也必须被生命为抽象的。
interface关键词使抽象的概念更进了一步:1.这个“类”完全抽象。2.一个类可以向上转型为多种interface。要让一个类遵循某个特定接口,需要使用implement关键字。
在这一章中出现了“策略设计模式”这个词。创建一个能够根据所传递的参数对象的不同而具有不同行为的方法,被称为策略设计模式。
策略设计模式跟适配器设计模式联合使用可以提供非常强大的功能,比如我们遇到了无法更改的类(别人编写的),想要它满足我们的接口然后放到设计模式里面去(当然满足了接口之后的用法就不止如此了),就可以编写一个适配器,包装该类同时产生我所需要的接口。
使用抽象类和接口的两个原因是:1.在多重继承关系中(这真的很常见,看看java api就知道了),导出类可以被向上转型为每一个接口。2.防止客户端程序员创建该类的对象。那么我们该使用抽象类还是接口呢?事实上,如果知道某事物应该成为一个基类,那么第一选择应该是使它成为一个接口。
接口之间的继承能够形成很好的体系,更像我们的现实生活。但是要特别注意的是,在不同接口中使用相同的方法名通常会造成代码可读性的混乱,令人不快。
工厂方法设计模式是又一个重要的设计模式。我们在代码中增加额外的间接性,一个重要的原因是想要创建框架。
java开发周报篇二
运算操作。运算操作
7.直接常量中l代表long,f代表float,d代表double。显示二进制形式的话,可以通过integer 和long类的静态方法tobinarystring()。如:rystring(10l)。
8.在返回void的方法中没有return语句,那么在该方法的结尾处会有一个隐式的return。
10.回答一个新技术的问题大概思路和步骤是:我们想干什么,怎么干,干的过程中遇到了 什么问题,现在用什么方式来解决。答题时,先答是什么,再答有什么作用和要注意什么(这 部分最重要,展现自己的心得)。ze的使用:垃圾回收只与内存有关,当“垃圾回收”时,finalize()得到调用。java中 的对象都能被垃圾回收器回收,但是在“本地方法”的情况下,有可能在分配内存时采用类 似c语言的做法通过malloc()函数来分配存储空间时,这时只能通过free()函数来释放空间,而这些释放操作必须要放到finalize()方法中,垃圾回收器才能正确的释放内存。“垃圾回收” 都不保证一定会发生。
java 编程思想第四版 读书笔记
回收技术,java虚拟机会 自适应 进行监视,如果所有对象都很稳定,垃圾回收器的效率降低的话,就切换到“标记-清扫” 方式;同样,java虚拟机会跟踪“标记-清扫”的效果,要是堆空间出现很多碎片,就会切 换回“停止-复制”方式。“停止-复制”,先暂停程序的运行,然后将所有存活 存活的对象从当前 存活 堆复制到另一个堆,没有被复制的全部都是垃圾。“标记-清扫”,从堆栈和静态存储区出发,遍历所有的引用,进而找出所有存活的对象,每当它找到一个存活对象,就会给对象设一个 标记,这个过程中不会回收任何对象,只有全部标记工作完成的时候,清理动作才会开始。在清理过程中,没有标记的对象将被释放,不会发生下任何复制动作。13.初始化顺序:先静态对象,后“非静态”对象,先变量,再构造函数,然后是方法。静态 初始化只有在必要时刻才会进行,如果不引用其对象,那么该对象中的静态成员将不会被创 建,而且它们只会在第一次被访问时进行初始化,其后不会再次被初始化。14.对象的创建过程:1)当首次创建对象时,或类的静态方法/静态域首次被访问时,java 解释器必须查找类路径,文件。2),有关静态初始化的所有动作都会 执行。3)当用new 创建对象时,在堆上为对象分配存储空间,而且这块存储空间会被清零,也就是说它会自动地将对象中的所有基本类型数据都设置成默认值,而引用是被设置成 null。4)执行所有出现于字段定义处的初始化动作。5)执行构造器。15.数组:常用方法的使用。binarysearch(),copyof(),aslist(),copyofrange(),equal,fill(),sort(),tostring(),hashcode()。可变 参数列表:void f(float i,character„ args)。枚举类型:enum,它可以在switch语句内使用。16.类的结构依次为:1)包的注释2)package的设置3)import导入设置4)类的注释5)类的编 写。的访问权限:类的访问权限只有public和默认包访问权限,成员和方法有 public,protected,默认包访问权限和private。使用类的客户端程序是无法访问包访问权限成员 的。包访问权限的类的对象可以由包内任何其他类来创建和使用,但是包外则不行。18.为了继承,一般的规则是将所有的数据成员都指定为private,将所有的方法指定为public 或protected。java会自动在导出类的构造器中插入对基类构造器的调用。调用基类的构造器 必须是你在导出类构造器中要做的第一件事。19.代理,它是继承与组合之间的中庸之道,因为我们将一个成员对象置于所要构造的类中(就像组合),但与此同时我们在新类中暴露了该成员对象的所有方法(就像继承)。20.清理方法的顺序:首先,执行类的所有特定的清理动作,其顺序同生成顺序相反;然后,调用基类的清理方法。除了内存之外,不能依赖垃圾回收器去做任何事,如果需要进行清理,最好是编写自己的清理方法,但不要使用finalize()。@override注解可以防止在你不想重载 时而意外地进行了重载。21.组合与继承之间的选择:组合技术通常用于想在新类中使用现有类的功能而非它的接口,也就是在新类的嵌入某个对象,让其实现所需要的功能,但新类的用户看到的只是为新类所 定义的接口,而非所嵌入对象的接口,一般情况下会在新类中嵌入一个现有类的private对象。而继承,它是指使用某个现有类,并开发一个它的特殊版本。“is-a”(是一个)的关系是用 继承来表达的,而“has-a”(有一个)的关系则是用组合来表达的。的用法:根据惯例,既是static又是final的域将用大写表示,并使用下划线分隔各个单 词。类中所有的private方法都隐式的指定为是final的。final类中所有的方法都隐式指定为是 final的。当前用hashmap替代了hashtable,用arraylist替代了vector。
java 编程思想第四版 读书笔记
何事物发生之前,将分配给对象的存储空间初始化成二 进制的零。2)如前所述那样调用基类构造器,此时,调用被覆盖后的方法(要在调用子类 构造器之前调用)。3)按照声明的顺序调用成员的初始化方法。4)调用导出类的构造器主 体。编写构造器时有一条有效的准则: “用尽可能简单的方法使对象进入正常状态;如果可 以的话,避免调用其他方法”。在构造器内唯一能够安全调用的那些方法是基类中的final方 法(也适用于private方法,它们自动属于final方法)。这些方法不能被覆盖。26.一条通用的准则是: “用继承表达行为间的差异,并用字段表达状态上的变化”。27.一个内部类的对象能访问其外围对象的所有成员,还拥有其外围类的所有元素的访问权。在内部类中,如果你需要生成对外部类对象的引用,可以使用外部类的名字后面紧跟圆点和 this,(outerclass out = )。有时你可能想要告知某些其他对象,去创建其某个 内部类的对象,可以在new表达式中提供对其他外部类对象的引用,语法(outerclass out = new outerclass, lass inner = innerclas)。在拥 有外部类对象之前是不可能创建内部类对象的,但是,嵌套类(静态内部类)除外。如果定 义一个匿名内部类,并希望它使用一个在其外部定义的对象,那么其参数引用必须是final 的。匿名类的实例初始化的实际效果就是构造器,而且你不能重载实例初始化方法,它可以 扩展类,也可以实现接口,但是实现接口,也只能实现一个接口。28.嵌套类(静态内部类):1)要创建嵌套类的对象,并不需要其外围类的对象;2)不能从嵌 套类的对象中访问非静态的外围类对象。30.为什么需要内部类:1)每个内部类都能独立继承自一个(接口的)实现,所以无论外围 类是否已经继承了某个(接口的)实现,对于内部类都没有影响。2)内部类可以更好的实 现“多重继承”。3)内部类可以有多个实例,每个实例都有自己的状态信息,并且与其外围 类对象的信息相互独立。4)在单个外围类中,可以让多个内部类以不同的方式实现同一个 接口或继承同一个类。5)创建内部类对象的时刻并不依赖于外围类对象的创建。
java 编程思想第四版 读书笔记
is already handled by the catch block for exception。
40.异常处理的一个重要目标就是把错误处理的代码同错误发生的地点分离。应该在下列情 况下使用异常:1)在恰当的级别处理问题。(在知道该如何处理的情况下捕获异常)
java 编程思想第四版 读书笔记
3)runtime exception:一类特殊的异常,如被0除、数据下标超范围等,其产生比较频繁,处理麻烦,如果显式的声明或捕获将会对 程序可读性和运行效率影响很大。因此由系统自动检测并将它们交给缺省的异常处理程序(用户可不必对其处理)。50.使用自定义异常一般步骤:1)ion类声明自己的异常类;2)在 方法适当的位置生成自定义异常的实例,并用throw语句抛出; 在方法的声明部分用throws 3)语句声明该方法可能抛出的异常。
二 专项复习
1.容器 2.正则表达式
java 编程思想第四版 读书笔记
3.设计模式 4.异常 5.泛型 6.反射 7.多线程
常用包(加粗是抽象类,斜体是接口,普通是类)三 j2se 常用包(加粗是抽象类,斜体是接口,普通是类)
提供利用 java 编程语言进行程序设计的基础类。process、processbuilder、runtime、system、string、object、class、classloader、math、compiler、thread、threadgroup、runnable、threadlocal、inheritablethreadlocal、package .util arraylist、arrays、collection、collections、linkedlist、hashset、treeset、iterator、listiterator、map、hashmap、treemap、comparator 历史遗留的类:dictionary、hashtable、properties、stack、vector、enumeration 使用迭代函数的步骤:1)通过调用类集的iterator()或listiterator()方法获得对类集头的迭代函 数;2)建立一个调用hasnext()方法的循环,只要hasnext()返回true,就进行循环迭代;3)在循环内部,通过调用next()方法来得到每一个元素。gregoriancalendar、timezone、simpletimezone、locale、dateformat、bitset、calendar、simpledateformat、random、observer、observable、timer、timertask gregoriancalendar定义了两个域:ad和bc。它们代表由公历定义的两个纪元。bc公元前,ad公元后 inputstream、outputstream reader、writer outputstream、reader writer、fileinputstream、fileoutputstream、inputstream outputstream reader writer bytearrayinputstream、bytearrayoutputstream、filteroutputstream、filterinputstream、bufferedinputstream、bufferedoutputstream、sequenceinputstream、printstream、randomaccessfile filereader、filewriter、chararrayreader、chararraywriter、bufferedreader、bufferedwriter、printwriter objectinputstream、izable 或 alizable 接口的对象才能从流读取。 inetaddress、url、urlconnection java中有两类tcp套接字。一种是服务器端的,另一种是客户端的。serversocket类设 计成在等待客户建立连接之前不做任何事的“监听器”。socket类为建立连向服务器套接 字以及启动协议交换而设计。或 文件。所以,http:/// 与http:/// 是相同 的。java通过两个类实现udp协议顶层的数据报:datagrampacket对象是数据容器,datagramsocket是用来发送和接受datagrampackets的机制。
java开发周报篇三
java项目开发总结怎么写?下面是小编带来的java项目开发总结,希望对你有帮助!
1、掌握项目开发的基本步骤
2、具备极强的面向对象的分析与设计技巧
3、掌握用例驱动、以架构为核心的主流开发方法
没有人愿意自己一辈子就满足于掌握了一些代码实现的技巧,别人告诉你要实现什么,你就用代码堆砌来实现别人的要求!你必须学会从整个项目的角度去思考!你必须学会假如你是项目经理,你该如何思考!你必须学会假如你是架构师,你该如何思考!你必须掌握针对某个特定问题领域的分析方法!
关于基础知识:你可以看看这些名词或知识点,看是否能说出个一二三四来。
javase
----常用类:string、intern、常量池、stringbuffer、、simpledateformat、regex(正则表达式)
----反射机制:class、method、field、invoke、newinstance、beanutil、propertyutil
servlet和jsp
html与javascript
以上,就是你进一步学习java所必备的基本知识。
特别是一些个专业术语和名词,看到这些名词,如果你像看到亲爹一样亲切,那么说明你对java的基础知识就很熟悉了。
接下来是ssh:
现在很多企业都在用这三大框架,所以很多企业也把掌握这三大框架作为招聘的必备条件。
不可否认的是,也有很多大型企业没有用这三大框架,这些企业经过多年发展,自身已经有一定的技术积累,也形成了自己独特的技术框架体系。
这三大框架既可以说很重要,也可以说不重要。
说重要的原因在于:这三大框架对javaee开发中所存在的普遍的问题,提供了优美的解决方案,它们蕴含了这个行业中最nb的开发人员的努力和想法,所以,学习这三大框架,你就可以窥探到这些处于技术巅峰的牛人们究竟对一个问题是怎么想的,通过一种什么样的设计思路去解决问题的。
所以,对于你来说,你没有太多项目开发的经验,经验是什么?经验就是你知道可能会遇到哪些问题,针对哪个问题可以有哪些解决方法,在某个情景下,哪种解决方法是较好的,哪种方法不太好等等!如果你没做过什么项目,你根本就不会去意识到你可能会遇到哪些问题,而这些问题往往又是非常关键的!解决得不好,会影响到你的程序的稳定性、可扩展性等等!三大框架就给初学者提供了了解你以后可能会遇到哪些问题,以及针对这些问题的解决方案!
当你了解了这三大框架为什么是重要的,那么你也就能理解,为什么这三大框架也可以说是不重要的。
如果你曾经开发过很多项目,你碰到了各种各样的问题,凭着你的技术功底,逐个击破了这些问题,在这些人眼里,三大框架(是不是还有n个框架?呵呵)都是浮云!
你属于哪一种人呢?如果你没有太多项目开发经验,那么三大框架对于你来说就是非常重要的!而且,由此你也知道了该怎么去学这三大框架。
struts2:
为什么每次请求都要创建一个action对象?
请你给我谈谈valuestack?
struts2是如何实现mvc设计模式的?
spring:
你为什么要用spring?
请你聊一聊ioc/di?
hibernate:
请你谈谈你对or映射的理解?
hibernate为什么一定要定义一个数据库标识?
谈谈你对hibernate关联映射与数据库外键之间关系的认识?
()方法,hibernate一定会发出语句吗?谈谈你的理解
配置了lazy=”true”一定会实现懒加载吗?
请你谈谈hibernate中的“n+1”问题
请你谈谈hibernate有哪些最佳实践?
以上并非ssh中全部重点的问题,但它们能考察你能否灵活运用ssh框架!如果你能深刻理解这些问题,再配以合适的实战项目训练,你也会逐渐成为牛人!
最后是项目开发能力:
做项目需要的能力很多,其中最核心最基础的就是建模能力(现在最主流的就是面向对象建模!)。
什么是建模能力呢?
我给大家一个面试题:
一个保险公司的保险卡管理模块:销售人员领取保险卡信息(保险卡数量、卡号、领取日期),然后直接销售给客户,销售完毕后,将保险卡信息录入保险公司系统内部(销售人员信息、购买人信息、购买的保险卡数量、卡号等),客户登录保险公司网站激活保险卡,需要填写(保险卡卡号、激活密码、被保险人信息、受益人信息)
这只是一个面试题而已,因为只有简单几句话,所以我把它放到这里,让大家感受一下所谓建模要解决什么问题。
而业务领域的问题实在是太多了!也许一个几十上百页的需求文档才能把某个业务领域的问题描述清楚,而你的职责就是要把它们实现出来!
某erp项目要实现一个排班管理模块,交给你去完成,你如何去完成呢?
不要抱怨项目经理给你的信息太少(只有几句话),不要抱怨客户没有描述清楚他们的需求……你的价值就在于理顺所有的问题,用各种手段获得你想要的信息,按照一定的思路汇总,并在特定的时间里逐个解决它!
你应该意识到学java不是一个坦克大战、一个网络飞车、一个cms、一个drp、一个oa那么简单,你不要沉迷于那些技术细节(虽然也是有必要的,但不要转牛角尖),不要满足于实现了crud式的项目需求(虽然这是基础中的.基础),在你的前方,永远有一个目标在那里,需要你去努力追赶!
今后你将面对更加繁杂的需求,你学习项目的唯一目的,就是:学习如何将需求转化为实现,如何对需求进行分析,如何建立概念模型,如何理顺各种概念之间的关系,如何进行设计,如何选择合适的技术来实现你的设计方案,如何对你的实现进行测试,如何解决你所遇到的形形色色的问题(性能、需求变更等)。
当你真正到公司里面从事了几年开发之后,你就会同意我的说法!
利用java找工作,需要的就是项目经验,项目经验就是理解项目开发的基本过程,理解项目的分析方法,理解项目的设计思路,理解项目的实现技巧,理解项目的测试方法,理解项目中各种问题的解决方案!
在通过将近一个月的项目中,使我学到咯很多的东西,也让我看到了我自己的一些在知识上不足,也将使我在后面java web的学习中还要更加努力,以便在以后能找到自己适意的工作,也不枉费在朗沃9个多月的学习,在这次项目中让我学到了很多的东西,不只是代码上的知识,也学谍咯java框架上的一些基本东西,还有层次结构的好处和又来,比如:mvc思想,mvc的又来有开始的两层结构到三成结构的过度以及两层结构的优缺点,以及现在流行的三层结构的优缺点,dao模式的应用,对象的封装,socket通信的原理以及用socket发送对象等很多的知识点,怎样实现封装使得更好的保护数据,实现java的三大特点,使代码的耦合度降低提高内聚力类和类之间的依赖性降低使模块和模块之间的层次分明,实现代码的复用和实现结构的复用使得开发一个系统的性能更加的优异。
在这次项目中使我对java面向对象的认识有了更时刻的印象,对“万物皆为对象岜整个理念有更深层次的理解,通过和老师的交流和上网了解的一些知识,其实搞软件的实质并不使在代码上实现一个什么什么的功能,你只要愿意去着你用你所学的知识肯定能够实现某一个功能,但学软件的最根本使分析和设计,所以现在市面上会设计的人才使最来钱的人,在软件开发的生命周期中编码其实使占很小一部分工作,数据库设计人员和java的框架技术人员使很赚钱的,也只有对在对象上有更多的了解你才能从代码层次上上升为另一种理念过后你才能在以后的编码中设计出更加优异和性能更高的代码,也只有这样那么你将来才有可能成为一个合格的程序员(不时编码高手),在二个项目中的开发中使我团队开发软件上有了了解,也使我了解了在团队开发软件的时候的一些注意点,不能随便更改类名,方法名悻变量及其修饰符,如果你一时兴起该了的话那么在项目融合的时候问题机会层出不穷,就有可能使你的项目失败,所以规范时很重要的,代码的规范将很大层次上的说明你对代码的熟念度。
在这次项目中使我对层次模型有了了解,在你那到一个项目文档的时候你比不使马上就开始编码而是,找到每个层次上类,找到边界类,根据相应的业务设计出数据库原型,在数据库原型出来之后在设计数据库的表和表之间的关系,只有层次模型在你脑海中有深刻的印象的时候那么你的编码当然也就很顺利的实现,层次模型一旦建立那么你代码上实现就围绕这个架构来写,那么你的系统才有可能成功,这样在添加业务或者使更改业务时才很方便更改一个地方不会影响到其他的层次,这样才有可能提高你系统的灵活性和扩展性,这也时衡量一个系统好坏的标准,在这次项目开发中用到咯大量的配置文件比如:用属性文件来建立socket连接,用xml文件在找业务类,这样有使我对配置文件的好处又有了一定的了解:合理的使用配置文件时提高代码灵活性的一个方面,在建立套节字连接的时候用配置文件可以很方便的更改我在那个端口号上建立连接,在看不到源代码的时候我也可以更改在其他端口上建立socket连接,在业务的时候用xml文件来找相应的业务类,这样就可以在还要添加业务的时候只需要在xml文件中在添加业务,在写起相应的代码就可以实现,用配置文件找业务还又一个好处就是在调用业务的时候不用对业务类静态的创建一个对象,而是用反射的方式找到调用那个方法,而是在程序执行的时候在创建对象在对象用完之后在释放资源,这样就可以减少电脑内存的消耗,使得程序的性能更加优异。
同时也增强了代码的灵活性。
在用jdbc获去数据库连接对象的时候,其实时很有学文的咯,你如果在用连接对象的时候就要数据库建立连接对象,在用完诸后就关闭连接对象,在很多用户同时来运行你的系统的时候,就将产生很多的连接对象,这样有使得你的系统性能降低,很好的解决办法就是用数据库连接池:在程序启动的时候就建立最大连接和最小连接,当多用户请求的时候只需从数据库连接池中那出连接对象,这样就可以减少多次连接对象,开始在最大连接对象和最小领接对象的选择上又有了问题,创建最大连接时多少呢?最小连接有是多少呢?如果一开始最大连接数过多,而用户有很少那么就浪费资源,并且系统启动将会很慢,如果最大连接数过少那么程序启动很快但在启动后运行程序时有会很慢,最小连接数如果很小,那么在很多客户访问的时候将会很慢,合理利用数据库连接池将会很大部分的提高程序的性能、在这次项目还用到了日志文件来记录错误信息,在这次项目中还用到了很多的知识点我就不一一的在这里列举了。
顺便给大家几道面试题(是前面部的同学给我说的):
1、谈谈final、 finally、 finalize的区别。
2、hashmap和hashtable的区别。
3、说说你对ejb的认识。
4、gc是什么? 为什么要有gc?
5、谈谈你对抽象类与接口认识?
经过这最近一段时间的项目开发与考核,今天终于画上圆满的句号,我长呼了一口气,同时在内心深处,也默默地为接下来的学习,做一个前段时间的项目总结,也是学习的总结,吸取之前的经验教训,前事不忘后事之师,错误并不可怕,可怕的是再在同一个地方犯同样错误,所以对于我来说,更多的去自我认知,知我批评要比表扬和赞许来的更加深刻,非常有必要做一个总结。
虽然所做的项目并没做到考核老师所希望看到的效果,和得到正面的点评,也与自己所想象的结果大相径庭,当然可能在项目最开始的时候,我也曾做过这样最坏的打算,但是当现实渐渐逼近的时候,我却一时难以接受这样的结果,是我意料之外,但也是情理之中,俗话说:种瓜得瓜,种豆得豆。
在项目开发其中,我有过给自己找借口,有过灰心的时候,也有过急躁,如坐针毡的时候,但是想要作为一个合格优秀的程序员,你不仅不能这样的情绪,而且在真实的开发环境当中,会有遇到比这更艰难的情况,更不好开发环境,所以要完成一个项目的开发,我得要利用好为数不多的学习时间,更加勇敢的直面这些缺点,并且改正它,不要认为自己以前没学过java,没有这方面的经验而去给自己找借口,越过心理上的这一到鸿沟。
考核的胡老师说过:不要总是把自己当成一个学生去看待,这样容易松懈,应该是把自己当做一个职业人去看待,做好当下的每一个效果,上好当下的每一节课,让自己时时刻刻紧张起来。
这样类似的话,在我之前的公司,也有主管这样说过,虽然我已大学毕业了,没有完全把自己当一个学生去看待,但自己又何尝不是有过这样的念头,特别是别人都是这样想的时候,学习的态度不够坚定,立场不坚决,这也是导致我没有学好的主要原因之一吧。
工善欲器事,必先利其器。
除了保持好的心理和端庄学习的态度外,更要总结更好的学习方法,不要让自己陷入到疲惫学习的死胡同了,积累好的学习经验,去掌握好的学习方法,好的学习方法不仅是自己当下一笔无形的财富,也是在不久的将来,在工作当中竞争的一把利器。
吾日三省吾身,只有在自己的总结中给予自己更多的认知,反思,而少一些褒奖,这样自己会对平时忽视的一些地方,能有更加深刻的理解和认识,实践是检验真理的唯一标准,虽然实践中我们所遇到的挫折与失败会有无数次,而成功只有一次,但是只要成功了,我的付出就是值得的,就像前面有无数个-1,但你只要最总做到了一个+1,你的结果就是+1的,在别人的眼里你就是成功的,在客户的眼里,你项目是物美价廉的。
回想在这一个多月的学习时间里,我学到了许许多多让我感觉比较充实的知识,掌握了更多的学习的方法,但这都是与大家息息相关的,离不开老师的教导和同学的帮助,也在此非常感谢大家热心帮助。
java开发周报篇四
新学期一开学就迎来了为期两个月的顶岗实习。对于这个学习任务我是又惊又喜,惊的是这是我第一次严格意义上的实习,对于实习我一直以来都是带着憧憬的,但我又怕我没有经验什么都不会笨手笨脚难以适应;喜的是,这对于自身是一个机遇,一个向前迈进的机会,人总是要成长的,原地踏步是不可能的,很高兴我终于向前迈了一步。同时,实习不比学习,在实习中我可以学到很多书本上教不到的实践,这也是相当宝贵的。因此,制定实习计划也就势在必行了。
我的实习地点是在学校的系办公室。为什么会选择在学校呢?那是因为我觉得在学校的作息时间就和以前当学生时的作息是相同的,方便我像以前一样,我可以像学习一样的实习;再者,这样一来,实习地点离寝室很近,交通极为便利,我就不用和被分配到白杨街道社区的同学般担心实习地点的远近以及用何种交通工具才能到达,也不需要像去萧山的实习生一样搬行李;学校有食堂,我也就不用担心去哪里吃饭了,总的来说,在学校实习好处多多且一切都不会出乎我的意料。因为我不喜欢事情脱离控制这样会让我的心很没底。
想想时间过的真的好快,此时的我已经是一个快毕业的大三学生,一方面我还是在学校学习当个正常的学生,但是另一方面我也要为自己的未来作作考虑了。对于以后,我有我的一番打算。所以,在实习时,我会好好实习,听指导老师的话,就像一个好学生上课专心听课下课认真完成老师布置的作业一般,把顶岗实习当做一门慎重的课程,像学习一样的实习;同时,在实习中我也不能不顾及的我的学习。这学期我认为最为重要的是考出英语六级,由此,我会在实习闲暇时好好利用时间看我的英语,望工作学习两不误。
两个月的时间,说长不长说短也不短,不管长还是短,时间总是会过去的,若想要这两个月的实习极富意义,我就应该好好珍惜每一天,我相信,两个月后的我一定会变得不一样,我希望,两个月后的我会向一个更好的方向转变!
一、总结内容、形式和要求
总结分顶岗实习生个人总结、实习学校指导教师工作小结、实习学校工作总结、项目县(市)工作总结四个层面。
1、实习生个人总结:每位实习生至少上一堂公开课、举办一次主题班会或班级活动,并撰写一份不少于3000字的个人小结。公开课和主题班会由实习学校组织,实习学校指导教师和实习队成员参加,且要组织评课和评议,并拍摄相关电子照片3—5张。实习生个人小结主要内容包括实习基本过程、典型事例和故事、感动与心动、主要收获和体会等,以a4或相当于a4大小的纸张书写或打印,并由实习生本人签名。连同公开课讲义和主题班会实施方案一并上交实习学校。
2、实习学校指导教师小结:每位实习指导教师(含班主任工作实习指导教师)均需撰写实习指导工作小结,字数不少于3000字,以a4或相当于a4大小的纸张书写或打印,并由实习指导教师本人签名。主要内容包括实习指导基本过程、实习生素质与表现、典型与感人事例、指导工作经验和体会、工作建议等。
3、实习学校工作总结:实习学校要召开一次由校领导、指导教师和全部实习生参加的总结暨欢送座谈会,拍摄相关电子照片5-10张,并撰写一份不少于4000字工作总结。总结内容主要包括学校开展顶岗实习工作的基本情况、主要做法、工作亮点、成功经验、典型与感人事例、实习生素质与表现、实习生对本校教育教学工作的作用与意义、完善该项目工作的建议等。
各实习学校要举办实习生离校仪式,拍摄实习生离校时相关的感人场面照片10张左右。
4、项目县(市)教育局总结:在实习学校工作总结的基础上,每项目县(市)教育局撰写一份全县(市)顶岗实习工作总结,以a4或相当于a4大小的纸张书写或打印,内容包括基本情况、主要做法、工作亮点、成功经验、实习学生素质及表现、典型个案、实习生对本县(市)教育教学工作的作用和意义、完善该项工作建议等。
各项目县在实习生离开本县时,要举办由教育局领导、实习学校领导和部分指导教师代表以及本县所有实习生参加的总结暨欢送座谈会,收集、整理会上所有发言材料,并拍摄10张以上照片,连同其它总结材料一并按要求上交。
二、总结材料报送时间和要求
1、实习学校需报送的总结材料包括:(1)每位实习生公开课和主题班会的讲稿和实施方案,相关电子照片每生3—5张;(2)实习学校总结暨欢送座谈会等相关工作电子照片5—10张,实习生离校时照片10张;(3)实习学校工作总结1份;(4)实习生个人小结每人1份;(5)实习学校实习指导教师工作小结每位指导教师1份。请各实习学校以学校为单位,按学校工作总结、指导教师工作小结、实习生个人小结、实习生讲稿和主题班会实施方案的顺序请将总结材料汇总,装订成册。
2、请各项目县(市)教育局于20__年1月15日前,将本县(市)教育局顶岗实习工作总结,及县(市)教育局接送工作或座谈会电子照片10张,连同各实习学校工作总结材料(含电子照片)、座谈会发言材料等一并报国培计划省级项目办公室。联系人:张老师;电话:0791—8120839,;电子邮箱:。通讯地址:南昌市紫阳大道99号江西师范大学教师教育处。
3、本次报送的总结材料是评选先进项目县(市)、先进实习学校和个人的主要依据,各级单位在整理材料时务必做到具体、生动、翔实、感人,注意典型和个案,切忌空泛、冗杂。
4、适时召开该项目工作经验交流会,邀请各项目县(市)教育局负责人和顶岗实习学校代表参加会议,对先进个人和集体进行表彰。
java开发周报篇五
mvc:model--职责分明,便于风开发、优点:解耦,职责分明,便于分工开发、缺点:分成三部分,造成系统架构复杂,对于小系统不适合、造成调试困难,一旦出现错误,可能是model,也可能是view也可能是control、对开发人员要求比较高。
jsp技术使用java编程语言编写类xml的tags和sc riptlets,来封装产生*页的处理逻辑。网页还能通过tags和sc riptlets访问存在于服务端的资源的应用逻辑。jsp将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于web的应用程序的开发变得迅速和容易。
web服务器在遇到访问jsp网页的请求时,首先执行其中的程序段,然后将执行结果连同jsp文件中的html代码一起返回给客户。插入的java程序段可以操作数据库、重新定向网页等,以实现建立*页所需要的功能。
jsp与javaservlet一样,是在服务器端执行的,通常返回给客户端的就是一个html文本,因此客户端只要有浏览器就能浏览。
jsp:为什么要学el和jstl、在一个系统中,页面通常是由美工开设计完成,美工并不懂java语言、当美工看到页面上充满着java代码时,会干扰美工维护页面,造成维护困难、如何做到动态页面没有java代码?el表达式和jstl。
el表达式:${属性名}//属性名是调用对象的setattribute(属性名,属性值)、在servlet往范围对象中设臵属性,forward到目标页面、el访问常量值,直接输出${常量}、可以使用==判断字符串、存取器读取对象的值、使用.可以访问对象的属性,读取map的key、读取数组只能用。

一键复制