zoukankan      html  css  js  c++  java
  • Java 笔记10

    classObjectOutputStream也是过滤流,使节点流直接获得输出对象。

    最有用的方法:WriteObject(Object b)

    用流传输对象称为对象的序列化,但并不使所有的对象都可以进行序列化的。只有在实现类时必须实现一个接口:IO包下的Serializable(可序列化的)。此接口没有任何的方法,这样的接口称为标记接口。

    Class Studentimplements Serializable

    把对象通过流序列化到某一个持久性介质称为对象的可持久化。

    Hibernate就是研究对象的可持久化。

    ObuectInputStream  in =new  ObjectInputStream;

    Objecto1=in.readObuect();

    Students1=(Student)o1;

    注意:因为o1是一个对象,因为需要对其进行保存。

     

    Transient用来修饰属性。

     Transient int num;

    表示当我们对属性序列化时忽略这个属性(即忽略不使之持久化)。

    所有属性必须都是可序列化的,特别是当有些属性本身也是对象的时候,要尤其注意这一点。

    判断是否一个属性或对象可序列化:Serialver。

    Serialver TestObject(TestObject必须为已经编译)

    执行结果:如果不可序列化;则出现不可序列化的提示。如果可以序列化,那么就会出现序列化的ID:UID。

    java.until.*有

    StringTokenizer(参数1,参数2)按某种符号隔开文件

    StringTokenizer(s,”:”)用“:”隔开字符,s为对象。

     

    练习:将一个类序列化到文件,然后读出。下午:

    1、  网络基础知识

    2、  JAVA网络编程

     

    网络与分布式集群系统的区别:每个节点都是一台计算机,而不是各种计算机内部的功能设备。

    Ip:具有全球唯一性,相对于internet,IP为逻辑地址。

    端口(port):一台PC中可以有65536个端口,进程通过端口交换数据。连线的时候需要输入IP也需要输入端口信息。

    计算机通信实际上的主机之间的进程通信,进程的通信就需要在端口进行联系。

    192.168.0.23:21

    协议:为了进行网络中的数据交换(通信)而建立的规则、标准或约定。

    不同层的协议是不同的。

     

    网络层:寻址、路由(指如何到达地址的过程)

    传输层:端口连接

    TCP模型:应用层/传输层/网络层/网络接口

    端口是一种抽象的软件结构,与协议相关:TCP23端口和UDT23端口为两个不同的概念。

    端口应该用1024以上的端口,以下的端口都已经设定功能。

    套接字(socket)的引入:

    Ip+Port=Socket(这是个对象的概念。)

    Socket为传输层概念,而JSP是对应用层编程。例:

    java.net.*;

    (Server端定义顺序)

    ServerSocket(intport)

    Socket.accept();//阻塞方法,当客户端发出请求是就恢复

    如果客户端收到请求:

    则Socket SI=ss.accept();

    注意客户端和服务器的Socket为两个不同的socket。

    Socket的两个方法:

    getInputStream():客户端用

      getOutputStream() 服务器端用

    使用完毕后切记Socket.close(),两个Socket都关,而且不用关内部的流。

    在client端,Sockets=new Socket(“127.0.0.1”,8000);

    127.0.0.1为一个默认本机的地址。

    练习:

    1、  客户端向服务器发出一个字符串,服务器转换成大写传回客户端。

    大写的函数:String.toUpperCase()

    服务器告诉客户端:“自开机以来你是第n 个用户”。pan st�b'o�o����12.0pt;font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman"'>定位。

    Mode(“r”:随机读;”w”:随机写;”rw”:随机读写)

    练习:写一个类A,JAVAA file1 file2

    file1要求是系统中已经存在的文件。File2是还没有存在的文件。

    执行完这个命令,那么file2就是file1中的内容。

     

    字符流:reader\write只能输纯文本文件。

    FileReader类:字符文件的输出

     

    字节流与字符流的区别:

    字节流的字符编码:

    字符编码把字符转换成数字存储到计算机中,按ASCii将字母映射为整数。

    把数字从计算机转换成相应的字符的过程称为解码。

    编码方式的分类:

    ASCII(数字、英文):1个字符占一个字节(所有的编码集都兼容ASCII)

    ISO8859-1(欧洲):1个字符占一个字节

    GB-2312/GBK:1个字符占两个字节

    Unicode: 1个字符占两个字节(网络传输速度慢)

    UTF-8:变长字节,对于英文一个字节,对于汉字两个或三个字节。

     

    原则:保证编解码方式的统一,才能不至于出现错误。

    Io包的InputStreamread称为从字节流到字符流的桥转换类。这个类可以设定字符转换方式。

    OutputStreamred:字符到字节

    Bufferread有readline()使得字符输入更加方便。

    在I/O流中,所有输入方法都是阻塞方法。

    Bufferwrite给输出字符加缓冲,因为它的方法很少,所以使用父类printwrite,它可以使用字节流对象,而且方法很多。

     

    练习:做一个记事本

    swing/JfileChoose:getSelect file()

    InputStreeamReader:把字节变为字符

    JAVA中对字符串长无限制  bufferedReader(ir)

    ()

     

    释放锁标记只有在Synchronized代码结束或者调用wait()。

    注意锁标记是自己不会自动释放,必须有通知。

    注意在程序中判定一个条件是否成立时要注意使用WHILE要比使用IF要严密。

    WHILE会放置程序饶过判断条件而造成越界。

    补充知识:

    suspend()是将一个运行时状态进入阻塞状态(注意不释放锁标记)。恢复状态的时候用resume()。Stop()指释放全部。

    这几个方法上都有Deprecated标志,说明这个方法不推荐使用。

     

    一般来说,主方法main()结束的时候线程结束,可是也可能出现需要中断线程的情况。对于多线程一般每个线程都是一个循环,如果中断线程我们必须想办法使其退出。


    如果主方法main()想结束阻塞中的线程(比如sleep或wait)

    那么我们可以从其他进程对线程对象调用interrupt()。用于对阻塞(或锁池)会抛出例外InterruptedException。

    这个例外会使线程中断并执行catch中代码。

     

    多线程中的重点:实现多线程的两种方式,Synchronized,以及生产者和消费者问题(ProducerConsumer.java文件)。

     

    练习:

    ①  存车位的停开车的次序输出问题;

    ②  写两个线程,一个线程打印1-52,另一个线程答应字母A-Z。打印顺序为12A34B56C……5152Z。通过使用线程之间的通信协调关系。

    注:分别给两个对象构造一个对象o,数字每打印两个或字母每打印一个就执行o.wait()。在o.wait()之前不要忘了写o.notify()。

     

    补充说明:通过Synchronized,可知Vector较ArrayList方法的区别就是Vector所有的方法都有Synchronized。所以Vector更为安全。

    同样:Hashtable较HashMap也是如此。
  • 相关阅读:
    设置SSH编码为中文
    深入浅出REST架构 REST架构概述
    RESTful Web Services初探
    Linux 基础命令
    Linux 目录和文件操作
    Linux 压缩文件的命令行总结
    Linxu 监控命令总结
    Linux 下Tomcat的启动、关闭、杀死进程
    Linux日知录(常用问题笔记)
    linux 下远程连接mysql命令详解
  • 原文地址:https://www.cnblogs.com/flyingsir/p/3983755.html
Copyright © 2011-2022 走看看