自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

苡仁

别动,让我继续苟着。。。。

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

原创 重学Java并发编程—如何正确得启动和停止一个线程 最佳实践与源码分析

1. 线程的启动1.1 start()和run()方法调用对比/** * 对比start和run两种启动线程的方式 * @author yiren */public class StartAndRunThread { public static void main(String[] args) { // 直接使用run方法 Runnable ...

2020-02-11 13:57:29 423

原创 重学Java并发编程—刨根问底搞懂创建线程到底有几种方法?

Oracle官方文档对创建线程的说明Java SE 8 API文档: https://docs.oracle.com/javase/8/docs/api/请查看java.lang.Thread的类说明文档。将类声明为Thread的子类,并重写run方法。官方原话:There are two ways to create a new thread of execution. ...

2020-02-11 13:08:49 199

原创 源码分享—《Java多线程编程核心技术》源码,Java多线程编程核心技术源码 略微有改动。

java-multi-thread-ilssGithub地址:https://github.com/ilssio/java-multi-thread-ilss《Java多线程编程核心技术》书上案例代码基本和书上是一样的。每一部分都是按照书上说 创建什么项目 就直接用做包最后一层的名字,全部小写,中间加下划线。java不推荐包名大小写混用。part几就是第几章,第一章没有,自己过一遍就好了...

2020-01-14 12:46:37 1748 3

原创 框架—记一次手写简易MVC框架的过程 附源代码

0.环境Java : JDK 1.8IDE : IDEA 2019构建工具 : Gradle1.整体思路1.1 一些点使用DispatcherServlet统一接收请求自定义@Controller、@RequestMapping、@RequestParam注解来实现对应不同URI的方法调用使用反射用HandlerMapping调用对应的方法使用tomcat-embed-cor...

2020-01-11 15:43:51 52

原创 事务—【02】SpringBoot使用JTA Atomikos实现多数据源事务管理

0. 前置知识0.1 事务的一些基本概念上篇说了事务的一些概念和Spring中的一些接口定义以及单数据源事务的实现具体的自己点下链接看吧https://juejin.im/post/5e17013de51d453cbc4613a30.2 X/OPEN DTP模型全称:X/Open Distributed Transaction Processing Reference Model,...

2020-01-11 15:30:47 3093

原创 事务—【01】Spring事务管理介绍以及SpringBoot+Druid+MyBatis单数据源事务管理实现

前置知识简单介绍 详解自行google.事务是什么?事务是一种可靠、一致的方式,访问和操作数据库中的程序单元事务的特性原子性:要么做,要么不做一致性:一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态持久性:持久性是指一个事务一旦被提交了,那么对数据库中的数据的改变就是永久性的。隔离性:不同的事务操作的互相不干扰并发事务的问题脏读:脏读是...

2020-01-11 15:28:56 797

原创 Dubbo2.6.x—注册中心源码分析 dubbo-registry模块 (api and zookeeper)

文章有点长,亲,要慢慢看!1. 概述1.1 注册中心作用在Dubbo中,注册中心为核心模块,Dubbo通过注册中心实现各个服务之间的注册与发现等功能,而本次源码的分析为registry模块的api和zookeeper的实现。服务的提供者和消费者都需要把自己注册到注册中心,提供者让消费者感知到服务存在,从而消费者发起远程调用,也让服务治理中心感知到有服务提供者上线;消费者则是让服务治理...

2019-12-08 16:15:55 469

原创 JVM—【03】认识Java类的生命周期、类加载的过程、双亲委派机制

1. 初识类加载JVM把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。在Java语言中,类型的加载、连接和初始化过程都是在程序运行期间完成的。这种策略在类加载时稍微会增加一些性能开销,但是提高了Java应用程序的灵活性。Java天生可以动态扩展的语言特性就是依赖运行期动态加载和...

2019-09-12 17:57:32 191

原创 JVM—【02】认识JVM的垃圾回收算法与收集器

1. 对象存活判断1.1. 引用计数算法 Reference Counting给对象添加一个引用计数器,每当有一个地方引用它的时候,计数器值就加一;当引用失效时,计数器值就减一;任何时刻计数器为0的对象就是不可能再被使用的。主流的JVM没有选用引用计数算法来管理内存,主要的原因是它很难解决对象之间的相互循环引用的问题。1.2. 可达性分析算法 Reachability Analysi...

2019-09-12 16:39:43 116

原创 JVM—【01】认识JVM的内存布局、运行时数据区与对象创建内存分配

1. Java 内存区域1.1. JVM 内存布局 与 运行时数据区1.2. Heap 堆它的唯一目的就是存放对象实例;几乎所有对象实例和数组,分配内存的区域。堆内存区域是线程共享区域,并发编程时需要考虑线程安全问题。可以通过-Xms256M -Xmx1024M 设置堆内存大小。注意: Java程序在运行中,堆空间会不断扩容与减少,会造成系统压力,所以一般设置为同样大...

2019-08-11 21:17:58 179

原创 记一次手写简易MVC框架的过程 附源代码

0.环境Java : JDK 1.8IDE : IDEA 2019构建工具 : Gradle1.整体思路1.1 一些点使用DispatcherServlet同一接收请求自定义@Controller、@RequestMapping、@RequestParam注解来实现对应不同URI的方法调用使用反射用HandlerMapping调用对应的方法使用tomcat-embed-co...

2019-06-26 13:39:15 327

原创 Shell编程—【07】Linux的sed流编辑器 sed命令

基础介绍sed(Stream Editor), 流编辑器。 对标准输出或者文件逐行进行处理。语法格式标准输出处理sed [选项]... {脚本} [文件]...文件处理stdout | sed [选项]... {脚本}sed的选项使用案例文件下面命令将在含有file文件内容如下的目录下进行。i love pythonlovelove pythonloo...

2019-06-16 16:57:23 166

原创 Shell编程—【06】Linux的grep常用选项及示例

【Shell编程系列】https://blog.csdn.net/ilo114/article/category/8961526用法grep [选项]... PATTERN [FILE]...command | grep [选项]... PATTERN在每个 FILE 或是标准输入中查找 PATTERN。默认的 PATTERN 是一个基本正则表达式(缩写为 BRE)。例如: 在me...

2019-06-14 15:34:52 181

原创 Shell编程—【05】Linux的find命令详解

【Shell编程系列】https://blog.csdn.net/ilo114/article/category/8961526高频参数:-name查找/etc目录下以conf结尾的文件find /etc -name ‘*conf’-iname查找当前目录文件名为abc的文件,不区分大小写find ./ -iname abc-user查找当前目录文件所有者为te...

2019-06-11 11:37:49 185

原创 Shell编程—【04】函数的定义、参数、变量作用域、函数库

【Shell编程系列】https://blog.csdn.net/ilo114/article/category/8961526函数的定义定义#!/bin/bash## method one name1(){ echo "123"}# method two function name2{ echo "123"}function name3(){ e...

2019-06-10 17:48:24 286 1

原创 Shell编程—【03】数学运算expr与bc浮点数运算

数学运算语法格式# 方法一expr $num1 operator $num2# 方法二$(($num1 operator $num2))expr 操作符表操作符含义num1 \| num2num1不为空且非0,返回num1;否则返回num2num1 \& num2num1不为空且非0,返回num1;否则返回0num1 \< num2...

2019-05-19 17:18:57 1325

原创 Shell编程—【02】命令替换、算数运算与定义变量

命令替换、算数运算 与 变量##命令替换方法一 `command`方法二$(command)案列获取所用用户并输出#!/bin/bashindex = 1for user in `cat /etc/passwd | cut -d ":" -f 1`# for user in $(cat /etc/passwd | cut -d ":" -f 1)do ...

2019-05-19 15:55:01 227

原创 Shell编程—【01】shell中常用的字符串操作

计算字符串长度${#string}expr length “$string”v1=="i love you"len=`expr length "$v1"`echo len获取子串中字符在字符串中的位置expr index “string&quot;&quot;string&quot; &quot;string""subString”v1="...

2019-05-19 00:25:45 199

转载 面试—Java常见面试题(转自gitee)

出处:https://gitee.com/XuanYuanXiaoJian/java_interview_questions/blob/master/%E9%9D%A2%E8%AF%95%E7%9B%B8%E5%85%B3.txt一、Java 基础1.JDK 和 JRE 有什么区别?JDK是java的开发工具包,包含各种类库,并且包含了JRE,javac是在JDK中的;JREjava程序的...

2019-05-13 14:12:41 1037

原创 SpringBoot—SpringBoot整合Mybatis使用Druid数据源

本地环境JDK 版本: 1.8.0_202系统: MacOS Mojave 10.14.4工具 IDEA 2019.1.2注意: 解释较少,直接看注释就好,pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmln...

2019-05-13 13:43:27 379

原创 Spring Cloud—EureKa服务的注册与发现基本概念和实现

0. 开发环境以及主要依赖System : macOS Mojave 10.14.4JDK : 1.8.0_202Spring Cloud :Greenwich.SR1Spring Boot : 2.1.4.RElEASEIDE : IntelliJ IDEA 2019.1 Ultimate Edition1. Eureka的相关概念1.1 什...

2019-04-27 20:18:59 488

原创 设计模式—【02】建造者、代理、适配器、桥接模式

建造者模式 Builder定义建造者模式是将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。它是将一个复杂的对象分解为多个简单的对象,然后一步一步构建而成。它将变与不变相分离,即产品的组成部分是不变的,但每一部分是可以灵活选择的。建造者(Builder)模式的角色:产品角色(Product):它是包含多个组成部件的复杂对象,由具体建造者来创建其各个滅部件。...

2019-04-26 16:26:04 230

原创 设计模式—【01】单例、原型、工厂方法、抽象工厂模式

环境Java:1.8.0_202-b08dependency:lombok 1.18.6Guava 27.0.1-jreslf4j-log4j12 1.7.25Github Repositories: https://github.com/ilssio/design-pattern1. 单例模式a). 定义:Java中单例模式定义:“一个类有且仅有一个实例,并且自行实例化...

2019-04-12 17:33:19 245

原创 数据库—索引面试常见问题

问答建立在知道数据结构的基础上。索引是什么?索引是对数据库表中一列或多列的值进行排序的一种结构。为什么数据要用索引?提升检索速度、加速表和表之间的连接索引的类型有哪些?FULLTEXT 全文索引 (MyISAM、Innodb5.6+)CHAR、VARCHAR ,TEXT 列上可以创建全文索引HASH 哈希索引 (MEMORY支持)BTREE B树索引B+TR...

2019-03-17 13:03:05 901

原创 BUG—RocketMQ之sendDefaultImpl call timeout 和 No route info of this topic

运行环境 MacOS Mojave10.14.3 Java 1.8_202 RocketMQ 4.4.0 Vmware Fusion + CentOS7 IDEA最近在学习RocketMQ第一个demo就炸了???莫名其妙timeout事情是这样的,我在Vmware Fusion里面自定义了一个局域网然后用Mac连过去,然后就跑Apache官方的消费者...

2019-03-10 14:49:52 1143 2

原创 Java基础—break label 带标签的break语句的用法。

是这样的,今天看RocketMQ的Client的时候,里面出现了一个写Java没有看到过的东西 - - 记录一下。也是就是带标签的break;RocketMQ的Client中的使用while(true) { label122: { switch(communicationMode) { ...

2019-03-10 14:12:54 10809 2

原创 SpringBoot—SpringBoot2整合dubbo使用Zookeeper作为注册中心,使用yml配置

创建新项目我们使用maven的空项目,不用任何模板直接创建输入项目信息idea会自动去掉横线,自己加上在项目中新建空Maven的module如下:父项目依赖文件:使用dependencyManagement做依赖管理&amp;amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;amp;gt;&amp;amp;lt

2019-01-30 19:42:12 3267

原创 Java反射—Array类使用

有关Java反射的另外的文章:https://blog.csdn.net/ilo114/article/category/8633303不用说大家也知道java.lang.Array是对Java反射包中数组操作的一个类。JavaSE8的文档中对Array的描述是这样说的:The Array class provides static methods to dynamically create ...

2019-01-30 00:45:42 309

原创 Java反射—Field类使用

Java反射-Field类使用Field作为反射中对应类或对象中的域或者叫做属性的操作类,除了我前一篇文章中的得到名字和类型等,Field的作用不限于此。*上篇文章:Java反射-初探反射基础)(点击进入) *Java SE 8的Docs这样说:A Field provides information about, and dynamic access to, a single field ...

2019-01-26 22:08:16 727 1

原创 Java反射—初探反射基础

Github:https://github.com/ilssio/java-base-ilss1. 认识Class类Java在运行的时候,会为对象维护一个运行时的类型标识,虚拟机运行Java程序的时候用它来选择相应类的方法执行。Java可以通过一个特定的类来访问这些类信息,这个类就是Class。获取Class的几种方式 Integer integer = 100; ...

2019-01-24 22:41:08 191

原创 Java泛型—泛型简单的使用

前言Java里面的泛型在实际开发中运用的很多,学过C++的同学一定知道C++的模板,而Java中的泛型,一定程度上和它还是挺像的。相信写Java的人,大都有用过List的实现类ArrayList。在Java没有泛型之前,它的内部是一个Object的数组实现的。这也导致一个问题,每次使用里面的元素的时候需要向下转型,而且很明显,如果是Object的话,意味着我们可以丢任何对象进去。自动转...

2019-01-24 20:02:48 217

原创 并发编程—《Java并发编程的艺术》学习笔记 第一章 并发编程的挑战

Java并发编程的艺术所有笔记https://blog.csdn.net/ilo114/article/category/8633278Github地址:https://github.com/ilssio/java-concurrency-programming-ilss1.1上下文切换​ 多线程的支持:CPU通过给每个线程分配CPU时间片来实现这个机制。​ 上下文切换:CPU通过分配时间...

2019-01-22 17:43:12 336

原创 并发编程—《Java并发编程的艺术》学习笔记 第二章 Java并发机制的底层实现原理

Java并发编程的艺术所有笔记:Github地址:https://github.com/ilssio/java-concurrency-programming-ilssJava代码-&amp;amp;amp;gt;Java字节码-&amp;amp;amp;gt;JVM执行字节码-&amp;amp;amp;gt;汇编指令Java中并发机制依赖于JVM实现和CPU指令集。2.1 volatile的应用volatile 在多处理器开发中保证共享变量的“可见性”,...

2019-01-22 17:40:34 184

原创 Redis—【01】Redis入门安装及基础数据的知识

Redis学习笔记所有文章:Redis安装推荐使用linux或者Mac 原因大家都懂得。redis基本都是在linux服务器上使用下载地址:https://redis.io/主页上的Download it下方 蓝字 Redis X.X.X is the latest stable version.点击下载即可可以复制链接,使用wget https://xxxxx 下载其他:Ubu...

2019-01-22 17:35:59 1925

原创 SSM框架—mybatis使用redis做二级缓存 Spring5(JavaConfig注解配置)

1. 配置环境Redis 4 安装教程自行googleSpring 5.0.9Mybatis 3.4.62. 依赖注意:默认你配置好了SSM的依赖环境,我只说在SSM配好过后怎么把redis加进去我用的依赖是如下的版本,基本都没有最新jar包的教程,网上的老教程千奇百怪,真的是痛心。如果你不是用的spring-data-redis的2.X的版本你可以不用看了,看了也没用。...

2018-10-09 16:15:39 579 2

原创 SSM框架—Thymeleaf模板引擎 Spring5整合Thymeleaf(XML配置 和 注解配置)

1. 依赖​ 在配置好SSM框架后,在***pom.xml***中添加如下依赖&amp;amp;amp;amp;amp;amp;lt;dependency&amp;amp;amp;amp;amp;amp;gt; &amp;amp;amp;amp;amp;amp;lt;groupId&amp;amp;amp;amp;amp;amp;gt;org.thymeleaf&amp;amp;amp;amp;amp;amp;lt;/groupId&amp;amp

2018-10-09 16:10:46 8005 2

原创 Markdown语法

标题#一级标题##二级标题...最多六级标题斜体、加粗、斜体加粗*内容* **内容** ***内容***​ 如:内容 内容 内容引用&gt;&gt;&gt;支持嵌套如:内容内容分割线--- 或 ***如:图片本地路径:支持相对路径和绝对路径![alt text](本地路径 "tit...

2018-09-26 15:34:00 82

空空如也

空空如也

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

TA关注的人

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