自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

JSai的博客

不断向前爬行的小蜗牛

  • 博客(69)
  • 资源 (7)
  • 问答 (1)
  • 收藏
  • 关注

原创 cat/more/less/tail/head命令

grep命令参数说明-i忽略字符大小写的差别-v显示不包含匹配文本的所有行-n标识行号# 查找文件名中包含 test 的文件中不包含test 的行:grep -v test *test*# 从根目录开始查找所有扩展名为 .log 的文本文件,并找出包含 "ERROR" 的行:find / -type f -name "*.log" | xargs grep "ERROR"cat命令参数说明-n由 1 开始对所有输出的行数编号

2022-04-01 16:27:07 325

原创 find/which/whereis/locate命令

find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。名称说明-ipath p, -path p路径名称符合 p 的文件,ipath 会忽略大小写-name name, -iname name文件名称符合 name 的文件。iname 会忽略大小写-size n文件大小 是 n 单位,b 代表 512 位元组的

2022-04-01 16:26:22 277

原创 vim命令

vim:光标移动和搜索 命令 作用 Page Down 屏幕『向下』移动一页 Page Up 屏幕『向上』移动一页 + 光标移动到非空格符的下一行 - 光标移动到非空格符的上一行 0 或功能键[Home] 这是数字『 0 』:移动到这一行的最前面字符处 (常用) $ 或功能键[End] 移动到这一行的最后面字符处(常用) G 移动到这个档案的最后一行(常用) gg 移动到这个档案的第一行,相当于 1G

2022-03-30 14:36:23 284

原创 JAVA动态代理的全面深层理解

代理简介Java 动态代理机制的出现,使得 Java 开发人员不用手工编写代理类只要简单地指定一组接口及委托类对象,便能动态地获得代理类。代理类会负责将所有的方法调用分派到委托对象上反射执行,在分派执行的过程中,开发人员还可以按需调整委托类对象及其功能,这是一套非常灵活有弹性的代理框架。代理设计模式为其他对象提供一种代理以控制对这个对象的访问。代理类负责为委托类预处理消息,过滤消息并...

2020-09-11 20:48:02 126 1

原创 linux监听端口信息

netstat查看端口占用,查看端口进程-t : 指明显示TCP端口-u : 指明显示UDP端口-l : 仅显示监听套接字(所谓套接字就是使应用程序能够读写与收发通讯协议(protocol)与资料的程序)-p : 显示进程标识符和程序名称,每一个套接字/端口都属于一个程序。-n : 不进行DNS轮询,显示IP(可以加速操作)实例:1.# 查看所有TCP端口netstat -...

2020-03-28 14:23:58 304

原创 《一步到位》——完全理解Java泛型

什么是泛型?把类型明确的工作推迟到创建对象或调用方法的时候才去明确的特殊的类型Java泛型设计原则:只要在编译时期没有出现警告,那么运行时期就不会出现ClassCastException异常.注意:参数化类型:把类型当作是参数一样传递,<数据类型> 只能是引用类型ArrayList< E>中的E称为类型参数变量ArrayList< Intege...

2019-12-26 10:12:55 306

转载 《一步到位》——全面理解Java中的反射

一、简介通过反射,Java代码可以发现有关已加载类的字段,方法和构造函数的信息,并可以在安全限制内对这些字段,方法和构造函数进行操作。简而言之,你可以在运行状态中通过反射机制做到:对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。使用Java反射主要涉及两...

2019-12-25 10:41:31 322

原创 Docker完全理解和使用

一、Docker简介在学习Docker之前先了解虚拟机和容器的区别:虚拟机和容器的区别Docker核心概念Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。可以粗糙地理解为轻量级的虚拟机Docker的三个基本概念Image(镜像):一个特殊的文件系统,除了提供容器运行时所需的...

2019-12-10 14:22:27 251

原创 Java底层深层理解

深入分析Synchronized原理jvm运行机制和volatile关键字详解 将java文件编译成字节码文件,再到反编译,字节码指令剖析从Java文件到字节码文件大白话说Java反射:入门、使用、原理...

2019-12-06 09:51:23 309

