`
iamzhongyong
  • 浏览: 805313 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
文章列表
在java中,有非常丰富的数据结构,可能是因为大多数的软件系统都是围绕数据来进行的,那自然而然也就会导致编程原因围绕不同的数据结构来做处理。    ​ PS:栈是后进先出。         
     众所周知,java是编译型的语言,写的是java文件,最后运行的是class文件,class文件是运行在JVM之中的,这时候就有一个问题,JVM如何装载class文件的?是通过ClassLoader来进行的,这里做一下笔记,因为发现原作者写的很好《深入分析java web 技术内幕》。 ClassLoader的结构分析     ClassLoader是一个抽象类,他有很多子类,JVM默认有几个实现类,当然我们也可以自己继承ClassLoader。     1、defineClass:将byte字节转换为JVM能够识别的Class对象,这样就意味着可以是class文件也可是是网络 ...
啥是事务? 有一组操作组成的可靠的独立的工作单元。   ACID是咋回事? A(原子性)事务的原子操作单元,对数据的修改,要么全部执行,要么全部不执行; C(一致性)在事务开始和完成时,数据必须保持一致状态,相关 ...
1、说到编码,最大的问题就是乱码了,为啥会有乱码呢 ? 因为字符在编码和解码的时候,用的编码字典不一致,从而导致了乱码,常见的编码有ASCII、GBK、GB2312、UTF-8、UTF-16等。   2、为啥需要编码呢? 因为计算机的存储是二进制的,也就是01​010这种形式的,这样一些中文、法文、俄文等,就需要编码解码才可以达到效果。   3、java中数据类型的转换是啥? bit(位)、byte(字节)、char(字符) 1byte == 8bit      一位二进制称为一个bit,一个byte的取值范围是-128~127 1char == 2byte   char是字 ...
模板方法模式是一种比较简单的设计模式,这里写了一个例子出来。 1、基本的模板方法实现 2、模板方法中钩子方法的实现 3、模板方法中回调的处理(带有回调功能的模板方法) ​
之前很早的时候了解过这本书,但是发现很多都是概念性的东西,没有意向看。 后来在微博上看到一个我比较欣赏的架构师分享这本书,说是基本上涵盖了他过去十来年的一些点,于是打算买回来看了看。发现还是挺不错的,后面的案例有的过于宽泛,但是整体还是挺不错的。   架构一词,比较飘渺,隐藏在代码的背后,似有似无。大家对于架构师这个职位也褒贬不一。大型网站不是设计出来的,而是逐步发展演化过来的。   什么是架构? 最高层次的规划,难以改变的决定,这些规划和决定奠定了事物未来发展的方向和最终的蓝图。  
最开始的时候,理解的ThreadLocal,我的理解是这样的: ThreadLocal<Thread,Map<k,v>> K的话是线程,V的话是线程的副本,是一个Map,里面可以方式多个变量的副本,后来发现是错的。 今天翻了一下代码,画了一个类图。   关于ThreadLocalMap.table这个属性,类型是Entry[] 用于真正存放数据的Entry,继承于WeakReference。想想ThreadLocal的使用场景,用“空间换时间”,若空间全部被强应用,则很容易造成内存泄露(使用结束后没有显示调用remove方法)。采用弱引用,在关键时刻,或在调用 ...
很早的时候,转发过一篇单例模式的文章:http://iamzhongyong.iteye.com/blog/1539642  最近又翻了一本设计模式的书,然后发现单例其实也简单也复杂,于是就打算把代码敲一下,保存下来。 ------------------------------------------------------------------------------------------------------  
​这篇文章想写很长时间了,一直没下笔,今天终于空了一下,打算整理一下。 最初的时候源自于去年的那个“项目经理经验总结”http://iamzhongyong.iteye.com/blog/1977551  工作几年来,在项目中做过纯开发,也做过项目经理,于是 ...
今天在项目中写代码,遇到两个Spring的问题,记录一下。再一次看到了spring的灵活之处。 1、@Autowired没有生效 打算用unitils来搞一下单元测试,于是搞了一个spring的xml文件,里面配置了几个Bean,然后用unitils的注解搞了(为啥用这个?主要是考虑少写点代码,以前是直接用ClassPath***ApplicationContext来搞的),但是发现有的bean里面引用了别的bean,是通过Autowired来搞的,没有写属性的set方法,但是在实际运行中,抛出来空指针。 A、刚开始以为是这个框架的问题,换了一个框架,问题还是一样,于是有还原回去了 B ...
     前段时间看了《六顶思考帽》,一直想写的笔记,但是又想换种形式,于是这次用了PPT来做,发现自己做PPT的水平还处于比较业余的水平中啊。            
最近在看Activiti的源代码,发现是基于命令模式进行的开发,所以对于Command模式做了个了解。 什么是命令模式? 这个随便翻开一本模式的书,都有介绍,这里就不再冗余了。画一个Command的图,然后加一个例子吧,方法和类的命名加入了自己的理解。 1、模式的根本是把“行为的请求者”和“行为的处理者”分开,实现解耦; 2、实现Command的ConcreteCommand,有时候要跟进实际情况保存额外的状态信息,例如上下文等; 3、大多数请求响应的处理,可以使用Command模式来扩展; 4、缺点的话,就是如果涉及的命令很多的话,本来简单的命令几行代码的事情,但是利用了这个模式 ...
java中的本地缓存,工作后陆续用到,一直想写,一直无从下手,最近又涉及到这方面的问题了,梳理了一下。自己构造单例、guava、ehcache基本上涵盖了目前的大多数行为了。   为什么要有本地缓存? 在系统中,有些数据,数据量小,但是访问十分频繁(例如国家标准行政区域数据),针对这种场景,需要将数据搞到应用的本地缓存中,以提升系统的访问效率,减少无谓的数据库访问(数据库访问占用数据库连接,同时网络消耗比较大),但是有一点需要注意,就是缓存的占用空间以及缓存的失效策略。   为什么是本地缓存,而不是分布式的集群缓存?          目前的数据,大多是业务无关的小数据缓存,没有 ...
这个EventBus是guava中比较给力的一个类,从字面上看是事件总线,解决了传统的观察这模式的问题,使用比较灵活方便。最近打算搞一个轻量级的事件驱动引擎,重点参照了这个类EventBus,如果是内存级别的事件分发或者MQ,推荐直接用EventBus。   关于EventBus中的几个问题? 1、  事件定义:任意的对象即可; 2、  事件处理器的注册:事件处理的方法,添加注解即可,然后事件处理器的对象注册到总线中,总线维护一个事件和事件处理器的关联关系,在内存中; 3、  事件的处理过程:同步处理和异步处理,事件提交之后,事件队列维护在本地缓存,同步的方式直接当前线程去执行,异 ...
最近开始反观OO以及设计的原则,发现之前理解的确实比较浅显,翻了一些书,然后做一下比较吧。  ​面向对象编程(OO)的核心是啥? 看了一些文章之后,应该是四个关键字,抽象、封装、继承、多态,后面三个环环相扣 ...
Global site tag (gtag.js) - Google Analytics