自定义博客皮肤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)
  • 收藏
  • 关注

原创 Linux基础

Linux基础入门

2023-08-16 09:18:06 160

原创 Docker图解版入门

DocKe图解版

2023-07-27 09:28:57 195

原创 Git命令及分支操作

git merge 分支名 把指定的分支合并到当前分支上。git checkout 分支名 切换分支。git branch 分支名 创建分支。git branch -v 查看分支。Git命令及分支操作。

2023-04-12 11:35:26 183

原创 定时语法生成(有手就会)

定时语法生成(有手就会)

2022-09-07 11:14:50 382

原创 mac安装Homebrew ,npm解决各种疑难杂症

mac安装Homebrew,npm 一、安装Homebrew 大多数失败因为网络问题,所以使用国内地址 终端执行下面命令 /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" 重启终端后使用brew -v查看版本号确认是否安装成功 二、安装node brew install node 安装后使用node -v,npm -v确认安装成功 三、npm 执行npm install Home

2021-07-15 18:41:50 903

原创 Mac安装SecureCRT

Mac安装SecureCRT 8.3.1版本 链接:https://pan.baidu.com/s/1ohHunH_OVewF4QuRUzmChQ 密码:mc77 1打开终端,输入如下sudo spctl --master-disable回车,再输入本机密码,再次打开软件就可以了(将安全隐私设置为任何来源) 2如果还打不开显示文件损坏等,在终端输入命令sudo xattr -r -d com.apple.quarantine并将应用程序拖入回车 3打开后,依次点击按钮 –Enter Lincense Dat

2021-07-02 16:14:04 1481 2

原创 算法题——(多线程)按序打印

每日刷题LeetCode——1114. 按序打印(多线程) 我们提供了一个类: public class Foo { public void first() { print("first"); } public void second() { print("second"); } public void third() { print("third"); } } 三个不同的线程 A、B、C 将会共用一个 Foo 实例。 一个将会调用 first() 方法 一个将会调用 second() 方法

2021-05-26 18:53:34 338

原创 算法题——删除链表的倒数第N个节点

