随笔分类 -  Java学习

摘要:https://blog.csdn.net/baidu_32492845/article/details/79712141?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonec 阅读全文
posted @ 2020-05-29 16:36 小新和风间 阅读(731) 评论(0) 推荐(0)
摘要:简介 HTTPClient主要包含了两个部分:①用于发送基于HTTP协议的GET、POST、PUT、DELETE请求HTTPClient部分;②支持Web Socket的客户端API。 不管是HTTPURLConnection,还是HTTPClient,他们使用的基本原理相似,都是要向服务器端发送H 阅读全文
posted @ 2020-05-28 15:37 小新和风间 阅读(3564) 评论(0) 推荐(0)
摘要:#代理服务器简介 从Java 5开始在java.net包下提供了Proxy和ProxySelector两个类,其中Proxy代表一个代理服务器,可以在打开URLConnection连接时指定Proxy,创建Socket连接时也可以指定Proxy;而ProxySelector就代表一个代理选择器,它提 阅读全文
posted @ 2020-05-26 21:28 小新和风间 阅读(749) 评论(0) 推荐(0)
摘要:UDP协议是一种不可靠的网络协议,它在通信实例的两端各建立一个Socket,但这两个Socket之间并没有虚拟链路,这两个Socket只负是发送、接受数据报的对象。Java提供了DatagramSocket对象作为基于UDP协议的Socket,使用DatagramPacket代表发送、接受的数据。 阅读全文
posted @ 2020-05-26 16:30 小新和风间 阅读(451) 评论(0) 推荐(0)
摘要:#一、使用NIO实现非阻塞Socket通信 可以参考另一篇博客:https://blog.csdn.net/weixin_42762133/article/details/100040141 讲得很细致 ##1.1 前言 从JDK1.4以来,Java提供了NIO API来开发高性能的网络服务,但是在 阅读全文
posted @ 2020-05-25 09:02 小新和风间 阅读(498) 评论(0) 推荐(0)
摘要:[TOC] 一、IO和NIO的区别 Java NIO( non blocking IO)是从Java 1.4版本开始引入的一个新的IO API,Java NIO提供了与标准IO不同的IO工作方式: |IO|NIO| |: :|: :| |面向流| 面向缓冲区| |阻塞| 非阻塞| 1.1 面向流与面 阅读全文
posted @ 2020-05-23 16:59 小新和风间 阅读(224) 评论(0) 推荐(0)
摘要:[TOC] TCP/IP通信协议是一种可靠的网路协议,它在通信两端各建立一个Socket,从而在通信之间形成网络虚拟链路。一旦建立了虚拟的网络链路,两端的程序就可以通过虚拟链路进行通信。Java对基于TCP协议的网络通信提供了良好的封装,Java使用socket对象来代表两端的网络通信端口,并通过S 阅读全文
posted @ 2020-05-19 20:55 小新和风间 阅读(255) 评论(0) 推荐(0)
摘要:[TOC] 一、使用InetAddress 1.1 InetAddress类和其子类 Java提供了InetAddress类来代表IP地址,InetAddress下还有2个子类:Inet4Address、Inet6Address,它们分别代表Internet Protocol version 4(I 阅读全文
posted @ 2020-05-15 18:30 小新和风间 阅读(324) 评论(0) 推荐(0)
摘要:[TOC] 一、网络基础知识 1.1 概念和功能 所谓 计算机网络 ,就是把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大、功能强的网络系统,从而使众多的计算机可以方便地互相传递信息、共享硬件、软件、数据信息等资源。 计算机网络是现代通信技术与计算机技术相结合的产物,计算机网络 阅读全文
posted @ 2020-05-14 16:42 小新和风间 阅读(351) 评论(0) 推荐(0)
摘要:[TOC] Java还为线程安全提供了一些工具类,如ThreadLocal类,它代表一个线程局部变量,通过把数据放在ThreadLocal中就可以让每个线程创建一个该变量的副本,从而避免并发访问的线程的安全问题。除此之外Java 5还新增了大量的线程安全类。 一、ThreadLocal类 1.1 概 阅读全文
posted @ 2020-05-13 21:13 小新和风间 阅读(180) 评论(0) 推荐(0)
摘要:[TOC] 系统启动一个新线程的成本是比较高的,因为它涉及到与操作系统交互。在这种情形下,使用线程池可以很好地提高性能,尤其是当程序中需要创建大量生存期很短暂的线程时,更应该考虑使用线程池。 与数据库连接池类似的是,线程池在系统启动时即创建大量空闲的线程,程序将一个Runnable对象传给线程池,线 阅读全文
posted @ 2020-05-13 19:12 小新和风间 阅读(172) 评论(0) 推荐(0)
摘要:[TOC] 1、线程组概述 Java使用ThreadGroup来表示线程组,它可以对一批线程进行分类管理, Java允许程序直接对线程组进行控制。对线程组的控制相当于同时控制了这批线程。用户创建的所有线程都属于指定线程组 ,如果程序没有没有显式指定线程属于哪个线程组,则该线程属于默认线程组。 2、注 阅读全文
posted @ 2020-05-12 23:44 小新和风间 阅读(212) 评论(0) 推荐(0)
摘要:[TOC] 一、传统的线程通信——synchronized同步的线程 假设系统中有两个线程,这两个线程分别代表存款者和取钱者——先假设有一种特殊的要求,系统要求存款者和取款者不断存钱、取钱的动作,而且要求存款者将钱存入指定账户后,取钱者就立即取出钱。不允许存款者两次存钱,也不允许取款者两次取钱。 为 阅读全文
posted @ 2020-05-12 21:49 小新和风间 阅读(132) 评论(0) 推荐(0)
摘要:[TOC] 多条线程并发修改共享资源就容易引发线程安全问题。 一、线程安全问题 关于线程安全问题,有一个经典案例——银行取钱。银行取钱的基本流程基本上可以分为如下几个步骤: 1、用户输出账户、密码,系统判断账户、密码是否匹配; 2、用户输入取钱金额; 3、系统判断账户余额是否大于取款金额; 4、如果 阅读全文
posted @ 2020-05-12 10:11 小新和风间 阅读(243) 评论(0) 推荐(0)
摘要:#一、join线程 Thread提供了让一个线程等待另一个线程完成的方法:join() 方法。当在某个程序执行流中调用其他线程的join()方法时,调用线程将被阻塞,直到被join方法加入的join线程完成为止。 join()方法通常由使用线程的程序调用,以将大问题划分成许多小问题,每个小问题分配一 阅读全文
posted @ 2020-05-10 22:07 小新和风间 阅读(178) 评论(0) 推荐(0)
摘要:[TOC] 当线程并创建并启动后,它既不是一启动就进入执行状态,也不是一直处于执行状态,再次线程的生命周期中,他要经过新建(New)、就绪(Ready)、阻塞(Blocked)和死亡(Dead)5种状态。 一、新建和就绪状态 1.1 新建状态 当程序使用new关键字创建了一个线程后,该线程就处于新建 阅读全文
posted @ 2020-05-10 17:28 小新和风间 阅读(166) 评论(0) 推荐(0)
摘要:[TOC] 一、继承Thread类创建线程类 通过Thread类来创建并启动多线程的步骤如下: 1、定义Thread类的子类,并重写该类的run()方法,该run()方法的方法体就代表线程需要完成的任务。因此把run()方法称为线程执行体。 2、创建Thread子类的实例,即创建线程对象。 3、调用 阅读全文
posted @ 2020-05-10 15:33 小新和风间 阅读(223) 评论(0) 推荐(0)
摘要:[TOC] 一、线程和进程 1.1 概述 几乎任何的操作系统都支持运行多个任务,通常一个任务就是一个程序,而一个程序就是一个进程。当一个进程运行时,内部可能包括多个顺序执行流,每个顺序执行流就是一个 线程 。 1.2 进程 进程:所有运行在的任务通常对应一个进程(Process)。当一个程序进入内存 阅读全文
posted @ 2020-05-09 18:32 小新和风间 阅读(201) 评论(0) 推荐(0)
摘要:[TOC] Java 7对原有的NIO进行了重大改进,改进的主要内容主要包括以下两个方面: 1、提供了全面的文件IO和文件系统访问支持 2、基于异步Channel的IO。 第一个改进表现为Java 7 新增的java.nio.file包及其各个子包;第二个改进表现为Java 7在java.nio.c 阅读全文
posted @ 2020-05-09 17:37 小新和风间 阅读(317) 评论(0) 推荐(0)
摘要:[TOC] 当BufferedReader读取输入流中的数据,如果没有读到有效数据,程序将阻塞该线程的执行(使用InputStream的read()方法从流中读取数据时,如果数据源中没有数据,它也会阻塞线程),也就是传统的输入流、输出流都是阻塞式输入、输出。不仅如此传统的输入流、输出流都是通过字节的 阅读全文
posted @ 2020-05-06 20:36 小新和风间 阅读(239) 评论(0) 推荐(0)