黑马程序员-小知识点


泛型与print的注意:

ArrayList<String> al = new ArrayList<String>(); 
al.getClass().getMethod("add", Object.class).invoke(al, 3);
System.out.println(al.get(0));
上面的代码会报错: java.lang.Integer cannot be cast to java.lang.String
为什么下面的代码正常?
ArrayList<Integer> al = new ArrayList<Integer>();
al.getClass().getMethod("add", Object.class).invoke(al, "abc");
System.out.println(al.get(0));
因为在编译的时候。虚拟机会指定print的重载参数。当运行时。泛型去除,get方法会返回Object类型的对象。当Integer对象传给print(String)时,报错。 当Sting对象传给print(Object)时。是可以的。

享元模式:一些对象经常用到的相似的东西。作为一个对象封装起来。不同的用参数传入。其中java中一些常用相同的的整数(-127~128)对象和String 都是在缓存对应一个对象。建立新的引用时候不建立新的对象。节省资源。

hasCode()的作用:由哈希算法而来,用于计算哈希值。不覆盖则为内存地址。在哈希集合中。集合的存储空间按照哈希值来分成若干个区域。当哈希值确定。则直接到包含此哈希值的区域查找和存储对象。提高效率。所以存入哈希集合中的对象不要轻易改变其中的属性。可能会影响到哈希值。使对象无法被查找或者删除。造成资源浪费。

eclipse配置文件的读取方式有三种:
1,输入流直接读取InputStream is = new FileInputStream(资源名); 根目录为工程目录
2,类加载器。InputStream is=Class.getClassLoader().getResourceAsStream(资源名);根目录为src
3,类直接加载。InputStream is = Class. getResourceAsStream(资源名); 根目录为此Class字节码所在目录

1.5新特性:
1,,函数可变参数。同参数用...args。
public ovid show(int...arr)
{
 System.Out.print(arr.length) ;
 }  
show(1,3,4,5);
实际上是一种数组参数的简写形式,不用每一次都手动建立数组对象,只要将操作的元素作为参数传递即可。隐式的将这些参数封装成了数组。注意:可变参数只能放在参数结尾。
2,静态导入:当类名重名时,需要指定具体的包名。当方法重名时,指定具备所属的对象或者类。
import static java.util.System.* 导入了这个类中的所有静态方法,实用时可以省略类名。如Out.println("abc");
3.高级for循环
4.枚举,
5.注解
6.泛型
7.lock
8.Executors:
分配的线程池中的线程交替执行,不和主线程交替执行
9.类型变量的自动拆箱装箱。 

1.7新特性:
1,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值