04 2017 档案
摘要:finalize是在对象回收前做一些清扫工作,以及可清理栈上的内存,比如调用本地方法可能在栈上创建对象。即使对象不可达,也并不是非死不可,还是可以抢救一下,当一个对象没有与GCroot相连的引用链时,它将被第一次标记,然后判断对象是否有必要执行finalize()方法。当对象没有覆盖finalize
阅读全文
摘要:有这样一类对象:当内存空间还足够,则可保留在内存中;如果内存空间在gc之后还是非常紧张,则可抛弃这些对象。很多系统的缓存功能适合这样的场景,所以jdk1.2以后 java将引用分为了强引用、软引用、弱引用、虚引用四种,引用强度一次减弱。 强引用:类似Object a=new Object()这类,永
阅读全文
摘要:1、遇到new,getstatic,putstatic,invokestatic这4条字节码指令时,类如果没初始化就会被初始化,创建对象,读取或设置静态字段,调用静态方法。 2、反射 3、子类初始化前会先初始化父类 4、包含main方法的类,虚拟机启动时会先初始化该类 5、使用jdk的动态语言支持时
阅读全文
摘要:class.forName()会初始化类的成员(静态的),最先加载的是类的静态成员变量,然后是静态代码块。 访问常量并不会导致类的初始化,但是访问静态成员会。
阅读全文
摘要:GC(或Minor GC):收集 生命周期短的区域(Young area)。 Full GC (或Major GC):收集生命周期短的区域(Young area)和生命周期比较长的区域(Old area)对整个堆进行垃圾收集。 他们的收集算法不同,所以使用的时间也不同。 Minor GC后,Eden
阅读全文
摘要:redis主从配置很简单,只需要在slave的配置里加slaveof 192.168.0.100 6379(master的ip和端口) 如果master有密码再设置 masterauth password。主从设置以后要提高可靠性就要用到Sentinel. Sentinel主要作用有 监控。Sent
阅读全文
摘要:当虚拟机遇到一条new指令以后,首先会去检测这个指令的参数能否在常量池中定位到一个类的符号引用,并检测这个类是否被加载、解析、初始化过,没有就先去加载类。 对象创建在堆划分空间可用指针碰撞(使用过的内存放一边未使用的放一边)和空闲列表,划分空间时可能会出现线程不安全的情况#,所以分配内存的时候采用
阅读全文
摘要:贫血模型:领域对象里只有get和set方法,或者包含少量的CRUD方法,而不包含有业务逻辑的处理,把"行为"和"状态"分离到不同的对象里,只有状态的对象被称为"贫血对象"(VO),而只有"行为"的对象一般被用作服务对象,就像spring的server一样,都是无状态对象,本身并不存储数据,只处理逻辑
阅读全文
摘要:当服务器不多,并且不考虑扩容的时候,可直接使用简单的路由算法,用服务器数除缓存数据KEY的hash值,余数作为服务器下标即可。 但是当业务发展,网站缓存服务需要扩容时就会出现问题,比如3台缓存服务器要扩容到4台,就会导致75%的数据无法命中,当100台服务器中增加一台,不命中率会到达99%(n/(n
阅读全文
摘要:吞吐量和并发量以及响应时间之间的关系可以理解为高速公路的通行状况: 吞吐量是每天通过收费站的车辆数量(可换算成收费站收取的高速费),并发量是高速公路上的正在形式的车辆数目,响应时间是车速。车辆很少的时候,车速很快,但是收到的费用也很少;随着车越来越多,车速略受影响,但是收到的高速费增加很快;随着车辆
阅读全文
摘要:1.http重定向负载均衡 2.dns域名解析负载均衡 3.反向代理负载均衡 4.ip负载均衡 负载均衡操作系统内核进程获取网络数据包,将目的ip修改为均衡算法得到的实际服务器ip,服务器处理完以后,响应数据返回到负载均衡服务器,再将数据包源地址修改为自身ip,返回浏览器。 这里重点是,真实服务器如
阅读全文
摘要:CAP原理认为一个提供数据服务的存储系统无法同事满足数据一致性(Consistency所有应用程序都能访问得到相同数据),数据可用性(Availibility,在任何时候,任何程序都可以访问),分区耐受性(Partition Tolerance,系统可以跨网络分区线性伸缩)。 大型网站中为保证分布式
阅读全文
摘要:一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。比如将用户性别设置为男性,不管设置多少次,结果都是一样的。但对于像转账交易等操作,如果出现服务重复调用的情况就会产生严重问题,需要进行额外的校验。
阅读全文
摘要:java中动态代理主要有JDK和CGLIB两种方式。 区别主要是jdk是代理接口,而cglib是代理类。 jdk的动态代理调用了Proxy.newProxyInstance(ClassLoader loader,Class<?>[] interfaces,InvocationHandler h) 方
阅读全文
摘要:TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层。IP:网络层协议; TCP和UDP:传输层协议;TCP提供有保证的数据传输,UDP不提供。 HTTP:应用层协议(超文本传输协议); 如果说IP是一条公路,TCP和UDP就是路上的车,HTTP则是车上的货物
阅读全文
摘要:1.减少http请求 http协议是无状态的应用层协议,无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这意味着每次http请求都会建立链路、进行数据传输, 服务端每次也会启动独立线程去处理。 减少http手段主要有合并css、合并javascript
阅读全文
摘要:前几天又遇到一个mysql读写分离的坑, 在将数据写入master后,因为存在同步延迟,所以如果立马去从库查询刚刚插入的数据可能会出现查询不到数据的情况, 解决办法:强制从主库读取数据,将插入和查询放一个事务里,让事务内的操作都走主库
阅读全文
摘要:今天遇到了一个前同事挖的坑,刷新缓存中商品信息时先让key过期,然后从数据库里取最新数据然后再放到缓存中,他是这样写的 redisTemplate.expire(CacheConst.GOOGS_PREFIX,1,TimeUnit.MILLISECONDS); 设置key过期为一毫秒,导致缓存中有时
阅读全文
摘要:一般来说大型网站都会将静态资源如js,css,logo图片等资源独立分布式部署,并且采用独立域名,即动静分离。分布式部署可以减轻应用服务器的负载压力,这个很容易理解,但是通过使用独立域名为什么能加快浏览器并发加载速度? 1、浏览器对相同域名的并发连接数限制(包括二级域名),超过限制以后就会阻塞。 2
阅读全文
摘要:ffffffffffffff
阅读全文

浙公网安备 33010602011771号