自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 JAVA8——01-Lambda表达式

Lambda表达式文章目录Lambda表达式一、lambda表达式二、使用步骤1.引入库2.读入数据总结提示:以下是本篇文章正文内容,下面案例可供参考一、lambda表达式示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsimp

2021-05-31 18:47:24 143

原创 LINUX指令总结

linux命令(ip 命令: ifconfig) 1> vi 和vim 文本编译器 编辑退出 ,按键ESC、 :wq 存盘操作 :q强制退出 :q!不存盘退出 复制当前行:yy 粘贴:p 复制当前5行 :5yy 删除当前行:dd 删除当前5行: 5dd 查找:/关键字,下一个 :n ...

2020-10-21 15:08:00 90

原创 在线日志分析命令总结--待完善

**在线日志分析**查看文件内容1:cat 查看,缺点是无法控制,只能打开文件内容比较少的文件,不推荐使用2:more 可以分页展示内容,enter键显示下一行、空格键显示下一页、F键显示下一屏、B显示上一屏内容,/内容 进行查找3 :less比more更加丰富,用于大文件查找,用法与more一样。/查找内容 能够高亮显示,推荐使用4 tail 显示文件尾部,可以实时显示正在刷新的文件...

2020-10-21 15:06:58 216

原创 JAVA高并发之常用API解析

1. 线程sleep()休眠1: sleep() 在线程进入休眠后,最重要的也行就是不会放弃当前monitor 锁的所有权Thread.sleep()指定当前线程进入休眠状态.>2: 使用TimeUtil替代sleep(),使用上更优雅。>3: sleep()会在指定时间内释放cpu资源。package com.mxli.concurrent;import java.util.concurrent.TimeUnit;public class ThreadSleepDem

2020-10-19 09:19:50 325

原创 JAVA高并发之线程间通信(wait,notify)解析

2020-10-19 09:19:40 89

原创 JAVA高并发之线程池

