自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(127)
  • 资源 (5)
  • 收藏
  • 关注

原创 scp命令的使用

scp 是 secure copy 的缩写, scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。scp 是加密的,rcp 是不加密的,scp 是 rcp 的加强版从本地赋值到远程服务器文件复制的例子scp /home/space/music/1.mp3 root@www.runoob.com:/home/root/others/music scp /home/space/music/1.mp3 root@www.runoob.com:/home/root/others/m

2020-07-07 23:26:08 364

原创 List 通过对象属性过滤出想要的结果集 Java新特性

List 普通去重List<User> list = Lists.newArrayList();list.add(new User("1","180","18"));list.add(new User("1","180","18"));list.add(new User("2","170","18"));list.add(new User("1","190","18"));list.stream().distinct().collect(Collectors.toList());S

2020-07-02 19:29:40 1518

原创 Double float丢失精度是怎么回事?

Double Float 丢失精度是怎么回事?一起来看看System.out.println(f1.0 == 0.99999999);System.out.pirntln(f1.0 == 0.9999999);

2020-07-01 11:34:00 357

原创 Git 常用的命令之避免尴尬

今天在代码的合并中出现了原本不该出现的错误,这令我非常尴尬!!! 完全不应该出现的错误,然后在懵逼的状态中同事美女同事帮忙搞定的!尴尬倒还好,毕竟我脸皮够厚! 最重要的耽误其他同事的下班时间。毕竟已经很晚了,车有不好叫… 在这里老哥对部门同事道歉了(这算是公开道歉吗… … )!整理一下今天的低级错误归根就是对git的命令不够熟悉所导致的,也怪我之前公司没有用够git,(小破老的公司,都是一人独立开发的小系统)然后也没有认真的学习git的使用。今天我就整理一下,后续会更新,今天是比较基础的一些操作和命令,还

2020-06-19 15:08:57 169

原创 Java 8 List集合排序方法

