Java高级教程(泛型,序列化,网络编程,多线程等)复习笔记

  • 在Java中的数据结构主要包括以下几种接口和类:
    枚举(Enumeration)
    位集合(BitSet)
    向量(Vector)
    栈(Stack)
    字典(Dictionary)
    哈希表(Hashtable)
    属性(Properties)

  • 集合框架必须包含三个内容:接口,实现类,算法。

  • set集合有序,list无序,可以存储向重复元素。

  • iterator(迭代器)与iterable(接口)的区别:实现了Iterable接口,这样对象就可以调用iterator()方法。

  • 遍历ArrayList:

public class ArrayListTest01 {

    public static void main(String[] args) {
        List<String> list = new ArrayList<String>();
        list.add("Hello");
        list.add("world!");
        list.add("HAHAHAHAHA");

        //foreach便利list
        for (String s : list) {
            System.out.println(s);
        }

        //把链表变为数组相关内容进行遍历
        String[] strArray = new String[list.size()]; 
        list.toArray(strArray);
        for (int i = 0; i < strArray.length; i++) {
            System.out.println(strArray[i]);
        }

        //使用iterator迭代器遍历
        Iterator<String> iter = list.iterator();
        while(iter.hasNext()){
            System.out.println(iter.next());
        }
    }

}
  • 遍历Map
public class Test{
     public static void main(String[] args) {
      Map<String, String> map = new HashMap<String, String>();
      map.put("1", "value1");
      map.put("2", "value2");
      map.put("3", "value3");

      //第一种:普遍使用,二次取值
      System.out.println("通过Map.keySet遍历key和value:");
      for (String key : map.keySet()) {
       System.out.println("key= "+ key + " and value= " + map.get(key));
      }

      //第二种
      System.out.println("通过Map.entrySet使用iterator遍历key和value:");
      Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();
      while (it.hasNext()) {
       Map.Entry<String, String> entry = it.next();
       System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
      }

      //第三种:推荐,尤其是容量大时
      System.out.println("通过Map.entrySet遍历key和value");
      for (Map.Entry<String, String> entry : map.entrySet()) {
       System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
      }

      //第四种
      System.out.println("通过Map.values()遍历所有的value,但不能遍历key");
      for (String v : map.values()) {
       System.out.println("value= " + v);
      }
     }
}
  • 序列化:把存储态的数据加载到内存中,反之为反序列化。

  • TCP:TCP 是传输控制协议的缩写,它保障了两个应用程序之间的可靠通信。通常用于互联网协议,被称 TCP / IP。

  • UDP:UDP 是用户数据报协议的缩写,一个无连接的协议。提供了应用程序之间要发送的数据的数据包。

  • Socket :IP地址+端口号

  • 一个进程包含一个或多个线程,线程不能独立存在,它是进程的一部分。

  • 线程可以设置优先级,取值范围是整数 1~10,默认为5,优先级不能保证执行的顺序(依赖于操作系统)。

  • Java 三种创建线程的方法:

    1. 通过实现 Runnable 接口;
    2. 通过继承 Thread 类本身;
    3. 通过 Callable 和 Future 创建线程。
  • applet与servlet区别:

    1. applet是客户端的程序,它们可以直接嵌入到网页或者其他特定的容器中,并能够产生特殊的效果。
    2. servlet是服务端器的程序,用于实现服务器功能的扩充,响应客户端请求。
    3. jsp则是对servlet简化,用于方便输出动态页面 实质上就是servlet。
  • 注释:javadoc(@标签),单行(//),多行(/**/)。

  • Java实例
    http://www.runoob.com/java/java-examples.html

  • Java8的主要新特性:

    1. Lambda 表达式 − Lambda允许把函数作为一个方法的参数(函数作为参数传递进方法中。
    2. 方法引用 − 方法引用提供了非常有用的语法,可以直接引用已有Java类或对象(实例)的方法或构造器。与lambda联合使用,方法引用可以使语言的构造更紧凑简洁,减少冗余代码。
    3. 默认方法 − 默认方法就是一个在接口里面有了一个实现的方法。 新工具 − 新的编译工具,如:Nashorn引擎 jjs、 类依赖分析器jdeps。
    4. Stream API −新添加的Stream API(java.util.stream) 把真正的函数式编程风格引入到Java中。
    5. Date Time API − 加强对日期与时间的处理。
    6. Optional 类 − Optional 类已经成为 Java 8 类库的一部分,用来解决空指针异常。
    7. Nashorn, JavaScript 引擎 − Java 8提供了一个新的Nashorn javascript引擎,它允许我们在JVM上运行特定的javascript应用。

      • Java连接mysql数据库工具类:
cn.test.mysqlUtil
import java.sql.*;

public class MySQLDemo {

    // JDBC 驱动名及数据库 URL
    static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";  
    static final String DB_URL = "jdbc:mysql://localhost:3306/RUNOOB";

    // 数据库的用户名与密码,需要根据自己的设置
    static final String USER = "root";
    static final String PASS = "123456";

    public static void main(String[] args) {
        Connection conn = null;
        Statement stmt = null;
        try{
            // 注册 JDBC 驱动
            Class.forName("com.mysql.jdbc.Driver");

            // 打开链接
            System.out.println("连接数据库...");
            conn = DriverManager.getConnection(DB_URL,USER,PASS);

            // 执行查询
            System.out.println(" 实例化Statement对...");
            stmt = conn.createStatement();
            String sql;
            sql = "SELECT id, name, url FROM websites";
            ResultSet rs = stmt.executeQuery(sql);

            // 展开结果集数据库
            while(rs.next()){
                // 通过字段检索
                int id  = rs.getInt("id");
                String name = rs.getString("name");
                String url = rs.getString("url");

                // 输出数据
                System.out.print("ID: " + id);
                System.out.print(", 站点名称: " + name);
                System.out.print(", 站点 URL: " + url);
                System.out.print("\n");
            }
            // 完成后关闭
            rs.close();
            stmt.close();
            conn.close();
        }catch(SQLException se){
            // 处理 JDBC 错误
            se.printStackTrace();
        }catch(Exception e){
            // 处理 Class.forName 错误
            e.printStackTrace();
        }finally{
            // 关闭资源
            try{
                if(stmt!=null) stmt.close();
            }catch(SQLException se2){
            }// 什么都不做
            try{
                if(conn!=null) conn.close();
            }catch(SQLException se){
                se.printStackTrace();
            }
        }
        System.out.println("Goodbye!");
    }
}

复习参考网站->菜鸟教程: www.runoob.com/java

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值