原创 消息队列——Kafka学习

点对点消息传递模式生产者发送一条消息到queue,只有一个消费者能收到。发布-订阅消息传递模式发布者发送到topic的消息,只有订阅了topic的订阅者才会收到消息。Kafka中核心概念Broker(代理)是一个物理概念。一台kafka服务器就可以称之为broker.一个集群由多个broker组成,一个broker可以有多个topicTopic(主题)是一个逻辑概念。每一条发送...

2019-12-05 10:50:15 218

原创 PV操作原理和实现

PV原语PV原语通过操作信号量来处理进程间的同步与互斥的问题。其核心就是一段不可分割不可中断的程序。 其基本思路是用一种新的变量类型(semaphore)来记录当前可用资源的数量。semaphore有两种实现方式:semaphore的取值必须大于或等于0。0表示当前已没有空闲资源,而正数表示当前空闲资源的数量;semaphore的取值可正可负,负数的绝对值表示正在等待进入临界区的进程个...

2019-11-08 09:03:46 6885

原创 银行家算法

银行家算法:当一个进程申请使用资源的时候,银行家算法通过先 试探 分配给该进程资源,然后通过安全性算法判断分配后的系统是否处于安全状态,若不安全则试探分配作废,让该进程继续等待。判断是否安全状态可利用资源向量Available。这是一个含有m个元素的数组,其中的而每一个元素代表一类可利用资源数目,其初始值是系统中所配置的该类全部可用资源的数目,其数值随该类资源的分配和回收而动态的改变。如...

2019-11-08 09:03:00 1402

原创 Redis总结(三)——常用命令

linux系统下查看redis是否启动ps aux | grep redis-server开启客户端要确保服务端启动redis-server /etc/redis.conf打开以下终端:redis-cliredis-cli -h 127.0.0.1 -p 6379加上–raw之后就可以在终端上强制原始输出,也就是将中文输出而不是输出的是一串utf-8编码字符串redis-cli ...

2019-10-11 19:01:51 152

原创 TCP和UDP区别

1、TCP 是面向连接的,UDP 不是面向连接的TCP是面向连接的(三次握手;四次挥手)5、TCP程序结构复杂,UDP程序结构较简单TCP是一个重量级的协议;udp则是轻量级的协议。一个tcp数据报的报头大小最少20字节,UDP数据报的包头固定8个字节3、TCP 保证数据正确性,UDP 可能丢包通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达,如果消息在传输中丢失,那么它将重...

2019-10-03 14:17:05 402

原创 一张图了解OSI七层模型

2019-10-03 13:52:56 280

原创 Java中的各种锁

Java中涉及到各种各样的锁,往往初学者很乱。想要学习Java中的各种锁,首先要对他们的特性进行分类,Java中往往是按照是否含有某一特性来定义锁,我们通过特性将锁进行分组归类。...

2019-10-03 13:45:47 265

原创 MySQL补充(一)——MySQL查询不走索引的情况

