java笔记

来源:互联网 发布:linux关闭22端口 编辑:程序博客网 时间:2024/05/22 12:04

null和""的区别:

String str1 = null ;

String str2 = "";

str1 只是一个引用没有实例化对象,而str2有对象只是内容为空而已.因此判断字符串为空时一般进行两次判断if(str != null && !"".equals(str))

&&与&的区别:

&&前面判定失败就不会进行后边的判定了,&不管前面成功与否都会执行后边;


BlockingQueue<E>接口定义了阻塞队列的常用方法。例如对于添加元素有add()、offer()和put()3种方法。当队列满时,add()方法会抛出异常、offer()方法会返回false、put()方法会阻塞。读者需要根据自己的需求选择适当的方法。 eg queue.put(b);//向队列中添加元素


对于普通的泛型类型参数<T>代表任何一个类的对象,而在比较时需要限制比较的对象实现了Comparable接口。此时可以考虑使用下面的语法将T限制为Comparable接口的实现类:

<T extends Comparable>

现在泛型类型参数被限制为Comparable的实现类,如果将JButton传递给方法会出现编译错误。



泛型中,使用“?”作为通配符。通配符的使用与普通的类型参数类似,例如通配符也可以利用extends关键字来设置取值上限。<? extends Number>表示Byte、Double、Float、Integer等都适合这个类型参数。此外,通配符还可以设置取值下限,语法如下:

<? super Number> 

其含义是类型参数是Number类的父类,例如Objcet。

stringbuffer与stringbuilder的区别

1.  在执行速度方面的比较:StringBuilder >  StringBuffer   2.  StringBuffer与StringBuilder,他们是字符串变量,是可改变的对象,每当我们用它们对字符串做操作时,实际上是在一个对象上操作的,不像String一样创建一些对象进行操作,所以速度就快了。3.  StringBuilder:线程非安全的  StringBuffer:线程安全的    当我们在字符串缓冲去被多个线程使用是,JVM不能保证StringBuilder的操作是安全的,虽然他的速度最快,但是可以保证StringBuffer是可以正确操作的。当然大多数情况下就是我们是在单线程下进行的操作,所以大多数情况下是建议用StringBuilder而不用StringBuffer的,就是速度的原因。对于三者使用的总结:1.如果要操作少量的数据用 = String                    2.单线程操作字符串缓冲区 下操作大量数据 = StringBuilder                    3.多线程操作字符串缓冲区 下操作大量数据 = StringBuffer



0 0
原创粉丝点击