自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Starrk的盗梦空间

日常一记有助身体健康

  • 博客(49)
  • 收藏
  • 关注

原创 解决Mac上Eclipse在装了高版本的JDK后,无法启动的问题

解决Mac上Eclipse在装了高版本的JDK后,无法启动的问题因为自jdk9以后,删除了很多jdk8原有的javax扩展包,mac上装了JDK9~15后,即使你在Terminals中输入java -version发现显示的是下图你仍然会在启动时发现在eclipse启动报错日志中出现如下错误。org.eclipse.e4.core.di.InjectionException: java.lang.NoClassDefFoundError: javax/annotation/PostConstru

2020-11-09 16:20:16 419

翻译 Disruptor

1:是一个高性能的内存并发框架,2:由于为了提高不同系统传递数据的低延时,高吞吐量,而使用队列,Lmax对此进行了优化,于是产生了Disruptor3:Disruptor是经过研究和测试的结果,在cpu级别的缓存丢失和需要kernel去仲裁的锁操作都是非常昂贵的。所以,Disruptor是无锁的。4:...

2019-04-08 18:48:42 234

翻译 EventBus

1:eventBus允许组件间进行发布订阅风格的交互,不需要明确的注册,而是通过感应(aware),设计出来这个中间件的目的主要就是取代传统的java进程间发布订阅的那种显式注册。不是一个通用型的发布订阅系统,也不是为了进程间通信。2:为了接收事件揭露一个public的方法,被称作事件订阅器,接收一个单独参数作为事件类型。标记一个@Subscribe注解把他传递给EventBus的实例的...

2019-04-08 15:36:51 201

翻译 Netty--ChannelPipeline

1:是ChannelHandler的集合2:是一种拦截器过滤器模式的高级实现3:给用户所有的控制权来控制一个event在handler中是如何被handle的,并且清楚的告诉你在pipeline中各个handler是如何相互影响的。4:一个pipeline是在一个channel被建立的同时自动被建立的,且是这个channel唯一的。5:数据流向在ChannelHandlerConte...

2019-04-04 14:53:57 191

原创 Apache common mail使用

