Java关于String、StringBuffer、StringBuilder区别
- 都是final类,都不允许被继承
- String类长度是不可变的,StringBuffer和StringBuilder类长度是可以改变的
- StringBuffer类是线程安全的,StringBuilder不是线程安全的
- String的不可变因素,因此它是线程安全的,而StringBuffer内部采用synchronized 进行同步,因此它也是线程安全的。
transient
关键字在需要实现Serilizable
接口中,将不需要序列化的属性前添加关键字transient
,序列化对象时候,该属性不会被序列化到指定的目的地中。
对于互联网业务系统来说,随着高本发、高流量的趋势,单机系统已经无法满足我们的业务系统要求,因此出现有分布式系统。对于单机系统,ACID已经保证业务系统数据的严格一致性,对于分布式系统如何保证数据的严格一致性?如何构建一个兼顾可用性和一致性的分布式系统。
zookeeper是一个致力于提供一个高性能、高可用的,而且具有严格的顺序访问控制能力的分布式协调服务。
分布式应用程序基于zookeeper实现数据发布/订阅、负载均衡、命名服务、分布式协调与通知、集群管理、Dubbo注册中心、Master选举、分布式锁、分布式队列等。
前几天在复习中遇到一个Java问题。静态变量的加载顺序问题。有点模棱两可,写个笔记记录一下吧。
静态变量的存在父子继承的情况,初始化加载顺序为:
父类(静态变量、静态语句块)
子类(静态变量、静态语句块)
父类(实例变量,普通语句块)
父类(构造函数)
子类(实例变量、普通语句块)
子类(构造函数)