Java使用
文章平均质量分 50
程序猿 M
不爱学习的程序猿,正在培养学习习惯
展开
-
Java通过反射创建对象
通过反射创建对象创建对象之前,我们必须先知道要为哪个类创建对象。我们需要拿到这个类的全路径名。类似java.lang.String,除此之外我们还需要知道这个类的构造函数,是否有参数,参数的类型各是什么。下面分两种情况无参构造函数Class clazz = null;try{ //这里forName方法可能会抛出找不到类的异常 clazz = Class.forNa...原创 2016-11-13 23:28:35 · 2078 阅读 · 1 评论 -
Spring的BeanUtils.copyProperties方法
用途BeanUtils的copyProperties方法用来做属性copy。 使用时的注意点:target和source的属性名类型和名称必须相同名称大小写敏感如果名称大小写不一致,或者类型不一致,则跳过,不做属性复制原理copyProperties使用了jdk自带的自省机制。 自省 简单来说就是jdk在 反射 上又做了一层包装,针对于Bean对象的属性读写。大...原创 2018-03-25 23:20:05 · 3669 阅读 · 0 评论 -
Java的不可变类
什么是不可变类 Effective Java中定义: 不可变类:其实例不能被修改的类。每个实例中包含的所有信息都必须在创建该实例的时候提供,并在对象的整个生命周期内固定不变。Java平台中包含许多不可变类,包括String,基本类型的包装类,BigInteger和BigDecimal。 怎样开发一个不可变类 不要提供任何可以修改对象属性的方法 不要为属性...原创 2018-03-31 16:41:46 · 4415 阅读 · 1 评论 -
String 和 == 的小实验
作为Java开发也有些年了。一直对于String对象的使用 == 比较有些疑问点。 有人说,String这么简单的对象有什么好搞不清的。 事实上,还真的有些小复杂。 这里涉及到几个方面: 1. 常量 2. 对象 3. jvm编译期优化下面以几种情况做测试,并尝试解释原因。对象String a = new ...原创 2018-03-31 17:53:37 · 185 阅读 · 0 评论 -
JAVA for-each原理
我们在写程序的时候经常使用for-each来遍历对象。那么为什么有些对象可以通过for-each来遍历呢?我们的自定义类在不继承于集合对象的情况下,是否可以遍历呢?什么是for-eachfor-each是增强型的for循环,是java提供的一种语法糖。把 for (int i = 0; i < list.size; i ++) { Object obj = ...原创 2018-04-02 15:08:43 · 693 阅读 · 0 评论 -
Java中的SPI
最近在看一个rpc框架源码的时候,发现它可以获取到某一个接口的实现类列表。感觉很厉害,究竟是怎么做到的。查看了源码,原来是使用了jdk自带的spi机制。什么是SPIspi(Service Provider Interface) 是JDK提供的一种解耦方法。spi规定以接口全路径名为文件名,以实现类全路径名为文件内容。使用JDK提供的 java.util.ServiceLoader...原创 2018-04-11 11:21:19 · 292 阅读 · 0 评论