JavaSE
ActChen
这个作者很懒,什么都没留下…
展开
-
大整数运算(BigInteger和BigDecimal)
1. 大整数转换这两个类在开发中也是比较常用到的类,例如我们在进行毫秒级的时间戳的运算时,可能会超出整数或者浮点数的范围,或者无法保证计算结果的精度准确。而BigInteger和BigDecimal可以处理包含任意长度数字序列的数值。BigInteger实现了任意精度的整数运算,BigDecimal实现了任意精度的浮点数运算。在进行计算时我们可以使用BigInteger类和BigDecima...原创 2019-05-13 21:26:34 · 1264 阅读 · 0 评论 -
自动拆装箱
集合被设计为泛型类,牵扯泛型边界擦除,所以不能存储基本类型,而只能存储对象的引用。有时候我们需要将一个整型或者浮点型的基本类型存入集合之中,只能使用基本类型的包装器类。每一个基本类型都会对应一个包装器类,如下所示:基本类型包装类byteByteshortShortlongLongintInteger...原创 2019-05-18 20:32:51 · 160 阅读 · 0 评论 -
泛型
什么是泛型 泛型是JDK1.5之后引入的新特性,本质上就是将类型参数化。那么什么叫做类型参数化呢? 原本在Java中定义集合时,存入集合中的对象具有很大的不确定性,可能我存入对象引用是一个自定义类,也可能是一个已知类,如String。如设计者编写ArrayList底层的add方法时,它无法确定Array...原创 2019-05-18 17:28:27 · 176 阅读 · 1 评论 -
ArrayList集合
ArrayList是一个采用类型参数的泛型类,称之为泛型数组列表,相对于普通数组而言最大的特点就是改变了普通数组长度固定的缺点。ArrayList会初始化一个具有初始容量的list,默认的初始容量为10,但ArrayList也提供有参构造来指定初始化容量。一般情况下在我们大致确定集合容量时,建议采用有参构造指定初始容量,避免添加元素时因容量问题引起的...原创 2019-05-18 13:40:46 · 4073 阅读 · 0 评论 -
字符串(String、StringBuffer与StringBuilder)
构建字符串对象具有三种方式,分别为String、StringBuffer和StringBuilder。StringString最大的特性就是具有不可变性,整个类采用了final来进行修饰。String字符串内存空间被分配在方法区的常量池中,在进行等值方式进行赋值时,它首先在方法区的常量池中寻找是否有相同(内容相同)的字符串,如果存在相同字符串,则String类并不会创建一个新的对象,而是在栈...原创 2019-05-12 18:59:19 · 118 阅读 · 0 评论 -
内部类
内部类是定义在另一个类中的类,之所以定义内部类,主要原因有以下三点:1. 访问自身数据域 内部类可以访问自身的数据域,也可以访问创建它的外围类对象的数据域。之所以内部类能访问到创建它的类的域,很大程度上是依赖了内部类对象的“隐式引用”,它指向了创建它的外部类对象。如public class OutC...原创 2019-05-25 16:40:02 · 175 阅读 · 0 评论 -
Object源码解析
Object类一共有12个方法:1. registerNatives()private static native void registerNatives(); static { registerNatives(); }registerNatives()是一个native方法,我们可以看出它在static块中被调用,所以Object类一被加载此方法就会被...原创 2019-05-12 15:50:48 · 143 阅读 · 0 评论 -
Comparable与Comparator
String类实现的是Comparable接口,它主要依赖与CompareTo方法来进行排序: public int compareTo(String anotherString) { int len1 = value.length; int len2 = anotherString.value.length;...原创 2019-05-25 13:06:09 · 173 阅读 · 0 评论 -
反射
文章目录什么是反射反射的原理Class类Class对象三种获取方式1. 调用Object类下的getClass()方法2. 调用Class类的静态方法forName("类名或者接口名")3. 类名.class直接获取反射的主要作用1. 检查类的结构2. 运行时使用反射分析对象3. 编写泛型数组,实现数组copy什么是反射 反射库是一个具有丰富功能的...原创 2019-05-20 10:40:51 · 180 阅读 · 0 评论 -
参数可变量方法和枚举类
定义参数可变量方法 JDK1.5之前,Java中每个方法都需要固定的参数,如printf方法,每打印一个参数时,可能我们就要写一条语句System.out.printf("%d",x);System.out.printf("%d",y);再jdk1.5之后,提供了可以用可变的参数数量调用的方法,例如它将printf方法定义为public P...原创 2019-05-19 11:00:31 · 890 阅读 · 0 评论 -
final和static
1. final实例域如果一个实例域被定义为final,构建对象时就必须初始化这个实例域,也就是构造执行之后就必须对final修饰的实例域进行设值,并且在后面的操作中无法更改此实例域。final一般修饰的是基本类型域或者是不可变类,如String就是一个不可变类。2. static静态域和静态方法静态域是采用static修饰的实例域,它与实例域不同的是每个类中只有一个这样的静态域而可能存在多...原创 2019-05-13 21:34:22 · 84 阅读 · 0 评论 -
Java中的类间关系
类间关系概括来说存在三种:依赖、聚合和继承。它们的耦合度(模块与模块之间信息或参数之间依赖的程度)依次增加。1. 依赖即uses-a的关系。对于两个相互独立的对象,当一个对象依赖于另一个对象的服务时,这两个对象之间变现为依赖关系。比如将人作为一个对象,船作为另一个对象,人要实现过河这 个方法时就必须依赖船这个对象,将其作为方法参数或者局部变量。则这两个对象之间就存在依赖关系。这种依赖关系一般都...原创 2019-05-13 21:32:47 · 225 阅读 · 0 评论 -
静态代理、动态代理、CGLIB代理实现及原理
文章目录什么是代理为什么使用代理跨网络调用对象保证类的功能的单一性原则如何实现代理静态代理1. 基于继承的代理2. 基于接口的代理动态代理1. JDK动态代理2. cglib动态代理实现什么是代理 代理分为静态代理和动态代理,在未产生动态代理之前,代理只是为了给某一个类创建一个代理类来为这个类的对象动态添加一些职责和功能。而动态代理产生后,将这种在...原创 2019-06-02 20:09:48 · 1347 阅读 · 0 评论