Java学习笔记3

来源:互联网 发布:理想的人际关系 知乎 编辑:程序博客网 时间:2024/06/05 18:13


这几天在学习的路上进展不大,要学的东西太多,抓不住重点。

本来在计划里,从昨天到今天,应该复习Swing和Java多线程等内容,但是从简单的看了一下Swing后,又觉得这一方面在实际应用上没有什么作用,无论是JavaWeb还是JavaEE,用Java开发应用界面都不多见。于是,就放弃了这部分转战多线程,多线程在我的教材里描述得并不多,我对于多线程的理解仅仅是建立几个类继承线程,在类的run()方法中加入如sleep()之类的控制语句,然后调用他们,让几个线程按照指定顺序运行。而在多线程管理方面,书中提出了定义互斥锁的概念。但是给出的例子甚是语焉不详,让人无法理解这里加锁的含义:

public class SynchroThread{

public static void main(String[] args){
Ccustomer clianet1=new Ccustomer();
<span></span>Ccustomer clianet2=new Ccustomer();
<span></span>clianet1.start();
<span></span>clianet2.start();
}}
class Cbank{
<span></span>private static double sum=0.0;
<span></span>public synchronized static void add(double m){  //此句定义了一个加锁方法
<span></span>double temp=sum;
<span></span>temp=sum+m;
<span></span>try{
<span></span>Thread.sleep((int)2*1000*Math.random());
<span></span>}catch{
<span></span>sum=temp;
<span></span>System.out.println("sum=="+sum);
<span></span>}
<span></span>}
}
class Ccustomer extends Thread{
<span></span>public void run(){
<span></span>for(int i=0;i<5;i++){
<span></span>Cbank.add(200);
<span></span>}
<span></span>}
}

草草看完多线程这部分,心情自然不佳,只好回过头来,做做会做的找找感觉,想重新编一下之前的工厂方法模式,看别人的代码总是容易的,自己试着编写总是没有领会到简单工厂的妙处,简单工厂的目的是将类都集中到一个工厂中去建造,就是在测试类中,只对工厂类是开放的,有什么需求告诉工厂,例如建立一个A类型的类,可以用 A a=Factory.productA();而不是A a=new A (),在这里面,Factory.product()类返回一个A类型的对象,这虽然说起来容易,但是改变自己固有的想法总是很困难的。

谈到简单工厂这一方面,不可避免的要说到类、接口之间的关系:UML类图。继承实现的道理很清楚,但是依赖和关联总是搞不清楚。总结一下:如果A中有一个B类型的变量,如 :int  i= 0; B  b;那么A和B之间就有关联的关系,A——>B,但是关联在数据库中应用得更广泛,更复杂的双向关联暂且不表;依赖关系也很好理解,如果类A中的某一个方法使用了类B,那么A就依赖于B,A类的某个方法使用B类,可能是方法的参数是B类,也可能是在方法中获得了一个B类实例。但无论是哪种情况,B类在A类中都是以局部变量的形式存在的。其实这部分我感觉得更多的是依赖也是一种关联。工厂方法是设计模式的体现。设计模式这一部分是应该重点掌握的,因为现实的应用性很强。

**********

