精华内容
下载资源
问答
  • 透明传输链路管理:数据链路层三种基本服务。无确认的无连接服务,确认的无连接服务,确认的连接服务。链路管理主要是负责链路的建立,维护和释放。主要面向连接的服务。帧同步:接收方收到的比特流中,一帧...

    总结一下,它有四个功能。

    1.链路管理

    2.帧同步

    3.差错控制

    4.透明传输

    链路管理:

    数据链路层有三种基本服务。

    无确认的无连接服务,有确认的无连接服务,有确认的有连接服务。

    链路管理主要是负责链路的建立,维护和释放。主要面向有连接的服务。

    帧同步:接收方收到的比特流中,一帧的开始位置与结束位置。

    差错控制:

    用于使接收方确认接受到的就是发送方发送的数据。

    透明传输:就是不管数据是怎样的比特组合,都能在链路上传输。

    来讲下最经常被人讨论的三个问题。

    问题一:数据链路层到底能不能把一条可能会出错的链路,转变成让网络层向下看起来好像不会出错的链路?

    这个问题的产生,源于人们参考的体系模型不一样。

    认为能的,是因为对于数据链路层的讨论是基于OSI的,OSI的数据链路层采用HDLC协议(面向连接),它提供的是可靠的传输服务。

    认为不能的,是因为对于数据链路层的讨论是基于TCP/IP的,现在互联网的数据链路层协议使用的最多的就是PPP和CSMA/CD协议(用于拨号和以太网)。这两种协议都不需要序号和确认机制,所以才说"不能让网络层向下看好像是一条不会出错的链路。"。

    现在的大多数情况是:当接收方检测到帧在传输中出了差错后,或者默默丢弃不做处理(PPP或者CSMA/CD),或者使用重传机制要求发送方重传(HDLC),后面的情况很少用。因此。如果需要可靠传输,就需要由高层的TCP负责重传,但是数据链路层并不知道这是重传的帧,所以还是默认可靠传输由传输层负责,而不是数据链路层。

    问题二:既然使用PPP和CSMA/CD不保证可靠传输,那又为啥还要进行差错检测呢?

    当数据链路层使用PPP或者CSMA/CD协议时,在数据链路层的接收端对所接受的帧进行差错检测是为了不将已经发现出错的帧接收下来。

    如果不进行检测,那么接收方上交给主机的帧。可能就包括传输过程中,已经出了错的帧。而这种帧对于接收方的主机,是没有用的。

    所以,接收方进行差错检测,是为了"上交给主机的帧,都是没有传输差错的",有差错的帧都丢弃了。达到一定的概率之后,我们就可以以接近1的概率去说,凡是上交给主机的帧,都是没有传输差错的。

    问题三:数据链路层有流量控制吗?

    这个问题还是看参考的对象。在OSI中,数据链路层肯定有流量控制。而在TCP/IP中,数据链路层的流量控制,转移到传输层中,就没有必要在数据链路层设置流量控制了。

    展开全文
  • 先解释下什么是序列化我们的对象并不只是存在内存中,还需要传输网络,或者保存起来下次再加载出来,所以需要Java序列化技术。Java序列化技术正是将对象转变成一串由二进制字节组成的数组,可以通过将二进制数据...

    此文转载于知乎的一篇文章,看着写的非常全面,分享给大家。

    先解释下什么是序列化

    我们的对象并不只是存在内存中,还需要传输网络,或者保存起来下次再加载出来用,所以需要Java序列化技术。

    Java序列化技术正是将对象转变成一串由二进制字节组成的数组,可以通过将二进制数据保存到磁盘或者传输网络,磁盘或者网络接收者可以在对象的属类的模板上来反序列化类的对象,达到对象持久化的目的。

    什么是 transient?

    简单来说就是,被 transient 修饰的变量不能被序列化。

    具体来看下面的示例1

    import java.io.FileInputStream;

    import java.io.FileOutputStream;

    import java.io.ObjectInputStream;

    import java.io.ObjectOutputStream;

    import java.io.Serializable;

    /**

    * @author 微信公众号:Java技术栈

    */

    public class TransientTest {

    public static void main(String[] args) throws Exception {

    User user = new User();

    user.setUsername("Java技术栈");

    user.setId("javastack");

    System.out.println("\n序列化之前");

    System.out.println("username: " + user.getUsername());

    System.out.println("id: " + user.getId());

    ObjectOutputStream os = new ObjectOutputStream(new FileOutputStream("d:/user.txt"));

    os.writeObject(user);

    os.flush();

    os.close();

    ObjectInputStream is = new ObjectInputStream(new FileInputStream("d:/user.txt"));

    user = (User) is.readObject();

    is.close();

    System.out.println("\n序列化之后");

    System.out.println("username: " + user.getUsername());

    System.out.println("id: " + user.getId());

    }

    }

    /**

    * @author 微信公众号:Java技术栈

    */

    class User implements Serializable {

    private static final long serialVersionUID = 1L;

    private String username;

    private transient String id;

    public String getUsername() {

    return username;

    }

    public void setUsername(String username) {

    this.username = username;

    }

    public String getId() {

    return id;

    }

    public void setId(String id) {

    this.id = id;

    }

    }

    输出结果:

    序列化之前

    username: Java技术栈

    id: javastack

    序列化之后

    username: Java技术栈

    id: null

    示例1在 id 字段上加了 transient 关键字修饰,反序列化出来之后值为 null,说明了被 transient 修饰的变量不能被序列化。

    静态变量能被序列化吗?

    这个话题也是最近栈长的Java技术栈vip群里面讨论的,大家对这个知识点比较模糊,我就写了这篇文章测试总结一下。

    e52ac8fc0be0382d744fd095b3558702.png

    如果你也想加入我们的Java技术栈vip群和各位大牛一起讨论技术,那点击这个链接了解加入吧。

    那么,到底静态变量能被序列化吗?废话少说,先动手测试下吧!

    示例2:

    import java.io.FileInputStream;

    import java.io.FileOutputStream;

    import java.io.ObjectInputStream;

    import java.io.ObjectOutputStream;

    import java.io.Serializable;

    /**

    * @author 微信公众号:Java技术栈

    */

    public class TransientStaticTest {

    public static void main(String[] args) throws Exception {

    User2 user = new User2();

    User2.username = "Java技术栈1";

    user.setId("javastack");

    System.out.println("\n序列化之前");

    System.out.println("username: " + user.getUsername());

    System.out.println("id: " + user.getId());

    ObjectOutputStream os = new ObjectOutputStream(new FileOutputStream("d:/user.txt"));

    os.writeObject(user);

    os.flush();

    os.close();

    // 在反序列化出来之前,改变静态变量的值

    User2.username = "Java技术栈2";

    ObjectInputStream is = new ObjectInputStream(new FileInputStream("d:/user.txt"));

    user = (User2) is.readObject();

    is.close();

    System.out.println("\n序列化之后");

    System.out.println("username: " + user.getUsername());

    System.out.println("id: " + user.getId());

    }

    }

    /**

    * @author 微信公众号:Java技术栈

    */

    class User2 implements Serializable {

    private static final long serialVersionUID = 1L;

    public static String username;

    private transient String id;

    public String getUsername() {

    return username;

    }

    public String getId() {

    return id;

    }

    public void setId(String id) {

    this.id = id;

    }

    }

    输出结果:

    序列化之前

    username: Java技术栈1

    id: javastack

    序列化之后

    username: Java技术栈2

    id: null

    示例2把 username 改为了 public static, 并在反序列化出来之前改变了静态变量的值,结果可以看出序列化之后的值并非序列化进去时的值。

    由以上结果分析可知,静态变量不能被序列化,示例2读取出来的是 username 在 JVM 内存中存储的值。

    transient 真不能被序列化吗?

    继续来看示例3:

    import java.io.Externalizable;

    import java.io.File;

    import java.io.FileInputStream;

    import java.io.FileOutputStream;

    import java.io.IOException;

    import java.io.ObjectInput;

    import java.io.ObjectInputStream;

    import java.io.ObjectOutput;

    import java.io.ObjectOutputStream;

    /**

    * @author 微信公众号:Java技术栈

    */

    public class ExternalizableTest {

    public static void main(String[] args) throws Exception {

    User3 user = new User3();

    user.setUsername("Java技术栈");

    user.setId("javastack");

    ObjectOutput objectOutput = new ObjectOutputStream(new FileOutputStream(new File("javastack")));

    objectOutput.writeObject(user);

    ObjectInput objectInput = new ObjectInputStream(new FileInputStream(new File("javastack")));

    user = (User3) objectInput.readObject();

    System.out.println(user.getUsername());

    System.out.println(user.getId());

    objectOutput.close();

    objectInput.close();

    }

    }

    /**

    * @author 微信公众号:Java技术栈

    */

    class User3 implements Externalizable {

    private static final long serialVersionUID = 1L;

    public User3() {

    }

    private String username;

    private transient String id;

    public String getUsername() {

    return username;

    }

    public void setUsername(String username) {

    this.username = username;

    }

    public String getId() {

    return id;

    }

    public void setId(String id) {

    this.id = id;

    }

    @Override

    public void writeExternal(ObjectOutput objectOutput) throws IOException {

    objectOutput.writeObject(id);

    }

    @Override

    public void readExternal(ObjectInput objectInput) throws IOException, ClassNotFoundException {

    id = (String) objectInput.readObject();

    }

    }

    输出结果:

    null

    javastack

    示例3的 id 被 transient 修改了,为什么还能序列化出来?那是因为 User3 实现了接口 Externalizable,而不是 Serializable。

    在 Java 中有两种实现序列化的方式,Serializable 和 Externalizable,可能大部分人只知道 Serializable 而不知道 Externalizable。

    这两种序列化方式的区别是:实现了 Serializable 接口是自动序列化的,实现 Externalizable 则需要手动序列化,通过 writeExternal 和 readExternal 方法手动进行,这也是为什么上面的 username 为 null 的原因了。

    transient 关键字总结

    1)transient修饰的变量不能被序列化;

    2)transient只作用于实现 Serializable 接口;

    3)transient只能用来修饰普通成员变量字段;

    4)不管有没有 transient 修饰,静态变量都不能被序列化;

    笔者的微信公众号,每天一篇好文章:

    关注公众号,回复synchronized获取《深入探讨synchronized实现原理》

    展开全文
  • Java序列化技术正是将对象转变成一串由二进制字节组成的数组,可以通过将二进制数据保存到磁盘或者传输网络,磁盘或者网络接收者可以在对象的属类的模板上来反序列化类的对象,达到对象持久化的目的。 更多序列化请...

    此文转载于知乎的一篇文章,看着写的非常全面,分享给大家。

    先解释下什么是序列化

    我们的对象并不只是存在内存中,还需要传输网络,或者保存起来下次再加载出来用,所以需要Java序列化技术。

    Java序列化技术正是将对象转变成一串由二进制字节组成的数组,可以通过将二进制数据保存到磁盘或者传输网络,磁盘或者网络接收者可以在对象的属类的模板上来反序列化类的对象,达到对象持久化的目的。

    更多序列化请参考:《关于Java序列化你应该知道的一切》这篇文章。

    什么是 transient?

    简单来说就是,被 transient 修饰的变量不能被序列化。

    具体来看下面的示例1

    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.ObjectInputStream;
    import java.io.ObjectOutputStream;
    import java.io.Serializable;
    
    /**
     * @author 微信公众号:Java技术栈
     */
    public class TransientTest {
    
        public static void main(String[] args) throws Exception {
    
            User user = new User();
            user.setUsername("Java技术栈");
            user.setId("javastack");
    
            System.out.println("\n序列化之前");
            System.out.println("username: " + user.getUsername());
            System.out.println("id: " + user.getId());
    
            ObjectOutputStream os = new ObjectOutputStream(new FileOutputStream("d:/user.txt"));
            os.writeObject(user);
            os.flush();
            os.close();
    
            ObjectInputStream is = new ObjectInputStream(new FileInputStream("d:/user.txt"));
            user = (User) is.readObject();
            is.close();
    
            System.out.println("\n序列化之后");
            System.out.println("username: " + user.getUsername());
            System.out.println("id: " + user.getId());
    
        }
    }
    
    /**
     * @author 微信公众号:Java技术栈
     */
    class User implements Serializable {
    
        private static final long serialVersionUID = 1L;
    
        private String username;
        private transient String id;
    
        public String getUsername() {
            return username;
        }
    
        public void setUsername(String username) {
            this.username = username;
        }
    
        public String getId() {
            return id;
        }
    
        public void setId(String id) {
            this.id = id;
        }
    
    }

    输出结果:

    序列化之前
    username: Java技术栈
    id: javastack
    
    序列化之后
    username: Java技术栈
    id: null

    示例1在 id 字段上加了 transient 关键字修饰,反序列化出来之后值为 null,说明了被 transient 修饰的变量不能被序列化。

    静态变量能被序列化吗?

    这个话题也是最近栈长的Java技术栈vip群里面讨论的,大家对这个知识点比较模糊,我就写了这篇文章测试总结一下。

     

     

    如果你也想加入我们的Java技术栈vip群和各位大牛一起讨论技术,那点击这个链接了解加入吧。

    那么,到底静态变量能被序列化吗?废话少说,先动手测试下吧!

    示例2:

    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.ObjectInputStream;
    import java.io.ObjectOutputStream;
    import java.io.Serializable;
    
    /**
     * @author 微信公众号:Java技术栈
     */
    public class TransientStaticTest {
    
        public static void main(String[] args) throws Exception {
    
            User2 user = new User2();
            User2.username = "Java技术栈1";
            user.setId("javastack");
    
            System.out.println("\n序列化之前");
            System.out.println("username: " + user.getUsername());
            System.out.println("id: " + user.getId());
    
            ObjectOutputStream os = new ObjectOutputStream(new FileOutputStream("d:/user.txt"));
            os.writeObject(user);
            os.flush();
            os.close();
    
            // 在反序列化出来之前,改变静态变量的值
            User2.username = "Java技术栈2";
    
            ObjectInputStream is = new ObjectInputStream(new FileInputStream("d:/user.txt"));
            user = (User2) is.readObject();
            is.close();
    
            System.out.println("\n序列化之后");
            System.out.println("username: " + user.getUsername());
            System.out.println("id: " + user.getId());
    
        }
    }
    
    /**
     * @author 微信公众号:Java技术栈
     */
    class User2 implements Serializable {
    
        private static final long serialVersionUID = 1L;
    
        public static String username;
        private transient String id;
    
        public String getUsername() {
            return username;
        }
    
        public String getId() {
            return id;
        }
    
        public void setId(String id) {
            this.id = id;
        }
    
    }

    输出结果:

    序列化之前
    username: Java技术栈1
    id: javastack
    
    序列化之后
    username: Java技术栈2
    id: null

    示例2把 username 改为了 public static, 并在反序列化出来之前改变了静态变量的值,结果可以看出序列化之后的值并非序列化进去时的值。

    由以上结果分析可知,静态变量不能被序列化,示例2读取出来的是 username 在 JVM 内存中存储的值。

    transient 真不能被序列化吗?

    继续来看示例3:

    import java.io.Externalizable;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.ObjectInput;
    import java.io.ObjectInputStream;
    import java.io.ObjectOutput;
    import java.io.ObjectOutputStream;
    
    /**
     * @author 微信公众号:Java技术栈
     */
    public class ExternalizableTest {
    
        public static void main(String[] args) throws Exception {
    
            User3 user = new User3();
            user.setUsername("Java技术栈");
            user.setId("javastack");
            ObjectOutput objectOutput = new ObjectOutputStream(new FileOutputStream(new File("javastack")));
            objectOutput.writeObject(user);
    
            ObjectInput objectInput = new ObjectInputStream(new FileInputStream(new File("javastack")));
            user = (User3) objectInput.readObject();
    
            System.out.println(user.getUsername());
            System.out.println(user.getId());
    
            objectOutput.close();
            objectInput.close();
        }
    
    }
    
    /**
     * @author 微信公众号:Java技术栈
     */
    class User3 implements Externalizable {
    
        private static final long serialVersionUID = 1L;
    
        public User3() {
    
        }
    
        private String username;
        private transient String id;
    
        public String getUsername() {
            return username;
        }
    
        public void setUsername(String username) {
            this.username = username;
        }
    
        public String getId() {
            return id;
        }
    
        public void setId(String id) {
            this.id = id;
        }
    
        @Override
        public void writeExternal(ObjectOutput objectOutput) throws IOException {
            objectOutput.writeObject(id);
        }
    
        @Override
        public void readExternal(ObjectInput objectInput) throws IOException, ClassNotFoundException {
            id = (String) objectInput.readObject();
        }
    
    }

    输出结果:

    null
    javastack

    示例3的 id 被 transient 修改了,为什么还能序列化出来?那是因为 User3 实现了接口 Externalizable,而不是 Serializable。

    在 Java 中有两种实现序列化的方式,Serializable 和 Externalizable,可能大部分人只知道 Serializable 而不知道 Externalizable。

    这两种序列化方式的区别是:实现了 Serializable 接口是自动序列化的,实现 Externalizable 则需要手动序列化,通过 writeExternal 和 readExternal 方法手动进行,这也是为什么上面的 username 为 null 的原因了。

    transient 关键字总结

    1)transient修饰的变量不能被序列化;

    2)transient只作用于实现 Serializable 接口;

    3)transient只能用来修饰普通成员变量字段;

    4)不管有没有 transient 修饰,静态变量都不能被序列化;

     

    笔者的微信公众号,每天一篇好文章:

    关注公众号,回复synchronized获取《深入探讨synchronized实现原理》

     

    展开全文
  • 本文参考了以下文章: 1、 基于java的InputStream.read(byte[] b,int off,int len)... - 首先看一下文件传输什么用read(带buffer)而不是直接用read()的原因: - InputStream读取流三个方法,分别为read(),read

    本文参考了以下文章:
    1、 基于java的InputStream.read(byte[] b,int off,int len)算法学习!
    2、java InputStream读取数据问题
    3、java的输入输出流总结

    - 首先看一下文件传输为什么用read(带buffer)而不是直接用read()的原因:
    - InputStream读取流有三个方法,分别为read(),read(byte[] b),read(byte[] b, int off, int len)。其中read()方法是一次读取一个字节,所以效率是很低的….所以不用

    • 然后就是read(带buffer)用法详解了
     public int read(byte[] b,
                    int off,
                    int len)
             throws IOException
    • 参数:
      b - 读入数据的缓冲区。
      off - 在其处写入数据的数组 b 的初始偏移量。
      len - 要读取的最大字节数。
    • 返回:
      读入缓冲区的总字节数,如果由于已到达流末尾而不再有数据,则返回 -1。
    • 抛出:
      IOException - 如果发生 I/O 错误。
      NullPointerException - 如果 b 为 null。


      • 1、将输入流中最多 len 个数据字节读入字节数组。尝试读取多达 len 字节,但可能读取较少数量。以整数形式返回实际读取的字节数。


      • 2、在输入数据可用、检测到流的末尾或者抛出异常前,此方法一直阻塞。

      • 3、如果 b 为 null,则抛出 NullPointerException。

      • 4、如果 off 为负,或 len 为负,或 off+len 大于数组 b 的长度,则抛出 IndexOutOfBoundsException。

      • 5、将读取的第一个字节存储在元素 b[off] 中,下一个存储在 b[off+1] 中,依次类推。读取的字节数最多等于 len。让 k 为实际读取的字节数;这些字节将存储在元素 b[off] 至 b[off+k-1] 之间,其余元素 b[off+k] 至 b[off+len-1] 不受影响。
    展开全文
  • 数据加密传输

    2016-12-13 15:50:56
    背景最近做的一个项目,用到了数据加密传输,我们AES加密的时候要用到base64编码,但是android的base64和java的base64不一致,一开始我和java服务端同一个jar包下的base64,在android下会报...
  • 1、NDI是什么意思?NDI是使视频兼容产品通过局域网进行视频共享的开放式协议,NDI是采用数字高清以太网传输技术,将前端采集类设备(NDI数字高清摄像机)通过CAT5或CAT6网线点对...NDI的传输相比同轴电缆传输会更...
  • 可以不用JAD文件,就单独一个JAR文件可以完成(在此顺便讲一下为什么用数据线传一定要两个文件放一起,其实JAD文件在手机中的其实是没什么用的,但是使用下载JAVA的时候,必须使用JAD文件,JAD文件是信息描述文件,...
  • 最近要做点阵图片连接打印机打印图片,我要DataOutputStream.write();传输数据还是要把数据转为二进制(101010101)格式的数据返回给serve?byte与进制有什么区别?求大神解答
  • 网线很简单,他就是用来传输电信号的!他只有电气性能,并没有什么你所指的原理!...作为传输数据的一环,网线也是需要做最优化处理的!这样就了相应的认为制定的相对平衡的标准,比如规定了颜色和其他性能的56...
  • 1、流的概念和作用流:代表任何能力产出数据的数据源对象或者是能力接受数据的接收端对象流的本质:数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。作用:为数据源和目的地建立一个输送...
  • Java整型的字节序是()A.Little-Endian(小端)B.Big-Endian(大端)C.由运行程序的CPU决定D.由编译程序的CPU决定对于大小端,我估计肯定很多开发...字节序:指多字节数据在计算机内存中存储或者网络传输时各字节的存储...
  • Java数据编程指南

    2008-07-24 16:17:34
    J2EE通信 通信概述 JMS的详细情况 消息驱动EJB 小结 第24章 Java数据对象(JDO) 概述 JDO对象模型 JDO API JDO实例的生命周期 JDO和EJB 开发可持久类 范例应用程序 配置FFJ...
  • 什么实时传输不能 TCP ?TCP 的目的就是实现数据的可靠传输,因此他一套 握手,发送 -> 确认,超时 -> 重发 的机制。举个例子,A 与 B 通讯,A 首先向 B 发送数据,并启动一个定时器。当 B 收到 A 的...
  • DTO(Data Transfer Object)就是数据传输对象,说白了就是一个对象,只不过里边全是数据而已。为什么DTO?1、DTO更注重数据,对领域对象进行合理封装,从而不会将领域对象的行为过分暴露给表现层2、DTO是面向UI的...
  • java--什么是Socket,为什么Socket

    千次阅读 2015-07-16 23:19:20
    应用层通过传输层进行数据通信时,TCP和UDP会遇到同时为多个应用程序进程提供并发服务的问题。多个TCP连接或多个应用程序进程可能需要通过同一个TCP...生成套接字,主要3个参数:通信的目的IP地址、使用的传输层协
  • 使用socket进行通信 delphi作为客户端中使用的是文件流TfileStream传送文件 java作为服务端的InputStreamReader获取 悲催的问题来了 服务端获取不到文件中的末尾也就是说不知道文件...亦或者有什么其它的传输方式?
  • Socket传输模式 Sockets两种主要的操作方式:面向连接的和无连接的.面向连接的sockets操作就像一部电话,他们必须建立一个连接和一人呼叫.所有的事情在到达时的顺序与它们出发时的顺序时一样.无连接的sockets操作就...
  • 硬盘采用DMA方式进行数据传送,其数据传输率为4MB/s, 每次DMA传输的数据量为8KB, 要求没有任何数据传输被错过。如果CPU在DMA初始化设置和启动硬盘操作等方面了1000个时钟周期,并且在DMA传送完成后的中断处理需要...
  • 一、什么是Base64?百度百科中对Base64一个很好...为什么它来传输8Bit字节码呢?在回答这两个问题之前我们必要来思考一下什么情况下需要使用到Base64?Base64一般用于在HTTP协议下传输二进制数据,由于HTTP协...
  • 字节流和字符流的区别是:字节流按 8 位传输以字节为单位输入输出数据,字符流按 16 位传输以字符为单位输入输出数据Java序列化中如果有些字段不想进行序列化,怎么办? 对于不想进行序列化的变量,使用...
  • 在实际小型监控系统中,经常会人把网线的8芯分4芯,一半做水晶头作为摄像机的网络传输,一半做12V作为电源传输,这个事情相信大部分人都做过吧。既然使用的人不少,这样的传输肯定是有效的。但是这样做不影响使用...
  • 在实际小型监控系统中,经常会人把网线的8芯分4芯,一半做水晶头作为摄像机的网络传输,一半做12V作为电源传输,这个事情相信大部分人都做过吧。既然使用的人不少,这样的传输肯定是有效的。但是这样做不影响使用...
  • IO流及其概述和分类一:IO流用来处理数据之间的传输Java对数组的数据流的方式,Java用于操作流在IO包中二:流可以分为输入流,和输出流三:操作类型可以分为:①字节流字节流可以操作任何数据,因为计算机中...
  • 一、scp是什么?scp是securecopy的简写,用于在...二、scp有什么用?1、我们需要获得远程服务器上的某个文件,远程服务器既没有配置ftp服务器,没有开启web服务器,也没有做共享,无法通过常规途径获得文件时,只需...
  • java project就是普通的用java写的程序,直接就能运行的,web project,web ...web project就是web工程,简单的讲做网站的工程,web service project是以http为通信协议xml为媒介来传输数据以达到运行调用java程序的
  • 硬盘采用DMA方式进行数据传送,其数据传输率为4MB/s, 每次DMA传输的数据量为8KB, 要求没有任何数据传输被错过。如果CPU在DMA初始化设置和启动硬盘操作等方面了1000个时钟周期,并且在DMA传送完成后的中断处理需要...
  • 在实际小型监控系统中,经常会人把网线的8芯分4芯,一半做水晶头作为摄像机的网络传输,一半做12V作为电源传输,这个事情相信大部分人都做过吧。既然使用的人不少,这样的传输肯定是有效的。但是这样做不影响使用...
  • java序列化怎么

    2018-09-13 10:39:57
    序列化是什么: 序列化就是将一个对象的状态(各个属性量)保存起来,然后在适当的时候再获得。 序列化分为两大部分:序列化和反序列化。...序列化有什么特点: 如果某个类能够被序列化,其子类也可以...
  • 可能人会说Python版本的爬虫到处都可以搜到,而且Python的scrapy、beautifulsoup等库又快又方便,那么为什么我们还要用Java写爬虫呢?事实是这样没错,但是这次的弹幕爬虫严格来讲主要涉及到网络数据传输,并不...
  • 在项目的开发过程中,前后端交互,这个的是最多的,在后端给我的的接口调用时,我们往往先查看这个协议的状态码,状态码正常了,才进一步去看我们从后太拿的数据,是否为我们所需要的数据。但是,协议中状态码很...

空空如也

空空如也

1 2 3 4 5 ... 19
收藏数 374
精华内容 149
关键字:

java数据传输有什么用

java 订阅