- 博客(66)
- 资源 (1)
- 收藏
- 关注
原创 java集合的底层如何实现的,源码分析(未完成)
有次面试被问到了,想着都应该是数组,不太确定,只是确定的知道Map的是Entry数组链表形式。ArrayList、HashSet、HashMap底层的数据怎么组织的??ArrayList:数据是放在一个Object数组里;HashSet:数据是放在一个HashMap里;HashMap:数据是放在一个Entry数组里;源码分析:
2016-03-26 00:05:24
919
原创 java.util.concurrent包下的类原理(未完成)
抽时间学习总结下,分析下期中的原理实现。如果你都不知道,平时用到的时候怎么会想到?1、并发类抽象类:AbstractExecutorService、ArrayBlockingQueue并发类:ConcurrentHashMap、ConcurrentLinkedQueue、ConcurrentSkipListMap、ConcurrentSkipListSetCopyO
2016-03-25 23:59:14
818
原创 java基础知识点总结
1、static 关键字怎么用?修饰变量,修饰方法,修饰类(静态内部类),静态块,静态导入包静态导入的语法是:import static 包名.类名.静态成员变量;import static 包名.类名.静态成员函数;注意导入的是成员变量和方法名。引用时不用再写类名。静态导入包缺点:过度地使用静态导入会在一定程度上降低代码的可读性。
2016-03-25 23:06:00
515
原创 jvm系列堆和栈的区别(一)
Java把内存分成两种,一种叫做栈内存,一种叫做堆内存在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配。当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间,该内存空间可以立刻被另作他用。堆内存用于存放由new创建的对象和数组。在堆中分配的内存,由java虚拟机自动垃圾回收器来管
2016-03-25 18:00:13
2063
1
原创 java并发编程synchronized、volatile关键字及ReentrantLock类总结
1、java为解决并发问题引入的关键字synchronized, volatile ,怎么用?synchronized 修饰的方法 或者 代码块(保证可见性和排他性);synchronized修饰静态方法时(或方法时)同步的是这个对象类级别的;synchronized修饰方法时,同步的是对象实例级别的volatile修饰变量(仅保证可见性);每个线程运行时都有一个线程栈,线程栈
2016-03-25 17:36:29
2370
原创 redis学习总结(未完成)
如果简单地比较Redis与Memcached的区别,大多数都会得到以下观点:1 Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,zset,hash等数据结构的存储。2 Redis支持数据的备份,即master-slave模式的数据备份。3 Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。在Redi
2016-03-23 16:36:12
627
原创 ibatis 中 $与#的区别
1、#可以进行与编译,进行类型匹配,#用于变量替换;对于变量部分,应该用#,这样可以有效的防止sql注入,#都是用到了preparestatement,这样对效率有一定的提升。2、而$不进行数据类型匹配,$ 的作用实际上是字符串拼接,对于非变量部分,只能使用$。
2016-03-22 11:31:21
486
原创 oracle的索引类型及sql优化总结(一)
从大的方面来说,一般从业务上和技术上(oracle索引)来优化。本文重点总结下oracle技术层面的优化:索引类型的选择,索引列的选择,表之间的联结类型对于实现最优性能有着很高的重要性。从算法维度索引广义可以分为:B-树索引(oracle索引所使用的结构)、位图索引、索引组织表。 位图索引:适用于不经常进行更新,插入,删除的列。它更适合具有较少唯一值的静态列。(例如
2016-03-13 16:13:38
3339
转载 淘宝大秒系统设计详解
一些数据大家还记得2013年的小米秒杀吗?三款小米手机各11万台开卖,走的都是大秒系统,3分钟后成为双十一第一家也是最快破亿的旗舰店。经过日志统计,前端系统双11峰值有效请求约60w以上的QPS ,而后端cache的集群峰值近2000w/s、单机也近30w/s,但到真正的写时流量要小很多了,当时最高下单减库存tps是红米创造,达到1500/s。热点隔离秒杀系统设计的第一个原则就是将这种
2016-03-11 14:51:28
2398
原创 oracle表联接(三)
oracle表联接类型:循环嵌套联接、散列联接、排序-合并联接、笛卡尔积联接。在确定sql语句的执行计划的时候,优化器必须做出几个关键的选择: 首先,要确定查询中所用到的每个表最合适的访问方法。基本就2个选择:索引扫描或全表扫描。 其次,一旦选定了访问方法,就必须选定联结方法。表将会被逐对进行联结,前一次的联结结果的数据行源被用来与下一个表进行联结,直到所有
2016-03-10 01:06:31
525
原创 spring bean生命周期
项目中把bean交由spring ioc容器来管理,bean的整个加载初始化销毁,整个生命周期都有spring ioc容器来管理; spring中的管理角色:BeanFactory和ApplicationContext; ApplicationContext除了像BeanFactory那样维护容器外,还提供了丰富的框架功能,如Bean消息,事件机制。 面试中经常
2016-03-09 23:48:24
594
原创 https通讯原理、加密算法、证书整理总结
前段时间对接了好多外部接口,很多都是https的,还有证书,还有一些加密的。对这块不是太了解,就查资料整理总结实践下。消化掉的知识,才是真正属于自己的。1、https HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的http通道,简单讲是HTTP的安全版。http传输都是明文没有加
2016-03-04 18:35:10
8408
原创 oracle索引分类及大表分页查询优化(四)
大数据表分页查询优化:最近在做迁移数据,一个表有150万条数据,分页查询出来,然后多线程结构化数据,插入新表中。跑了14个小时,只迁移了一半左右。一看日志时间都花费在了查询数据上。刚开始执行时,每分钟迁移有8000条左右,到早上过来看,每分钟只有500条左右。 执行比较慢的原sql: select * from (select row_.*, rownum rownum
2016-03-03 11:54:01
3792
1
原创 hbase全表遍历的数据总是少很多
问题描述:hbase库数据迁移为结构化数据,全表遍历时,总是少很多数据;遍历ResultScan正常结束,没有错误,每次都少了近三分之二的数据;使用的hbase版本:hbase-client-1.0.0, hbase-protocol-1.0.0全表遍历少数据的原因:使用了ResultScan的iterator的hasNext方法2次(每次遍历)经过测试:java中的hasNext方法
2016-02-26 17:22:05
2838
原创 oracle数据库知识点整理
1、行列转换2、一条sql语句取出整个树形结构 pid = 0 是根节点的数据,id 主键,pid父id; select * from rc_area start with pid = 0 connect by prior id = pid3、number(p, s):有效数字和精度 number(p,s) p: 1---38
2016-02-18 17:37:07
509
原创 oracle number数据类型的精度
1、number(p,s) p: 1---38 s: -84---127 a、s > 0 (精确到小数点右边 s 位,并四舍五入 。然后检验有效数位是否 例如:number(5,2) 有效数字最多是5位,保留小数点后2位; 123.45 -- 123.45 123 -- 123.00 1.2356
2016-02-15 17:57:19
8199
原创 Map的底层结构及分析
1、Map接口的相关实现类:2、HashMap的底层结构实际上是“链表散列”,即数组和链表的结合体。从上图可以看出,HashMap底层就是一个数组结构(Entry[] table),数组中的每一项又是一个链表。源代码如下:transient Entry[] table; static class Entry implements Map.Entry {
2016-02-02 16:22:56
31837
2
原创 初次体验完美easy ui 1.4.4
几年前使用的extjs,感觉javascript表现的UI界面风格好美,好喜欢。就是写起来比较麻烦点。纯javascript面向对象控件来表现UI; 今天使用jquery easy ui 1.4.4 感觉比extjs用起来更好用点,表现的界面风格类似,也一样的完美,而且不用写那么多js控件的代码了,只是感觉到了html的存在,好方便。 中文网:http://www.
2016-01-27 23:19:42
2173
转载 使用spring2.5注释驱动Ioc功能
注释配置相对于 XML 配置具有很多的优势:它可以充分利用 Java 的反射机制获取类结构信息,这些信息可以有效减少配置的工作。如使用 JPA 注释配置 ORM 映射时,我们就不需要指定 PO 的属性名、类型等信息,如果关系表字段和 PO 属性名、类型都一致,您甚至无需编写任务属性映射信息——因为这些信息都可以通过 Java 反射机制获取。 注释和 Java 代码位于一
2010-04-28 15:21:00
433
原创 EJB/JPA 继承详解(转)
因为关系数据库的表之间不存在继承关系,Entity 提供三种基本的继承映射策略:每个类分层结构一张表(table per class hierarchy)每个子类一张表(table per subclass)每个具体类一张表(table per concrete class)一、每个类分层结构一张表(table per class hierarchy)
2010-04-27 09:29:00
374
转载 javascript继承
Javascript继承 一直想对Javascript再次做一些总结,正好最近自己写了一个小型Js UI库,总结了一下Js的继承机制,在网上也看了一些前辈们博客里的总结,感觉分析不是特别全面。这里仅仅是把自己的学习体会拿出来分享一下,希望对大家学习Javascript有所帮助。 Javascript本身是从Perl语言的语法演变而来的,本质上是脚本语言,随着版本的更新逐渐加
2010-04-02 16:45:00
340
原创 设计模式之-Bridge-- 桥接模式
Bridge模式也叫桥接模式,是由GoF提出的23种软件设计模式的一种。Bridge模式在调用方与被调用方之间使用一个起着“桥”作用的类,用来支持类的多方向扩展。Bridge模式的概念Bridge模式是构造型的设计模式之一。Bridge模式基于类的最小设计原则,通过使用封装,聚合以及继承等行为来让不同的类承担不同的责任。它的主要特点是把抽象(abstraction)与行为实现(
2010-01-03 11:43:00
623
原创 设计模式之-Decorator--装饰器模式
Decorator模式也叫装饰模式,是由GoF提出的23种软件设计模式的一种。Decorator模式是构造型的设计模式之一,它为类的实例对象动态追加附加功能,就好像装饰了对象的行为。Decorator模式是构造型的设计模式之一,它可以动态地改变一个对象方法的行为。 Component原有类的接口ConcreteComponent功能实现类。Component的具
2010-01-03 11:08:00
423
原创 设计模式之适配器-Adapter--适配器模式
Adapter模式也叫适配器模式,是由GoF提出的23种设计模式的一种。Adapter模式是构造型模式之一,通过Adapter模式,可以改变已有类(或外部类)的接口形式。Adapter模式的概念 在大规模的系统开发过程中,我们常常碰到诸如以下这些情况:我们需要实现某些功能,这些功能已有还不太成熟的一个或多个外部组件,如果我们自己重新开发这些功能会花
2010-01-03 10:29:00
474
原创 ognl的使用
OGNL的全称是Object Graph Navigation Language(对象图导航语言),它是一种强大的表达式语言,让你通过简单一致的表达式语法来读取和设置Java对象的属性值,调用对象的方法,遍历整个对象的结构图,实现字段类型转换等功能。为什么使用OGNL 相对于其它的表达式语言,OGNL的功能更为强大,它提供了很多高级而必需的特性,例如强大的类型转换功能、静态或
2010-01-03 08:51:00
766
原创 Log4j的简介和使用
1、Log4j是什么? Log4j可以帮助调试(有时候debug是发挥不了作 用的)和分析,要下载和了解更详细的内容,还是访问其官方网站吧: http://jakarta.apache.org/log4j。2、Log4j的概念 Log4j中有三个主要的组件,它们分别是 L
2009-12-23 22:28:00
379
转载 数据库视图(oracle)
使用数据库视图通常出于以下两个目的:1。降低操作复杂度;视图是预编译的查询操作,一次定义,之后可快速调用;2。提高系统安全。视图作为数据库对象,可以将其权限独立出来赋给用户,可避免用户对基表的盲目危险操作,同时也可屏蔽一部分私密的属性列。定义语句: CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW YOUR_VIEW_NAME
2009-12-23 21:58:00
499
转载 struts2__ognl
1. Struts 2 标签库以 OGNL 表达式为基础,对集合、对象的访问功能更强了。Struts 2 的标签用统一的前缀,一般为"s",不再像 Struts1 那样分、、 等多个命名空间的标签。如果在JSP 2.0 之前用过 JSTL,也就知道什么是 OGNL 表达式的。2. Struts2 提供了很多 Struts1标签没有的东西,如日历、树型控件、Tab页等;同时
2009-12-23 10:01:00
563
转载 优秀程序员的十个习惯
在这个世界上,有数百万的人热衷于软件开发,他们有很多名字,如:软件工程师(Software Engineer),程序员(Programmer),编码人(Coder),开发人员(Developer)。经过一段时间后,这些人也许能够成为一个优秀的编码人员,他们会非常熟悉如何用计算机语言来完成自己的工作。但是,如果你要成为一个优秀的程序员,你还可以需要有几件事你需要注意,如果你能让下面十个条目成
2009-12-19 08:53:00
355
转载 程序员需要具备的基本技能
软件开发是一个跨度很大的技术工作,在语言方面,有C,C++,Java,Ruby等等等等,在环境方面,又分嵌入式,桌面系统,企业级,WEB,基础系统,或是科学研究。但是,不管是什么的情况,总是有一些通用的基本职业技能。这些最基本的职业技能通常决定了一个程序员的级别,能否用好这些技能,直接关系到了程序员的职业生涯。很多程序新手也是因为缺少、达不到或是不熟悉在这些基本技能,所以,他们需要有老手带,需
2009-12-19 08:47:00
374
转载 公司招聘项目经理的一道面试题
题目:在一个农场里有农场主和奶牛,农场主每天为奶牛挤奶;现在把农场主和奶牛分别看作是一个对象,你认为应该把挤奶这个属性分配农场主还是分配给奶牛比较合理?首先这是一道关于面向对象编程的问题,主要考察你对面向对象的理解程度,所以应该用面向对象的思维方式来思考这个问题观点不外乎有以下两种:观点1:分配给农场主;观点2:分配给奶牛;首先我们来看第一种观点:这种观点认为“挤奶”
2009-11-17 13:34:00
717
转载 UML用例图中包含(include)、扩展(extend)和泛化(generalization)三种关系详解
共性:都是从现有的用例中抽取出公共的那部分信息,作为一个单独的用例,然后通后过不同的方法来重用这个公共的用例,以减少模型维护的工作量。 1、包含(include) 包含关系:使用包含(Inclusion)用例来封装一组跨越多个用例的相似动作(行为片断),以便多个基(Base)用例复用。基用例控制与包含用例的 关系,以及被包含
2009-11-17 09:33:00
683
转载 struts2 优点
上午struts2有以下优点:1 > Struts2没有像struts1那样跟Servlet API和strutsAPI有着紧密的耦合,Struts2的应用可以不依赖于Servlet API和struts API。Struts2的这种设计属于无侵入式设计,而Struts1却属于侵入式设计。public class OrderListAction extends Actio
2009-11-02 18:38:00
3384
3
转载 jquery 总结
jquery总结一、简介 1.1、概述 随着WEB2.0及ajax思想在互联网上的快速发展传播,陆续出现了一些优秀的Js框架,其中比较著名的有Prototype、YUI、jQuery、mootools、Bindows以及国内的JSVM框架等,通过将这些JS框架应用到我们的项目中能够使程序员从设计和书写繁杂的JS应用中解脱出来,将关注点转向功能需求而非实现细节上,从而提高项
2009-11-02 16:30:00
466
转载 一个计算机专业学生几年的Java编程经验
本文来源于 冰山上的播客 http://xinsync.xju.edu.cn , 原文地址:http://xinsync.xju.edu.cn/index.php/archives/3820想来学习Java也有两个年头了,永远不敢说多么精通,但也想谈谈自己的感受,写给软件学院的同仁们,帮助大家在技术的道路上少一点弯路。说得伟大一点是希望大家为软件学院争气,其实最主要的还是大家自身的进步
2009-10-20 20:18:00
1035
原创 jQuery-1.3.2学习笔记
1 基础HTML :一个人的裸体,是一个人的物质基础,是一个结构。CSS :一个人的漂亮外衣,使一个人看起来不是那么原始,修饰了一个人。JavaScript :一个人的灵魂,使一个人具备了生命,让它动起来了。2 jQuery的基础2.1 jQuery对象引用jQuery = window.jQuery = window.$ = function( selector, context ) {
2009-10-10 09:33:00
710
转载 jquery1.2.6 源码分析
jQuery是一个非常优秀的JS库,与Prototype,YUI,Mootools等众多的Js类库相比,它剑走偏锋,从web开发的实用角度出发,抛除了其它Lib中一些中看但不实用的东西,为开发者提供了优美短小而精悍的类库。其使用简单,文档丰富,而且性能高效,能极大地提高web系统的开发效率。因此可以说是web应用开发中最佳的Js辅助类库之一。大部分开发者正在抛弃Prototype,而选择
2009-09-11 00:21:00
591
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人