1:jar包2:设置你自己的授权码,去你发件邮箱,设置授权码,不会的百度。3: 代码多种模式发送邮件,举个例子如下。public static void main(String[] args) throws Exception{ // Create the email message HtmlEmail email = new HtmlEmail(); email....

2019-03-26 14:22:24 629

原创 ProtoBuf使用

1:下载protoC,配置环境变量2:了解基本.proto文件编写语法,详见官方文档3:执行语句生成protoc的编译文件example: protoc --java_out=src/main/java src/protoc/MyProto.proto4:调用newBuilder() build()方法生成对象,set赋值,add添加内部对象。tips:想使用内部对象,在生命mess...

2019-03-14 15:11:49 132

原创 Linux上安装RabbitMq,6种模式介绍及日常简单使用代码演示

1:安装erlang由于epel中的erlang版本<19.3,所以我们需要下载新的erlang版本erlang的安装支持的不好,所以在官方文档中给提供了一种方式来下载,#下载并安装erlang包,这里下载的是最新的21.2版本1:wget https://bintray.com/rabbitmq-erlang/rpm/download_file?file_path=erlang%2...

2018-12-28 11:48:12 306

原创 Stream源码分析

传递行为和传递对象在Spliterator中,终于遇到了一个在固有的java面向对象编程的思想中很难理解的一件事情,那就是传递对象和传递行为。代码如下@Override default boolean tryAdvance(Consumer<? super Integer> action) { if (action instanceof In...

2018-12-22 15:04:24 2721

原创 jdk源码分析(Map篇)

1:map提供了三种视图形式:key的set,key-value的set,value的Collection,2:map中有有排序接口,如sortMap的实现类,实现了这个接口的有排序功能,如treeMap,而HashMap则没有。3:具有破坏性的操作/不支持的操作会抛出UnsupportedOperationException4:影响hashMap的两个因素是initial Capacity...

2018-12-20 19:20:02 372

原创 JAVA8学习笔记--Collectors工厂类分析

1:groupingBy方法分析public static <T, K, D, A, M extends Map<K, D>> Collector<T, ?, M> groupingBy(Function<? super T, ? extends K> classifier, ...

2018-12-20 14:41:33 651

原创 JAVA8学习笔记(四)Collector源码分析与收集器核心

Collector – JavaDoc一个可变的规约操作,将输入元素累积到一个可变的输出结果容器中。它会在所有元素处理完毕后,将累积的结果转换成为一个最终的表示。(可选操作)可以串行/并行。Collectors本身提供了关于Collector的常见汇聚实现,Collectors本身实际上是一个工厂。Collector由4个函数构成,|—Supplier supplier创建并返回一个...

2018-12-19 01:20:26 355

原创 JAVA8学习笔记(三)Stream

Stream流由三部分构成,源–零个或多个中间操作–终止操作流操作的分类:|—惰性求值 只有终止操作调用时才执行。|—及早求值 reduce或终止操作。流创建的方式|—Stream.of();|—Stream.of(数组);|—Arrays.stream(集合);|—Collection.stream;|—Stream.generate();|—Stream.em...

2018-12-18 18:50:03 159

原创 Java8学习笔记(二)

Optional解决问题;NullPointExceptionvalue-based classesfinal的 and immutable的有equals,hashcode ,tostring 基于实例本身的状态计算出来的。基于equals方法,而不会基于 ==;不能在两个实例中使用==,hashcode,和实例锁。没有可访问的构造方法。通过工...

2018-12-18 00:50:23 123

原创 Java8学习笔记(一)

为何使用Lambda表达式?在java中,无法将函数作为参数传递给一个方法,也无法声明返回一个函数的方法。在js中,函数参数是一个函数,返回值是另一个函数的情况是非常常见的,js是一门非常典型的函数式语言。Lambda表达式作用Lambda表达式为JAVA添加了缺失的函数式编程特性,使我们能将函数当作一等公民来看待。在将函数作为一等公民的语言中,Lambda表达式的类型就是函数,但...

2018-12-17 03:00:21 207

原创 NIO学习笔记(四)selector选择器

1.监听所有注册在selector上的channel,只有当数据准备完成后,才会创建服务端线程,完成io操作2.Selector可以被所有继承了SelectableChannel类的channel注册,但是只有FileChannel例外,因为它没有继承这个抽象类。3.选择器类管理着一个被注册的channel集合信息和他们的就绪状态,选择器和channel是一起被注册的,一个channel可以注...

2018-12-16 23:13:10 151

原创 NIO学习笔记(三)scatter/Gather与Charset

1: 分散读取,从channel中读取的数据分散到多个buffer聚集写入,将多个buffer中的数据聚集到channel中按顺序读取/写入操做的是缓冲区数组2:字符集 :Charset编码 :字符串->字节数组解码 :字节数组->字符串通过Charset对象的newEncoder/newDecoder()获取编解码器...

2018-12-16 17:20:01 128

原创 NIO学习笔记(二)channel

CPU—中央处理器Channel —独立的处理器–专门用于IO–附属于CPU1:用于源节点与目标节点的链接,在JAVA NIO中负责缓冲区中数据的传输。channel本身不存储数据,需要配合缓冲区进行传输。2:主要分类java.nio.channels.Channel| – FileChannel| – SocketChannel| – ServerSocketChannel| ...

2018-12-16 17:01:12 210

原创 NIO学习笔记(一)Buffer

1:buffer就是数组,各类型除boolean外有对应的数据类型的缓冲区。2:通过allocate方法分配缓冲区,可指定大小。3:put,get 存取数据4:缓冲区中4个核心属性: - 1 capacity :容量,表示缓冲区中最大存储数据的容量,一旦声明不能改变 - 2 limit:界限,表示缓冲区中可以操作数据的大小。 - 3 position 位置,表示缓冲区中正在操作数据的...

2018-12-16 15:56:00 206 1

转载 转载:java锁

https://tech.meituan.com/Java_Lock.html

2018-12-14 17:21:09 95

原创 springboot整合swagger及日常使用

痛点:经常性修改接口导致接口文档也经常需要同步修改,而这是一件很沉重的工作,非常浪费开发人员的时间,这时候我们找到了好伙伴,swagger。1:引入POM <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui<...

2018-12-14 14:20:53 158

原创 使用Dockerfile拉取mycat,实现mysql主从,读写分离。

1:获取资源1:先获取mycat包wget Mycat-server-1.6.5-release-20180122220033-linux.tar.gz;2:编写DockerfileFROM java:8USER rootCOPY Mycat-server-1.6.5-release-20180122220033-linux.tar.gz /RUN tar -zxf /Mycat...

2018-12-07 00:03:40 1262 1

原创 基于Docker-compose打造mysql主从。

1:安装docker;官方教程:https://docs.docker.com/install/linux/docker-ce/centos/菜鸟教程:http://www.runoob.com/docker/centos-docker-install.html2:安装docker-compose;官方教程:https://docs.docker.com/compose/install/#...

2018-12-06 21:51:28 780

原创 关于Invalid bound statement (not found)异常可能发生的原因

上午调环境时候一直报org.apache.ibatis.binding.BindingException: Invalid bound statement (not found),正常我们是去检查命名空间和方法名是否正确,但是我当时没有更改过xml,所以显然不是这个问题。查了半天发现,调环境时的mybatis的配置xml中的SqlSessionFactoryBean的mapperLocat...

2018-10-25 11:26:42 1518

原创 关于mybatis的一些细节

1:多个接口参数调用:要用@Param2:@Provider注解,其实就是找个class,class里有个返回值必须是String的method3:where和set标签本质上就是trim标签,只不过名字不一样,去掉的前缀或者后缀不一样4:foreach标签的Collection,遍历list用list,array用array,collection用collection,map用_param...

2018-10-24 23:04:21 129

原创 关于mysql链接报错

安装了新版8.0的mysql,用navicat链接会报 ERROR 1251: Client does not support authentication pro 用sqlyog 会报 链接2059 - authentication plugin ‘caching_sha2_password’ . 但是用cmd命令执行却可以登录 原因就是客户端链接工具没有caching_sha2_pas...

2018-07-08 12:18:12 249

原创 Spring源码解析(二)

Bean的加载spring的bean的加载是一个复杂的过程,本文旨在从大局上看spring到底在加载时做了些什么,然后再进行细节分析。首先,在看源码之前要先去阅读几个关键的类,来帮助阅读1:BeanWrapper,这个接口都有些什么功能呢,我们从他的uml图中看一下。 主要实现了3个功能1.属性的访问和存储2.属性编辑器注册表3.类型转换这个接口的实现类很朴实,主...

2018-04-20 13:38:29 176

原创 Spring源码解析(一)

Springspring是一个装载bean,调度bean的容器 (一)spring的xml加载这部分是spring载入了resource中的xml配置,并使用了对应的解析器,然后开始进行默认部分标签解析部分的源码。 简单说一下xml,个人理解为一种通过标签格式化表示结构层次的方式,有两种格式,DTD和XSD,不深究,区分很好区分这种头TM是DTD<!DOCTY...

2018-04-04 16:36:29 629

原创 基于centos7安装redis sentinel/Cluster

1.安装RVM-ruby$ gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3$ curl -sSL https://get.rvm.io | bash -s stable网速不行就换$ curl -L https://raw.githubuser...

2018-03-30 22:44:52 691 1

原创 基于SpringBoot整合redis及shiro

项目代码:https://gitee.com/starrk110/shiroRedisSpringboot.git 实现功能:shiro的认证及权限控制,缓存及session使用redis管理,remenberme功能。(框架基于SSM,使用了mybatis-plus增强)1:主要使用jar包(见最后)2:安装redis安装redis及redis哨兵/集群部署请自行完成这不...

2018-03-30 17:58:53 12845 16

原创 内部类的用途实例

springboot相关的一些配置,都是写在application.properties或者其他properties中,在你引入一些jar包时,他的说明文档会告诉你要写配置的格式,而为什么要这么写格式呢,是为了我们能够方便的引入,只需要写一个配置类上使用@ConfigurationProperties(prefix = “….”)的这个注解,就可以获取具体属性了。而层级嵌套是如何实现的呢?就是使用...

2018-03-23 16:42:29 166

原创 计算机基础(四)

1:进程间的通信方法通常采用C/S模型进行通信,近些年产生了对等模型进行通信,也就是我们常说的P2P。2:分布式系统由在网络中不同计算机上作为进程执行的软件单元组成。3:因特网3.1 因特网的体系结构第一层ips,非常高速、高容量的国际化广域网,是Internet的主干第二层ips,区域性的,由通信公司运营,第一层和第二层因特网服务提供商本质上是路由器的网络,集中提...

2018-03-20 21:26:32 152

原创 计算机基础(一)

为了以后走的更远,重新补习一遍计算机基础知识。1:1 位和位存储 01编码,2 门和触发器,与门,非门,或门,异或门3 存储单元(cell),8位,也就是1个字节,主存是由存储单元组成的,还有高端位,低端位,即使计算机中没有左右之分,但我们默认是排成一排的,从左到右的。4 地址,就是存储单元的位置,由于都是紧密连接在一起的,所以就有了上一个单元和下一个单元的说法。5 位存...

2018-03-20 21:17:19 170

原创 计算机基础(二)

操作系统典型操作系统的组件: 1:应用软件 2:系统软件 -*2.1实用软件 -*2.2操作系统 -*2.2.1外壳 shell 通过 GUI-WIMP(window icon menu point) 即窗口管理程序 -*2.2.2内核 ...

2018-03-20 21:17:03 172

原创 计算机基础(三)

网络1:网络分类:按范围分:广域网,局域网,按拓扑分类 总线拓扑,星型拓扑 2:协议:基于以太网的总线型,协议为(CSMA/CD),该网络协议规定每条报文都要广播给总线上所有的计算机。每台计算机都对报文进行监听,但是只关注发送给自己的报文,为了传输报文,计算机要等待总线空闲的时候,开始传输报文并监听总线。如果另一台机器也开始要求传输报文,则监听到冲突,这时候两个机器都会进行等待。稍后再做尝试...

2018-03-19 08:05:38 159

原创 在Centos7上安装weblogic12c

linux下安装Weblogic 1:安装JDK,已经安装的小伙伴请跳过这一步 官网下载Jdk linux下的tar包 选择你的记的安装路径,笔者习惯/usr/local/src下,tar -zxvf tar包 然后mv jdk1.。。。。。 java 这步随便 取决你环境变量而已 然后 vi /etc/profile#在最下面加上 linux下的JDK环境变量export J...

2018-03-18 13:37:58 2939

转载 BootStrap学习笔记(四)

BootStrap插件滚动监听(Scrollspy)插件即自动更新导航插件,会根据滚动条的位置自动更新对应的导航目标。其基本的实现是随着您的滚动,基于滚动条的位置向导航栏添加 .active class。 1.通过 data 属性:向您想要监听的元素(通常是 body)添加 data-spy=”scroll”。然后添加带有 Bootstrap .nav 组件的父元素的 ID 或 cl...

2018-03-07 16:52:06 169

转载 BootStrap学习笔记(三)

BootStrap插件过渡效果(Transition)插件如果您想要单独引用该插件的功能,那么除了其他的 JS 文件,您还需要引用 transition.js。 Transition.js 是 transitionEnd 事件和 CSS 过渡效果模拟器的基本帮助器类。它被其他插件用来检查 CSS 过渡效果支持,并用来获取过渡效果。 过渡效果(Transition)插件的使用案例:具...

2018-03-07 07:19:55 188

转载 BootStrap学习笔记(二)

Bootstrap 下拉菜单(Dropdowns)如需使用下拉菜单,只需要在 class .dropdown 内加上下拉菜单即可。 对齐 通过向 .dropdown-menu 添加 class .pull-right 来向右对齐下拉菜单。Bootstrap 按钮组btn-group按钮组 btn-toolbar按钮组的按钮组按钮下拉菜单如需向按钮添加下拉菜单,只需...

2018-03-06 17:25:58 284

转载 BootStrap学习笔记(一)

什么是 BootstrapBootstrap 是一个用于快速开发 Web 应用程序和网站的前端框架。Bootstrap 是基于 HTML、CSS、JAVASCRIPT 的.使用HTML5Bootstrap 使用了一些 HTML5 元素和 CSS 属性。为了让这些正常工作,您需要使用 HTML5 文档类型(Doctype)。 因此,请在使用 Bootstrap 项目的开头包含下面的代...

2018-03-06 16:30:08 306

原创 Thymeleaf学习笔记(一)

一:开启Thymeleaf初学web框架时候大家都常常使用JSP作为SSM架构的前端渲染,但是越来越多的人选择使用HTML5作为前端开发的主要手段,这时候JSP的前后端分离就显得不是很适合,大家都是用Thymeleaf、freemarker等模板引擎作为前后端分离及渲染的框架。其实专业术语说起来很让你陌生,当转化为普通话的时候就是这样理解的,JSP的优点是什么?跨平台,可扩展,JSTL表达式等...

2018-03-05 17:09:16 3320 2

空空如也

空空如也

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

TA关注的人

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