java学习笔记(七)

2014-11-24 08:54:12 · 作者: · 浏览: 2
个枚举时,它的成员都可以看做枚举类型的实例,且默认被final,public,static修饰,其方法有
values()/枚举类型成员以数组形式返回,valueOf()/将普通字符串转换成枚举实例,compareTo()/比较两个枚举定义时的顺序,ordinal()/得到枚举成员的位置索引
3.枚举类型中可以添加构造方法,但必须为private修饰
当然也可以在枚举成员设置方法
枚举类型提供了一种友好的定义变量方法,枚举了某种数据可能的所有值
4.泛型,实质上就是使程序员定义安全的类型。语法:类名,T为类型的名字。使用时,类名 函数=new 类名();
常规用法:类名/定义多个类型。还可以定义泛型时声明数组类型,但不可以用其建立数组实例。可以使用K,V两个字符代表容器的键值和其对应的具体值。常用的被泛型化的集合类ArrayList,HashMap,HashSet,Vector
5.泛型的高级用法
限制泛型可用类型
class 类名称
没有则对表所有

使用泛型通配符
泛型类型< extends List> a=null
作用是限制这个泛型类型实现或继承某个接口或类的子类
使用通配声明的名称实例化,不能加入新的信息,只能获取或删除
继承泛型类,实现其接口
泛型的类或接口也可以被继承与实现


A< super List> a=null;对象a只接受List接口或其上层父类类型
java学习——第十三章(多线程)
1.多线程:java语言提供并发机制,程序员可以在程序中执行多个线程,每个线程完成一个功能,并且与其他的线程并发执行,这种机制称为多线程。
Thread类(java.lang.Thread),语法public Thread(String threadName/可省略);完成真正功能的代码放在类的run()方法中,然后同时调用Thread类中的start()方法执行线程,也就调用了run()。
Runnable接口(java.lang.Runnable),语法public class Thread extends Object implements Runnable。实现Runnable接口的程序会创建一个Thread对象,并将Runnable对象与Thread对象相关联,Thread有两个构造方法public Thread(Runnable r,String name/可省略),使用Runnable接口启动新的线程的步骤(1,建立Runnable对象2,使用Runnable对象的构造创建Thread实例3,调用start()方法启动线程)。
2.线程的生命周期(七个)
出生状态:在用户使用线程实例调用start()方法之前
就绪状态:当用户调用start方法之后
运行状态:当线程得到系统资源后
等待状态:运行状态下的状态调用Thread类中的wait()方法,其只能被notify/notifyAll()方法唤醒
休眠状态:当线程调用sleep()方法,其中的参数是以毫秒为单位的。
阻塞状态:一个线程在运行状态下发出输入输出请求
死亡状态:当线程的run()方法执行完毕时
3.线程的加入,使用join方法讲一个线程加入到另一个线程,另一个线程会等待该线程执行完后再继续执行。
线程的中断,现在不使用stop()方法停止线程,提倡在run()方法中使用无限循环的形式,然后使用一个布尔型标记控制循环的停止。
线程的礼让,yield()方法表示,它只是给出现在运行状态下的线程一个提醒,告诉它可以将资源礼让给其他线程,只是一种暗示
4.线程优先级
Thread类包含的成员变量代表线程的某些优先级,都在Thread.MIN_PRIORITY---Thread.MAX_PRIORITY间,默认条件下是Thread.NORM_PRIORITY。优先级可以使用setPriority(t)方法调整(t在1-10之间)
5.线程安全问题,必须考虑到两个线程同时存取单一对象的数据
线程同步机制,这时需要采取在给定时间内只允许一个线程访问共享资源,即是在给共享资源上加一道锁
java中的同步机制可以有效的防止资源冲突,使用关键字synchronized.语法:synchronized(object){...}这个同步块也成为临界区,通常将共享资源放在synchronized定义的区域中
同步方法,语法:synchronized void f(){}.当某个对象调用了同步方法,该对象上的其他同步方法必须等待该同步方法执行完毕。
6。线程间的通信(使用wait(),notify(),以及notifyAll()方法实现)
sleep和wait的区别在于sleep()方法的线程不释放锁。wait的两种使用方法
wait(time)这个同sleep()含义一样,在指定的时间内暂停
wait()会使线程永远的等待下去,直到notify(),以及notifyAll()方法唤醒
java学习——第十四章(网络通信)
1.网络程序设计室指编写与其它计算机进行通信的程序
网络端口并非真实的端口,而是假想中的,被规定在0-65535间,HTTP是80,FTP是21,通常0-1023的端口数用于一些知名的网络服务和应用,用户的普通网洛应使用在1024以上的端口。
套接字(Socket)用于将网络程序和端口连接起来,套接字是一个假象的装置,java中将其抽象化为类,程序员只需创建Socket对象即可使用。
2.TCP网络设计是指利用Socket类编写通信程序,分为主次(服务器程序和客户机程序)
InetAddress类(java.net.InetAddress)
getByName(String host)获取与Hos相对应的InetAddress对象,getHostAddress()获取InetAddress对象所含IP地址,getHostName()获取此IP的主机名,getLocalHost()返回本地主机的InetAddress对象
ServerSocket类(java.net.ServerSocket)通过制定的端口等待网略上的套接字,构造方法
ServerSocket(int port,int backlog,InetAddress bind Address/可省略其中)
常用方法accept()/等待客户机连接,若连接创建一个套接字,isBound()判断绑定状态,getInetAddress(),isClose()返回服务器套接字的关闭状态,close()关闭服务器套接字,bind(SocketAddress endpoint)将其绑定到特定的地址上,getInetAddress()返回服务器套接字等待的端口号
在命令行netstat -an 查看该程序的所有使用端口
3.UDP
DategramSocket()创建一个数据包套接字, DategramSocket(byte[] buf,int offset,int length,InetAddress address,int port)创建发送数据包,发送使用DategramSocket类的send()发送
DategramSocket(int port)创建数据包套接字且绑定到某端口,DategramSocket(byte[] buf,int length)创建字节数组