1. ThreadPoolExecutor1: 初始化线程池ThreadPoolExecutor threadPoolExecutor=new ThreadPoolExecutor(2,//核心线程书4,30,TimeUnit.SECONDS,new ArrayBlockingQueue(10),Executors.defaultThreadFactory(),new ThreadPoolExecutor.DiscardPolicy());2. ScheduledThreadPo

2020-10-19 09:19:31 152

原创 JAVA多线程之守护线程

1. 守护线程守护线程是比较特殊特殊的线程,能够自动结束生命周期的特性。GC就是一个守护线程,如果主程序已经结束,但是GC还在运行在游戏中,有多个线程,计算角色金钱,经验如果是是一个非守护线程的话,角色已经下线,而线程还在运行,经验,金钱不断增加,游戏会有很大的bug.设置守护线程的方法为setDaemon(true),需要在线程启动前进行设置为守护线程。例子:package com.mxli.concurrent;public class ConditionDemo { pub

2020-10-16 10:23:36 433 1

原创 JAVA高并发之JMH使用

package JMHExp01;import org.openjdk.jmh.annotations.*;import org.openjdk.jmh.runner.Runner;import org.openjdk.jmh.runner.RunnerException;import org.openjdk.jmh.runner.options.Options;import org.openjdk.jmh.runner.options.OptionsBuilder;import java.ut

2020-10-15 16:42:21 331

原创 JAVA高并发之synchronized详解

1. synchronized (java并发编程中的元老,重量级锁)synchronized 提供了

2020-10-15 16:07:14 258

原创 JAVA高并发之volatile详解

volatile 介绍1. 缓存的概念,为什么要有缓存?在未采用缓存的之前,CPU都是直接访问主内存、虽然随着CPU制造工艺的提升,刷新频率的提高,内存受限于制造工艺和制造成本的限制,提升空间较小,导致了CPU与主线程访问频率过高,通过传统的FSB直接访问内存的方式会导致CPU资源受到很大的限制,为了降低CPU吞吐量,在CPU和主存中间加了缓存的设计。2. 缓存运行方式以及缓存不一致性的问题在程序运行的时候,会将所需要的共享数据从主内存中拷贝一份放置缓存中,计算结束之后、在刷新之主内存中。多个线程

2020-10-15 16:03:00 112

原创 消息中间件之 rabbitmq总结

**1. 生产者生产者:投递消息的一方,生产者创建消息、发布到rabbitmq中,消息一般包括两个部分、消息体和标签消费者消费者连接到Rabbitmq服务器、订阅消息队列Rabbitmq的内部对象、用于存储消息,kafka消息是存储在topic中、rabbitmq则是存储在队列中交换器Exchange-X:生产者将消息发送到交换机、由交换器将消息路由到一个或者多个队列中、如果路由不到、则返回给生产者或直接丢弃。fanout 会发送到该交换器的消息路由到所有队列中dire

2020-10-15 10:51:24 93

原创 单向链表,循环链表,双向链表

链表 :数据结构分析数组地址值是连续的,链表地址值是无序的,是通过针织将零碎的内存块链接起来。数组结构数组连续的地址值:头节点:记录基地址,尾节点,指向空,在链表中查询数据,时间复杂度O(n),需要遍历,删除数据的时候,因为不需要保持连续性,所以时间复杂度为O(n)....

2020-10-15 10:49:21 47

原创 JAVA集合Collection(集合框架)分析

集合简介:用于存储对象的可变长度的容器,因为容器中结构不同,所以出现了容器的体系,不断的向上抽取而成,容器体系如下图Collection 该接口中定义了集合中的共性方法,简单列出,具体请参考对应版本JDK API.添加 boolean add(obj)。删除 boolean removeobj)。是否包含元素 boolean contains(obj)。判断是否有元素 bo...

2020-10-15 10:48:31 75

原创 Map集合框架总结202020

技巧:如何判断这些容器的数据结构?通过每一个容器的名称即可明确其数据结构:ArrayList: 数组 array。LinkedList: 链表:link。HashSet: 哈希表:hash。TreeSet: 二叉树:tree。HashMap: 哈希表。hash。TreeMap: 二叉树。tree。看到array,就要想到角标。看到link,就要想到first,last。看...

2020-10-15 10:48:15 123

原创 数组分析与算法

数组定义 数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。 线性表:类似于一条线的数据结构,每个线性表上的数据都只有前后两个方向,数组,队列,链表,栈都是线性表数据结构。 连续的内存空间,来存储一组具有相同类型的数据: 数组随机访问:原理是寻找内存地址确认 a[i]_address = ba...

2020-10-15 10:47:01 130

原创 Kafka-01:kafka入门简介

1:kafka 来源于LinkedIn公司采用Scala语言开发得一个多分区、多副本且基于ZooKeeper协调得分布式消息系统、后被捐献给Apache基金会。2:目前kafka已经定义为一个分部署流式处理平台、高吞吐、可持续化、可水平扩展、支持流数据处理等多种特性而被广泛使用。3:为什么选择kafka kafka三大角色1、消息系统:kafka和传统得消息系统都具备系统解耦、冗...

2020-10-15 10:46:06 101

原创 JAVA高并发之线程的概念

进程与线程的区别?进程是一个执行单元每个进程内至少有一个线程、线程是进程的执行路径,线程也称为轻量级进程线程的状态(生命周期)NEW ----创建一个线程、此时线程尚未被启动,未调用start()方法RUNNABLE -----调用了start()方法、等待CPU轮询调度轮询此任务线程RUNNING -----此时CPU轮询到此线程、线程开始执行BLOCKED -----此时线程进入锁状态、调用了Thread.sl..

2020-10-15 10:34:20 139

原创 JAVA高并发之并发容器

链表链表包含两个属性、数据本身以及指向下一个节点的引用或者指针BlockingQueue(阻塞队列),对元素数量存在界限、当队列已经满的时候、对队列进行写入的线程将被阻塞挂起、如果数据为空的时候、也被阻塞挂起,BlockingQueue 内部以来显示锁和Condition,所以此队列为线程安全的。 1:ArrayBllockingQueue--基于数组实现的FIFO阻塞队列,在构造的时候,需要指定最大的元素数量, 阻塞式写方法 put() ..

2020-10-15 10:31:57 117

原创 JAVA高并发之并发包工具类

CountDownLatch 是一个同步助手、允许一个或多个线程等待一系列其他线程的执行结束,在初始化CountDownLatch的时候,需要注意countDownLatch的特点 1:CountDownLatch ch=new CountDownLatch(5); 需要顶一个不小于0的计数器 2:CountDownLatch是同时并行多个程序,而不是并发 3:CountDownLatch是一次性的,不能重复使用 4:CountDownLatch在使用的时候,每个线程完成后需要对当前计数..

2020-10-14 18:57:55 407

原创 JAVA高并发之原子并发包详解

1.在多线程中保证数据的原子性,一般用法有synchronized,lock显示锁,atomic原子包,在执行多线 程程序中性能如何?JMH示例如下package com.mxli.concurrent.atomicdemo;import org.openjdk.jmh.annotations.*;import org.openjdk.jmh.runner.Runner;import org.openjdk.jmh.runner.RunnerException;import org.openj

2020-10-12 15:59:52 385

空空如也

空空如也

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

TA关注的人

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