• Java教程


    Java只支持类之间的单继承,但支持接口之间的多继承。

    线程必须由Thread类或其子(孙)类来创建。通常有两种方法来创建线程:其一,使用型构为Thread(Runnable)的构造子类将一个实现了Runnable接口的对象包装成一个线程,其二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。

    枚举可以单独声明或者声明在类里面。方法、变量、构造函数也可以在枚举中定义。

    基本类型类型以及对象的引用变量是存储在栈内存中 ;而对象本身的值或者说 new 创建的对象和数组是存储在堆内存中。

    void是不能new出来,也就是不能在堆里面分配空间存对应的值。基本类型就是一开始在堆栈处分配好空间了。所以,有些人将void归成基本类型。

    数据类型转换必须满足如下规则:

    • 1. 不能对boolean类型进行类型转换。

    • 2. 不能把对象类型转换成不相关类的对象。

    • 3. 在把容量大的类型转换为容量小的类型时必须使用强制类型转换。

    • 4. 转换过程中可能导致溢出或损失精度。

    • 5. 浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入。

    隐含强制类型转换

    • 1. 整数的默认类型是 int。

    • 2. 浮点型不存在这种情况,因为在定义 float 类型时必须在数字后面跟上 F 或者 f 。

    访问控制修饰符

    • default (即缺省,什么也不写): 对同一个包内的类是可见的。接口里的变量都隐式声明为 public static final,而接口里的方法默认情况下访问权限为 public。

    • private : 在同一类内可见。类和接口不能声明为 private,使用对象:变量、方法。 注意:不能修饰类(外部类)

    • public : 对所有类可见。使用对象:类、接口、变量、方法。Java 程序的 main() 方法必须设置成公有的,否则,Java 解释器将不能运行该类。

    • protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)

      • 基类的 protected 成员是包内可见的,并且对子类可见;
      • 若子类与基类不在同一包中,那么在子类中,子类实例可以访问其从基类继承而来的protected方法,而不能访问基类实例的protected方法。

    一个类不能同时被 abstract 和 final 修饰。如果一个类包含抽象方法,那么该类一定要声明为抽象类,否则将出现编译错误。

    如果一个类包含若干个抽象方法,那么该类必须声明为抽象类。抽象类可以不包含抽象方法。

    StringBuilder 类和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。

    由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类。

    java 基本数据类型传递参数时是值传递 ;引用类型传递参数时是引用传递 。然而数组虽然是引用传递 ,但是将引用 z[] = null 只是将引用z不指向任何对象 ,并不会对原先指向的对象数据进行修改 。

    线程属于一次性消耗品,在执行完 run() 方法之后线程便会正常结束了,线程结束后便会销毁,不能再次 start,只能重新建立新的线程对象。

    所有异常类的基类是 Java.Lang.throwable

    所有的异常类是从 java.lang.Exception 类继承的子类。

    Exception 类是 Throwable 类的子类。除了Exception类外,Throwable还有一个子类Error 。

    异常类有两个主要的子类:IOException 类和 RuntimeException 类。

    在Java中定义了两种类型的异常和错误。

    • JVM(Java虚拟机) 异常:由 JVM 抛出的异常或错误。例如:NullPointerException 类,ArrayIndexOutOfBoundsException 类,ClassCastException 类。
    • 程序级异常:由程序或者API程序抛出的异常。例如 IllegalArgumentException 类,IllegalStateException 类。

    空引用可用于访问静态变量或方法——当我们通过一个对象的引用访问静态成员属性或者方法时,访问操作只与所声明的引用类型相关;与引用对象是否为 null 无关,因为访问静态成员不需要实例化对象;即便引用不为 null ,也与运行时多态无关,因为静态成员是类相关的。

    如果是基本类型和String,则实参不会变(传的是值);

    如果是对象,则实参会改变(传的是引用)。

    实例变量也可以被定义为 final,被定义为 final 的变量不能被修改。被声明为 final 类的方法自动地声明为 final,但是实例变量并不是 final。

    子类是不继承父类的构造器(构造方法或者构造函数)的,它只是调用(隐式或显式)。如果父类的构造器带有参数,则必须在子类的构造器中显式地通过 super 关键字调用父类的构造器并配以适当的参数列表。

    如果父类构造器没有参数,则在子类的构造器中不需要使用 super 关键字调用父类构造器,系统会自动调用父类的无参构造器。

    抽象类总结规定

    • 1. 抽象类不能被实例化(初学者很容易犯的错),如果被实例化,就会报错,编译无法通过。只有抽象类的非抽象子类可以创建对象。

    • 2. 抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类。

    • 3. 抽象类中的抽象方法只是声明,不包含方法体,就是不给出方法的具体实现也就是方法的具体功能。

    • 4. 构造方法,类方法(用 static 修饰的方法)不能声明为抽象方法。

    • 5. 抽象类的子类必须给出抽象类中的抽象方法的具体实现,除非该子类也是抽象类。

    任何对象加入集合类后,自动转变为Object类型,所以在取出的时候,需要进行强制类型转换。

    在 TCP/IP 中包含一系列用于处理数据通信的协议:

    • TCP (传输控制协议) - 应用程序之间通信
    • UDP (用户数据报协议) - 应用程序之间的简单通信
    • IP (网际协议) - 计算机之间的通信
    • ICMP (因特网消息控制协议) - 针对错误和状态
    • DHCP (动态主机配置协议) - 针对动态寻址

    TCP 用于应用程序之间的通信。

    当应用程序希望通过 TCP 与另一个应用程序通信时,它会发送一个通信请求。这个请求必须被送到一个确切的地址。在双方"握手"之后,TCP 将在两个应用程序之间建立一个全双工 (full-duplex) 的通信。

    这个全双工的通信将占用两个计算机之间的通信线路,直到它被一方或双方关闭为止。

    UDP 和 TCP 很相似,但是更简单,同时可靠性低于 TCP。

    IP 用于计算机之间的通信。

    IP 是无连接的通信协议。它不会占用两个正在通信的计算机之间的通信线路。这样,IP 就降低了对网络线路的需求。每条线可以同时满足许多不同的计算机之间的通信需要。

    通过 IP,消息(或者其他数据)被分割为小的独立的包,并通过因特网在计算机之间传送。

    IP 负责将每个包路由至它的目的地。

    IP 路由器

    当一个 IP 包从一台计算机被发送,它会到达一个 IP 路由器。

    IP 路由器负责将这个包路由至它的目的地,直接地或者通过其他的路由器。

    在一个相同的通信中,一个包所经由的路径可能会和其他的包不同。而路由器负责根据通信量、网络中的错误或者其他参数来进行正确地寻址。

    TCP/IP

    TCP/IP 意味着 TCP 和 IP 在一起协同工作。

    TCP 负责应用软件(比如您的浏览器)和网络软件之间的通信。

    IP 负责计算机之间的通信。

    TCP 负责将数据分割并装入 IP 包,然后在它们到达的时候重新组合它们。

    IP 负责将包发送至接受者。

    TCP/IP 使用 32 个比特或者 4 组 0 到 255 之间的数字来为计算机编址。

    12 个阿拉伯数字很难记忆。使用一个名称更容易。

    用于 TCP/IP 地址的名字被称为域名。runoob.com 就是一个域名。

    当你键入一个像 http://www.runoob.com 这样的域名,域名会被一种 DNS 程序翻译为数字。

    在全世界,数量庞大的 DNS 服务器被连入因特网。DNS 服务器负责将域名翻译为 TCP/IP 地址,同时负责使用新的域名信息更新彼此的系统。

    当一个新的域名连同其 TCP/IP 地址一起注册后,全世界的 DNS 服务器都会对此信息进行更新。

    协议族

    TCP/IP 是基于 TCP 和 IP 这两个最初的协议之上的不同的通信协议的大集合。


    TCP - 传输控制协议

    TCP 用于从应用程序到网络的数据传输控制。

    TCP 负责在数据传送之前将它们分割为 IP 包,然后在它们到达的时候将它们重组。


    IP - 网际协议(Internet Protocol)

    IP 负责计算机之间的通信。

    IP 负责在因特网上发送和接收数据包。


    HTTP - 超文本传输协议(Hyper Text Transfer Protocol)

    HTTP 负责 web 服务器与 web 浏览器之间的通信。

    HTTP 用于从 web 客户端(浏览器)向 web 服务器发送请求,并从 web 服务器向 web 客户端返回内容(网页)。


    HTTPS - 安全的 HTTP(HTTP Secure)

    HTTPS 负责在 web 服务器和 web 浏览器之间的安全通信。

    作为有代表性的应用,HTTPS 会用于处理信用卡交易和其他的敏感数据。


    SSL - 安全套接字层(Secure Sockets Layer)

    SSL 协议用于为安全数据传输加密数据。


    SMTP - 简易邮件传输协议(Simple Mail Transfer Protocol)

    SMTP 用于电子邮件的传输。


    MIME - 多用途因特网邮件扩展(Multi-purpose Internet Mail Extensions)

    MIME 协议使 SMTP 有能力通过 TCP/IP 网络传输多媒体文件,包括声音、视频和二进制数据。


    IMAP - 因特网消息访问协议(Internet Message Access Protocol)

    IMAP 用于存储和取回电子邮件。


    POP - 邮局协议(Post Office Protocol)

    POP 用于从电子邮件服务器向个人电脑下载电子邮件。


    FTP - 文件传输协议(File Transfer Protocol)

    FTP 负责计算机之间的文件传输。


    NTP - 网络时间协议(Network Time Protocol)

    NTP 用于在计算机之间同步时间(钟)。


    DHCP - 动态主机配置协议(Dynamic Host Configuration Protocol)

    DHCP 用于向网络中的计算机分配动态 IP 地址。


    SNMP - 简单网络管理协议(Simple Network Management Protocol)

    SNMP 用于计算机网络的管理。


    LDAP - 轻量级的目录访问协议(Lightweight Directory Access Protocol)

    LDAP 用于从因特网搜集关于用户和电子邮件地址的信息。


    ICMP - 因特网消息控制协议(Internet Control Message Protocol)

    ICMP 负责网络中的错误处理。


    ARP - 地址解析协议(Address Resolution Protocol)

    ARP - 用于通过 IP 来查找基于 IP 地址的计算机网卡的硬件地址。


    RARP - 反向地址转换协议(Reverse Address Resolution Protocol)

    RARP 用于通过 IP 查找基于硬件地址的计算机网卡的 IP 地址。


    BOOTP - 自举协议(Boot Protocol)

    BOOTP 用于从网络启动计算机。


    PPTP - 点对点隧道协议(Point to Point Tunneling Protocol)

    PPTP 用于私人网络之间的连接(隧道)。

    邮件程序会用到...

    您的电子邮件程序使用不同的 TCP/IP 协议:

    • 使用 SMTP 来发送邮件
    • 使用 POP 从邮件服务器下载邮件
    • 使用 IMAP 连接到邮件服务器

    SMTP - 简单邮件传输协议

    SMTP 协议用于传输电子邮件。SMTP 负责把邮件发送到另一台计算机。

    通常情况下,邮件会被送到一台邮件服务器(SMTP 服务器),然后被送到另一台(或几台)服务器,然后最终被送到它的目的地。

    SMTP 也可以传送纯文本,但是无法传输诸如图片、声音或者电影之类的二进制数据。

    SMTP 使用 MIME 协议通过 TCP/IP 网络来发送二进制数据。MIME 协议会将二进制数据转换为纯文本。

    POP - 邮局协议

    POP 协议被邮件程序用来取回邮件服务器上面的邮件。

    假如您的邮件程序使用 POP,那么一旦它连接上邮件服务器,您的所有的邮件都会被下载到邮件程序中(或者称之为邮件客户端)。

    IMAP - 因特网消息访问协议

    与 POP 类似,IMAP 协议同样被邮件程序使用。

    IMAP 协议与 POP 协议之间的主要差异是:如果 IMAP 连上了邮件服务器,它不会自动地将邮件下载到邮件程序之中。

    IMAP 使您有能力在下载邮件之前先通过邮件服务器端查看他们。通过 IMAP,您可以选择下载这些邮件或者仅仅是删除它们。比方说您需要从不同的位置访问邮件服务器,但是仅仅希望回到办公室的时候再下载邮件,IMAP 在这种情况下会很有用。

    一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。

    一个线程不能独立的存在,它必须是进程的一部分。一个进程一直运行,直到所有的非守护线程都结束运行后才能结束。

    多线程能满足程序员编写高效率的程序来达到充分利用 CPU 的目的。

  • 相关阅读:
    面向对象
    Vue + webpack 项目实践
    配置webstorm监听less时时转换
    delegate事件代理
    JS for 循环
    JS while 循环
    JS switch 分支语句
    JS if 判断
    JS 运算符
    JS typeof() parseInt() parseFloat()
  • 原文地址:https://www.cnblogs.com/tjj-love-world/p/11038235.html
Copyright © 2020-2023  润新知