不说乱七八糟的代码了,也许是太急功近利了,这几天老是不能够专下心来深入的研究东西。昨天又送走了一位离校的室友,现在偌大的房间一般就我一个人了,以前是有人在的时候,各种原因静不下心去,现在人都走完了,剩下的只是一股巨大的寂寞。今天又有同学给我发短信:问我想不想要一起去培训班做辅导。我当然只是呵呵哦哦了,有什么办法,难道适合我的只是教师吗?!看着眼前Java的各种问题还没有解决,又有必须面对的就业问题摆在眼前,每次想到工作,我突然就有了一股莫名的焦躁,我向来是排斥工作的,但是人在社会上这种事情是不可避免的吧。有时候会问自己为什么不喜欢工作呢,想来想去自己都是一个追求完美的人吧,我讨厌各种复杂的关系,不喜欢看别人的脸色,但这些事情在工作上都会出现。回想起我糟糕的大学经历吧,我以前在CAI团队和网络与多媒体协会呆过,CAI是一个PPT制作小组,现在已经在大学生创业的活动带领下称为了一个小公司,我在的时候虽然不是公司,但是也经常接学校各个院系的单子和外面的单子,我是里面唯一的一个男生,所以接手的任务很多。作为一个单身狗,我没事的时候都很喜欢待在那里,我喜欢这个团队,甚至有时候放假了、考试封楼的情况下,我也会一个人待在那里,当然有一半的原因是我的孤僻,但是很遗憾,并不是所有的人都把团队当成自己的家,记得临近期末的时候,学习任务重,学校那边分配的任务大家都没有动,我便生气的都揽过来自己做,一个人是搞不定的,而且别人的要求又高,我只好再去请其他成员帮忙,但是最后我做了一件错事,让她去负责和领导沟通,她当时就不乐意了,我那时还觉得在一个团队里谁负责都一样,然后还弄得很尴尬。这里面呢还有一个内幕,我揽过任务很大一部分原因是因为我喜欢的一个女孩也负责一个PPT,我最初是因为她不做我才接手的,所以事情成了我自作主张让别人承担我喜欢的女孩的任务。我后来一想,的确如此,况且作为男生,我只好事后还赔礼道歉。现在想来,这件事给我心理留下来很深的阴影,两年后的现在我还能深刻的感受到自己当时的无奈,我虽然开始明白为什么我不能做一个领导者了。但是从那以后,但这件事也凉透了我的心。我一度把CAI当作自己的家,可惜从那以后就再也没有这种感觉了,我就觉得自己戴上了一副有色眼镜,而且这副眼镜还扩展到了其他的领域——网协(网络与多媒体协会)。我以前在网协很开心,自己作为宣传部长,虽然能力只有那么样,但是写海报、做展板还是非常卖力的,但是后来也发现了各种推卸责任的现象,举办什么活动有些部长就各种理由推脱,而且后来在换届的时候,看到他们依依不舍的表情也都觉得矫揉造作。

大学就像一个小社会,以前的自己不觉得,总是以自己的心态去看别人,现在看到别人的做作,也是自己可怜心态慢慢走向黑暗的反映。

说到大学的这些插曲,虽然过程不是很美,但是过程很美,我大一大二专注于社团,课外小组,那时候热血沸腾,有什么活动必然一睹为快,当初进入CAI 的原因就是因为这个小组最先招人:我便屁颠儿去了。后来才知道有很多各种各样的小组,网站的有PHP,JSP等等,而且JSP是公认最好的小组,我有时候想我如果当时进了别的小组,现在是不是就轻松一点呢。不过在那些日子里,我天天悠闲的Photoshop、flash、PPT,没有太大的压力,还曾想过以后毕业了从事平面设计的工作,当然后来是因为自己还是因为自己的技术不合格就放弃了,做美工不是编程,美工少一个步骤多一个步骤关系不大,总体好看就行,如何好看则是千人千面,额,我设计的东西无法做到好看,虽然实现了很多技术,花了一个下午做出来的高光滤镜不如人家的纯色一个圆,人家那还叫先进的扁平化设计呢!带我走入编程的是AS,flash中的AS,以前我做FLASH是一个动画爱好者,喜欢做动画,作为一个连手绘板都舍不得买的穷屌丝,我还曾帮助数字媒体专业学生交了flash作业,当然在一群死代码中,我的作品是纯粹的渐变动画和逐帧动画,而且拿了个前几名的高分,可遗憾的是那家伙都没有好好感谢我····真正接触代码的是我们小组要做一个校园电子地图,当初一群人热血沸腾的申报大创项目,而且把效果说的很诱人,好像很简单一样,但是最后做的时候。。。没有人做了,但是项目还是要结项的啊,没办法,我又成了替罪羊,那时我还挺开心,认为别人看重我、信任我。结果我身背两个flash的项目,做出来两个不堪入目的作品,也算是结项了。但是从那时候,我才真正的从无到有,掌握了AS的基本语法。也初步见到了代码的力量。(我们想要的效果:一张手绘的校园地图,可以放大缩小,输入两个点,可以给出路径图,虚拟小人导航,每一栋楼都有手绘图,可以查询,还有景点介绍····             实现的地图效果有:一个地图,放大缩小还原功能,移动地图功能,查询地点可以定位到地图中心,链接网页)

这也是我选择搞软件开发的原因之一,我越来越觉得和人打交道不如和电脑打交道,电脑不会骗你,你写出一个过程,它必然返回你一个结果。




1 0
原创粉丝点击