List排序的方式String的排序,其他基础类型也类似的用法List<String> list = Lists.newArrayList();for(int i = 0; i<10; i++){ list.add(UUID.randomUUID()+String.valuefo(i));} System.out.println("排序前"); list.forEach(l -> System.out.println(l)); list.sort(Comparato

2020-05-30 14:24:57 2939 1

原创 Java 8 List转Map的几种方式

List 、Map 相互转换的几种方式:List 转 Maplist 转 map , key是用户姓名,value是user对象,List<User> list = getUsers();Map<String,User> userMap = Maps.newHashMap();userMap = list.stream().collect(Collectors.toMap(User::getName, Function.identity()));list 转 map,k

2020-05-30 10:41:54 1880

原创 如何看待Java 虚拟机的GC操作。

GC(Garbage Collect 垃圾回收)GC分为 Young区的 Minor GC,Old区的Major GC , Young区和Old区的Full GC。首先说说运行时数据区的垃圾回收问题程序计数器、虚拟机栈、本地方法栈这三个区域都是随着线程创建/销毁而生/死的。栈中的栈桢随着方法的进入和退出而执行出栈和入栈操作的。每一个栈桢中分配多少内存基本上是在类结构确定下来事时就已知的,因此...

2020-04-06 19:48:02 271

原创 谈谈我对Java内存模型的理解

内存模型与运行时数据区Java虚拟机在执行Java程序的过程中会把它所管理的内存划分成若干不同的数据区域。Java内存模型的主要目的是定义程序中各个变量的访问规则,在虚拟机中将变量存储到内存和从内存中取出变量这样的底层细节这里所讲述的主内存,工作内存与Java内存区域中Java堆,栈。方法区等并不是同一成次的内存划分,这两者基本上是没关系的。如果两者一定要勉强对应起来,从变量。主内存。工作内...

2020-04-05 01:01:32 527

原创 一起学习java运行时数据区

方法区 Method Area方法区是各个线程共享的内存区域,在虚拟机启动时创建。用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。虽然Java虚拟机规范把方法区描述为堆的一个逻辑部分,但是它却又一个别名叫做Non-Heap(非堆),目的是与Java堆区分开来。当方法区无法满足内存分配需求时,将抛出OutOfMemoryError异常。注意:方法区在JD...

2020-04-04 00:14:18 153

原创 如何理解Java类加载机制

java 类加载机制 也就是class文件到虚拟机加载通过一个类的全限定名获取定义此类的二进制字节流将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构在Java堆中生成一个代表这个类的java.lang.Class对象,作为对方法区中这些数据的访问入口注意: 这里并不一定非得从一个class文件获取,这里既可以从zip包中读取(war,jar)也可以在运行时计算生成(动态代...

2020-04-03 00:52:36 265

原创 Java-Lock之自我学习

AQS 是什么AQS是一种乐观锁的实现,相信一直不会存在线程竞争问题。悲观锁就是非常谨慎性,只有有人访问我就锁起来。公平锁非公平锁共享锁独占锁condition是什么 如何结合AQS使用Lock 的实现Lock 本质上是一个接口,它定义了释放锁和获得锁的抽象方法,定义成接口就意味着它定义了锁的一个标准规范,也同时意味着锁的不同实现。实现 Lock 接口的类有很多,以下为几个常见的...

2020-03-28 23:58:25 160

原创 Java之Synchronize学习

Synchronize的几种实现Synchronize有三种实现。同步方法,修饰实例方法,作用于当前实例加锁,进入同步代码前要获得当前实例的锁静态方法,作用于当前类对象加锁,进入同步代码前要获得当前类对象的锁修饰代码块,指定加锁对象,对给定对象加锁,进入同步代码库前要获得给定对象的锁。不同的修饰类型,代表锁的控制粒度public class SynchronizeTest {...

2020-03-23 18:52:31 311

原创 关于Java线程基础知识的整理

线程生命周期NEW: 初始状态,线程被构建,但是还没有调用start方法。RUNNABLED: 运行状态,Java线程把操作系统中的就绪和运行两种状态统一称为“运行中”BLOCKED:阻塞状态,表示线程进入等待状态,也就是线程因为某种原因放弃了CPU使用权,阻塞也分几种情况。等待阻塞:运行的线程执行wait方法,jvm会把当前的线程放到等待队列同步阻塞:运行的线程在获取对象的同步锁时...

2020-03-21 23:30:25 138

原创 Java线程池 - newScheduledThreadPool是如何是实现周期执行的??

newScheduledThreadPool是如何是实现周期执行的??ScheduledThreadPoolExecutor的执行主要分为两个部分。当调用scheduleAtFixedRate() 和 scheduleWithFixedDelay() 方法时,会向ScheduledThreadPoolExecutor的DelayedWorkQueue添加一个实现了RunnableSched...

2020-03-19 22:05:55 1901

原创 Java线程池实现原理之自我见解

Java线程池的执行流程图:Java线程池有哪几种:1. newSingleThreadPool单个线程的线程池,即线程池中每次只有一个线程工作,单线程串行执行任务,LinkedBlockingQueue 阻塞队列2. newFixedThreadPool固定数量的线程池,每提交一个任务就是一个线程,直到线程达到线程池的最大数量,然后后面进入等待队列直到前面的任务才继续执行;...

2020-03-18 22:24:57 1353

原创 JavaEE 和 JavaSE的区别

Java分为三个版本:Java SE(标准版)、Java EE(企业版)、Java ME(微型版)。其中JavaSE就是大家学JavaEE和JavaME的基础,换而言之学Java先从JavaSE开始,JavaSE 包含了支持 Java Web 服务开发的类,JavaEE是企业最常用的用于企业级开发应用的,Java ME主要是移动段的开发应用。JAVAEE是指Java Enterprise Edi...

2020-03-13 15:04:01 6216

原创 内网穿透工具ngrok

2020年的第一个文章为啥不是…或者在或者等一些高大上 高B格的总结性文章 … …唉!开始今天的主要内容, 正文分割线!简介ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。ngrok 可捕获和分析所有通道上的流量,便于后期分析和重放。反向代理在计算机网络中是代理服务器的一种。服务器根据客户端的请求,从其关系的一组或多组后端服...

2020-01-09 14:37:20 344

原创 windows7执行 vagrant up提示powershell版本过低怎么办

错误Vagrant failed to initialize at a very early stage:The version of powershell currently installed on this host is less thanthe required minimum version. Please upgrade the installed version ofpow...

2019-11-26 11:15:35 3028

原创 程序员的情书

Java程序员的情书我能抽象出整个世界…但是我不能抽象你…因为你在我心中是那么的具体…所以我的世界并不完整.我可以重载甚至覆盖这个世界里的任何一种方法…但是我却不能重载对你的思念…也许命中注定了.你在我的世界里是永远的烙上了静态的属性…而我不慎调用了爱你这个方法…当我义无返顾的把自己作为参数传进这个方法时…我才发现爱上你是一个死循环…它不停的返回对你的思念压入我的心里的堆栈…...

2019-10-24 14:33:33 468

原创 HashTable源码分析、与 HashMap的区别

HashTable 1.8源码分析首先回顾一下HashTable的特性:线程安全,Key Value 都不能为空。 数据结构: 数组 + 链表,默认数组的长度是11 , 扩容时为原来的两倍+1,阈值是0.75。 父类是 Dictionary<K,V>.。使用的是Enumeration迭代。 public 方法都使用了synchronize关键字。多线程情况是安全了,就是会造成排队...

2019-07-19 18:23:41 174

原创 ConcurrentHashMap源码分析

帮忙纠错! 诚恳感谢!源码分析1.8ConcurrentHashMap数据结构是: 数组 + 链表 + 红黑树,它是线程安全的。其中抛弃了原有的 Segment 分段锁,而采用了 CAS + synchronized 来保证并发安全性。在多并发情况下它的数据为弱一致性的,多并发下get()返回的结果可能不是预期的值(这点在最后论证)。适用场景为:多线程对HashMap数据添加删除操作时。口述...

2019-07-18 23:43:45 201

原创 HashMap源码分析线程不安全

HashMap 源码分析线,为啥线程不安全?为啥呢,接着往下看看。主要原因是HashMap在put的时候会导致多线程下结果不一致!上一篇文章讲解HashMap的源码,当然么有每个方法都将,只讲了get(),和put()和构造方法。身下的自己看看就OK了,不过重点应该都涉及到了… … 吧!进入正题!!!现在我们来单线程的put一下 图解:出入完成后是这样的多线程下就会有问题:假设...

2019-07-16 15:37:04 247

原创 HashMap源码分析实现原理

HashMap 数据结构Java 1.7 HashMap 的数据结构是 数组 + 链表Java 1.8 HashMap 的数据结构是 数组 + 链表 + 红黑树HashMap 重点参数这里是针对1.8总结的。HashMap的默认初始化容量, 必须是2的幂static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // ak...

2019-07-15 16:42:44 192

原创 VUE安装

VUE安装教程 —— 新手必备VUE之windows安装VUE介绍vue安装必不可少的环境创建项目项目目录介绍VUE之windows安装VUE介绍VUE作为目前常用的一种前端技术,现在已经被广泛使用了,当然它也确实比较简单好用,并且是轻量级。Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。V...

2019-05-20 11:48:36 1211

原创 从面试到怀疑人生

谈谈找工作那点事。2019-03低我开始找工作的,去年的大环境不好这是客观存在的。今年的工作确实没有往年好找。好像我一共也就找过3次工作,加这次!!刚毕业的时候找工作还是不太好找的,但是在两周内入职了一家不错的公司。17年因为一些事情的原因,(并非薪资的问题,据我所知,在应届我是薪资最高的!)辞职回到了家乡。由于事情不是短时间能解决的,安顿好医院事情后,我用了一周的时间找好了公司。到...

2019-04-26 14:13:03 518

原创 Java --- 线程 --- ThreadLocal

ThreadLocalThreadLocal :线程本地变量 也叫 线程本地存储,ThreadLocal为变量在每一个线程中创建一个副本,每个线程可以访问自己内部的副本变量。这句话理解起来还是比较容易理解的。...

2019-03-20 13:58:23 141

原创 RabbitMQ --- topic

上一篇文章使用的是直连交换机,她还是不够灵活变通,不能基于多标准进行路由设定。主题换件机 exchange topic 可以帮助我们解决这个问题。主题交流发送到 主题交换机的消息不能具有任意的 routingKey ,他必须由点分隔的单词列表,单词可以是任何内容,但通过他们指定与消息相关的一些功能。路由秘钥中可以包含任意数量的单词,最多可达到255个字节。绑定秘钥也必须采取相同的形式,主题...

2019-03-07 19:02:44 264

原创 RabbitMQ --- 路由Routing

结合上一篇文章接着往下写。路由 routing日志系统,将error的日志信息发送到一个队列,进行保存到logs文件中。将error info warning的日志信息发送到另一个队列,进行控制台打印操作。这里可是通过 绑定秘钥 路由秘钥参数来配置。再上一个技术发布订阅,添加一点限制,是消费者只能订阅一部分消息。例如,我们只能将关键错误消息定向到日志文件,同时仍然能够在控制台上打印所有日...

2019-03-07 17:47:13 177

原创 RabbitMQ ---发布 / 订阅

Exchanges 交易所rabbitmq 中消息传递模型的核心思想是:生产者永远不会将任何消息直接发送到队列。实际上,生产者通常甚至不知道消息是否会被传递到任何队列。相反,生产者只能向交易所(Exchanges)发送消息。交换是一件非常简单的事。一方面,它接收来自生产者的消息,另一方面将它们推送到队列。交易所必须确切知道如何处理它收到的消息,它应该附加到特定队列吗?他应该附加到多个队列吗?或...

2019-03-07 15:10:31 127

原创 RabbitMQ --- 从零开始

Hello Word/* * 连接RabbitMQ*/public Connection getConn() throws Exception { ConnectionFactory connectionFactory = new ConnectionFactory(); connectionFactory.setHost(&amp;amp;quot;localhost&amp;amp;quot;); ...

2019-03-05 23:49:13 168

原创 rabbitMQ ---应用场景

rabbitMQ 优点他的好处在于可以支撑高并发、高吞吐、性能很高,同时有非常完善的后台管理界面可以使用。除此之外,RabbitMQ的开源社区很活跃,较高频率的迭代版本,来修复发现的bug以及进行各种优化。消息中间件 能解决什么样的问题系统解耦假设你有个系统A,这个系统A会产出一个核心数据,现在下游有系统B和系统C需要这个数据。那简单,系统A就是直接调用系统B和系统C的接口发送数据给他...

2019-03-05 16:51:09 465

原创 Java --- 新特性 --- try-with-resource 用法

在某官网上看到这个用法,一开始不理解。然后进过百度学习了一下。下面总结一下。菜鸟驿站 是这样解释的:(不知道这么直白的借鉴合适不合适 ~ . ~ )try-with-resources 是 JDK 7 中一个新的异常处理机制,它能够很容易地关闭在 try-catch 语句块中使用的资源。所谓的资源(resource)是指在程序完成后,必须关闭的对象。try-with-resources 语句确...

2019-03-01 15:00:57 2611

原创 Redis---事务之日常学习

Redis 支持事物 但只是部分支持并没有强一致性。可以一次执行多个命令,本质是一组命令的集合,一个事物中的所有命令都会序列化,按顺序的串行执行,执行而不会被其他命令插入,不许加塞一个队列中,一次性,顺序性,排他性的执行一系列命令常用命令discard :取消事物,放弃执行事物块内的所有命令exec :执行事物块内的命令unwatch:取消watch命令对所有key的监控watch ...

2019-02-25 17:42:36 158

原创 Redis ---主从复制 读写分离

**Redis: 热点 高频 读写 **行话:也就是我们所说的主从复制,主机数据更新后根据配置和策略,自动的同步到备机的master/slave机制。master以写为主,slave以读为主。主要功能就是: 读写分离,容灾恢复具体怎么玩,往下接着来配从(库)不配主(库)从库配置:slave主库IP主库端口每次与master存盘开之后,都需要重新连接,除非你配置进redis.conf...

2019-02-19 00:17:03 154

原创 Redis持久化之 --- AOF

Redis的持久化AOF(Append only File )因为RDB的不完美,有可能会丢失一部分数据的问题(最多丢失15分钟的数据,现在最多丢失1秒钟的数据)AOF是一种文件,他会记录(写操作)你的操作语句。以日志的形式来记录每一个写操作,将Redis执行过的所有写指令记录下来(读操作不会记录)只需追加文件但不可以改写文件,Redis启动之初会读取该文件重新构建数据换言之Redis重...

2019-02-16 18:12:33 230

原创 Redis持久化之 - - - RDB

RDB(Redis DataBase)在指定的时间间隔内将内存中的数据集快照写入磁盘也就是行话讲的snpashot 快照,它恢复时是将快照文件直接读到内存里。Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入一个临时文件中, 待持久化过程都结束了,在用这个临时文件替换上一次持久化好的文件。整个过程中,主进程是不会进行任何IO操作的。这就确保了极高的性能。如果需要进行大...

2019-02-15 19:31:01 165

原创 SpringBoot配置MyBatis的逆向工程 --- MyBatis-generator

MyBatis generator第一步:maven 配置 : 添加上mybaits generator 插件&amp;amp;lt;plugin&amp;amp;gt; &amp;amp;lt;groupId&amp;amp;gt;org.mybatis.generator&amp;amp;lt;/groupId&amp;amp;gt; &amp;amp;lt;artifactId&amp;amp;gt;myb

2019-01-17 19:11:38 285

原创 Java基础篇 --- 控制执行流程

控制执行流程if-else 、while 、do-while 、 for 、return 、break 、 continue 、switchif-elseif-else 语句是控制程序流程的最基本的形式,其中的else 是可选的。int v = 9;int k = 5;if ( v &amp;amp;gt; k ){ System.out.print(&amp;quot;v大于k&amp;quot;);}else{ System,...

2019-01-15 13:47:19 158

原创 Java基础篇 --- 运算符

Java的运算符分为:算术运算符、位运算符、赋值运算符、关系运算符、逻辑运算符、三目运算符、类型相关运算符。算数运算符+ 、 - 、*、/、%、++、-- 加 减 乘 除 取余主要是基本的加减乘除四则计算int v = 7;int k = 2;Systme.out.print(v + k); // 结果为 7+2=9Systme.out.print(v - k); // 结果为 7...

2019-01-14 17:47:49 595

原创 Visual Studio Code 快捷键大全

Visual Studio Code 快捷键大全通用Ctrl+Shift+P, F1打开命令面板Ctrl + P快速打开文件Ctrl + Shift + N打开新窗口/实例ctrl + shift + W关闭窗口 / 实例基础编辑Alt+ ↑ / ↓向上/向下移动当前行Shift+Alt + ↓ / ↑向上/向下复制当前行...

2019-01-11 14:33:25 389

vue-admin-template-master.zip

对于初步学习VUE的童鞋,这是一版非常好的框架布局。没有添加过多的模块。下载后解压到你的工作空间,根据README.md文件操作即可。

2019-05-21

elixir安装

elixir是一个新语言,不是也不是它基于erlang的虚拟机,也就是没有erlang就没有elixir,elixir是一个面向并发的编程思想。

2018-10-15

Xftp 安装包

两个操作系统连接以后可以非常方便的穿送文件。 直接进行拖拽到相应的文件夹下即可 省去了很多的命令 而且在工具内查看目录结构也非常方便,复制 粘贴 和移动文件 也是动动鼠标就OK了。不用再担心命令敲错的问题。

2018-10-15

java使用sigar检测CPU占用率

Sigar是Hyperic-hq产品的基础包,是Hyperic HQ主要的数据收集组件。它用来从许多平台收集系统和处理信息. 这些平台包括:Linux, Windows, Solaris, AIX, HP-UX, FreeBSD and Mac OSX. Sigar有C,C#,Java和Perl API,java版的API为sigar.jar sigar.jar的底层是用C语言编写的,它通过本地方法来调用操作系统API来获取系统相关数据。Windows操作系统下Sigar.jar 依赖sigar-amd64-winnt.dll或sigar-x86-winnt.dll,linux 操作系统下则依赖libsigar-amd64-linux.so或libsigar-x86-linux.so

2017-08-03

JNotify压缩包

java 对文件夹监控 小插件

2017-07-14

空空如也

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

TA关注的人

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