03 2013 档案

摘要:对线程同步做一个总结,一般来说,线程同步比较让人纠结的地方在于它是许多线程共用一段代码的,而且什么时候谁用谁不用,也基本是不可控制不可预料的,那么对于它们可能会同时访问并更改的数据,就需要加锁了。加锁就是将一段代码变为临界区 —— 一段在同一时候只被一个线程进入/执行的代码,加锁的方式一般有两种,Lock关键字C#提供lock关键字实现临界区,MSDN里给出的用法:Object thisLock= new Object();lock (thisLock){ // Critical code section} 此方法的难点是如何选择锁的对象,比如写日志类,如果是静态对象锁自身,那么即使是不冲突的 阅读全文
posted @ 2013-03-12 14:06 碎景 阅读(178) 评论(0) 推荐(0) 编辑
摘要:由于子系统中的任务,需要处理的数据量比较大,为了提高系统工作效率,老大要求使用多线程来执行任务,而我刚好负责流程控制这一块,当时真是被多线程折腾的死去活来,这个系统其实是有原型可以参考的,而且这个原型系统是久经考验,稳定性也很高;所以老大给我的时间并不多,我当时也没意识到难度会如此之大,但原型使用的是单线程,很多模块在单线程下跑得很欢,一到多线程就各种难了。其实现在想来,使用多线程并行处理数据,真心不算个好的决定。多线程适合处理的任务性质多为耗时的等待,或轮询判断状态。而此数据管理系统的瓶颈却是cpu运算和硬盘数据传输速度,后来测试结果也显示,多线程对性能的提升并不算太明显。当然这个不是... 阅读全文
posted @ 2013-03-07 10:36 碎景 阅读(429) 评论(0) 推荐(0) 编辑
摘要:分而治之思想,面对一个体系很庞大(相对我而言)的程序的开发,首先应将程序合理的划分一些层次和模块,不要至上而下的开发,不然可能呆坐半天而下不了手,应该先把下层的小模块做好,再组装起来,即使组装的时候发现了很多需要修改的地方,也不是很要紧,利用resharper和vs的强大的重构和提示功能,完成修改并不算困难。写这段话的时候,还是我实习中刚开始参加开发工作的时候(2012年的8-9月份),那时我水的一比,给我一个很小的功能模块,我都下不了手.我还记得这段话的背景是:我要开发一个小功能,读取文本文件,里面有一些坐标和卫星图像的参数信息,我需要读取出来,然后通过一个复杂的计算公式,求出某个投影坐标, 阅读全文
posted @ 2013-03-07 10:35 碎景 阅读(174) 评论(0) 推荐(0) 编辑
摘要:以前使用java编写功能函数的时候,总感觉模块之间的耦合和模块之间的数据传递的便利,两者有点鱼与熊掌不可兼得比如我在ReadCameraFile类中读取出camera参数数据,保存在类成员变量——arraylist中,其他类通过对象去获取这个arraylist,那么这两个类的耦合就有点高了,而且还有一个弊端就是,用arraylist保存数据,那么取出的时候,也要严格按照存入的顺序取出,比如我第一个数据是片号,第7个数据是X3的值,存取过程繁琐易出错?用map同样如此,key的值没有提示,取数据的人,同样不知道map里面有哪些key?这样以后开发大型应用的时候,很可能会乱套,而且反复的装箱和拆箱 阅读全文
posted @ 2013-03-07 09:51 碎景 阅读(181) 评论(0) 推荐(0) 编辑
摘要:建立一个使用struts的程序其实步骤并不是很多,1, 在web.xml里面配置好过滤器,2, 导入需要的struts Jar包。3, 设置struts.xml的监听 ,决定action由谁来处理4, 完成设置的action监听类。过滤器的种类貌似很多,还不是很清楚它们之间的区别。通过.properties文件进行字符串配置,可以配置出多种语言, android也有类似的语言国际化方案。使用的时候,通过 来调用。EL表达式: ${sessionScope.user} 表示session中取出userstruts.xml的监听方案很灵活,可以做很多的配置比如下面这个,客户端提交的表单的actio 阅读全文
posted @ 2013-03-07 09:17 碎景 阅读(148) 评论(0) 推荐(0) 编辑
摘要:连续看了两天的某大型数据管理系统的代码,感觉现在有点头晕眼花的,刚开始我是在main函数入口处设置断点,然后将程序跑起来看看程序运行的顺序,结果各种函数的跳转和类的new马上就把我搞晕 了。后来是直接让程序跑起来,在触发过断点的调试状态下运行程序,如果触发事件,程序是可以自己停下来的,这样我就知道了那些功能到底是在哪里实现的,也可以在运行的过程中点击暂停,用f10开始跑起来,方便定位。看到现在,也差不多有了一个大概的印象,其实结构倒不是很复杂。里面界面、模块虽然多,但事实上都是很简单的平行关系,并不涉及到复杂的组装,嵌套。整体布局是比较流行的ribbon布局,主界面把各模块的位置分好,功能界面 阅读全文
posted @ 2013-03-05 22:48 碎景 阅读(350) 评论(0) 推荐(0) 编辑
摘要:公司的调岗是有考核的,当时我进入研发部的考核是2星期之内用c#开发一个winform程序,包括DevExpress的gridControl控件的使用,oracle数据库连接,数据的增删改查等功能,和使用arcgis engine控件完成地图的显示。我以前基本没使用过c#,这两星期也包括了对c#熟悉的过程。不过还好,我对java比较熟悉,而c#的基本语法部分和java相似度非常高,数据库操作流程写起来不算困难,而且偷偷的在这里说一下,由于内部消息,我大概猜到熟悉c#是个必须要求,所以提前一个星期就开始学习c#了,等于多了一半的考核时间,最后当然是轻松过关了。只是Dev控件种类丰富,功能强大,但也 阅读全文
posted @ 2013-03-05 22:00 碎景 阅读(207) 评论(0) 推荐(0) 编辑
摘要:这是以前在公司写的工作总结,当时只是完成任务,但感觉这样也是个很好的习惯,现在离开公司了,也坚持了下来。现在回过头来再看当时写的东西,觉得有些观点很可笑,于是,发表出来的博文,是经过一定的修改和润色的,比如和设计模式结合起来的总结,和java的对比什么的。 实习的第一个月在公司做的是测试工作,当时由于报开发的人比较多,别人问我愿不愿意做测试,也没多想,就同意了。 测试的入门比较简单,而且公司的测试主要是黑盒测试,基本上只要别人给你讲解一些这个系统的用途、思路,就可以上手测试了。黑盒测试比较无聊,我做的最多的事情就是拿着鼠标点点点……比较枯燥和繁琐,而且工作起来,没什么成就感,因为出现... 阅读全文
posted @ 2013-03-05 21:43 碎景 阅读(184) 评论(0) 推荐(0) 编辑
摘要:request一般用于客户端提交数据,大部分时候,它的生存周期很短,只是从c1->s1两个页面之间传递的时候存在,一旦s1完成response,这个请求就被销毁了。这是从服务器执行的角度来看的,如果从编码角度看呢。request是可以在多个页面使用的。1,include,在主页面声明以下代码,即可在included。jsp页面中使用该request,include标签类似于把included.jsp的代码直接嵌入在include.jsp声明标签的位置。这点可以在客户端查看页面源代码,included.jsp的代码出现在了页面中。同时,因为是嵌入,所以include。JSP页面后面的代码仍 阅读全文
posted @ 2013-03-01 21:02 碎景 阅读(420) 评论(0) 推荐(0) 编辑
摘要:1.java.net.SocketTimeoutException.这个异常比较常见,socket超时。一般有2个地方会抛出这个,一个是connect的时候,这个超时参数由connect(SocketAddress endpoint,int timeout)中的后者来决定,还有就是setSoTimeout(int timeout),这个是设定读取的超时时间。它们设置成0均表示无限大。2.java.net.BindException:Address already in use: JVM_Bind。该异常发生在服务器端进行newServerSocket(port) 或者socket.bind(S 阅读全文
posted @ 2013-03-01 20:03 碎景 阅读(331) 评论(0) 推荐(0) 编辑
摘要:探讨相对布局的重要特性和属性android:layout_alignParentLeft="true"android:layout_width="fill_parent"android:layout_toLeftOf="@+id/Button01"现在让我们来讨论一些帮助配置相对布局和它的子控件的属性。一些特定的属性用于相对布局,也就是子规则,包括:·用于子控件在父布局中居中的规则,包括:水平居中,垂直居中,或者两者皆居中。·用于子控件在父布局中排布的规则,包括:在顶部,底部,左,右边缘放置。·用于子控件 阅读全文
posted @ 2013-03-01 20:01 碎景 阅读(314) 评论(0) 推荐(0) 编辑
摘要:首先注意在页面标签中声明好编码格式一般来说,客户端向服务器端传递数据都是通过request(要注意这个request的生命周期,下一次请求意味着另一个request,需要再次设置),可以为这个request设置一下编码格式request.setCharacterEncoding("UTF-8");注意:P1->P2->P3需要在p2和p3中都设置一遍但 request.setCharacterEncoding("UTF-8"); (Loop after forward) 则有些不同 ,需要在p1中的request设置utf-8,这点不是很理解 阅读全文
posted @ 2013-03-01 19:59 碎景 阅读(163) 评论(0) 推荐(0) 编辑
摘要:html的input几种type类型的内容。input的button类型:普通按钮,当这个按钮被点击时,就会调用属性onclick指定的函数;在使用这个按钮时,一般配合使用value指定在它上面显示的文字,用onclick指定一个函数,一般为JavaScript的一个事件。 这三个按钮有下面共同的属性:(1)name 指定按钮名称(2)value 指定按钮表面显示的文字(3)onclick 指定单击按钮后要调用的函数(4)onfocus 指定按钮接受焦点时要调用的函数提交到服务器的按钮,当这个按钮被点击时,就会连接到表单form属性action指定的url地址。 重置按钮,单击该按钮可将表单内 阅读全文
posted @ 2013-03-01 19:57 碎景 阅读(790) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示