Java
Huginn_
个人学习笔记记录
展开
-
Socket通信
在基于流套接字的数据传递方式下,在两个网络应用程序(一个称为服务器应用,另一个称为客户机应用)之间发送和接收信息时,需要建立一个可靠的连接。Java中与流套接字相关联的类有3个:InetAddressServerSocketSocketInetAddress对象描绘了32位或128位IP地址ServerSocket对象用在服务器应用中Socket对象是建立网络连接时使用的。...原创 2020-07-03 11:07:27 · 162 阅读 · 0 评论 -
URL和网络应用
URL(Uniform Resource Locator,统一资源定位符)用于表示Internet上的网络资源,或者说确定在网络中的位置。一个URL通常由4个部分组成,包括协议名、主机名、端口名、路径文件(含有文件路径及文件名)URL类URL(String spec):用指定一个String来创建一个URL对象URL(String protocol,String host,int port,String file):用指定的协议、主机名、端口号、路径文件来创建一个URL对象URL(String p原创 2020-07-03 00:24:29 · 227 阅读 · 0 评论 -
Java网络技术
Java提供了两种功能强大的网络支持机制:访问网络资源的URL类和网络通信的Socket类。URL是用于访问Internet网上资源的应用;而基于TCP/IP协议中传输层接口Socket,是针对Client/Server模型的网络应用以及实现某些特殊协议的网络应用。Socket可以看成在两个程序进行通信连接中的一个端点,一个程序将一段信息写入Socket中,该Socket将这段信息发送给另外一个Socket,使这段信息能传达到其他程序中。基于Socket的通信,使得应用程序可将网络互联看成是文件I/O—原创 2020-07-02 16:47:18 · 225 阅读 · 0 评论 -
Daemon守护线程
Daemon线程是为其他线程提供服务的线程,它的优先级是最低的。典型的守护线程例子是JVM中的系统资源自动回收线程,它始终在低级别的状态中运行,用于实时监控和管理系统中的可回收资源。一旦所有非Daemon线程完成,程序会终止运行;相反,假若有任何非Daemon线程仍在运行,则程序的运行不会中止。...原创 2020-07-02 16:31:35 · 1548 阅读 · 0 评论 -
线程同步
synchronized关键字:synchronized(对象){````````}synchronized 方法声明头{`````````}synchronized的使用注意事项如下:1、一个对象中的所有synchronized方法都共享一把锁,这把锁能够防止多个方法对共用内存同时进行的写操作。2、synchronized static方法,可在一个类范围内被相互间锁定起来。3、对于访问某个关键共享资源的所有方法,都必须把它们设为synchronized,否则就不能正常工作。4、假设已原创 2020-07-02 16:26:40 · 58 阅读 · 0 评论 -
Thread类的常用方法
Thread类的静态方法1、static Thread currentThread():返回当前正在运行的线程的引用2、static void yield():使当前正在运行的线程暂时中断,变为就绪状态,以让其他线程有运行的机会。3、static sleep(int millsecond):以millsecond为单位设置当前线程休眠时间,sleep要抛出异常,必须捕获。Thread类的非静态方法1、void start():启动已创建的线程对象2、void run() :由线程原创 2020-07-02 16:14:19 · 855 阅读 · 0 评论 -
线程的状态与生命周期
一个线程完整的生命周期通常要经历5个状态:创建状态(Born)、就绪状态(Ready)、运行状态(Running)、阻塞状态(Blocked,Waiting,Sleeping)和死亡状态(Dead)。创建状态当一个Thread类或其子类的对象被声明并创建时,新生的线程对象就处于新建状态。此时它已经有了相应的内存空间和其他资源,并已被初始化。Thread thread1 = new Thread();就绪状态就绪状态又称为可运行状态(Runnable)。处于新建状态的线程,通过调用statrt(原创 2020-07-02 15:59:03 · 337 阅读 · 0 评论 -
线程的概念
程序是一段静态的代码,它是应用软件执行的蓝本。进程是程序一次动态执行的过程,它对应着从代码加载、执行到执行完毕的一个完整过程,这个过程也是进程本身从产生、发展到消亡的过程。每一个进程都有自己独立的一块内存空间、一组系统资源。在进程概念中,每一个进程的内部数据和状态都是完全独立的。并且,进程是操作系统中的概念,由操作系统调度,通过多进程是操作系统能同时运行多个任务程序。线程是进程中可独立执行的子任务,一个进程可以含有一个或多个线程,每一个线程都有一个唯一的标识符。进程和线程的区别为:进程空间大体分为数据原创 2020-07-01 10:25:08 · 1031 阅读 · 0 评论 -
重新抛出异常
Java中异常对象产生的方式为:1.由Java虚拟机生成2.由Java类库中的某些类生成3.在程序中生成自己的异常对象,即异常可以不是出错产生,而是人为抛出。重新抛出异常对象首先必须生成异常。如果在一个方法中生成了异常,但是该方法并不处理它自己产生的异常,而是沿着调用层次向上传递,由调用它的方法或方法栈来处理这些异常,也叫重新抛出异常。通常的情况是在该方法中并不确切知道如何对这些异常进行处理,比如FileNotFoundException异常,它由FileInputStream的构造方法产生,但在原创 2020-07-01 10:14:36 · 1228 阅读 · 0 评论 -
异常
Throwable类是所有异常的超类。它有两个子类Error和Exception。Error类及其子类由Java虚拟机生成并抛出,包括动态链接失败、虚拟机错误等。Java程序不应捕获这些异常。Exception类及其子类代表Java程序中可能发生的异常,并且应用程序可以捕获这些异常。Java将异常分成两种类型:编译时检查性异常(checked exception)和非检查性异常(unchecked exception,又称运行时异常)。对于检查性异常,在程序中必须对其进行处理,否则编译器会指出错误.原创 2020-07-01 09:51:16 · 98 阅读 · 0 评论 -
内部类
内部类主要用于事件处理。内部类因嵌套在外部类中,而作为外部类的一个成员,可以在内部类中访问外部类内定义的所有成员。外部类成员变量在内部类有效,内部成员函数可调用外部类所有成员,但被调用成员不能用this关键字。内部类可以被定义为protected或private外部类可以直接访问内部类变量的私有成员...原创 2020-06-29 18:28:43 · 87 阅读 · 0 评论 -
final修饰符
修饰变量:说明该变量是常量,常量的值不能在声明后进行修改,并且在声明时必须对其进行初始化。修饰方法:子类不能重载超类中声明为final的方法。因为子类不可能重写private方法,所以声明为private的方法隐式地为final方法。声明为static的方法也隐式地为final方法,因为只能重写非静态方法。修饰类:声明为final的类不能为超类,final类中所有方法都隐式地为final方法。将类声明为final可以防止程序员创建绕过安全限制的子类。...原创 2020-06-29 10:56:03 · 149 阅读 · 0 评论 -
接口
在Java中接口主要用于声明一组类的公共操作的接口。接口由一组常量和一组抽象方法组成。接口中不包括变量和有具体实现的方法。(JDK1.8以前没有,JDK1.8接口中可以有具体方法)Java中不直接支持类间的多重继承,但接口支持多重继承,即一个接口可以有一个以上的父接口。接口仅仅规定了一组功能的对外协议和规范,而并没有实现这组功能,这个功能的真正实现是在实现这个接口的各个子类中完成的,即由这些子类来具体定义接口中抽象方法的方法体。接口中声明的数据成员只能是public、static和final型的,所原创 2020-06-29 10:49:27 · 68 阅读 · 0 评论 -
抽象类
类是一组相同类型对象的描述,即通过类可以抽象出一组对象的公共特性。而一组类的公共特性可以用超类来描述。一组超类的公共特性或公共接口的进一步抽象,可以用抽象类来描述。类的公共接口可用抽象方法描述。每个抽象类中至少包含一个抽象方法(静态方法不能为抽象方法)。抽象类和具体类的区别:抽象类只能作为继承层次结构中的超类,不能创建抽象类的对象;而具体类可以用来创建对象。包含抽象方法的类必须声明为抽象类,抽象类的所有具体子类都必须为超类的抽象方法提供具体实现。抽象超类不能实例化,但可以使用抽象超类来声明引用原创 2020-06-29 10:37:43 · 137 阅读 · 0 评论 -
import语句
import语句用于导入用户的源代码文件中使用的其他包中的类,这些类和当前类不在同一个包中。如果没有使用import语句导入某个包,但又想使用此包中的某个类,也可以直接在所要的类名前加上包名前缀。JDK1.5增加了import static语句,可导入某个类的某个静态成员或所有静态成员的功能。使用后,可以直接用类中定义的静态变量,前缀的类名可以不必写了。...原创 2020-06-27 09:38:57 · 413 阅读 · 0 评论 -
类的组合
类的组合是指类之间的一种“has a”的关系,即一个类中的成员可以是其他类(或自身的)引用,把类之间的这种关系叫做类的组合。原创 2020-06-27 09:30:43 · 118 阅读 · 0 评论 -
成员访问控制
修饰符 本类 同一包中 不同包的子类 不同包的非子类private √默认 √ √protected √ √ √public √原创 2020-06-27 09:12:52 · 91 阅读 · 0 评论 -
Java数据类型
基本数据类型整型:byte 1 byteshort 2 byteint 4 bytelong 8 byte浮点型:float 4 bytedouble 8 byte布尔型:boolean 1 byte字符型:char 2 byte(‘A’ ~ ‘Z’ : 65 ~ 90‘a’ ~ ‘z’ : 97 ~ 122‘0’ ~ ‘9’ : 48 ~ 57)引用类型数组类接口...原创 2020-06-26 09:06:22 · 49 阅读 · 0 评论 -
Java关键字
abstractbreakbytebooleancatchcaseclasscharcontinuedefaultdoubledoelseextendsfalsefinalfloatforfinallyfinalifimportimplementsintinterfaceinstanceoflonglengthnativenewnullpackageprivatepublicprotectedreturnswitchsynchroni原创 2020-06-26 08:53:22 · 91 阅读 · 0 评论 -
Java类库(Java API , Application Programming Interface)
一个包是一个已命名的类的集合,一个包还可以包含其他的子包。Java所有的包被称为Java应用程序接口(Java API)。分为:核心包,以java开头的包;可选包,以javax开头的包。核心包和可选包一般被包含在Java开发工具包(JDK)中,它是整个Java的核心,包括了Java运行环境(JRE)、一组Java工具和Java基础类库(rt.jar)。JDK中比较重要的包:java.lang: 提供支持java的基础类java.util: 提供数据结构和常用方法的类java.awt 和 jav原创 2020-06-25 19:27:08 · 179 阅读 · 0 评论 -
Java语言特点
1.简单性2.面向对象3.平台无关性Java主要靠Java虚拟机(Java Virtual Machine ,JVM)在目标代码级实现平台无关性。JVM是一种抽象机器,它附着于具体操作系统之上,本身具有一套虚拟机的机器指令,并有自己的栈、寄存器组等。但JVM通常在软件上而不是在硬件上实现。4.可移植性Java应用程序可以在配备了Java解释器和运行环境的任何计算机系统上运行,而与体系结构无关。5.解释性JVM是Java平台无关的基础,在JVM上,有一个Java解释器用来解释Java编译器编译后原创 2020-06-25 19:17:08 · 308 阅读 · 0 评论 -
面向对象的设计
面向过程一个程序往往由多个模块组成,每一个模块承担一定的任务,然后被封装成一个完整的函数。在面向过程的语言中,这些模块就是函数,函数组成面向过程语言编制的程序单位。面向过程的程序是由赋值语句、条件语句、循环语句和过程调用语句构成的语句序列。采用自顶向下的功能分解法,即一个要解决的问题被分解成若干个子问题直至子问题足够简单,可以在相应的子程序中解决。如C语言中,程序是由main函数加若干个子函数组成,在main函数中调用子函数。自顶向下设计存在的问题:把数据和处理数据的过程分离为相对独立的实体,当数据原创 2020-06-25 16:21:07 · 255 阅读 · 0 评论