上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 33 下一页
摘要: 上一个建议解释了为什么要使用forName,本建议就说说哪些地方不适合使用动态加载. 如果forName要加载一个类,那它必须是一个类 8中基本类型就排除在外.它们不是一个具体的类. 其次它必须具有可追溯的类路径...否则就会报ClassNotFoundException. 在Java中,数组是一个 阅读全文
posted @ 2016-06-29 11:12 SummerChill 阅读(378) 评论(0) 推荐(0) 编辑
摘要: 动态加载(Dynamic Loading)是指在程序运行时加载需要的类库文件,对Java程序来说,一般情况下,一个类文件在启动时或首次初始化时会被加载到内存中,而反射则可以在运行时再决定是否需要加载一个类,比如从Web上接受一个String参数作为类名,然后在JVM中加载并初始化,这就是动态加载,此 阅读全文
posted @ 2016-06-29 11:11 SummerChill 阅读(557) 评论(0) 推荐(0) 编辑
摘要: Java的Class类提供了很多的getDeclaredxxx方法和getxxx方法,例如getDeclaredmethod和getMethod成对出现,getDeclaredConstructors和getConstructors也是成对出现. 那这两者有什么区别呢? 上面的异常是说m2变量的ge 阅读全文
posted @ 2016-06-29 11:04 SummerChill 阅读(276) 评论(0) 推荐(0) 编辑
摘要: Java语言是先把Java源文件编译成后缀为class的字节码文件,然后再通过ClassLoader机制把这些类文件加载到内存中,最后生成实例执行的,这是Java处理的基本机制,但加载到内存中的数据是如何描述一个类的呢? 比如在Dog.class文件中定义了的是一个Dog类,那它在内存中是如何展现的 阅读全文
posted @ 2016-06-29 10:55 SummerChill 阅读(290) 评论(0) 推荐(0) 编辑
摘要: 从哲学上来说,很难描述一个具体的人,你可以描述它的长相,性格,工作等,但是人都是有多重身份的,估计只有使用多个And(与操作)将所有的描述串联起来才能描述一个完整的人,人在不同的环境中角色也在不断的更换. 用Java程序来对一类人进行管理,比如在公交车费优惠系统中,对部分人员,工资低于2500元的上 阅读全文
posted @ 2016-06-29 10:54 SummerChill 阅读(1220) 评论(0) 推荐(0) 编辑
摘要: List接口的toArray方法可以把一个结合转化为数组,但是使用不方便,toArray()方法返回的是一个Object数组,所以需要自行转变. toArray(T[] a)虽然返回的是T类型的数组,但是还是需要传入一个T类型的数组,这也挺麻烦的.我们期望输入的是一个泛型化的list,这样就能转化为 阅读全文
posted @ 2016-06-29 10:54 SummerChill 阅读(331) 评论(0) 推荐(0) 编辑
摘要: 什么叫做协变(covariance)和逆变(contravariance)? 在变成语言的类型框架中,协变和逆变是指宽类型和窄类型在某种情况下(如参数,泛型,返回值)替换或交换的特性,简单的说,协变是用一个窄类型替换宽类型,而逆变则是用宽类型覆盖窄类型. 协变:宽类型 >窄类型 逆变:窄类型 >宽类 阅读全文
posted @ 2016-06-28 17:24 SummerChill 阅读(733) 评论(0) 推荐(0) 编辑
摘要: Java泛型支持通配符(Wildcard),可以单独使用一个"?"表示任意类,也可以使用extends关键字标识某一类(接口)的子类型,还可以使用super关键字标识某一类(接口)的父类型,但问题是什么时候该用extends,什么时候该用super? (1)泛型结构只参与"读"操作则限定上界(ext 阅读全文
posted @ 2016-06-28 17:23 SummerChill 阅读(589) 评论(0) 推荐(0) 编辑
摘要: Arrays工具类有一个方法asList可以把一个变长参数或数组变成列表,但是它有一个缺点:它所生成的List长度是不可改变的,而这在我们的项目开发中很不方便. 如果你期望生成的列表长度是可变的,那就需要自己来写一个数组的工具类了.代码如下: 与Arrays.asList的调用方式相同,我们传入一个 阅读全文
posted @ 2016-06-28 17:13 SummerChill 阅读(960) 评论(0) 推荐(0) 编辑
摘要: 泛型类型在编译期被擦除,我们在类初始化时将无法获得泛型的具体参数,比如这样的代码: 这段代码有什么问题? t,tArray,list都是类变量,都是通过new声明了一个类型,看起来非常的相似. 但是这段代码是通不过的,因为编译期在编译时需要获得T类型,但是泛型在编译期类型已经被擦除了,所以new T 阅读全文
posted @ 2016-06-28 17:12 SummerChill 阅读(2912) 评论(0) 推荐(0) 编辑
摘要: 泛型可以减少强制类型的转换,可规范集合的元素类型,还可以提高代码的安全性和可读性,正是因为有了这些优点,自从Java引入泛型之后,项目的编码规则上便多了一条,优先使用泛型. Java泛型(Generic)的引入加强了参数类型的安全性,减少了类型的转换,它与C++中的模板templates比较类似.但 阅读全文
posted @ 2016-06-28 17:04 SummerChill 阅读(2342) 评论(0) 推荐(0) 编辑
摘要: 思考这样一个案例: 阅读全文
posted @ 2016-06-28 16:59 SummerChill 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 思考这样一个案例: 阅读全文
posted @ 2016-06-28 16:57 SummerChill 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 阻塞队列BlockingQueue扩展了Queue,Collection接口,对元素的插入和提取使用了"阻塞"处理,我们知道Collection下的实现类一般都采用了长度自行管理方式(也就是变长). 阅读全文
posted @ 2016-06-28 16:54 SummerChill 阅读(858) 评论(0) 推荐(0) 编辑
摘要: 线程死锁DeadLock是多线程编码中最头疼的问题,也是最难重现的问题,因为Java是单进程多线程语言. 阅读全文
posted @ 2016-06-28 16:42 SummerChill 阅读(265) 评论(0) 推荐(0) 编辑
上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 33 下一页