自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

DJun的博客

热爱学习,热爱知识传递。

  • 博客(187)
  • 资源 (7)
  • 收藏
  • 关注

原创 Java虚拟机 - 本地方法栈

牢记 “栈管运行,堆管存储”Java 虚拟机栈用于管理Java方法的调用,而本地方法栈用于管理本地方法的调用。允许被实现固定或者可动态扩展的内存大小(在内存溢出方面是相同的)。如果线程请求分配的栈容量超过本地方法栈允许的最大容量,Java虚拟机将会抛出一个 StackOverFlowError 异常。如果本地方法栈可以动态扩展,并且在尝试扩展的时候无法申请到足够的内存,或者在创建新的线程时没有足够的内存去创建对应的本地方法栈,那么Java虚拟机将会抛出一个 outOfMemoryError异常。

2021-12-28 23:25:25 419

原创 Java虚拟机 - 本地方法接口

文章目录一、什么是本地方法?二、为什么要使用 Native Method?一、什么是本地方法?简单地讲,一个Native Method就是一个Java调用非Java代码的接口。一个Native Method是这样一个Java方法:该方法的实现由非Java语言实现,比如C。这个特征并非Java所持有,有很多其它的编程语言都有这一机制,比如在C++中,你可以用extern"C"告知C++编译器去调用一个C的函数。“A native method is a Java method whose impleme

2021-12-28 23:24:42 429

原创 Java虚拟机 - 虚拟机栈

Java虚拟机 - 虚拟机栈文章目录Java虚拟机 - 虚拟机栈一、基本内容1、是什么?2、生命周期3、作用4、优点5、栈中可能的异常6、设置程序运行时栈内存大小7、栈运行原理二、栈帧的内部结构1、局部变量表(Local Variables)关于Slot的理解Tips:Slot的重复利用Tips:静态变量与局部变量的对比2、操作数栈(Operand Stack)栈顶缓存技术3、动态链接(Dynamic Linking)为什么需要常量池?方法的调用(动态分派和静态分派)方法的绑定机制虚方法和非虚方法动态类型

2021-12-28 23:24:07 408

原创 Java虚拟机 - 运行时数据区

Java虚拟机定义了一系列逻辑数据区域,有些是随着虚拟机的启动而创建,虚拟机的关闭而销毁。还有一部分是随着线程生命周期创建销毁的。我们有必要深入了解这块的内容,因为它将决定服务器性能,首先我们需要对整个运行时区域由整体的认识并且了解了每个区域的生命周期以及作用之后才能通过相应的调参来提升系统性能。除此之外还有助于快速定位虚拟机的相关Error.程序计数器(PC寄存器)JVM中的程序计数寄存器(Program Counter Register) 中,Register 的命名源于CPU的寄存器,寄存器.

2021-12-28 23:20:18 646

原创 Java虚拟机 - 双亲委派机制

文章目录一、原理二、作用三、沙箱安全机制四、补充内容Java虚拟机对class文件采用的是按需加载的方式,也就是说当需要使用该类时才会将它的class文件加载到内存生成class对象。而且加载某个类的class文件时,Java虚拟机采用的是双亲委派模式,即把请求交由父类处理,它是一种任务委派模式。Tips:如果在工程目录的src下新建一个名为 java.lang 的包,在其中新建一个类名String的类,这个类能够正常运行吗?程序代码如下:package java.lang;public c

2021-12-28 23:19:11 344

原创 Java虚拟机 - 类加载子系统

Java虚拟机 - 类加载子系统文章目录Java虚拟机 - 类加载子系统一、类加载器二、类加载器的分类1、Bootstrap ClassLoader2、Extension ClassLoader3、Application ClassLoader4、用户自定义类加载器三、关于ClassLoader1、ClassLoader类的定义2、继承关系3、获取ClassLoader的途径四、类的生命周期1、Loading(加载阶段)2、Linking(链接阶段)(1)Verify(验证)①、文件格式验证②、元数据验证

2021-12-28 23:18:17 638 1

原创 Java虚拟机 - JVM的发展历程

Java虚拟机 - JVM的发展历程文章目录Java虚拟机 - JVM的发展历程执行引擎结构Sun Classic VMExact VMHotspot VMBEA 的 JRockitIBM 的J9执行引擎结构Sun Classic VM1996年随Java1.0版本发布,JDK1.4时被完全淘汰。它只提供解释器。如果使用JIT编译器,就需要进行外挂。但一旦使用了JIT编译器,JIT会接管虚拟机的执行系统。解释器就不再工作,解释器和编译器不能配合工作。现在hotspot内置了此虚拟机Ex

