自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(99)
  • 收藏
  • 关注

博客地址变更

从此以后,我的博客均在我的个人博客:www.zhangdongxuan.com 进行发布,用以记录我新的轨迹,这是一个新的开始,或许我要换一种新的语言,或者会有一个更好的成长空间...

2015-11-08 21:32:35 145

原创 同步访问共享的可变数据

如果对共享的可变数据不能同步访问,其后果是非常可怕的,即使这个变量是原子可读写的。 在一个线程中终止另一个线程时使用Thread.stop方法是不安全,使用它会遭到数据破坏。通常的做法是轮询一个boolean域:public class TestCode { private static boolean stopRequested=false; public st...

2015-10-13 15:39:33 168

原创 框架设计之注解

       之前实习参与一个创新性的框架的开发工作,之前就有要开发一个框架的想法但是却一直没有付诸行动,这个项目也暴漏出了自己很多的不足,其中注解就是我一个很大的盲点,记得第一次使用注解是在使用Juint测试框架的时候使用@Test注解编写测试代码,当时就感觉好高端,竟然可以脱离main函数运行程序,之后使用Spring MVC中的各种注解像@Controller、@AutoWire、@Re...

2015-10-12 16:12:31 151

原创 Kafka-消息中间件

                        Kafka       一个高吞吐量的(high-throughput)分布式消息系统Features  Fast    A single Kafka broker can handle hundreds of megabytes(兆) of reads and writes per second   from thousands...

2015-09-14 21:41:56 618

最近的感想

最近看了一些书,加深了对程序设计的理解,发现了解计算机的底层是多么的重要,对于一些错过的事情我表示惋惜,当时也要加倍的学习。当自己被自己的努力所感动,全世界都会被你让路,好久没有这种感觉了。...

2015-08-23 20:57:14 79

设计模式之工厂方法模式一

            简单工厂模式虽然简单,但存在一个很严重的问题。当系统中需要引入新产品时,由于静态工厂方法通过所传入参数的不同来创建不同的产品,这必定要修改工厂类的源代码,将违背“开闭原则”,如何实现增加新产品而不影响已有代码?这就引出了我要写的这篇博客---工厂方法模式                     场景:现在需要生产不同的电子设备,其中的产品有笔记本,手机。其中的生...

2015-06-23 21:39:55 102

设计模式之单例模式三(更好的实现方式)

          大学之道,在明明德,在亲民,在止于至善。 《礼记  大学》        今天考完了安卓这门课,100分钟的考试50分钟就交卷离开考场了,回想一下大学生活就这么没了,虽然小菜现在还是大三但是大四学校安排是实习到下年四月份,学校里面已经没有了课程。想想自己的青春就这么没了,也是有点伤感呢。。最近在看《研读设计模式》这本书感觉写的很不错,通俗易懂哈。         ...

2015-06-20 01:27:20 84

原创 Android如何解决ANR

最近小菜要考试了,小菜在大二上学期的时候对安卓做过一些编程,所以对学校开设的这门课也是情有独钟,明天晚上就要考试安卓了,小菜还是淡定的写篇博客压压惊           以前在写小黄鸡音乐播放器的时候,需要在后台获取手机上存储的音乐文件的信息,有时候由于处理不当就会被安卓系统处理提示应用不反应的提示。。。           anr也就是application not response...

2015-06-18 22:22:59 127

原创 Android知识总结(二)

明天要考试了,速速总结如下 1、Activity的启动模式       standard:每次调用Activity的时候都创建一个(可以有多个相同的实例,也允许多个相同Activity叠加。)       singleTop:可以有多个实例,但是不允许多个相同Activity叠加。即,如果Activity在栈顶的时候,启动相同的Activity,不会创建新的实例,而会调用其on...

2015-06-18 09:44:45 76

Android知识总结(一)

1、The difference of Dalvik and JVM?**          A、编译后的文件格式不一样           Dalvik是 .dex--->.odex。         JVM是  .class--->.jar     B、基于的架构不一样(存储方式)         Dalvik是基于寄存器的,是在cpu内部的,利用总线,效率会更高       ...

2015-06-18 00:26:40 93

写个web容器是不是很酷?

哈,本人现在大三还在为了学业奋斗,这些天很累,好多实验,也快要考试了,自己还负责的web重构和app开发任务还是比较重的。小菜小菜在这些时间里面进步也是蛮多的,为什么要写web服务器呢?不仅仅是因为比较酷哈,这也是我们的课程要求撒。当然要写就要写的比较好所以自己对这个实验也是蛮有兴趣的 。      服务器能够接受来自浏览器发来的的get的静态文件的请求,服务器可以处理来自浏览器的多次请求...

2015-04-16 09:40:10 83

再次深入理解类加载机制(一)

在刚刚接触Java的时候就对类的加载体系做过一个小小的总结,但是现在感觉很有必要再次总结一下。 一、类的加载方法1、ClassLoader的的基本概念:       与c与c++编写的程序不同,Java程序并不是可执行文件,而是有许多的类文件组成,每个文件对应一个Java类。而且这些类并不是全部装进内存,而是根据程序运行的需要逐步装载。ClassLoader是JVM的实现的一部...

2015-04-08 01:07:02 160

原创 Spring MVC源码解读之请求处理

自从接触Spring开始就对这个框架比较喜欢吧,所以我最近在抽时间深入研究这个框架,因为在项目中用Spring MVC比较多所以打算深入理解一下这个框架。     首先我们要从web.xml讲起,web.xml中配置着用来进行初始化的各种配置信息:欢迎页、servlet、servlet-mapping、filter、lister、启动的记载级别等等信息。但是Spring MVC不同与Str...

2015-04-07 16:07:21 127

session在集群间的共享问题

会话跟踪我们知道在单机条件下session机制的通过cookie或者Url重写完成的,具体的做法是在用户第一请求到getSession方法时创建session并将创建cookie和jsessionid(String字段用来标识session),并把行用页面内所有的URL改写(在尾部家伙snag了jsessionid),然后发送到客户端。客户端再次请求(包含了是否允许cookie的信息),这...

2015-03-25 00:40:36 109

Struts2框架处理流程

         这几天因为在项目中曾经使用过Struts2这个神奇的框架,所以很有必要深入探究一下Struts2的处理的基本流程,如是有大一大二的在校大学生看到这篇博客我像给你的建议是在大学只做一个项目就够了,把整个项目的所有模块都掌握清楚,把所用技术的内部实现原理都给琢磨透那么你的大学就很成功了。做项目一定要做完之后停下来思考揣摩获得提升不能只停留在框架的使用上面,当然一个框架流行也自有他...

2015-03-19 02:02:53 148

Java Web中cookie和session详解

            14年的这个时候我才刚刚开始接触Java web,在这一年中也用这个技术做了不少大大小小的项目,中间也学了几个月的云计算,自己的技术水平提升多少我想这个可以从写博客的水平反映出一个人技术水平的好坏,当然我也很感激我自己可以慢慢的养写博客的习惯,记录自己轨迹。             这几天的面试使我觉得基础知识真的很重要,我几乎一口气看完了《疯狂java突破程序员基...

2015-03-18 01:26:40 171

设计模式之单例模式二(解决无序写入的问题)

                在上篇文章中我们使用了双重检验锁的方式避免懒汉式单例模式下由于多线程造成的实例被多次创建的问题,但是因为由于JVM为了使得处理器内部的运算单元能充分利用,处理器可能会对输入代码进行乱序执行(Out Of Order Execute)优化,处理器会在计算之后将乱序执行的结果进行重组,保证该结果与顺序执行的结果是一样的,但并不保证程序中各个语句计算的先后顺序与输入的...

2015-03-16 01:36:25 277

原创 深入分析HashMap存储机制 [转]

 HashMap也是我们使用非常多的Collection,它是基于哈希表的 Map 接口的实现,以key-value的形式存在。在HashMap中,key-value总是会当做一个整体来处理,系统会根据hash算法来来计算key-value的存储位置,我们总是可以通过key快速地存、取value。下面就来分析HashMap的存取。一、定义      HashMap实现了Map接口,继承...

2015-03-12 23:38:10 126

原创 设计模式之单例模式

                今天该来的面试还没来,这个店估计不会来电话了,安静下来写写博客也不错,没事翻了翻小易哥的博客甚至与大牛们之间的差距,基础知识不扎实建起来的楼再高也只能是危楼罢了,陈下心回归基础把以前学过的东西总结一下。 *********************************************************我是低调的分割线***********...

2015-03-12 01:25:24 67

原创 Shell排序

                    shell排序又称为缩小增量排序,也是一种插入排序类的算法,但在时间上有较大的改进。             Shell排序的思路是:选定一个增量的d1<length,把全部记录按此值从第一个记录起进行分组,所有相距为d1的记录作为一组。现在各组内进行插入排序,然后减小间隔,取第二个增量d2<d1;重复上述分组和排序过程,直至增量值di=...

2015-03-12 01:24:20 117

排序算法之直接插入排序

直接插入排序(straight insertion sort)的做法是:每次从无序表中取出第一个元素,把它插入到有序表的合适位置,使有序表仍然有序。第一趟比较前两个数,然后把第二个数按大小插入到有序表中; 第二趟把第三个数据与前两个数从前向后扫描,把第三个数按大小插入到有序表中;依次进行下去,进行了(n-1)趟扫描以后就完成了整个排序过程。直接插入排序属于稳定的排序,最坏时间复杂性为...

2015-03-09 23:47:09 92

Redis登录远程数据库

         公司里面的数据一部分是使用的redis这种的key-value数据库,我也正好学习一下,首先一个必须的问题就是如何在链接到远程服务器上的redis数据库。貌似应该是下面这样首先启动redis服务:[root@localhost redis]# ./bin/redis-server ./redis.conf  然后我们启动客户端,并链接的远程服务器上,其中  -...

2015-02-09 10:50:47 128

原创 Hibernate一对一映射

Hibernate一对一映射              一对一映射关系在我们的项目中用到的不是太多,但是也是值得学些的一种映射方式,框架的学习在于会用,再会用的情况下理解其思想。             比如人和一个身份证,这个关系就是一对一关系了,那么就拿这个例子举例好了。一对一关系在hibernate中有基于外键的方式和基于主键的方式。public class User {...

2014-12-18 13:49:59 89

我要设计一个可以改变大学生学习交流方式的网站

       我相信我可以为这个社会做出点什么,或许的我的作品可以给他们的生活带来一点点改变。哪怕一点点。。。。

2014-12-17 18:54:28 95

原创 SLF4J 教程【转】

引自:http://yangzb.iteye.com/blog/245844 一、介绍: 简单日记门面(simple logging Facade for java)SLF4J是为各种loging APIs提供一个简单统一的 接口,从而使得最终用户能够在部署的时候配置自己希望的loging APIs实现。 Logging API实现既可以 选择直接实现SLF4J接的loging A...

2014-12-08 19:05:52 76

原创 设计模式之从简单工厂到泛型简单工厂

设计模式之简单工厂模式到泛型工厂         简单工厂模式(Simple Factory Pattern)又称为虽然23种设计模式中并不包含简单工厂模式,但是它是一种创建性模式应用的也相对比较广泛。在简单工厂模式中,可以根据参数的不同返回不同类的实例,被创建的实例通常都有相同的父类。        以下是该模式的模式结构图:        首先我们称创建的实例为产品    ...

2014-12-06 00:05:50 700

原创 里氏代换原则

里氏代换原则        里氏代换原则通俗的解释就是任何可以出现基类(父类)的地方必须能够透明地使用子类对象。里氏代换原则是实现开闭原则的基础,在程序设计中应该尽量使用基类来对对象进行定义,在运行时在确定要使用的子类,用子类对象来替换父类对象,里氏代换原则强调面向父类编程。      但是里氏代换原则需要注意的几点有:      1、子类中的所有方法必须在父类中声明,或者说子类必...

2014-12-05 01:08:23 250

原创 UML用例建模的一些实例(二)

UML用例建模的一些实例(二)      首先感谢我的大神老师的孜孜教诲,感谢大神老师由浅入深的的讲述,每次听他的课总有一种醍醐灌顶,如饮甘饴不禁让我想到了我的另一位大神老师。要是软件学院的老师都想他们该多好,哈哈。开始贴例子。      4. 某棋牌馆管理系统的基本功能描述如下:客户可以通过 Internet 预订座位, 如果暂时没有合适的座位则允许客户进入“等候队列”,当有人退订或...

2014-12-05 00:15:11 2100

UML用例建模的一些实例(一)

1. 某酒店订房系统描述如下:(1) 顾客可以选择在线预订,也可以直接去酒店通过前台服务员预订;(2) 前台服务员可以利用系统直接在前台预订房(3) 不管采用哪种预订方式,都需要在预订时支付相应订金;(4) 前台预订可以通过现金或信用卡的形式进行订金支付,但是网上预订只能通过信用卡进行支付;(5) 利用信用卡进行支付时需要和信用卡系统进行通信;(6) 客房部经理可以随时查看客房预订情况和每日收...

2014-12-03 21:48:17 7788

原创 浅谈UML用例建模

浅谈UML用例建模         这段时间在写自己的项目,并且我认为这是一个非常宏伟的事情,我对它充满信心。它将给现在我们的学习结构发生一些变化。我最近在写文档,以前不怎么喜欢写文档,因为我不把写文档当做一件有技术含量的事情,直到这个学期学习了刘伟的课。我对文档的认识发生了质的变化,我要写文档,而且还要写得好。       用例建模是在进行业务建模过程中一个非常重要的部分,是明确系统...

2014-12-03 20:20:03 229

原创 面向对象设计原则之单一职责原则和开闭原则

面向对象设计原则之单一职责原则和开闭原则            面向对象的语言依然是现在的主流语言,面向对象的开发方式相比面向过程的开发方式可以提高系统的可维护性和可重用性,在支持可维护性的同时提高系统的可复用性是一个至关重要的问题,如何提高一个软件系统的可维护性和可复用性是面向对象设计需要解决的核心问题。因此作为面向对象的开发者很有必要去深入理解面向对象语言的设计思想。       ...

2014-12-01 22:29:16 725

原创 JVM类加载之深入探究(一)

JVM类加载之深入探究      本博客参考自http://1509221674.iteye.com/blog/2158485。     我们平时在Eclipse或者IDEA写一个java程序的时候,都是编辑器帮助我们自动完成编译,我们点击绿色按钮运行程序,整个过程遂心应手,但是你可曾想过你写的代码如何被编译?编译后的字节码又如何在运行的时候被加载到JVM(JAVA Virtual M...

2014-11-25 01:00:26 89

SSH整合

SSH整合     最近没怎么手头上没什么事情,不过我感觉也是好事,毕竟一直忙碌刀会钝的。所有最近收刀,静心磨刀,不为外面的什么各种项目所迷惑。收收心,毕竟磨刀不误砍柴工。总结下Spring整合Struts2和Hibernate。    上篇总结了Spring整合Struts2这次我把Hibernate加了进来,Spring这个非常强大的框架也是真真正正的算得上有个有艺术品位的框架...

2014-11-24 01:27:02 71

原创 Spring与Struts2整合

Spring与Struts2整合    Spring是一个非常优秀的框架可以完美的融合其他框架,框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为开发 J2EE 应用程序提供集成的框架, Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。    首先这次是Spring与Struts2的...

2014-11-23 14:10:38 72

Spring AOP之Advice

Spring AOP之Advice   前置通知:即代码被执行之前被调用   后置通知:即代码执行之后进行调用   环绕通知:即代码执行前后进行调用这两种方式的实现方式用到了动态代理的思想来完成的,总结不想说废话:首先是Spring1.x对Advice的支持: public interface IHello { public void sayHello1() ;...

2014-11-22 15:38:15 82

原创 设计模式之静态代理与动态代理

静态代理与动态代理        代理模式是java开发中用到的相对比较多的设计模式,其中的思想就是主业务和相关业务分离。所谓的代理设计就是指由一个代理主题来操作真实主题,真实主题执行具体的业务操作,而代理主题负责其他相关业务的处理。比如我们在进行删除操作的时候需要检验一下用户是否登陆,我们可以删除看成主业务,而把检验用户是否登陆看成其相关业务,那么这个活动就可以用代理模式来进行处理。...

2014-11-22 14:13:20 69

Spring之构造注入与设值注入

Spring之构造注入与设值注入        Spring学了好久了,但是一直没时间总结,总是断断续续的,这段时间打算重新做下Spring这方面的功课。      这几天闲着没事赶紧做做总结。Spring的核心就是控制反转和依赖注入,依赖注入又可以分成构造注入和设值注入,使用构造注入可以在构建对象的同时一并完成依赖关系的建立,在对象的关系比较多时为了避免使用构造注入时造成的代码量过多...

2014-11-20 23:28:16 137

原创 浅谈UML建模

浅谈UML建模         目前正在学习大神老师的软件体系结构真是让我受益颇多,其中对于UML的讲述尤为精彩。解决了我在学习软件工程基础这门课的短板。这里很感谢我的大神老师。    统一建模语言UML是英文名Unified Modeling Language,Grady Booch、 James Rumbaugh和Ivar Jacobson三人一起发明了这门语言,他们三人也被称为U...

2014-11-19 12:35:07 124

Scala之哈希表使用探究

Scala之哈希表使用探究        一个经典的程序员名言是:“如果只能用一种数据结构,那就用哈希表吧。”哈希表,更笼统的说,映射--是最灵活的数据结构之一。       下面介绍神奇的Scala对Map的使用一、构造映射    1.构造不可变映射     val scores=Map("Alice"->10,"Bob"->8,"City"->5)  ...

2014-11-18 23:47:45 198

Scala之数组

Scala数组数组是最常用的收集一系类元素的结构,其中定长数组我们使用Array,变长数组我们使用ArrayBuffer1.创建定长数组       定长数组的声明: val a =new Array[Int](10)    数组在声明的时候若对数组不给定值,    我们也可以在声明的时候给定值(值的类型要相同),Scala可以自动的进行类型和长度的判断。    例如: ...

2014-11-16 23:28:55 163

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除