`
xiao1zhao2
  • 浏览: 38965 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
1、TCP特点     Transmission Control Protocol 传输控制协议    面向连接,通过三次握手建立连接,可靠的协议     有明确的客户端和服务器端    一旦连接可以将数据当做一个双向字节流进行交换,开销大   2、相关类 Socket 客户端Socket服务类 ServerSocket 服务器端Socket服务类   3、TCP传输示例代码 // 客户端 public class Client { public static void main(String[] args) throws I ...
目录 1、网络知识基础 2、UDP传输 3、利用UDP模仿聊天室   1、网络知识基础 1.1网络通讯要素 IP地址 标识设备,本地默认IP:127.0.0.1,主机名:localhost 端口号 标识进程,有效端口号:0-65535,其中0-1024系统保留 传输协议 通讯规则,TCP,UDP等 1.2InetAddress类  表示互联网协议 (IP) 地址,常用方法: getLocalHost() 返回本地主机 getByName(String str) 根据给定主机名(IP地址字符串)获得IP地址 getHostName ...
1、线程池概念   多线程技术主要解决处理器单元内多个线程执行的问题,可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力。假设一个服务器完成一项任务所需时间为: >T1创建线程时间 >T2在线程中执行任务的时间 >T3销毁线程时间   如果T1+T3远大于T2,则可以选择线程池以提高服务器性能。线程池正是关注如何缩短和调整T1、T3时间的技术,从而提高服务器程序的性能,把T1、T3安排在服务器启动、结束的时间段或者一些空闲的时间段,这样当客户发送请求时就不会有T1、T3的开销了。   2、基本组成   1)、线程池管理器(ThreadPool):用于创 ...
目录  1.Lock  2.Condition  3.优化的生产者消费者模式 1.Lock   1.1synchronized缺陷    线程释放锁只会有两种情况:获取锁的线程执行完了该代码块然后线程释放对锁的占有;线程执行发生异常,此时JVM会让线程自动释放锁.如果这个获取锁的线程由于要等待IO或者其他原因被阻塞了,但是又没有释放锁,其他线程便只能等待,影响程序执行效率.为此在java.util.concurrent.locks包下提供了另外一种方式来实现同步访问,那就是Lock.  1.2Lock与synchronized的不同点    1)Lock是一个类不是java语言内置的,通过 ...
目录  1.wait(),notify(),notifyAll()  2.生产者消费者模式  3.多生产多消费模式   1.wait(),notify(),notifyAll()   Object类为我们定义了线程通信的方法,如wait(),notify()等,这些方式是本地的而且是final的.   1.1wait()    1)调用wait()方法,能让当前线程阻塞并交出此对象的monitor,然后进入等待状态直到其他线程调用此对象的notify()或notifyAll()方法.当前的线程必须拥有此对象的monitor,也就是说wait()方法需要在Synchronized域内使用 ...
目录  1.安全问题的产生  2.同步:synchronized  3.并发中的三个概念  4.happens-before原则  5.修饰符:volatile   1.安全问题的产生   如果我们想实现这样一个功能:利用线程并发模拟多个网点售同一种票.例: public class ThreadDemo { ...
目录  1.生命周期  2.常用方法  3.守护线程   1.生命周期   1)初始状态    此时线程处于JVM的进程中,只是创建了一个线程对象,并没有开始运行.(new())  2)就绪状态    此时线程进入可运行状态,等待CPU调度.(start())  3)运行状态    拥有CPU的执行权,并且开始运行线程.(run())  4)阻塞状态    线程在等待IO或者调入了sleep()或join()等方法会导致线程进入阻塞状态,从阻塞状态出来的线程不一定马上回到运行状态,而是回到可运行状态等待CPU的再次调度.(blocked)  5)等待队列状态    一个线程调用一个对象 ...
目录1.简介2.创建一个进程3.创建一个线程   1.简介 1)进程:同一个系统中执行的一个子程序,包含三部分:虚拟CPU,代码,数据.2)线程:同一个进程中执行的子程序流.3)进程让操作系统的并发性成为可能,而线程让进程的内部并发成为可能.一个进程虽然包括多个线程,但是这些线程是共同享有进程占有的资源和地址空间的.进程是操作系统进行资源分配的基本单位,而线程是操作系统进行调度的基本单位.   2.创建一个进程   2.1首先了解三个类    1)Process(抽象类)      进程类,提供了执行从进程输入、执行输出到进程、等待进程完成、检查进程的退出状态以及销毁进程的方法,可 ...
目录 1.缓冲区Buffer2.通道Channel   NIO是一种新的IO抽象概念,主要有两个概念,缓冲区和通道,通道用于数据的交互,而每次数据的交互必须经过缓冲区.   1.缓冲区Buffer 1.1抽象类Buffer 用于存储特定基本类型数据的容器.除了存储 ...
目录 1.特性2.方法3.使用   1.特性 Properties类表示了一个持久的属性集,可保存在流中或从流中加载,实现内存和文件的交互.Properties继承了Hashtable<Object,Object>类,可以使用add(),addAll()等方法,但其自身只支持String类型的键和值,因此在Properties内部定义了setProperty()等方法以保证类型安全.在其关联的文件内部每一个Property是这样表示的:KEY=VALUE.   2.方法 load(InputStream in) 从输入流中读取属性列表 setProper ...
目录 1.桥梁流2.缓冲流3.数据流4.对象流5.合并流   1.桥梁流 1)InputStreamReader是输入字节流通向输入字符流的桥梁,每次调用read()方法都会导致从底层输入流读取一个或多个字节.2)OuputStreamWriter是输出字节流通向输出字符流的桥梁,每次调用write()方法都会导致在给定字符集上调用编码转换器.3)桥梁流虽然是一种处理流,但可将其包装到缓冲流中,已提高效率.   2.缓冲流 缓冲流中比较常用的是BufferedReader和BufferedWriter,BufferedReader中提供了readLine()方法,实现了读取一行 ...
目录 1.文件字节流2.文件字符流3.字节数组流4.管道流   1.文件字节流 1.1FileIputStream输入流 read() 从此输入流读取一个字节,返回读取的数据字节,达到文件末尾则返回-1. read(Byte[] b) 从此输入流读取b.length个字节存入b中,返回读取到的有效字节个数,达到文件末尾则返回-1. close() 关闭此输入流并释放资源 1.2FileOutputSteam输出流 write(int b) 将指定字节写入到此输出流 write(byte[] b, int off, int len) 将指定 ...
目录 1.IO流简介2.按方向分类3.按数据单元分类4.按功能分类5.总结   1.IO流简介 1)IO流用来处理设备之间的数据传输2)java对数据的操作是通过流的方式3)根据不同的原则有不同的分类   2.按方向分类 简单理解就是:以内存为中,用来操作将硬盘已有的数据读取到内存的是输入流,用来操作将内存中的数据存储到硬盘中的是输出流.输入流进行读操作,输出流进行写操作. 输入流 InputStream FileInputStream ByteArrayInputStream Reader FileReader 所有字节输入流的超类 文件字节输 ...
目录 1.File类的作用2.File对象基本使用3.实现文件遍历4.实现文件"复制"   1.File类的作用 1)用来将文件或者文件夹封装成对象2)方便对文件与文件夹的属性信息进行操作3)File对象可以作为参数传递给流的构造函数4)File对象是不可变的,一旦创建,File对象表示的抽象路径名将永不改变   2.File对象基本使用 2.1构造 1)路径:绝对路径名是完整的路径名,不需要任何其他信息就可以定位它所表示的文件;相对路径名必须使用取自其他路径名的信息进行解释.2)分隔符:默认名称分隔符由系统属性file.separator定义,可通过此类 ...
目录 1.元注解 2.注解的声明 3.注解的使用 4.重复注解   java提供了一套java注解(Annotation)的机制,与java中的注释不同,注解是一种类型.通过使用注解,可以对方法,类,参数,包,域以及变量等添加标记(即附上某些信息),之后通过反射将标记的信息提取出来以供使用.   1.元注解   java.lang.annotation包提供了4种元注解,负责对注解类型进行约束,他们本身也实现了自注解. @Target:表示该注解用于什么位置,可选的参数是ElementType枚举中的成员: TYPE 类型声明(类,接口,enum) FIE ...
Global site tag (gtag.js) - Google Analytics