- 毕业好多年了,虽然大学专业学的是信息安全,在大学的时候学过各种加密算法,但是毕业后也没有从事安全行业,一直在做游戏,做web开发,在工作中使用加解密的机会还真不多,但是加解密确实也一直在身边,比如我们游戏通信协议不可避免的对数据进行加密,要不然的话,随便解包有点危险,刷协议骚扰服务器。今天就来聊下常用的加密算法,接下来的服务器也要选择一种加密算法,你帮我选一种?1、加密算法分类加密算法大的分... 毕业好多年了,虽然大学专业学的是信息安全,在大学的时候学过各种加密算法,但是毕业后也没有从事安全行业,一直在做游戏,做web开发,在工作中使用加解密的机会还真不多,但是加解密确实也一直在身边,比如我们游戏通信协议不可避免的对数据进行加密,要不然的话,随便解包有点危险,刷协议骚扰服务器。今天就来聊下常用的加密算法,接下来的服务器也要选择一种加密算法,你帮我选一种?1、加密算法分类加密算法大的分...
- MQTT是ISO 标准下基于发布/订阅模式的协议。它基于TCP/IP协议,具有轻量、简单、开放和易于实现的特点。该协议广泛应用于机器间通信,即物联网领域。它是为硬件性能低下的远程设备以及网络状况不佳的情况下而设计协议,为此,它需要一个消息中间件(MQTT Broker,可以理解为Server端。)MQTT协议这些特点使它适用范围非常广泛。 MQTT是ISO 标准下基于发布/订阅模式的协议。它基于TCP/IP协议,具有轻量、简单、开放和易于实现的特点。该协议广泛应用于机器间通信,即物联网领域。它是为硬件性能低下的远程设备以及网络状况不佳的情况下而设计协议,为此,它需要一个消息中间件(MQTT Broker,可以理解为Server端。)MQTT协议这些特点使它适用范围非常广泛。
- 在ABAP里我们如果想用代码获得一个数据库表里有多少条记录,常规做法是使用SELECT COUNT。如果您使用的是HANA数据库,现在有一种新的办法可以达到同样的目的。HANA数据库里有一张名为m_tables的系统视图,里面存放了数据库表的元数据。这个系统视图的详细说明参考SAP帮助文档。我写了一个工具,可以通过查询m_tables来批量获得一系列数据库表的记录条数和占据的存储空间。您可以... 在ABAP里我们如果想用代码获得一个数据库表里有多少条记录,常规做法是使用SELECT COUNT。如果您使用的是HANA数据库,现在有一种新的办法可以达到同样的目的。HANA数据库里有一张名为m_tables的系统视图,里面存放了数据库表的元数据。这个系统视图的详细说明参考SAP帮助文档。我写了一个工具,可以通过查询m_tables来批量获得一系列数据库表的记录条数和占据的存储空间。您可以...
- 在Java SDK中,对于Socket原生提供了支持,它分为ServerSocket和Socket,其中ServerSocket发起一个服务端的Socket,其中需要提供一个端口号,如果给定0,则自动申请可用的端口。当然了,也可以指定具体的端口号(有一定的范围,不超过 65535 )。不过这里需要注意,传入的端口不能被其他应用占用,否则启动服务失败。 在Java SDK中,对于Socket原生提供了支持,它分为ServerSocket和Socket,其中ServerSocket发起一个服务端的Socket,其中需要提供一个端口号,如果给定0,则自动申请可用的端口。当然了,也可以指定具体的端口号(有一定的范围,不超过 65535 )。不过这里需要注意,传入的端口不能被其他应用占用,否则启动服务失败。
- 通过学习了 Java 中的集合类,了解到集合类是 Java 数据结构的实现。Java的集合类是在 java.util 包中,它允许以各种方式将元素分组,并定义了各种方法使这些元素更容易操作。常用集合类ArrayList,LinkedList,HashSet,HashMap等。 通过学习了 Java 中的集合类,了解到集合类是 Java 数据结构的实现。Java的集合类是在 java.util 包中,它允许以各种方式将元素分组,并定义了各种方法使这些元素更容易操作。常用集合类ArrayList,LinkedList,HashSet,HashMap等。
- 冰河联合猫大人共同创作的分布式事务领域的开山之作——《深入理解分布式事务:原理与实战》一书正式出版了,于2021年10月20日开始在当当预售,当天即登上当当新书榜第一的位置! 冰河联合猫大人共同创作的分布式事务领域的开山之作——《深入理解分布式事务:原理与实战》一书正式出版了,于2021年10月20日开始在当当预售,当天即登上当当新书榜第一的位置!
- 对于什么是可见性,比较官方的解释就是:一个线程对共享变量的修改,另一个线程能够立刻看到。说的直白些,就是两个线程共享一个变量,无论哪一个线程修改了这个变量,则另外的一个线程都能够看到上一个线程对这个变量的修改。这里的共享变量,指的是多个线程都能够访问和修改这个变量的值,那么,这个变量就是共享变量。 对于什么是可见性,比较官方的解释就是:一个线程对共享变量的修改,另一个线程能够立刻看到。说的直白些,就是两个线程共享一个变量,无论哪一个线程修改了这个变量,则另外的一个线程都能够看到上一个线程对这个变量的修改。这里的共享变量,指的是多个线程都能够访问和修改这个变量的值,那么,这个变量就是共享变量。
- 万字博文教你搞懂java源码的日期和时间相关用法:旧API的Date和Calendar等和新API 放在**java.time** 这个包下的:LocalDateTime,ZonedDateTime,DateTimeFormatter和Instant等的分析和对比 万字博文教你搞懂java源码的日期和时间相关用法:旧API的Date和Calendar等和新API 放在**java.time** 这个包下的:LocalDateTime,ZonedDateTime,DateTimeFormatter和Instant等的分析和对比
- 万字博文教你搞懂java源码的日期和时间相关用法:旧API的Date和Calendar等和新API 放在**java.time** 这个包下的:LocalDateTime,ZonedDateTime,DateTimeFormatter和Instant等的分析和对比 万字博文教你搞懂java源码的日期和时间相关用法:旧API的Date和Calendar等和新API 放在**java.time** 这个包下的:LocalDateTime,ZonedDateTime,DateTimeFormatter和Instant等的分析和对比
- 我们知道SimpleDateFormat是线程不安全,本文会介绍多种解决方案来保证线程安全。 我们知道SimpleDateFormat是线程不安全,本文会介绍多种解决方案来保证线程安全。
- 为何要有读写锁ReentrantLock锁和其他锁基本上都是排他锁,排他锁指的是在同一时刻只允许一个线程持有锁,访问共享资源。虽然ReentrantLock支持同一个线程重入,但是允许重入的是同一个线程。因此ReentrantReadWriteLock是为了支持多个线程在同一个时刻对于锁的访问孕育而生的。读写锁—简单介绍读写锁ReentrantReadWriteLock允许多个线程在同一时刻... 为何要有读写锁ReentrantLock锁和其他锁基本上都是排他锁,排他锁指的是在同一时刻只允许一个线程持有锁,访问共享资源。虽然ReentrantLock支持同一个线程重入,但是允许重入的是同一个线程。因此ReentrantReadWriteLock是为了支持多个线程在同一个时刻对于锁的访问孕育而生的。读写锁—简单介绍读写锁ReentrantReadWriteLock允许多个线程在同一时刻...
- 简介重入锁ReentrantLock指的是支持同一个线程对资源的重复加锁。ReentrantLock中有公平锁和非公平锁的两种实现。synchronizedsynchronized关键字支持隐式的重入;当一个线程获取到锁时,是支持这个线程多次获取这个锁的,不会出现自己阻塞自己的情况,并且我们开发过程中对于synchronized关键字也不需要关心锁的释放。举个递归的例子我们来看synchro... 简介重入锁ReentrantLock指的是支持同一个线程对资源的重复加锁。ReentrantLock中有公平锁和非公平锁的两种实现。synchronizedsynchronized关键字支持隐式的重入;当一个线程获取到锁时,是支持这个线程多次获取这个锁的,不会出现自己阻塞自己的情况,并且我们开发过程中对于synchronized关键字也不需要关心锁的释放。举个递归的例子我们来看synchro...
- 简介:目前浏览器作为web服务的客户端访问者,都支持并发多线程的访问。例如在浏览器访问一个web服务器上的HTML页面,此时HTML页面中的各种资源(图片、样式)会被浏览器并发的获取,这种并发访问使得用户不至于等待图片加载的同时也不能看到文字内容。客户端既然是多线程并发访问,那么如果服务端仅仅是单线程处理客户端的请求,那么客户端的并发访问将会变得毫无意义。因此,大部分的web服务器也是支持并... 简介:目前浏览器作为web服务的客户端访问者,都支持并发多线程的访问。例如在浏览器访问一个web服务器上的HTML页面,此时HTML页面中的各种资源(图片、样式)会被浏览器并发的获取,这种并发访问使得用户不至于等待图片加载的同时也不能看到文字内容。客户端既然是多线程并发访问,那么如果服务端仅仅是单线程处理客户端的请求,那么客户端的并发访问将会变得毫无意义。因此,大部分的web服务器也是支持并...
- 线程池实战简介:上文讲述了怎么写一个简单的数据库连接池,试想一下,当服务端接收到来自客户端的成白上千个连接请求时,如果每次我们都为其创建一个线程去执行任务,执行完毕后销毁线程,这肯定不是一个好的解决办法。我们知道线程的创建和销毁是要消耗系统资源的,那么我们就可以从这个方面入手来控制资源的浪费。线程池描述:线程池技术是一种池化思想,也就是提前预置若干数量的线程,并且线程不能由用户直接控制,在这... 线程池实战简介:上文讲述了怎么写一个简单的数据库连接池,试想一下,当服务端接收到来自客户端的成白上千个连接请求时,如果每次我们都为其创建一个线程去执行任务,执行完毕后销毁线程,这肯定不是一个好的解决办法。我们知道线程的创建和销毁是要消耗系统资源的,那么我们就可以从这个方面入手来控制资源的浪费。线程池描述:线程池技术是一种池化思想,也就是提前预置若干数量的线程,并且线程不能由用户直接控制,在这...
- 简介在Java多线程中,有时候可能需要采用延迟初始化来降低初始化类和创建对象的开销。双重检查锁(饿汉式单例中经常用)是常见的延迟初始化方案,但它是一个错误的用法。本文将分析双重检查锁定的错误根源,以及两种线程安全的延迟初始化方案。1、双重检查锁定的由来在Java程序中,有时候可能需要推迟一些高开销的对象初始化操作,并且只有在使用这些对象时才进行初始化。此时,程序员可能会采用延迟初始化。但要争... 简介在Java多线程中,有时候可能需要采用延迟初始化来降低初始化类和创建对象的开销。双重检查锁(饿汉式单例中经常用)是常见的延迟初始化方案,但它是一个错误的用法。本文将分析双重检查锁定的错误根源,以及两种线程安全的延迟初始化方案。1、双重检查锁定的由来在Java程序中,有时候可能需要推迟一些高开销的对象初始化操作,并且只有在使用这些对象时才进行初始化。此时,程序员可能会采用延迟初始化。但要争...
上滑加载中
推荐直播
-
HDC深度解读系列 - Serverless与MCP融合创新,构建AI应用全新智能中枢
2025/08/20 周三 16:30-18:00
张昆鹏 HCDG北京核心组代表
HDC2025期间,华为云展示了Serverless与MCP融合创新的解决方案,本期访谈直播,由华为云开发者专家(HCDE)兼华为云开发者社区组织HCDG北京核心组代表张鹏先生主持,华为云PaaS服务产品部 Serverless总监Ewen为大家深度解读华为云Serverless与MCP如何融合构建AI应用全新智能中枢
去报名
热门标签