黑马程序员技术交流社区

标题: java总结 [打印本页]

作者: AI_96    时间: 2015-8-13 11:05
标题: java总结
javase总结



    (5)  基础类型的包装类Integer Character (自动打包 自动解包)
    还有一些静态方法 int = Integer.parseInt(String str);

(6)  Date 日期类 (Date d = new Date() 当前时间 java.util.Date)
   Abstract DateFormat  用它的子类 SimpleDateFormart
SimpleDateFormart sd =new SimpleDateFormart(”yyy-MM-dd hh:mm:ss”)
String str = sd.format(new Date()) ;
Date d = sd.parse(“2001-04-02 12:25:25”);
(7) Calendar      
Date d= new Date();
Calendar c = new GregorianCalendar(2000, 3, 5);
DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date dd =c.getTime();
System.out.print(df.format(c));
(8)Math (random  abs ) 自己查




(9)File类:
File f = new File(“c://a.txt”); //实例对象
f.creatNewFile(); //在机器上创建
File f = new File(“c://a”);
f.mkdir(); //创建单个文件夹
f.mldirs();//创建多个文件夹
//file类的常用方法:(要熟悉)
注意:树状结构遍历所有文件和文件夹
GetALLfiles(f, 0)
//递归变量
GetALLfiles(File f , int level){
For(int I = 0 ; i
System.out.print(“—”);
}
f.getName();
if(f.isDirectory()){
File[] fs = f.listFiles();
For(File f : fs){
GetALLfiles(File f , level+1);
}
}
}
(10)枚举类型:
Enum Week {SUN,MON,TUR,WED,THE,FAR,SAR}
//Scanner sc = new Scanner(System.in);
//String str = Sc.nextLine();
Week wk = Week.SUN;
Switch(wk){
case SUNDAY:
return "日";
case MONDAY:
return "一";
case TUESDAY:
return "二";
case WEDNESDAY:
return "三";
case THURSDAY:
return "四";
case FRIDAY:
return "五";
case SATURDAY:
return "六";
}
(七) Collection容器(集合)
JavaSe基础总结
(1) Collection接口常用方法
Boolean add(Elelement e)  //添加一个元素 添加成功然后true 否则返回false
Boolean add(Collection c) //添加一个实现了Collection接口的类的集合对象
Boolean Contains(Object obj) //判断是否包含指定元素
Boolean ContainsAll(Object obj) // 判断是否包含指定集合
isEmpty();equals(); clear(); size();
Object[] toArray();//将集合转为Object数组 (重载方法转为泛型数组
Remove(Object obj); RemoveAll(Collection c);
retainAll(Collection c) //取得与指定集合的交集
(调用retainAll返回交集内容   如图所示)

JavaSe基础总结

如果不想改变list1内容 (copy一份list3 用list3去做处理)




(2) List接口 有顺序并且可以重复
List接口里多了一些和顺序有关的方法
主要实现类 :ArrayList LinkedList 这些实现类都实现了Collection和List接口定义的抽象方法(List extends Collection)
ArrayList:底层数组实现  查找效率高
LinkedList:双链表结构   增删效率高

(3)Set接口 没顺序 不能重复
主要实现类:HashSet TreeSet  LindHashSet
HashSet :hash算法实现  
TreeSet :按自然数顺序排序
LindHashSet:插入先后顺序排序

(4)Map接口
1 map用于承装键值对 (key , value)
   2 Map接口里有一个内部的接口 Entry
   Map接口的主要实现类 :
HashMap TreeMap HashTable Properties

HashMap和HashTable的比较:
HashMap效率高 线程不安全 HashTable效率相对低 线程安全,hashTable底层是数组的实现
TreeMap 按照Key的自然数顺序将容器排序
Properties:它是HsahTable的一个子类 用于读取配置文件 有一个load方法 此方法接受一个inputStream的子类对象

变量map的三种方式:

Map m = new HashMap();
第一种:直接变量value  
Collection c = m.values();
Iterator io = c.iterator();
While(io.hasNext()){…io.next()}
第二种:同过key获得value
Collection c = m.keySet();
Iterator io = c.iterator();
While(io.hasNext()){…m.get(io.next())}
第三种:获得map的整体对象 Map.Entry
Collection c = m.entrySet();
Iterator io = c.iterator();
While(io.hasNext()){
Map.Entry me = (Entry)io.next();
Me.getValue(); Me.getKey();
}

(5)如果要实现容器排序 (容器里面装的类型是对象类型)
必须要实现Comparable接口 实现 int compareTo(T)方法
(6)泛型:编译期间检查传入容器的类型如何泛型规定的类型不一致则编译不通过

(八)IO流:
  
JavaSe基础总结
// 以后写代码 尽量用多态
----读取字节----
InputStream is = new FileInputStream (“c://a.txt”);
FileInputStream的文件路径必须存在 否则抛出FileNotFoundException
OutputStream os = new FileOutoutStream(“c://dddd.txt”);
注意可以有两个参数的重载的构造方法
FileOutputStream(File f ,Boolean append)第二个参数表示是否追加内容
FileOutoutStream文件的路径可以不存在 会给你创建对应的文件

----读取字符----
FileReader fr = new FileReader(“c://f.txt“);
FileWriter fw = new FileWriter (“c://f.txt“);不存在路径也会创建
----缓存流(处理流)  
BufferedReader br = new BufferedReader(Reader in);
BufferedWriter br = new BufferedWriter(Writer out);
----直接读取字节数组----  
ByteArrayInputStream bis = new ByteArrayInputStream(byte[] b);
重载的方法new ByteArrayInputStream(byte[] b ,start, length);
----读取基本数据类型----  
DataInputStream dis = new DataInputStream(InputStream is);
注意:读取数据的时候要按照写入文件数据的顺序来读取
----序列化----   
ObjectInputStream ois = new ObjectInputStream(InputStream is);
注意:要序列化的对象必须实现serializable接口(标识该对象可序列化)
----打印流----            
PrintStream ps = System.out; //打印字节
PrintWriter pw = new PrintWriter(Writer out);//打印字符

(九)网络编程  
1 TCP和UDP协议
(1) TCP协议时面向连接的(双向的),效率低,是稳定并且安全的
三次握手
1客户端向服务器发送请求
2 服务器接收请求并处理
3 双方开始通信
      (2)UDP 单方向的 服务器只管发不管接收,效率高,不稳定并且不安全
2 了解ip port 洪水攻击.....七层(...) 数据的封装和拆分
3 了解InetAddress类 了解URL类(URL url = new URL(地址))
  打开流url.openStream()
4 ServerSocket类 (创建服务器)
  创建方式:ServerSocket server = new ServerSocket(PORT);
  侦测客户端请求:  Socket s = server.accept();(返回客户端的Socket)
  Socket类:Socket s = new Socket(InetAddress ,PORT);
  交互方式:IO流  
s.getInputStream()  和 s.getOutputStream()
(十)多线程  
   1 进程 :任务管理器(xxxx.exe) 执行一件事(一个引用)
   2 线程 :进程的基础上细化(分多线程去执行一个进程)
   3 Java实现多线程:extends Thread类    implements Runnable接口
     线程就是运行run()方法
   4 线程的状态:
  (1)实例化线程对象  
  (2)启动线程start() // 让当前线程对象进入就绪状态 等待CPU来调度
  (3)线程阻塞(Thread.sleep(1000)) 1秒之后解除阻塞
      (4)线程又进入就绪状态
  (5)当run方法体的代码执行结束的时候,当前线程结束(销毁)
   5  join方法 sleep方法  yield方法(理解)
  
   
     
6 线程的同步问题synchronized(同步,锁定)  
Synchronized (accountMoney){
// 取钱操作
}
7 线程的死锁问题(面试的时候要求说出来 能出代码)  
8 任务的调度:
Timer(定时器)  
TimerTask implements Runnable(当前任务)
作者: 1231312331    时间: 2015-8-13 11:19
学习了。。。加油。。。
作者: 耀阳圣尊    时间: 2015-8-13 11:24
总结的很不错,赞一个
作者: 风华正茂    时间: 2015-8-13 13:02
学习了,谢谢楼主分享
作者: wyd1    时间: 2015-8-13 14:55
感觉没做索引
作者: 塞巴斯的小夏尔    时间: 2015-8-13 21:44
赞一个。。
作者: 铿锵的小黑马    时间: 2015-8-13 21:53
   ding  yige    ..




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2