- 博客(51)
- 收藏
- 关注
原创 JAVA中的Socket编程、通信协议、传输协议
Socket,建立起客户端和服务器之间的连接,实现数据的传输和交互,它既可以发送请求,也可以接受请求,一个Socket由一个IP地址和一个端口号唯一确定,利用Socket能比较方便的实现两端(服务端和客户端)的网络通信。
2023-07-13 13:58:29
688
原创 Java反射
在运行状态过程中,对于任何一个类都能获取这个类的属性和方法,对于任意一个对象都能够调用它的任意一个属性和方法。这种的功能称为 Java 的反射机制。
2023-07-12 14:59:37
256
原创 并发篇:Synchronized ReentrantLock SynchronizedMap ConcurrentHashMap
synchronized 和 ReentrantLock 有什么不同?SynchronizedMap和ConcurrentHashMap有什么区别?
2022-10-09 09:55:42
392
原创 Java进阶:属性集—Properties类
ava.util.Properties 继承于 Hashtable ,来表示一个持久的属性集。它使用键值结构存储数据,每个键及其对应值都是一个字符串。该类也被许多Java类使用,比如获取系统属性时,System.getProperties 方法就是返回一个Properties对象。
2022-10-06 19:57:18
915
原创 Arrays.stream().boxed() 且 int[] array转化成List<Integer> list
JDK8Arrays.stream().boxed() & int[] array转化成List list
2022-09-24 18:58:43
786
原创 JavaScript基础
了解JS的概念和特点JS,全称JavaScript,是一种直译式脚本语言,是一种动态类型、弱类型、基于对象的脚本语言,内置支持类型。对比JavaJS运行环境JVM虚拟机JS引擎,是浏览器的一部分是否跨平台运行跨平台跨平台语言类型强类型语言弱类型,动态类型语言是否需要编译需要编译,是编译型语言不需要编译,是解释型语言是否区分大小写区分大小写区分大小写函数: 是被设计为执行特定任务的代码块 ,在被调用时会执行函数类似于Java里的方法,用于封装一些可重复使用的代码块。
2022-09-19 08:33:41
505
原创 Java语言进阶:Selector(选择器)
Java语言进阶:Selector(选择器)Selector(选择器)多路复用的概念选择器Selector是NIO中的重要技术之一。它与SelectableChannel联合使用实现了非阻塞的多路复用。使用它可以节省CPU资源,提高程序的运行效率。"多路"是指:服务器端同时监听多个“端口”的情况。每个端口都要监听多个客户端的连接。服务器端的非多路复用效果[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LdX0nfgv-1653801397411)(img/11
2022-05-29 13:19:12
4756
原创 Java语言进阶:Channel(通道)
Java语言进阶:Channel(通道)Channel概述Channel(通道):Channel是一个接口,可以通过它读取和写入数据, 可以把它看做是IO中的流,不同的是:Channel是双向的, Channel对象既可以调用读取的方法, 也可以调用写出的方法 。输入流: 读输出流: 写Channel: 读,写Channel 的分类在JavaNIO中的Channel主要有如下几种类型:FileChannel:从文件读取数据的 输入流和输出流DatagramC
2022-05-29 13:12:35
14147
原创 并发篇: wait sleep lock synchronized volatile
并发篇: wait sleep lock synchronized volatile wait vs sleep一个共同点,三个不同点共同点wait() ,wait(long) 和 sleep(long) 的效果都是让当前线程暂时放弃 CPU 的使用权,进入阻塞状态不同点方法归属不同sleep(long) 是 Thread 的静态方法而 wait(),wait(long) 都是 Object 的成员方法,每个对象都有醒来时机不同执行 sleep(long) 和
2022-05-29 10:59:11
246
原创 并发篇:线程状态和线程池
并发篇:线程状态和线程池线程状态Java 线程六种状态步骤(结合上图):正常:New新建——>start——>可运行状态——>操作系统交给cpu——>。。。。。——>完成运行,终结状态阻塞:cpu运行——>获取锁失败——>阻塞——>cpu运行阻塞代码——>当前面释放锁后,唤醒阻塞线程——>获取锁成功——>运行等待:cpu运行——>获取锁——>不满足某些条件——>等待状态,交给其它线程先运行
2022-05-29 10:35:37
230
原创 并发篇:乐观锁和悲观锁
乐观锁和悲观锁概述两种锁各有优缺点,不可认为一种好于另一种,像乐观锁适用于写比较少的情况下,即冲突真的很少发生的时候,这样可以省去了锁的开销,加大了系统的整个吞吐量。但如果经常产生冲突,上层应用会不断的进行retry,这样反倒是降低了性能,所以这种情况下用悲观锁就比较合适。绝大部分开发运用的是悲观锁悲观锁悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统
2022-05-29 08:51:12
654
原创 Java语言进阶:Buffer类(缓冲区)
Java语言进阶:Buffer类(缓冲区)Buffer类(缓冲区)概述:Buffer是一个抽象类,它是对某种基本类型的数组进行了封装。作用: 在NIO中,就是通过 Buffer 来读写数据的。所有的数据都是用Buffer来处理的,它是NIO读写数据的中转池, 通常使用字节数组。Buffer主要有如下几种:ByteBufferCharBufferDoubleBufferFloatBufferIntBufferLongBufferShortBuffer创建ByteBuffer路径
2022-05-28 14:17:48
5057
1
原创 Java语言进阶:NIO2-AIO(异步、非阻塞)
Java语言进阶:NIO2-AIO(异步、非阻塞)AIO概述在 Java 7 中,NIO 有了进一步的改进,也就是 NIO 2,引入了异步非阻塞 IO 方式,也有很多人叫它 AIO(Asynchronous IO)。同步,异步,阻塞,非阻塞概念回顾同步:调用方法之后,必须要得到一个返回值。异步:调用方法之后,没有返回值,但是会有回调函数。回调函数指的是满足条件之后会自动执行的方法阻塞:如果没有达到方法的目的,就一直停在这里【等待】。非阻塞:不管有没有达到目的,都直接【往下执
2022-05-28 14:07:36
1893
原创 Java语言进阶:NIO概述
Java语言进阶:NIONIO在我们学习Java的NIO流之前,我们都要了解几个关键词同步与异步(synchronous/asynchronous):同步是一种可靠的有序运行机制,当我们进行同步操作时,后续的任务是等待当前调用返回,才会进行下一步;而异步则相反,其他任务不需要等待当前调用返回,通常依靠事件、回调等机制来实现任务间次序关系同步: 调用方法之后,必须要得到一个返回值 例如: 买火车票,一定要买到票,才能继续下一步异步: 调用方法之后,没有返回值,但是会有回调函数,回调
2022-05-28 13:55:37
213
原创 Java语言进阶:TCP实现文件上传
Java语言进阶:TCP实现文件上传TCP实现文件上传案例需求使用TCP协议, 通过客户端向服务器上传一个文件分析【客户端】输入流,从硬盘读取文件数据到程序中。【客户端】输出流,写出文件数据到服务端。【服务端】输入流,读取文件数据到服务端程序。【服务端】输出流,写出文件数据到服务器硬盘中。【服务端】获取输出流,回写数据。【客户端】获取输入流,解析回写数据。实现拷贝文件public class Client { public static
2022-05-28 13:50:57
796
原创 Java语言进阶:TCP通信程序
Java语言进阶:TCP通信程序Java实现TCP通信程序TCP概述TCP协议是面向连接的通信协议,即在传输数据前先在发送端和接收器端建立逻辑连接,然后再传输数据,它提供了两台计算机之间可靠无差错的数据传输。TCP协议相关的类Socket : 一个该类的对象就代表一个客户端程序。Socket(String host, int port) 根据ip地址字符串和端口号创建客户端Socket对象* 注意事项:只要执行该方法,就会立即连接指定的服务器程序,如果连接不成功,则会抛出异
2022-05-28 13:42:59
313
原创 Java语言进阶:网络编程入门
Java语言进阶:网络编程网络编程入门C/SC/S结构 :全称为Client/Server结构,是指客户端和服务器结构。常见程序有QQ、迅雷等软件。特点: 客户端和服务器是分开的,需要下载客户端,对网络要求相对低, 服务器压力小,开发和维护成本高,相对稳定B/SB/S结构 :全称为Browser/Server结构,是指浏览器和服务器结构。常见浏览器有谷歌、火狐等。特点:没有客户端,只有服务器,不需要下载客户端,直接通过浏览器访问, 对网络要求相对高, 服务器压力很大,相对不稳
2022-05-28 13:34:27
145
原创 Java程序设计基础:基本数据类型的转换
Java程序设计基础:基本数据类型的转换一、Java中的基本数据类型Java中共有8种基本数据类型,又分为数值型(整型,浮点型)、字符型、布尔型三大类。二、基本数据类型之间的转换Java中基本数据类型之间的转换分为两类:自动类型提升和强制类型转换。由于布尔型的特殊性,这里讨论只是其它7种基本数据类型变量间的运算,不包含boolean类型的。从小到大排序:short → int→ long→ float→ doublechar→ int→ long→ float → double
2022-05-28 11:26:19
130
原创 Java程序设计基础:Java运算符的使用
Java程序设计基础:Java运算符的使用一、算术运算符代码实例:基本数据计算public class ArithmeticOperator { public static void main(String[] args) { int a = 10; int b = 5; System.out.println(a + b);//15 System.out.println(a - b);//5 System
2022-05-28 11:07:55
240
原创 Java程序设计基础:基本数据类型的定义和概念
基本数据类型的定义和概念Java 是一种静态类型的编程语言,这意味着所有变量必须在使用之前声明好,也就是必须得先指定变量的类型和名称Java 中的数据类型可分为 2 种1)基本数据类型。基本数据类型是 Java 语言操作数据的基础,包括 boolean、char、byte、short、int、long、float 和 double,共 8 种。2)引用数据类型。除了基本数据类型以外的类型,都是所谓的引用类型。常见的有数组(对,没错,数组是引用类型)、class(也就是类),以及接口(指向的是
2022-05-28 10:41:08
749
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人