- 博客(22)
- 收藏
- 关注
转载 java四种引用类型
⑴强引用(StrongReference) 强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足的问题。 ps:强引用其实也就是我们平时A a = new A()这个意思。⑵软引用(SoftReference) 如果一个对象只具有软引
2016-08-31 22:28:11
288
原创 网页桌面共享 短连接 cdn p2p zookeeper
http://collabedit.com/tgaa2使用collabedit引发的思考。1.为啥链接这么短? 2.浏览器,http协议为什么不能够进行长连接那么怎么做到桌面共享? 3.数据的持久化。短连接短链接,通俗来说,就是将长的URL网址,通过程序计算等方式,转换为简短的网址字符串。 网址采用了那种很短的链接?而且真正的地址栏却是很长的链接? 那么我有一个疑问? 1.为啥要用短连接
2016-08-27 16:36:03
1295
原创 java 装箱拆箱
装箱就是 自动将基本数据类型转换为包装器类型;拆箱就是 自动将包装器类型转换为基本数据类型。 下表是基本数据类型对应的包装器类型:int(4字节) Integerbyte(1字节) Byteshort(2字节) Shortlong(8字节) Longfloat(4字节) Floatdouble(8字节) Doublechar(2字节) Characterboo
2016-08-27 16:00:31
484
原创 小题目
java 面试题抽象类和接口的区别 抽象类中可以有普通成员变量,接口中没有普通成员变量。抽象类和接口中都可以包含静态成员常量。一个类可以实现多个接口,但只能继承一个抽象类抽象类中可以包含非抽象的普通方法,接口中的方法必须是抽象的,不能有非抽象的普通方法。1.抽象类可以有构造方法,接口中不能有构造方法。 2.抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象
2016-08-26 16:17:33
678
原创 Java中普通代码块,构造代码块,静态代码块区别及代码示例
//执行顺序:(优先级从高到低。)静态代码块>mian方法>构造代码块>构造方法。//使用helloB类时 1 开始进行类装载的初始化步骤(先初始化父类,再初始化子类(初始化执行static静态代码块,执行一次) //2 普通代码块(在方法中出现的{}的称为普通代码块 ) 同语句一样,按顺序执行代码块和语句. //3 new对象的时候 调用构造代码块(接在类中定义且没有加static关键字
2016-08-26 16:08:33
498
原创 Iterater
Iterater和ListIterator之间有什么区别? (1)我们可以使用Iterator来遍历Set和List集合,而ListIterator只能遍历List。 (2)Iterator只可以向前遍历,而LIstIterator可以双向遍历。 (3)ListIterator从Iterator接口继承,然后添加了一些额外的功能,比如添加一个元素、替换一个元素、获取前面或后面元素的索引位置。
2016-08-26 15:52:30
528
转载 Comparator与Comparable的异同
相同点它们都是Java的一个接口,都是用来实现集合中元素的比较、排序。不同 Comparator位于java.util下; Comparable位于java.lang下;总结两种方法各有优劣, 用Comparable 简单, 只要实现Comparable 接口的对象直接就成为一个可以比较的对象, 但是需要修改源代码, 用Comparator 的好处是不需要修改源代码, 而是另外实现一个比较
2016-08-23 00:06:07
248
原创 map源码解析
HashMap数据结构:由hash表构成 源码解析 filed table:数组结构元素由hash值区分; entrySet:每个数组元素所存的链表(key,value,hash,next) size:table长度 loadFactor:负载因子 (也是构造函数的参数),根据该变量得到阈值,进行翻倍扩容 threshold: 扩容的阈值,一般为容量*负载因子 modCount:根
2016-08-22 18:07:59
515
原创 List 源码解析
ListArrayList和LinkedList都继承自abstractList 都是线程不安全的。abstractList 提供checkForComodification方法(next,add,remove方法中都有调用此方法),在单线程中,遍历的时候删除List(for循环和增强for循环都不是正确做法,迭代器遍历才是正确的,博客后面有例子声明)。当两个线程有冲突时,(当一个线程使用迭代器遍
2016-08-22 17:01:49
603
原创 hosts文件
这里需要讲解下这个hosts文件:hosts文件是没有扩展名的系统文件,里面的内容时间域名网址和ip联系起来,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统会再将网址提交DNS域名解析服务器进行IP地址的解析。hosts文件中默认 127.0.0.1 localhost 。文件中的
2016-07-26 00:47:35
429
原创 jdk jre java虚拟机 GCjava回收机制
jdk 和jrejdk (Java Development Kit) java开发工具包,包含jre,java开发工具(java编译器,调试器),java的一些类库。 jdk的文件夹下包含jre,jre下的bin 可以认为就是bin,lib是jvm工作时所需要的类库。jre(java runtime environment) 是java程序的运行环境,j
2016-07-26 00:44:55
487
原创 Spring管理filter
Spring管理filter在使用spring容器的web应用中,业务对象间的依赖关系都可以用context.xml文件来配置,并且由spring容器来负责依赖对象 的创建。如果要在filter或者servlet中使用spring容器管理业务对象,通常需要使用WebApplicationContextUtils.getRequiredWebApplicationContext(g
2016-07-18 00:32:07
430
原创 设计用户系统
系统设计1.scenario 场景:用户规模功能的需求量DUA(日用户活跃数量)QPS (每秒查询率)衡量标准:规定时间内所处理流量多少 100M*0.1/84600(1天86400秒)~100 0.1–平均每天每个用户操作次数 QPS为100 peak(系统操作高峰期值) average2.Service3.Storagemysql 等SQL数据库Mong
2016-07-17 11:03:19
565
原创 Undo Redo log实现事务
undo logUndo log 是为了实现事务的原子性。还用Undo Log来实现多版本并发控制(简称:MVCC)。事务的原子性 事务的所有操作,要么全部完成,要不都不做,不能只做一半。如果在执行的过程中发生了错误,要回到事务开始时的状态,所有的操作都要回滚。原理 Undo Log的原理很简单,为了满足事务的原子性,在操作任何数据之前,首先将数据备份到一个地方(这个存储数据备份的地方称为
2016-07-16 21:46:30
3000
原创 JVM java类的装载、链接、初始化
.java文件经过最初的编译成为.class字节码,成为机器识别的二进制语言。 .class文件由JVM解释成所对应不同的硬件平台操作系统能够执行的代码。 (编译器是与平台无关,编译生成的中间码也与平台无关(一次编译,到处运行),中间码再由解释器解释执行,解释器是与平台相关的,也就是不同的平台需要不同的解释器.java程序也通过运行在不同jvm上实现跨平台)解释有以下的三个步骤装载:通过cl
2016-07-10 15:43:31
1382
原创 hbase hive
用hbase做数据库,但由于hbase没有类sql查询方式,所以操作和计算数据非常不方便,于是整合hive,让hive支撑在hbase数据库层面 的 hql查询.hive也即 做数据仓库
2016-07-08 09:35:46
438
原创 metaq
metaq 笔记MetaQ是一款分布式、队列模型的消息中间件1.metaq的特点支持严格的消息顺序 支持Topic与Queue两种模式 亿级消息堆积能力 比较友好的分布式特性 同时支持Push与Pull方式消费消息2.几个概念Producer 产生消息,发送(push)到metaq服务器中。 (ProducerGroup 生产者集群,一组group下的生产者生产一类信息,相同发送逻
2016-07-06 13:04:49
4308
2
原创 autoConfig
很多框架支持在运行时刻替换配置文件中的placeholder占位符。 Webx,Spring,log4j 就有这个功能。但他们支持占位符替换的配置不同。Webx通过中心配置服务器(Config Sever),Spring通过PropertyPlaceholderConfigurer类来配置,而Log4j则需要在DomConfigurator中把参数传进去。着重说下 Webx 的 auto-confi
2016-07-04 21:02:56
775
原创 网站的架构演进
一个小型的网站系统,一般是在服务器上面搭建了相应的开发环境,DB和WEB Server都在一台机器上运行,之间通过jdbc来进行连接访问。 随着网站的访问量增加,服务器的负载压力也增大。那么就将数据库和应用分开,放到两个服务器上面。应用服务器的优化为了缓解应用服务器的压力,也为了保证一台服务器down机,还有别的服务器运行程序,应用服务器由单机变为了服务器集群。它们之间没有任何交互。都是独立的向
2016-07-03 19:14:26
443
原创 数据库和数据仓库
数据库和数据仓库数据库和数据仓库数据库是事务系统的数据平台,数据库中存储了各项交易的记录。 数据仓库是分析系统的数据平台,从事务系统中获取数据,进行一系列的数据汇总、计算、分析。将分析得到的数据存到数据仓库中。 比如,在当当上进行一笔买书交易,交易记录就存在数据库中,那么对这些数据(购买量)进行分析可以得到书类在地区的受欢迎程度,从而根据这些分析数据结果,将书以合适的数量分配在各个地区的仓库。主要
2016-07-03 01:00:18
685
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人