- 博客(28)
- 收藏
- 关注
原创 Thrift 初认识 & Thrift 和Dubbo 的区别
【thirft 简介】维基百科:Thrift是一种接口描述语言和二进制通讯协议,[1]它被用来定义和创建跨语言的服务。[2]它被当作一个远程过程调用(RPC)框架来使用,是由Facebook为“大规模跨语言服务开发”而开发的。它通过一个代码生成引擎联合了一个软件栈,来创建不同程度的、无缝的跨平台高效服务,可以使用C#、C++(基于POSIX兼容系统[3])、Cappuccino、[4]Coc...
2020-02-20 22:17:09
8341
原创 Linux 命令——vmstat
vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存、进程、CPU活动进行监控。语法vmstat [ -a ] [ -f ] [ -s ] [ -p ] [ -d ] [ PhysicalVolume … ] [ Interval [ Count ] ]-a: 显示活跃和非活跃内存,所显示的内容除增加inact和active...
2020-02-08 12:56:22
257
原创 在Linux 中查看进程
在Linux 中查看进程通常可以通过ps 和top 两个命令。ps 展示的是当前Linux 正在活动的进程快照,top 展示的是当前Linux 实时的进程情况。一、PS 命令Linux 可以使用ps 来显示当前活动的进程(process)状态# wentong @ wentongdeMacBook-Pro in ~ [12:42:52]$ ps PID TTY TI...
2020-02-07 14:18:39
1574
原创 Kafka学习:快速入门
最近在学习Kafka,新的知识容易忘,好记性不如烂笔头,多记记终归是好的。一、Kafka 简介Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统。Kafka 首先作为一个消息系统,和很多传统消息系统一样拥有以下好处:异步通信:发送方不需要等待接收方处理消息,就可以直接继续自己的事。解耦:作为第三...
2020-02-03 23:33:55
216
原创 Linux 下查看端口是否被占用
以前在配置项目环境时,经常需要确认某个端口是否开启或被占用,但是对应的命令总是忘,每次都要百度比较麻烦,所以记一下加深印象。查看端口是否被占用的两种方式当然linux 查看端口是否被占用的方式不止两种,这里说一下最常用的两种一、lsof -i:端口$ lsof -i:6379COMMAND PID USER FD TYPE DEVICE SIZ...
2020-02-02 22:15:07
1269
原创 SpringBoot 整合Mybatis-Plus
简介MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。特性无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单...
2020-02-01 21:09:22
357
原创 Linux 服务器基础环境搭建——实现项目脚本自动发布
前言在项目实战开发中,经常需要搭建服务器,但是一些配置和搭建步骤经常会忘,所以在次记录。服务器采用的是阿里云服务器学生版CentOS 8.0 64位 (1核 2 GB)(便宜,真香),要通过脚本自动化上线项目,需要以下的配置:jdkmysqlredismavengitnginx自动化上线逻辑:本地编写代码,上传git服务器执行脚本,脚本拉取项目,打包运行文章和方法有...
2020-01-19 11:37:02
938
原创 SpringBoot 多环境配置
为什么要配置多环境?在我们开发测试过程中,因为线上线下环境的差异,比如数据库数据量或者准确性的原因,通常需要在不同的环境进行测试。我们可以在测试的时候修改配置文件来达到对应的效果,但是这样有不足的地方:每次修改显得很麻烦如果忘记改回原来的配置,发布到线上就会造成事故怎么做?多配置文件复制三份配置文件分别命名为:application.ymlapplication-dev.y...
2019-12-26 18:20:46
194
原创 Linux 常用命令——grep
grep ,全称Global Regular Expression Print(示全局正则表达式打印)。grep 可以配合正则表达式来实现全文搜索,是linux 比较好用的文本处理工具。grep 系列有三个:grep : 支持基本正则表达式egrep : 支持拓展正则表达式,相当于grep -Efgrep : 不支持正则表达式,只能匹配写死的字符串,但是很快(fast grep)g...
2019-12-17 10:52:42
314
原创 正则表达式总结
前言 学习了正则表达式 | 朱双印的博客,总结了常见的正则表达式命令用作回忆,想学习正则的朋友可以看这个博客,写的很不错。匹配字符正则解释^表示行首$表示行尾^$匹配空行^abs$匹配abs 独占一行< 或 \b匹配词首> 或 \b匹配词尾\B非单词边界连续次数的匹配正则解释...
2019-12-12 10:13:46
222
原创 微信小程序消息通知简单Demo
前言 最近项目有需求需要用到微信小程序推送消息,在此记录一下实验过程。前提准备在开始前,你需要准备:注册微信小程序一个简单的springBoot 项目微信开发者工具正式微信小程序发送消息主要通过WxMaTemplateMessage 类来推送public class WxMaTemplateMessage implements Serializable { p...
2019-11-26 10:06:21
7272
原创 Linux 内核与Shell
前言 作为一名刚刚开始工作的小白,实习一段时间过后发现Linux 真的很重要。能够熟练使用Linux 不仅可以提高自己的工作效率,还很炫酷。所以决定系统的学习一下Linux。。。一、Shell:Linux 的外衣 用过Linux 系统的朋友应该或多或少都听说过shell,但我们不一定对shell 建立过清楚的认知。1.1 Shell 的定义 Shell 是一种应用程序,一种具备特殊...
2019-04-15 09:33:46
1604
1
原创 ThreadPool 线程池详解
在很多并发或异步场景中,我们总能看到线程池的身影,它几乎是Java 中运用的最多的并发框架,也是面试的常考点。但是我对它的运行机制、实现原理一直比较模糊,所以在此总结。本文观点多来自《并发编程的艺术》,这是一本学习并发的好书,即容易理解,也不失深度。这本书我看了三遍。书读百遍,其义自见。书中写得不清楚的内容,我加入了自己的理解,如有不正,请留言指正。码字不易,喜欢的朋友点个赞呗
2019-01-30 21:37:31
464
原创 mysql 面试题汇总
为了能够在面试回答中优雅而不失体面回答面试考点,该文章借鉴了不同平台对知识点的描述。如有侵权请联系我文章的不足和错误请指正,好的建议也不要吝啬,我都会采纳并更正您的点赞是我持续更新的动力蓝字为补充考点内容参考自:《Mysql 技术内幕》、《深入浅出Mysql》考题内容来源于百度,有一些是很久摘下来的,找不到出处了。目录【考点一】InnoDB 和MYISAM 存储引擎的区别...
2019-01-24 22:42:47
50636
6
原创 【Java 容器面试题】谈谈你对HashMap 的理解
为了能够在面试回答中优雅而不失体面回答面试考点,该文章借鉴了不同平台对知识点的描述。如有侵权请联系我文章的不足和错误请指正,好的建议也不要吝啬,我都会采纳并更正您的点赞是我持续更新的动力我的回答HashMap 是一种存取高效但不保证有序的常用容器。它的数据结构为“数组+链表”,是解决哈希冲突的产物,也就是我们常说的链地址法。它实现了Map 接口采用K-V 键值对存储数据,并实现了...
2018-12-22 15:23:01
1174
1
原创 面试——谈谈你对抽象和接口的理解(小知识大考点)
经典回答接口和抽象是Java 面向对象设计的两个基础机制。接口是对行为的抽象,它是抽象方法的集合,利用接口可以达到API 和实现分离的目的。它不包含任何非常量的变量,同时没有方法实现。JDK1.8 后引入的default 后可以。用关键字implements 实现。抽象类是不能实例化的类,用关键字abstract 修饰,其主要目的是代码重用。除了不能实例化,形式上和一般的 Java 类并没有...
2018-12-20 14:08:03
775
原创 面试——谈谈你对Java 面向对象思想的理解
经典回答要理解面向对象思想,我们先要知道什么是对象?《Java编程思想》中提到“万物皆为对象”的概念。它将对象视为一种奇特的变量,它除了可以存储数据之外还可以对它自身进行操作。它能够直接反映现实生活中的事物,例如人、车、小鸟等,将其表示为程序中的对象。每个对象都具有各自的状态特征(也可以称为属性)及行为特征(方法),java就是通过对象之间行为的交互来解决问题的。面向对象就是把构成问题的事物...
2018-12-20 12:37:38
1572
原创 面试——谈谈你对Java 平台的理解
经典回答Java语言是一种面向对象的高级语言,它最显著的有两个特性,一是通过平台中立的class文件格式和屏蔽底层硬件差异的jvm实现‘一次编写,到处运行’;二是通过‘垃圾收集器’管理内存的分配和回收。Java 是一种简单、严谨并且适合编写的语言,它不像C/C++ 那样有很多晦涩难懂的内容,如头文件、指针、结构等等。我们编写java 会接触到 JRE(Java Runtime Environm...
2018-12-20 11:31:48
246
原创 TCP 连接管理
概述 TCP是面向连接的协议。运输连接是用来传输报文的。运输连接的建立和释放在每一次通信中是必不可少的内容。因此运输连接分为三个阶段:建立连接、传输数据和释放链接。运输管理就是保证每一步都能正常运行。在TCP 连接的建立过程主要解决三个问题:要使每一方都能够知道对方的存在要允许双方协商一些参数(如窗口最大值、是否使用窗口扩大选项和时间戳等)能够对运输实体资源(如缓存大小、连接表中的项...
2018-12-13 08:18:39
401
原创 Java 对象的内存布局
Mark Word 用于存储对象自身的运行时数据,如哈希码(HashCode)、GC 分代年龄、锁状态标志、线程持有的锁、偏向线程ID 、偏向时间戳等。这部分数据的长度在32 位和64 位的虚拟机中分别为32 bit 和64 bit 。
2018-11-09 13:38:32
159
原创 HashMap1.7 问题总结
Java SE 源码在面试中的考查也算是重中之重了,最近看了HashMap1.7 的源码,对其中一些代码的设计以及线程不安全等引发的问题,在此记录随笔,如有不正之处望指出。为什么hashMap的负载因子是0.75 hashMap 的负载因子为0.75是一个常识性问题,但是为什么负载因子不为0.5、0.6或者是1和0呢?查看API 源码:在HashMap注释中有这么一段:Ideall...
2018-10-22 13:32:04
1244
原创 垃圾回收——对象已死?
在了解了JVM 的内存区域分布后,我们知道几乎所有的实例对象都在堆上存放,垃圾收集器在对堆进行垃圾回收之前,第一件事就是判断哪些对象是“存活”,哪些已经“死去”(即不可能再被任何途径使用的对象)。那么JVM 该如何判断呢?一、 谈谈引用 在回收“死亡”对象之前,我们需要对对象的“死亡”下一个定义——当一个对象不存在任何引用的时候,称为死亡。所以在介绍接下来来的内容之前我们需要谈谈引用...
2018-09-04 21:13:34
208
原创 一个Java 象的创建过程
在前面我们已经了解过JVM 的内存划分,我们知道一个Java 对象(文中讨论的限于普通Java 对象)在Java 堆上进行分配,下面我们就以HotSpot 虚拟机为例聊聊一个Java 象的创建。对象的创建过程当虚拟机遇到一个new 指令时,会经过以下几个步骤:1. 判断是否加载类首先JVM 会去检查这个指令的参数能否在方法区的常量池中定位到一个类的符号引用,并且检查这个符号引用...
2018-08-23 15:38:45
142
原创 Java 内存区域-运行时数据区域
最近在学习JVM 的相关知识。一开始看的比较快,对JVM 运行时数据区域只有一个模糊的概念,不太清楚不同内存区域里面到底存放了那些数据,所以在此记录。 我们都知道Java 与C、C++ 最大的区别就是内存管理领域(Java 有内存动态分配和垃圾收集技术)。在《深入理解Java虚拟机》中描述C、C++ 对内存的管理:对于从事C、C++ 的程序开发人员来说,在内存管理区域,他们即是拥有最高权...
2018-08-19 20:46:08
2436
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人