第一次尝试用github page写博客,是使用GitHub和Hexo搭建而成。感谢Zippera以及HelloDog提供的教程。
Doing is better than perfect
IoC Service Provider其实是一种抽象的概念,它可以指代任何将IoC场景中的业务对象绑定到一起的实现方式。当需要绑定的业务对象很多时,采取的方式需要一同改变。目前来看,有许多开源的产品通过各种方式为我们做了这部分的工作,Spring的IoC容器就是提供依赖注入服务的IoC Service Provider。
这里会记录一些java语言和其它语言基础的一些小区别和自己觉得需要记忆的内容。
OOP的三个特性:对象的行为,对象的状态,对象的标识。
对象的行为:可以对对象施加哪些方法?
对象的状态:当施加这些方法时,对象如何响应?
对象标识:如何辨别具有相同行为与状态的不同对象?
对象的行为通过可调用的方法进行定义。
对象状态的改变不是自发的,通过调用方法来实现
首先从设计类开始,然后再往每个类之中添加方法。而不是从main开始。
类之间的关系:依赖,聚合,继承
尽可能的降低耦合。
一个对象变量并没有实际包含一个对象,而仅仅是引用一个对象。
在我们处理数字时,一般使用的是原始数据类型,如 byte,int,long,double 等。
然而,在开发过程中,我们往往需要使用到对象而不是原始数据类型,此时的java便为我们包装好了类。
所有的包装类 (Integer, Long, Byte, Double, Float, Short) 都继承自抽象类 Number
(来源于java.lang
包)。
上述这种包装是由编译器处理,这个过程称为装箱。因此,当一个原始数据类型被使用,当需要一个对象时,编译器将原始数据放入其包装类。同样地,编译器也能将对象取出返回到
原始数据类型。
当 x 被分配整数值,则编译器将整数放入箱中,因为 x 为整数对象。然后,x 被拆箱,以便它们可以被添加为整数。
1 | public static void main(String... strings) { |
输出为:
1 | integer1 == integer2 |
在Java 5 中,在Interger的操作上引入了一个新功能来节省内存和提高性能。
适用于整数值区间-128至127,只适用于自动装箱,使用构造函数创建对象时不适用。
Byte, Short, Long有固定范围: -128 到 127。对于Character, 范围是 0 到 127,true和false的布尔值,‘\u0000’至‘\u007f’之间的字符。除了Integer以外,这个范围都不能改变。
针对所有整数类型的类都有类似的缓存机制。
后来在Java 6中,可以通过java.lang.Integer.IntegerCache.high
设置最大值
xxxValue()
:用于将这个Number对象的值转换为XXX的数据类型并返回。
任何其他对象可以通过使用 new 关键字,并通过构造函数创建 String 对象。 String 类有11种构造函数提供使用不同类型的字符串的初始值。
String 类是不可变的,因此,一旦创建了 String 对象那么是不能改变的。如果需要大量修改字符的字符串,那么应该使用 StringBuffer & StringBuilder 类。
java的数组编写风格为 dataType[] arrayRefVar;
, 风格 dataType arrayRefVar[]
来自于 C/C++ 语言,因为Java 继承 C/C++ 的编程风格,所以可以用,但不推荐使用。