一个简单的表CREATE TABLE `t_user` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `username` varchar(255) DEFAULT NULL, `password` varchar(255) DEFAULT NULL, `gender` int(255) DEFAULT NULL, `age` int(...

2019-09-30 08:55:00 5687 5

原创 Spring 事务

Spring 管理事务的方式有几种?编程式事务,在代码中硬编码。(不推荐使用)声明式事务,在配置文件中配置(推荐使用)声明式事务又分为两种:基于XML的声明式事务基于注解的声明式事务Spring 事务中的隔离级别有哪几种?TransactionDefinition 接口中定义了五个表示隔离级别的常量:ISOLATION_DEFAULT(isolation_default)...

2019-09-29 11:40:50 182

原创 深入理解HashMap

HashMap数据结构JDK1.8 之前 HashMap 底层是 数组和链表 结合在一起使用也就是 链表散列。存储过程:HashMap 通过 key 的 hashCode 经过扰动函数处理过后得到 hash 值,然后通过 (n - 1) & hash 判断当前元素存放的位置(这里的 n 指的是数组的长度);如果当前位置存在元素的话,就判断该元素与要存入的元素的 hash 值以及 ...

2019-09-26 19:12:13 146

原创 ArrayList常用方法

public static void main(String[] args) { ArrayList<Integer> arrayList = new ArrayList<Integer>(); System.out.printf("未赋值之前数组大小: %d\n",arrayList.size()); arrayList.a...

2019-09-26 14:58:01 226

原创 Java中集合框架——ArrayList集合及源码

ArrayList简介ArrayList 的底层是数组队列,相当于动态数组。容量能动态增长。它继承于 AbstractList,实现了 List, RandomAccess, Cloneable, java.io.Serializable 这些接口.在添加大量元素前,应用程序可以使用ensureCapacity操作来增加 ArrayList 实例的容量。这可以减少递增式再分配的数量。...

2019-09-26 14:56:28 112

原创 System.arraycopy()和Arrays.copyOf()方法区别

System.arraycopy()以add方法为例: /** * 在此列表中的指定位置插入指定的元素。 * 先调用 rangeCheckForAdd 对index进行界限检查;然后调用 ensureCapacityInternal 方法保证capacity足够大; * 再将从index开始之后的所有成员后移一个位置;将element插入index位置;最后...

2019-09-26 14:55:49 498

原创 Java中的集合框架基本理解

List、Set、Map综述List(顺序,可重复):List接口存储一组不唯一(可以有多个元素引用相同的对象),有序的对象Set(无序,不重复):不允许重复的集合。不会有多个元素引用相同的对象。Map(键值对):使用键值对存储。Map会维护与Key有关联的值。两个Key可以引用相同的对象,但Key不能重复,典型的Key是String类型,但也可以是任何对象。一、Arraylist 与...

2019-09-26 09:48:03 239

原创 Nginx总结(一)——安装、常用命令

linux系统下所有的配置文件都在/etc/nginx下,并且每个虚拟主机已经安排在了/etc/nginx/sites-available下程序文件在/usr/sbin/nginx日志放在了/var/log/nginx中并已经在/etc/init.d/下创建了启动脚本nginx默认的虚拟主机的目录设置在了/var/www/nginx-default(有的版本默认的虚拟主机的目录设置在了...

2019-09-26 09:19:00 136

原创 Git命令

git clone 地址:克隆项目git add {文件} :把当前的所有的修改内容都提交到本地的暂存区里git commit -m " " :提交,-m是加注释,""中的内容git pull :把远端的代码同步到本地仓库git push : 把本地仓库推送到远端仓库git status:查看当前对应项目的状态git diff :查看详细修改的东西git rm --cached -...

2019-09-26 09:16:31 107

原创 Nginx总结(二)——配置负载均衡和反向代理

nginx配置文件主要分为六个区域:main(全局设置)events(nginx工作模式)http(http设置)sever(主机设置)location(URL匹配)upstream(负载均衡服务器设置)有兴趣的同学可以详细去了解一下,这里我们只用到了server,location,upstream区域。server配置#相当于在http模块再添加一个server模块ser...

2019-09-26 09:16:06 333

原创 Java中的序列化和反序列化

一、序列化简介?在项目中有很多情况需要对实例对象进行序列化与反序列化,这样可以持久的保存对象的状态,甚至在各个组件之间进行对象传递和远程调用。序列化机制是项目中必不可少的常用机制。序列化: 对象序列化的最主要的用处就是在传递和保存对象的时候,保证对象的完整性和可传递性。序列化是把对象转换成有序字节流,以便在网络上传输或者保存在本地文件中。序列化后的字节流保存的java对象的状态以及相关的描述信...

2019-09-17 15:43:25 323

原创 JVM学习(七)——JVM中的类加载器

简介所有的类都由类加载器加载,加载的作用就是将 .class文件加载到内存。JVM 中内置了三个重要的 ClassLoader,除了 BootstrapClassLoader 其他类加载器均由 Java 实现且全部继承自java.lang.ClassLoader:BootstrapClassLoader(启动类加载器) :最顶层的加载类,由C++实现,负责加载 %JAVA_HOME%/li...

2019-09-17 11:19:38 220

原创 JVM学习(六)——JVM加载类全过程

简介Class 文件需要加载到虚拟机中之后才能运行和使用,系统加载 Class 类型的文件主要三步:加载->连接->初始化。连接过程又可分为三步:验证->准备->解析。1、加载类加载过程的第一步,主要完成下面3件事情:通过全类名获取定义此类的二进制字节流(得到此类的二进制字节流)将字节流所代表的静态存储结构转换为方法区的运行时数据结构在内存中生成一个代表该类...

2019-09-17 10:47:56 237

原创 JVM学习(五)——JDK 命令行工具和可视化工具

一、JDK命令行工具这些命令在 JDK 安装目录下的 bin 目录下:1、jps(查看所有 Java 进程)类似 UNIX 的 ps 命令。用户查看所有 Java 进程的启动类、传入参数和 Java 虚拟机参数等信息;命令说明jps显示虚拟机执行主类名称以及这些进程的本地虚拟机唯一 IDjps -q只输出进程的本地虚拟机唯一 ID。jps -l输出主类...

2019-09-17 10:24:23 400

原创 JVM学习(四)——JVM垃圾回收——垃圾收集算法,垃圾收集器

垃圾收集算法1、标记-清除算法该算法分为“标记”和“清除”阶段:首先标记出所有需要回收的对象,在标记完成后统一回收所有被标记的对象。2、复制算法将内存分为大小相同的两块,每次使用其中的一块。当这一块的内存使用完后,就将还存活的对象复制到另一块去,然后再把使用的空间一次清理掉。这样就使每次的内存回收都是对内存区间的一半进行回收。3、标记-整理算法根据老年代的特点特出的一种标记算法,标...

2019-09-17 10:04:11 273

原创 JVM学习(三)——JVM垃圾回收——堆内存

一、JVM垃圾回收简介Java 的自动内存管理主要是针对对象内存的回收和对象内存的分配。同时,Java 自动内存管理最核心的功能是 堆 内存中对象的分配与回收。Java 堆是垃圾收集器管理的主要区域,因此也被称作GC 堆(Garbage Collected Heap).从垃圾回收的角度,由于现在收集器基本都采用分代垃圾收集算法,所以 Java 堆还可以细分为:新生代和老年代:再细致一点有:E...

2019-09-16 17:34:39 714

原创 JVM学习(二)——虚拟机在Java堆创建对象的全过程

对象的创建1.类加载检查虚拟机遇到一条 new 指令时,首先将去检查这个指令的参数是否能在常量池中定位到这个类的符号引用,并且检查这个符号引用代表的类是否已被加载过、解析和初始化过。如果没有,那必须先执行相应的类加载过程。2.分配内存在类加载检查通过后,接下来虚拟机将为新生对象分配内存。对象所需的内存大小在类加载完成后便可确定,为对象分配空间的任务等同于把一块确定大小的内存从 Java ...

2019-09-16 12:31:21 345

原创 JVM学习(一)——Java内存区域及详解

运行时数据区域Java 虚拟机在执行 Java 程序的过程中会把它管理的内存划分成若干个不同的数据区域。JDK 1.8 之前:JDK 1.8 :

2019-09-16 11:54:49 234

原创 网络协议总结(三)——常见HTTP状态码及说明

2xx:请求成功表示成功处理了请求的状态代码。状态码标志说明200成功服务器已成功处理了请求。 通常,这表示服务器提供了请求的网页。201已创建请求成功并且服务器创建了新的资源。202已接受服务器已接受请求,但尚未处理。203非授权信息服务器已成功处理了请求,但返回的信息可能来自另一来源。204无内容服务器成功处理了请求,但没有...

2019-09-15 14:08:35 588

原创 MySQL总结(五)——MySQL表优化

表优化当MySQL单表记录数过大时,数据库的CRUD性能会明显下降,一些常见的优化措施如下:限定数据的范围务必禁止不带任何限制数据范围条件的查询语句。比如:我们当用户在查询订单历史的时候,我们可以控制在一个月的范围内;读/写分离经典的数据库拆分方案,主库负责写,从库负责读;垂直分区(1)根据数据库里面数据表的相关性进行拆分。 例如,用户表中既有用户的登录信息又有用户的基本信息,可以...

2019-09-15 10:56:11 554

原创 网络协议总结(三)——Cookie,Session,Token有什么区别?

Cookie 和 Session都是用来跟踪浏览器用户身份的会话方式,但是两者的应用场景不太一样。Cookie 一般用来保存用户信息 比如:我们在 Cookie 中保存已经登录过得用户信息,下次访问网站的时候页面可以自动帮你登录的一些基本信息给填了;一般的网站都会有保持登录也就是说下次你再访问网站的时候就不需要重新登录了,这是因为用户登录的时候我们可以存放了一个 Token 在 Cooki...

2019-09-15 10:39:54 575 1

原创 网络协议总结(二)——HTTP请求详解,常见问题

总体来说分为以下几个过程:DNS解析建立TCP连接(三次握手)发送HTTP请求服务器处理请求,浏览器接收HTTP响应。浏览器解析渲染页面,构建DOM树。关闭TCP连接(四次挥手)。1、DNS解析域名解析的过程实际是将域名还原为IP地址的过程。DNS解析的过程就是寻找哪台机器上有你需要资源的过程。当你在浏览器中输入一个地址时,例如www.baidu.com,其实不是百度网站真正...

2019-09-14 18:06:20 909

原创 网络协议总结(一)——TCP三次握手和四次挥手

TCP和UDP协议UDP:在传送数据前不需要先建立连接,远地的主机在收到UDP报文后也不需要给出任何确认。虽然UDP不提供可靠交付,但是正是因为这样,省去和很多的开销,使得它的速度比较快,比如一些对实时性要求较高的服务,就常常使用的是UDP。对应的应用层的协议主要有 DNS,TFTP,DHCP,SNMP,NFS 等。TCP: 提供面向连接的服务。在传送数据之前必须先建立连接,数据传送结束后要释...

2019-09-14 15:55:37 756

原创 MySQL总结(四)——MySQL中sql语句的执行过程

MySQL 基本架构连接器: 身份认证和权限相关(登录 MySQL 的时候)。查询缓存: 执行查询语句的时候,会先查询缓存(MySQL 8.0 版本后移除,因为这个功能不太实用)。分析器: 没有命中缓存的话,SQL 语句就会经过分析器,分析器说白了就是要先看你的 SQL 语句要干嘛,再检查你的 SQL 语句语法是否正确。优化器: 按照 MySQL 认为最优的方案去执行。经过了优化器之后可...

2019-09-14 14:46:35 1209

Elasticsearch-6.3.2(Linux+Win)+中文分词ik-6.3.2.zip

Elasticsearch6.3.2版本,包含linux和windows两种版本。也有同版本的ik中文分词器。亲测100%可用。

2020-04-22

hive远程连接工具和jar.zip

Hive远程连接工具,SQuirreL SQ Client客户端工具;以及远程连接Hive所需要的所有jar包,很全面

2020-02-28

积极消极情感词-停用词-情感语句data.zip

包含积极消极词汇,情感词,句子。根据词语的属性值进行分类。

2019-08-09

模拟淘宝商城项目.zip

java实现的一个模拟淘宝项目,使用idea+maven+springmvc+spring+mybatis等技术,含有数据库文件。100%可用

2019-08-07

Jave实现音频格式转换.zip

简介:主要是把除mp3和wav外的音乐格式转换成wav音乐格式,因为大部分音乐播放器和html的&lt; audio&gt;标签都支持mp3和wav格式。含有样例,100%可用

2019-08-06

bootstrap-3.3.7+jquery-2.1.4+Echarts.js+jquery1.7中文手册+富文本编辑器summernote.zip

做项目常用到的前端框架BootStrap,jquery和jquery中文文档,Echarts,还有富文本编辑器summernote等等

2019-06-27

java实现计算器(附源码).zip

用java实现计算器,采用图形用户界面,使用eclipse编写代码,100%保证可用。

2019-06-27

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

TA关注的人

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