- 浏览: 120326 次
- 性别:
- 来自: 广西
最新评论
-
greemqqran:
这方法 源码,是怎么的哦?
可变参数,数组与集合之间的转换 -
greemqqran:
Arrays.asList
可变参数,数组与集合之间的转换 -
ricoyu:
引用? super E:接收的是E类型对象应该是: ? sup ...
泛型-
文章列表
Runtime:没有构造构造函数描述,但是该类中却出现了非静态方法,那么该类的设计方法是单例模式完成的。
也就是该类中肯定会有静态的方法并返回该类的对象。
exec(command):可以执行一个本地的可执行程序。返回一个Process对象。
可以通过该方法完成一个文件打开,只要执行该文件对应的应用程序即可。
exec("notepad.exe Demo.java");
同时也可以通过Process的destory方法关闭被exec打开进程。
Collections和Arrays
- 博客分类:
- j2se
集合框架中的两个工具类:
两个工具类中方法都是静态的。
Collections:
binarySearch(List,key):如果对list进行二分查找,必须要保证,该list是有序的。
sort(list)
sort(list,Comparator)
max(list)
fill(list,value)
synchronizedList(list)
reverseOrder();
Arrays:
binarySearch();
sort()
fill();
toString([]);
asList([]):将数组转成list集合。可以通过 ...
System类里面的方法都是静态的,提供调用。
currentTimeMillis():获取当前时间的毫秒数。 gc(); getProperties():可以获取jvm启动时的属性信息。返回值类型是:Properties Properties:是HashTable的一个子类。该集合的键值对全是String类型的,该集合的特点是可以和流对象相结合。
如果想在jvm启动时临时自定义启动信息。 可以在执行类的同时定义参数完成。 class SystemDemo { public static void main(String[] args) { String value = Sy ...
Properties是HashTable的子类,也是一个Map集合,所以在Properties文件中存放的是键值对。
下面是用于读取java虚拟机读取的配置信息。
class SystemDemo
{
public static void main(String[] args)
{
Properties prop = System.getProperties();
Set s = prop.keySet();
Iterator it = s.iterator();
//获取指定属性信息
String name = prop.getProper ...
用LinkedList实现的队列数据结构
- 博客分类:
- j2se
/**
队列:FIFO:first in first out.先进先出。
堆栈:LIFO:last in first out. 后进后出.
*/
/**队列容器
*/
class MyQueue<T>
{
private LinkedList<T> link;
MyQueue()
{
link = new LinkedList<T>();
}
public void in(T t)
{
link.addFirst(t);
}
public T out()
{
return link.rem ...
可变参数,数组与集合之间的转换
- 博客分类:
- j2se
import java.util.*;
/*
数组转成集合。Arrays.asList([]);
注意:变成集合后,长度是固定,不可以使用集合的增删方法。
思想:
通过集合的方式来操作数组。
集合变数组:Collection中的<T> toArray(T[])
高级for循环,必须要有被遍历的目标(Collection 或者 数组)。
*/
class ArraysDemo2
{
public static void main(String[] args)
{
// listToArray();
int[] ar ...
Comparable和Comparator
- 博客分类:
- j2se
Comparable是对象的自然排序,可以通过实现implements来实现可比较的。
|--compareTo(Object obj)方法来实现可比较的具体。
Comparator是比较器,具体是定义一个类,这个类来实现比较器Comparator接口。
|--compare()来实现具体的比较过程。
class StrLen implements Comparator<String>
{
public int compare(String s1,String s2)
{
if(s1.length()>s2.length())
...
Map:以键值对的形式存入,必须要保证键的唯一性。
添加:put(key,value):
如果存入已有的键,会发生值覆盖的情况。
判断:containsKey(key),containsValue(value)
删除:remove(key)
个数:size();
取出:get(key)
当返回为null时,对于HashMap有两种情况,一,该键不存在,二,该键存在对应的值是null。
取出所有元素:
原理:将Map集合转成Set集合。在通过迭代器取出。
keySet():将Map集合中的所有键取出存入到了S ...
泛型:JDK1.5版本出现的一个安全机制。
好处:将运行时出现的问题(ClassCastException)转移到了编译时期。
避免了强转的麻烦。
格式:通过<>在内指定操作的引用数据类型。
泛型可以定义在类上。
早期:
class Tool
{
private Object obj;
public void setObj(Object obj)
{
this.obj = obj;
}
public Object getObj()
{
return obj;
}
}
main()
{
...
Collection
- 博客分类:
- j2se
Iterable
取出:iterator();
|--Collection:
添加:add(Obj);
删除:remove(Obj);
判断:contains(Obj),isEmpty()
个数:size();
|--List:有序,可以元素重复,元素都有索引。
添加:add(index,Obj)
删除:remove(index)
取出:get(index)
修改: set ...
StringBuffer
- 博客分类:
- j2se
StringBuffer:
它是一个容器,可以对字符串进行修改。长度可变。
添加:append(data)
删除:delete(start,end)
deleteCharAt(index)
插入:insert(index,data);
反转:reverse():
修改:setCharAt(index,data)
替换:replace(start,end,String)
什么时候用缓冲区呢?
当要操作的元素类型不一致,但最终都会转成字符串的时候。就使用StringBuffer.
JDK1.5版本的时候,出现了StringBuilde ...
//StringBuffer是线程安全的,StringBuilder是线程不安全的
class StringBufferDemo
{
public static void main(String[] args)
{
StringBuilder sb = new StringBuilder("abcde");
int[] arr = {4,1,7,5,9};
System.out.println(intToString2(arr));
String s1 = "java";
String s ...
class StringDemo
{
public static void main(String[] args)
{
// String s = "abc";
// String s1 = "abc";
//
// System.out.println(s==s1);
// String str = "hello java!";
// System.out.println(str.length());//
// System.out.println(str.indexOf("ab& ...
不同同步区域锁的问题
- 博客分类:
- j2se
class Ticket implements Runnable//extends Thread //
{
private static int tick = 100;
// Object obj = new Object();
boolean b = true;
public void run()
{
if(b)
while(true)
show();
else
{
while(true)
{
synchronized(Ticket.class)
{
if(ti ...