2021-12-28 23:15:20 471

原创 MySQL - 事务

----------- 目录直通车 -------------一、事务的4大特性(ACID)二、事务的3大问题三、4个标准的隔离级别四、事务的创建补充一点:@Transactional 注解的使用一、事务的4大特性(ACID)A - atomicity 原子性事务不可再分割,事务中的操作要么都发生,要么都不发生。C - constancy 一致性事务执行会使数据库从一个一致性状态变换到另一个一致状态。I - isolation 隔离性事务的执行不会受到其他事务的干扰。D - durbilit

2021-08-26 22:49:48 130

原创 MySQL - 视图

目录直通车一、什么是视图?二、视图的更新问题三、视图的增删改查1、创建视图2、删除视图3、修改视图4、查看视图5、调用视图四、视图的性能问题一、什么是视图?​ 视图就像是我们的虚拟表(Schema),其中的数据是通过普通表来动态生成的。可以将复杂的查询包装在视图中,作为一个虚拟的结果集,下一次使用的时候,调用视图即可。​ 应用场景是什么?视图最根本的作用就是减少冗余字段、简化SQL查询、(兼容老的表)。大数据分表时使用,比如一张200万数据的大表分成多张表之后,可以通过视图将这多张表形成一张虚拟表(视

2021-08-25 22:39:32 137

原创 Spring5源码 - 从缓存中获取Bean

Spring5源码 - 从缓存中获取Bean获取Bean的方法在 AbstractBeanFactory 中的 doGetBean方法中,按照Spring的方法命名规则,以do开头的方法才是真正做事情的方法。protected <T> T doGetBean(final String name, @Nullable final Class<T> requiredType, @Nullable final Object[] ar

2021-08-25 22:37:55 187

原创 Spring5源码 - refresh()方法

refresh() 在 AbstractApplicationContext 类中。public void refresh() throws BeansException, IllegalStateException { synchronized (this.startupShutdownMonitor) { // Prepare this context for refreshing. //1、刷新前的工作准备 prepareRefresh();

2021-08-25 22:35:58 265

原创 消息中间件 - 惰性队列

一、什么是惰性队列​ 惰性队列会尽可能的将任何消息存入磁盘,这样可以减少了内存的消耗,当消费者消费到相应的消息时才会被加载到内存,会增加I/O的使用。下面看一组100万数据的内存开销:​ 在发送 1 百万条消息,每条消息大概占 1KB 的情况下,普通队列占用内存是 1.2GB,而惰性队列仅仅占用 1.5MB 。二、应用场景(1)支持存储大量消息的长队列。(2)消息大量积压的时候,消费速度太慢,到了消息大爆发的时候,MQ服务器会撑不住,机会影响其它队列的消息收发。那么消息就可以写入磁盘,需要

2021-08-25 22:34:47 221

原创 消息中间件 - 优先级队列

​ 在优先级队列中,针对生产者给消息设置的优先级进行排序,优先级越大的越先被消费者消费。如果在消费者的消费速度大于生产者的速度,且Broker中没有消息堆积的情况下,对发送的消息设置优先级没有意义。在生产者,按如下方式给消息设置 priority 属性AMQP.BasicProperties properties = new AMQP.BasicProperties().builder() // 设置当前消息的优先级 .priority(5).build(

2021-08-25 22:31:29 523

原创 消息中间件 - RabbitMQ备份交换机

​ 通过消息回退机制和mandatory参数,可以处理交换机投递失败的消息。​ 消息回退到生产者后,有时候并不知道该如何处理这些无法路由的消息,最多就是打个日志,存到缓存定时投递,超出投递失败次数进行报警,再手动处理,手动的通病就是麻烦易出错。此外,生产者不止一台机器,那么每台都需要写处理这些回退消息的逻辑代码,反而增加了生产者的复杂性。那么既不丢失消息,又不增加生产者的复杂性,该怎么做?​ 可以为队列设置死信交换机来存储投递失败的消息,可是这些不可路由消息根本没有机会进入到队列,因此无法使

2021-08-25 22:30:38 319

原创 消息中间件 - RabbitMQ消息的发布确认(高级)

一、确认机制方案​ 在生产环境中由于一些不明原因,导致rabbitmq重启,在RabbitMQ重启期间生产者消息投递失败,导致消息丢失,需要手动处理和恢复。于是,我们开始思考,如何才能进行RabbitMQ的消息可靠投递呢?特别是在这样比较极端的情况,RabbitMQ集群不可用的时候,无法投递的消息该如何处理呢?应用[xxx]在[08-1516:36:04]发生[错误日志异常],alertId=[xxx]。由[org.springframework.amqp.rabbit.listener.Blocki

2021-08-25 22:29:42 1599

原创 Java并发 - CompletableFuture

CompletableFuture 可实现并发,主业务线程可以及时释放;异步线程完成工作,执行回调函数,完成善后工作;提高了执行效率。例如,此时一个线程执行5个步骤的任务,此时第2步操作与后续的3步无关,此时第2步可以异步执行,让后面操作无需等待继续执行。任务无返回值public void testFutureVoid() throws ExecutionException, InterruptedException { CompletableFuture<Void> future

2021-08-25 22:06:55 252

原创 Spring5源码 - Aware

从Bean中获取到的容器实例并对其进行操作。public interface Aware {}该接口只能当做是一个顶级接口使用,主要依赖于其下的子接口:BeanFactoryAware 就是用于获取BeanFactory相关的信息。ResourceLoaderAware 就是用于获取ResourceLoader相关信息。…以此类推。故在以上子接口中,均包含一个setter方法。什么意思呢?例如,当前有个Controller类需要获取ApplicationContext这个Bean,那么

2021-08-25 22:06:07 94

原创 消息中间件 - RabbitMQ延迟队列

一、概念​ 延时队列的内部是有序的,最重要的特性就体现在它的延时属性上,延时队列中的元素是希望在指定时间到了以后或之前取出和处理,简单来说,延时队列就是用来存放需要在指定时间被处理的元素的队列。二、应用场景订单在十分钟之内未支付则自动取消。新创建的店铺,如果在十天内都没有上传过商品,则自动发送消息提醒。用户注册成功后,如果三天内没有登陆则进行短信提醒。用户发起退款,如果三天内没有得到处理则通知相关运营人员。预定会议后,需要在预定的时间点前十分钟通知各个与会人员参加会议

2021-08-25 22:05:41 289

原创 消息中间件 - 死信队列

一、死信的概念​ 死信,顾名思义就是无法被消费的消息,字面意思可以这样理解,一般来说,producer 将消息投递到 broker 或者直接到 queue 里了,consumer 从 queue 取出消息进行消费,但某些时候由于特定的原因导致 queue 中的某些消息无法被消费,这样的消息如果没有后续的处理,就变成了死信,有死信自然就有了死信队列。​ 应用场景:为了保证订单业务的消息数据不丢失,需要使用到 RabbitMQ 的死信队列机制,当消息消费发生异常时,将消息投入死信队列中。还有比如说:用户

2021-08-24 23:05:34 350

原创 消息中间件 - RabbitMQ消息的发布确认(初级)

场景描述:消息持久化是指消息保存在磁盘上,如果消息还没来得及写入磁盘就发生宕机,那么消息一样会发生丢失。解决方案:生产者发送消息的到了所有匹配的队列之后,队列写入磁盘成功后再回复生产者。如何100%确保消息不丢失?做好这三步,消息才能绝对不丢失:①队列持久化②队列中的消息持久化③发布确认一、发布确认原理​ 生产者将信道设置成 confirm 模式,一旦信道进入 confirm 模式,所有在该信道上面发布的消息都将会被指派一个唯一的 ID(从 1 开始),一旦消息被投递到所有匹配的队列之

2021-08-24 23:04:49 204

原创 消息中间件 - RabbitMQ不公平分发

在最开始的时候我们学习到 RabbitMQ 分发消息采用的轮询分发,但是在某种场景下这种策略并不是很好,比方说有两个消费者在处理任务,其中有个消费者 1 处理任务的速度非常快,而另外一个消费者 2 处理速度却很慢,这个时候我们还是采用轮训分发的化就会到这处理速度快的这个消费者很大一部分时间处于空闲状态,而处理慢的那个消费者一直在干活,这种分配方式在这种情况下其实就不太好,但是RabbitMQ 并不知道这种情况它依然很公平的进行分发。为了避免上述情况,强烈建议使用不公平分发(能者多劳),生产者和消费者都需要

2021-08-24 23:04:19 896

原创 消息中间件 - RabbitMQ消息持久化

手动ACK应答可以处理任务不丢失的情况,但是如何保障当 RabbitMQ 服务停掉以后消息生产者发送过来的消息不丢失?默认情况下 RabbitMQ 退出或由于某种原因崩溃时,它忽视队列和消息,除非告知它不要这样做。确保消息不会丢失需要做两件事:需要将队列和消息都标记为持久化。本章节实现简单的队列和消息的持久化功能,更加强有力的持久化策略,在后面发布确认章节再详述。队列持久化生产者和消费者的信道都需要将下面的 queueDeclare() 方法的 durable 属性设置值为 true。在com.r

2021-08-24 23:03:37 175

原创 消息中间件 - RabbitMQ 消息应答

一、场景​ 消费者完成一个任务可能需要一段时间,如果其中一个消费者处理一个长的任务并仅只完成了部分突然它挂掉了,会发生什么情况?RabbitMQ 一旦向消费者传递了一条消息,便立即将该消息标记为删除。在这种情况下,突然有个消费者挂掉了,我们将丢失正在处理的消息。以及后续发送给该消费这的消息,因为它无法接收到。为了保证消息在发送过程中不丢失,rabbitmq 引入消息应答机制,消息应答就是:消费者在接收到消息并且处理该消息之后,告诉 rabbitmq 它已经处理了,rabbitmq 可以把该消息删除了。

2021-08-24 23:03:07 223

原创 消息中间件 - RabbitMQ 六种模式

官网链接简单模式,work模式,Publish/Subscribe发布与订阅模式,Routing路由模式,Topics主题模式,RPC远程调用模式(远程调用,不太算MQ;不作介绍);第一、简单模式(Simple)public class SimpleProducer { String SIMPLE_QUEUE_NAME = "hello"; public static void main(String[] args) throws Exception { Conne

2021-08-24 23:02:17 749

原创 消息中间件 - RabbitMQ 四大核心概念

生产者,交换机,队列,消费者。四大核心类似于以下的协同关系。四大核心的相互关联。生产者产生数据发送消息的程序是生产者交换机交换机是 RabbitMQ 非常重要的一个部件,一方面它接收来自生产者的消息,另一方面它将消息推送到队列中。交换机必须确切知道如何处理它接收到的消息,是将这些消息推送到特定队列还是推送到多个队列,亦或者是把消息丢弃,这个得有交换机类型决定。队列队列是 RabbitMQ 内部使用的一种数据结构,尽管消息流经 RabbitMQ 和应用程序,但它们只能存储在队列中。队列仅受主

2021-08-24 22:59:23 353

原创 消息中间件 - RabbitMQ 安装

RabbitMQ官网安装RabbitMQdocker run -d --restart=always -p 5672:5672 -p 15672:15672 --name rabbitmq -v ${RABBITMQ_DIR}/data:/mydata/rabbitmq -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin rabbitmq:management访问 ip:15672(如 127.0.0.1:15672)[外链

2021-08-24 22:57:42 112

原创 消息中间件 - MQ的分类

1、ActiveMQ优点单机吞吐量万级,时效性ms级,可用性高,基于主从架构实现高可用性,消息可靠性较低的概率丢失数据。缺点官方社区现在对ActiveMQ 5.x维护越来越少,高吞吐量场景较少使用。2、Kafka大数据的杀手锏,谈到大数据领域内的消息传输,则绕不开Kafka,这款为大数据而生的消息中间件,以其百万级TPS的吞吐量名声大噪,迅速成为大数据领域的宠儿,在数据采集、传输、存储的过程中发挥着举足轻重的作用。目前已经被LinkedIn,Uber, Twitter, Netflix等大公司所

2021-08-24 22:57:06 214

原创 消息中间件 - MQ的相关概念

什么是MQ?MQ(messagequeue),从字面意思上看,本质是个队列,FIFO先入先出,只不过队列中存放的内容是message而已,还是一种跨进程的通信机制,用于上下游传递消息。在互联网架构中,MQ是一种非常常见的上下游“逻辑解耦+物理解耦”的消息通信服务。使用了MQ之后,消息发送上游只需要依赖MQ,不用依赖其他服务。消息中间件接受并转发消息。你可以把它当做一个快递站点,当你要发送一个包裹时,你把你的包裹放到快递站,快递员最终会把你的快递送到收件人那里,按照这种逻辑消息中间件就是一个快递站,一个快

2021-08-24 22:56:25 151

原创 Spring5源码 - PostProcessor后置处理器

后置处理器大类分为容器级别的后置处理器以及Bean级别的后置处理器:BeanDefinitionRegistryPostProcessorpublic interface BeanDefinitionRegistryPostProcessor extends BeanFactoryPostProcessor { void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansExcepti

2021-08-23 23:08:02 68

原创 Spring源码 - Resource、ResourceLoader

org.springframework.core.io.Resource定义了资源的基本操作,例如是否可读、是否存在等。public interface Resource extends InputStreamSource {...}public interface InputStreamSource { InputStream getInputStream() throws IOException;}类关系图如下这里使用的是策略模式,Resource是主接口,其三个实现类是策略。.

2021-08-23 23:06:58 113 2

原创 Spring5源码 - BeanDefinitionReader资源加载利器

用于将ResourceLoader或ResourcePatternResolver将配置信息解析成一个个的BeanDefinition,通过BeanDefinitionRegistry将BeanDefinition注册到容器。public interface BeanDefinitionReader { // 获取BeanDefinitionRegistry对象,主要作用将其注册到BeanDefinition的注册表中 BeanDefinitionRegistry getRegistry(

2021-08-23 23:05:10 83

原创 Spring5源码 - ApplicationContext(高级容器)

Spring5源码 - ApplicationContext(高级容器)ApplicationContext 称为高级容器的原因是其继承了多个接口,具备更多的功能。public interface ApplicationContext extends EnvironmentCapable, ListableBeanFactory,HierarchicalBeanFactory, MessageSource, ApplicationEventPublisher, ResourcePatternReso

2021-08-23 23:04:26 258 1

原创 Spring5源码 - BeanFactory、FactoryBean

BeanFactory是SpringBean容器的根接口,定义了Bean工厂的最基本的特性,生成的类都是有此接口的实现类来管理的。FactoryBean 的本质也是一个Bean,用于生成普通的Bean,初始化时,会把这个接口的Bean给取出来,通过其中getObject() 方法来生成我们想要的bean。在spring的xml配置文件中可以通过以下方式来创建实例:public class User {}public class UserFactory { // 普通方法返回User对象,不

2021-08-23 23:03:47 132 1

原创 Spring5源码 - Bean、BeanDefinition、BeanDefinitionRegistry

Spring5源码 - Bean、BeanDefinition、BeanDefinitionRegistrySpring解决了一个关键的问题:将对象之间的关系转而用配置管理:依赖注入,依赖关系放在Spring的Ioc容器中管理通过把对象包装在Bean中以达到管理对象和进行额外操作的目的Bean的本质就是对象,只是这个对象的生命周期由容器来管理。不需要为了创建Bean而在原来的java类上添加任何额外的限制。对java对象的控制方式体现在配置上,根据配置生成描述Bean的BeanDefiniti

2021-08-23 23:02:01 112

原创 Java虚拟机 - 初探JVM

总览Java程序的运行流程在计算机系统体系中并不认识高级语言,需要转成汇编,再由转机器指令。*.java文件通过 javac 编译成 *.class文件,通过 ClassLoader 加载到JVM经过链接阶段(暂时不懂可略过)后,在运行时通过解释器解释执行。Java发展的重大事件1990年,在sun公司中,由Patrick naughton、mikesheridan以及james Gosling领导的小组Green Team,开发出新的程序语言,命名为OAK,后期更名为Java1995年,s

2021-08-23 22:59:52 102

原创 Java网络 - TCP、UDP协议

OSI/RM协议是由ISO(国际标准化组织)制定的。TCP和UDP协议是传输协议,在OSI七层模型中处于一个承上启下的作用。传输控制协议TCPTCP握手机制发送数据前会进行三次握手,发送数据完成后,关闭连接之前进行四次挥手,确保数据传输完成后才断开连接。用户数据报协议UDP利用UDP的特性可用于音视频聊天等容错性较高的情况。...

2021-08-23 22:57:55 65

原创 Java并发 - volatile 及其四大特征

线程的三大特性:原子性、有序性、可见性。volatile 是Java虚拟机提供轻量级的同步机制,遵循happen-before规则,解决线程可见性的问题,让一个线程对共享变量的修改能够及时让其它线程看到。对于一个volatile 变量的写操作先行发生于每个后续对该volatile变量的读操作。1、保证可见性操作的变量发生变化时,能够及时通知正在操作该值的线程。2、不保证原子性原子性:线程执行任务的时候,不能被打扰,也不能被分割。要么同时成功,要么同时失败。如何证明不保证原子性?publi

2021-08-23 22:55:47 151

原创 Java网络 - BIO阻塞式网络编程

Java网络 - BIO阻塞式网络编程BIO - Block Input Output随着技术的发展,两个或以上的程序必然需要进行交互,于是BIO提供了一种端到端的通信,相当于对传输层的一种封装,对于开发人员而言,隐藏了传输的细节,将这些固定的“套路”抽象出来,提供一种端到端的通信,可以使我们更加专注于业务的开发,并且这种通讯是阻塞式的。阻塞式:服务端启动,等待客户端的连接,在客户端连接到服务端后,服务端启动一个线程去监听客户端消息,客户端发送消息,并等待服务端返回(客户端一直阻塞),服务端收到消息,

2021-08-23 22:55:01 436

原创 Java基础 - @interface(注解)

Java - volatile 及其四大特征线程的三大特性:原子性、有序性、可见性。volatile 是Java虚拟机提供轻量级的同步机制,遵循happen-before规则,解决线程可见性的问题,让一个线程对共享变量的修改能够及时让其它线程看到。对于一个volatile 变量的写操作先行发生于每个后续对该volatile变量的读操作。1、保证可见性操作的变量发生变化时,能够及时通知正在操作该值的线程。2、不保证原子性原子性:线程执行任务的时候,不能被打扰,也不能被分割。要么同时成功,要么同时

2021-08-22 13:05:32 3226

原创 Java并发 - Semaphore(信号量)

应用场景:多个共享资源互斥、并发限流(如Hystrix)。信号量是操作系统中,实现进程间资源的互斥与同步。信号量维护了一组许可证,以约束访问被限制资源的线程数。Java并发包中的 Semaphore 可以控制某个资源被同时访问的任务数,它通过acquire()获取一个许可,release()释放一个许可。可以通过availablePermits() 方法得到可用的许可数量。如果被同时访问的任务数已满,则其他acquire的任务进入等待状态,直到有一个任务被release掉,它才能得到许可。一、应用示

2021-08-22 13:02:38 143

ofd资源文档示例.rar

OFD资源文档示例

2021-04-02

俄罗斯方块2.0.rar

以前上传过俄罗斯方块1.0版,只支持单机,现在的2.0版在1.0版的基础上加了自己的socket类,实现了局域网联机对战功能,并附有源码(服务器端与客户端对战,没有同时开始功能,速度也可以不一样,下落方块的种类也不是按同样的次序,没有道具功能,只是将自己的战况实时传输给对方)。 说明:由于我的socket类支持多个客户端连接,但是联机时只有两个视窗,一个自己的,一个对家的,所以当多个客户端接入服务器端时具体表现为:服务器端的战况都会广播给所有客户端,相当于大家观看服务器端演示,但是服务器端不显示任何一个客户端的战况;而当只有一个客户端连接服务器端时,才显示这个客户端的战况。

2019-11-26

Vue全家桶之Vuex实例代码

Vuex的详细的标准实例代码,学习Vuex必备源码,附加详细讲解。请参考博客主页找到Vuex的博文:https://blog.csdn.net/qq_41647999

2018-12-27

Xamarin多个运行app实例demo

这些app的实例如我博客说的那样都是我已经运行成功的实例,每一个app的demo在我的博客里面需要哪些功能参考哪个demo都有介绍。此文地址:https://blog.csdn.net/qq_41647999/article/details/84844357

2018-12-13

SpringBoot连接PostgreSql三层架构实现增改删

SpringBoot配置Mybaits连接PostgreSql三层架构实现增改删。结构代码规范齐全,上传的是整个工作空间。

2018-10-23

SpringBoot搭建所需的任何软件与jar包(完整版)

SpringBoot搭建所需的任何软件与jar包,完整版。与我博客讲的环境搭建相同软件与jar包都在里面。

2018-10-22

SpringBoot环境搭建所需软件包

SpringBoot环境搭建所需软件包,我已经将搭建SpringBoot的所需任何软件包打包。只为给您带来方便。

2018-10-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除