每日刷题LeetCode——19. 删除链表的倒数第N个节点 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 进阶:你能尝试使用一趟扫描实现吗? 示例 1: 输入:head = [1,2,3,4,5], n = 2 输出:[1,2,3,5] 示例 2: 输入:head = [1], n = 1 输出:[] 示例 3: 输入:head = [1,2], n = 1 输出:[1] 解法1 package com.algorithm; public class day02 {

2021-05-24 19:37:45 212

原创 算法题——前K个高频单词

每日刷题LeetCode——692. 前K个高频单词 给一非空的单词列表,返回前 k 个出现次数最多的单词。 返回的答案应该按单词出现频率由高到低排序。如果不同的单词有相同出现频率,按字母顺序排序。 示例 1: 输入: ["i", "love", "leetcode", "i", "love", "coding"], k = 2 输出: ["i", "love"] 解析: "i" 和 "love" 为出现次数最多的两个单词,均为2次。 注意,按字母顺序 "i" 在 "love" 之前。 示例 2:

2021-05-21 17:41:31 1009

转载 Mac安装Git并配置到IDEA(超简单)

一、安装Git 1、在Mac的终端上输入git检测是否安装git,如果没有,点击弹出的“安装”按钮。 https://git-scm.com/downloads 或者 git 2、安装完成之后,在终端输入 git --version 查看版本信息 git --version 在终端输入 git --version 查看版本信息 3、创建一个全局用户名、全局邮箱作为配置信息 git config --global user.name "your_name" git config --global us

2021-05-18 20:31:54 12064 2

原创 JVM10——日志分析、参数、纤程

CMS日志 G1日志

2021-04-28 10:40:17 163

原创 JVM9——G1

G1 特点 Card table 回收card table的算法CSet Rset 并发标记算法 漏标(没被标记) 增量更新 CMS使用 SATB G1使用

2021-04-28 10:40:07 146

原创 JVM8——OOM案例

2021-04-28 10:39:51 243

原创 JVM7——调优

YGC :对新生代堆进行gc。频率比较高,因为大部分对象的存活寿命较短,在新生代里被回收。性能耗费较小。 FGC :全堆范围的gc。默认堆空间使用到达80%(可调整)的时候会触发fgc。以我们生产环境为例,一般比较少会触发fgc,有时10天或一周左右会有一次。 JVM常用命令行参数 GC日志详情 (了解) JVM调优 案例1 案例2 如何优化环境 ...

2021-04-28 10:38:20 195

原创 JVM6——GC

根对象有哪四个 根可达算法:根据根可以找到的不GC 一、标记清除 第一遍标记,第二遍清除 二、 拷贝算法 三、标记压缩 第一遍标记,第二遍移动 常见的垃圾回收器 多线程清理垃圾 和CMS配合 CMS ...

2021-04-28 10:38:03 146

原创 JVM5——体系

一、JVM体系 二、栈、堆、方法区存储的内容 堆区: 1.存储的全部是对象,每个对象都包含一个与之对应的class的信息。(class的目的是得到操作指令) 2.jvm只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对象引用,只存放对象本身 。 栈区: 1.每个线程包含一个栈区,栈中只保存基础数据类型的值和对象以及基础数据的引用 2.每个栈中的数据(基础数据类型和对象引用)都是私有的,其他栈不能访问。 3.栈分为3个部分:基本类型变量区、执行环境上下文、操作指令区(存放操作指令)。 方法区:

2021-04-28 10:37:53 175

原创 JVM4——创建对象

对象头markword 8字节具体内容 对象定位

2021-04-28 10:37:26 152

原创 JVM3——初始化过程

实例 //父类Animal class Animal { /*8、执行初始化*/ private int i = 9; protected int j; /*7、调用构造方法,创建默认属性和方法,完成后发现自己没有父类*/ public Animal() { /*9、执行构造方法剩下的内容,结束后回到子类构造函数中*/ System.out.println("i = " + i + ", j = " + j); ..

2021-04-28 10:36:38 170

原创 JVM2——类加载器

自定义类加载器 只需重写findClass方法 加密(非掌握) 在类加载器使用异或对二进制码加解密 一句话描述编译与解释 编译 Compile:把整个程序源代码翻译成另外一种代码,然后等待被执行,发生在运行之前,产物是「另一份代码」。 解释 Interpret:把程序源代码一行一行的读懂然后执行,发生在运行时,产物是「运行结果」。 懒加载 ...

2021-04-28 10:36:13 154

原创 JVM1——基础概念

JClassLib——IDEA插件之一 加载类为什么双亲委派? 主要为了安全,防止自定义加载(String等)其次防止资源浪费

2021-04-28 10:35:21 153

原创 多线程10——Disruptor

2021-03-31 10:20:26 212

原创 多线程9——线程池

线程池的七个参数 从源码中可以看出,线程池的构造函数有7个参数,分别是corePoolSize、maximumPoolSize、keepAliveTime、unit、workQueue、threadFactory、handler 一、corePoolSize 线程池核心线程大小 线程池中会维护一个最小的线程数量,即使这些线程处理空闲状态,他们也不会被销毁,除非设置了allowCoreThreadTimeOut。这里的最小线程数量即是corePoolSize。 二、maximumPoolSize 线程池最大

2021-03-31 10:19:45 201

原创 多线程8——阻塞队列

阻塞队列

2021-03-31 10:18:25 147

原创 多线程7——ThreadLocal及强弱引用

ThreadLocal 多线程访问同一个共享变量的时候容易出现并发问题,特别是多个线程对一个变量进行写入的时候,为了保证线程安全,一般使用者在访问共享变量的时候需要进行额外的同步措施才能保证线程安全性。ThreadLocal是除了加锁这种同步方式之外的一种保证一种规避多线程访问出现线程不安全的方法,当我们在创建一个变量后,如果每个线程对其进行访问的时候访问的都是线程自己的变量这样就不会存在线程不安全问题。 ThreadLocal是JDK包提供的,它提供线程本地变量,如果创建一乐ThreadLocal变量,

2021-03-31 10:15:58 265

原创 多线程6——生产者消费者

Reentrantlock源码 AQS的底层是CAS+volatile在消息队列尾部CompareAndSetState

2021-03-31 10:13:57 146

原创 多线程5——CountDownLatch、phase、ReadWriteLock、Semaphore、Exchanger、LockSupport

读写锁(共享锁,排他锁) Semaphore 限流 fair(公平或非公平) Exchanger

2021-03-31 10:12:22 157

原创 多线程4——LongAddr

LongAddr 每个线程计算结果相加,线程多时占优势 复习 ReentrantLock——True公平锁,先在队列中判断,先到先得,False非公平锁,谁抢到归谁

2021-03-31 10:11:15 285

原创 多线程3——CAS

**CAS 判断是否是你期望的值 CAS操作 ABA引起的问题 例子:如何是基础类型不影响,但如果是引用就会发生问题(就像和女友分手变成前女友,之后前女友经历了其他男人,再找你复合)

2021-03-31 10:10:21 105

原创 多线程2——volatile

懒汉式 饿汉式 双重检查+volatile volatile指令重排序

2021-03-31 10:07:59 158

原创 多线程1——锁

多线程的三种启动方式 1继承Thread 2重写Runnable 3Executors.newCachedThrad线程池创建 线程状态 可重入锁synchrenized

2021-02-22 18:53:54 170

转载 AOP详解

AOP详解 转载 https://blog.youkuaiyun.com/workingman_li/article/details/89484268?utm_medium=distribute.pc_relevant_t0.none-task-blog-searchFromBaidu-1.control&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-searchFromBaidu-1.control

2020-11-24 14:53:45 389

原创 Oracle转MySQL存储函数percentile_cont(比例) WITHIN GROUP( ORDER BY to_number(分数) )用法

在Oracle中会用到**percentile_cont**(比例) **WITHIN GROUP**( **ORDER BY** to_number(分数) )写法,但在MySQL中却没有**percentile_cont**函数用法,所以只能根据函数思想使用**LIMIT**改编算法(亲测,基本无误差) Oracle create function fn_get_grade(score float) /** ** 五段分为法 ** 大于84% 是A等级 ** 小于等于84% 且 大于 63% 是B等级

2020-11-07 11:22:10 2642 2

转载 mysql索引新手篇

1、索引是什么 索引是表的目录,是数据库中专门用于帮助用户快速查询数据的一种数据结构。类似于字典中的目录,查找字典内容 时可以根据目录查找到数据的存放位置,以此快速定位查询数据。对于索引,会保存在额外的文件中。 索引可以提高查询速度,会减慢写入速度,索引的缺点是创建和维护索引需要耗费时间。 索引并不是越多越好,索引固然可以提高相应的 select 的效率,但同时也降低了 insert 及 update 的效率,因为 insert 或 update 时有可能会重建索引, 所以怎样建索引需要慎重考虑,

2020-09-18 16:55:45 236

转载 Mysql基础架构图

Mysql架构 一条SQL查询语句是如何执行的? Mysql基础架构图 mysql架构关系 service层: 连接器:管理链接 验证权限 连接器会直接链接到缓存以及分析器 查询缓存: 缓存中命中则直接返回 分析器:混村未能命中的时候 使用分析器 分析词法 语法 优化器: 执行计划生成 索引选择数据 执行器: 链接引擎操作数据 引擎层: Innodb Myisam 。。。 Service层 Server层包括连接器、查询缓存

2020-09-18 10:20:14 328

转载 「哈希表」是什么?有哪些常用的解决冲突的方法?(通俗易懂)

「哈希表」是什么?有哪些常用的解决冲突的方法? 很多人谈起“哈希表”,就会直接聚焦到hash函数、“散列”/“杂凑”之类不明所以的大词上,搞的初学者一头雾水,完全不明白这东西是干嘛用的,更不知道什么时候该用它、怎么用它、出现问题如何解决。 那么,这里我就从问题开始,一步步把哈希表的来龙去脉剖析清楚。 想象一下:有一天,你开车到某商场去买东西。买完东西,你想不起自己的车在哪了。这家商场非常非常大,楼下停车场少说停了上万台车;而你的健忘症又比较厉害…… 那么,问题来了:你怎样才能找到自己的车? 一个理想的情形

2020-08-13 10:06:58 948

转载 数据库事务

转自 一、事务的概念   事务指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功。   例如:A——B转帐,对应于如下两条sql语句   update from account set money=money+100 where name=‘B’;    update from account set money=money-100 where name=‘A’; 二、MySQL数据库中操作事务命令   1、编写测试SQL脚本,如下: 复制代码 1 /创建账户表/ 2 create t

2020-07-07 10:25:57 273

原创 DDL,DML和DCL

DDL,DML和DCL的区别与理解 SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL。 一、简要理解。 1.数据查询语言DQL数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE子句组成的查询块: SELECT <字段名表>FROM <表或视图名>WHERE <查询条件> 2.数据操纵语言DML数据操纵语言DML主要有三种形式: 插入:INSERT 更新:UPDATE 删除:DELETE

2020-07-06 10:19:17 274

空空如也

空空如也

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

TA关注的人

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