自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

a1102325298的博客

微信公众号:Java知其所以然

  • 博客(153)
  • 资源 (2)
  • 收藏
  • 关注

原创 记录片《货币》- 有价星球笔记

本文是学习记录片 《货币》的笔记。货币的诞生5000多年前,货币在美索不达米亚平原诞生,然后它开始蔓延到世界各个角落。人类足迹可以到达的地方,几乎就有货币的覆盖。人们对货币都有深刻的思考。南非的小村落,舞蹈是村民们与生俱来的天赋,也是他们情感最率真的表达。随着货币的出现,过去的随性起舞如今变成了严格的训练,舞蹈正在成为了他们谋生的技能。将舞蹈变成了表演,就可以收取门票的演出,团队的每个成员每个月就可以有 500 兰特。这些钱可以供养他们的家庭,而且还成为他们与世界沟通的纽带。如果不是因为货币,这.

2022-01-09 17:57:23 1740

原创 vscode 常用文本处理技巧

1. 多行数字变为一行且以逗号分隔需求:把多行数字组成的文本转换为一行,且每行数字用单引号括起来。示例文本如下:文本处理步骤:在查找框中输入正则表达式: (.*)\n在替换框中输入正则表达式: ‘$1’,点击 replace all文本处理结果:2. 取空格相隔的多列中最后一列需求:取一段由空格相隔的多列组成的文本中最后一列。示例文本如下:文本处理步骤:在查找框中输入正则表达式: (.*) (.*)在替换框中输入正则表达式: $2点击 repla

2021-06-26 18:12:07 2006 1

原创 Spring 环境搭建

常见问题修改 idea 的gradle 配置依赖导入后点 spring-core 的 tasks -》other -》compileJava报错解决:https://blog.csdn.net/liaoyoujinb/article/details/83510359正确做法是spring-context.gradle修改 optional(project(“:spring-instrument”))为 compile(project(“:spring-instrument”)),然后多点一下刷新配

2021-04-30 09:35:23 222

原创 引入 lombok 的 @Slf4j 在 Maven 编译之后报 log cannot be resolved

问题背景项目中使用 lombok 的 @Slf4j 注解,然后去用 log 打日志时,报 ClassNotFundException 异常。排查过程排查过程的方法论大体分为三步:认真观察日志,猜测出错原因,和正常的配置进行对比分析日志中所表达含义推测原因,然后提炼关键字去谷歌Jar 包冲突、版本不兼容、maven 依赖没有配置。下面是我具体排查的过程:给了我排查思路的关键日志信息:[INFO] — maven-compiler-plugin:3.1:compile (defau

2021-03-13 17:21:26 906

原创 Mac 环境下使用 homebrew 安装和彻底卸载 MySQL5.7

一、安装 MySQL5.7在终端执行下列命令:brew install [email protected]使用 brew 安装好 MySQL 5.7 版本后,此时 MySQL root 用户的密码是空的。我们需要修改一下 MySQL root 用户的密码,步骤如下:在终端执行下列命令:/usr/local/opt/[email protected]/bin/mysql.server start执行完该条命令后,MySQL 就被启动了起来在终端执行下列命令:/usr/local/opt/[email protected]/bin/mysq

2021-03-05 20:52:11 2083 1

原创 Hive 原理研究

Hive 的存储格式Hive存储格式

2021-03-03 20:18:07 124 1

原创 Mysql mac 环境搭建教程

安装使用brew 安装[email protected] - 简书修改数据库密码TODO

2021-03-02 22:44:00 114

原创 Spring 项目开发常见问题

一、Controller 方法返回的对象转换不成 JSONdemo 代码:@RestController@RequestMapping("/api/config")public class ConfigController { @RequestMapping("/") public Response<List<Config>> config(@RequestParam("appName") String appName) { List<

2021-02-27 09:36:03 604 1

原创 Java 开发工程师的核心竞争力

本文根据一些公司的招聘简介和个人经验整理而成。业务理解对自己所处的业务有比较深刻的理解。主动去熟悉一个领域内的业务知识,这其实对后续需求的开发更有利。如果已经工作三年了,最好长期深耕一个业务,这样才会对这个业务的业界设计、业务难点、业务解决方案有长期的积累。有大型互联网开发经验国内大型互联网开发经验者优先。技术热情长期写博客、经常在公司内分享也是一大优势,因为这表达了你对技术的热情和对技术的探究。高可用高可用的方法有很多,比如:系统隔离、限流、降级等。稳定性提效降本业务产品化经验领

2021-02-22 09:04:56 2820 7

转载 如何在独居时有效地保持自律

本文是我根据知乎上的一个问题整编总结而成,并非原创。原创链接一、背景23 岁,独自在北京居住。坦白讲,以前过集体生活或者和爸妈住的时候,会为自己立一些 flag 。但是现在一个人住,自律和立 flag 的动力就会减弱。对于这种自律感减弱的情况很焦虑,但是有时候又没有办法克服。二、解决方法1. 用未来的回报说服自己做事能否坚持与否,回报永远是第一生产力。想变得自律,最好的方法就是从自己的利益出发,把生活中的一切当成自己的公司经营,自己做老板。该如何调整呢?做这些事的时候,都当成自己的事做,用未

2021-02-20 08:15:56 332

原创 文本数据处理技巧

1. 在数字后批量加上符号有一段文本内容如下:111111222222333333444444555555666666777777888888999999这段文本内容由一行一行的数字组成,我现在想在每一行的数字后面都加上一个符号(比如:, )。那怎么办呢?我推荐使用 excel 来处理。方法如下:在 excel 空白的一列输入函数: A1&","回车一下,效果如下双击 B1 单元格的右下角,让 B1 单元格的函数作用到 A 列的每一行单元格。效果如下:2.

2021-02-19 12:10:36 1337

原创 编程方法论

本篇文章主要记录一下我平时看到的很经典的编程话语。1. 小即是美程序员心中一般都怀有一个编写出伟大程序的隐蔽渴望。其实在现实生活中,只要把一些小巧的解决方案组合起来,几乎不存在解决不了的问题。解一个数学题的过程就是把问题进行拆解,利用我们已有的元知识(公式、定理等)最终去逐步解决这个问题。在计算机领域其实也是这样,分而治之、分片等思想回归到本质都是拆解。...

2021-02-19 08:39:02 174

原创 前端开发经验

一、安装 Node 环境首先请确保你的计算机上安装了 Node.js 以及 npm。推荐使用 nvm 安装 Node.js.1.1 安装 nvm:curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | bash1.2 设置 nvm 镜像:编辑 ~/.bashrc 或者 ~/.zshrc 文件,添加以下内容后重启命令行:export NVM_NODEJS_ORG_MIRROR=https://n

2020-10-29 22:56:27 156

原创 Charles 花瓶环境搭建常见问题

一、Mac Charles乱码解决办法https://blog.csdn.net/a327369238/article/details/52856833二、手机证书安装失败现场按照 Charles 的提示,手机打开 chls.pro/ssl小米通过自带浏览器(QQ浏览器或者其它浏览器未测)下载得到一个 getssl.crt 证书设置 > 更多设置(系统和设备) > 系统安全 > 从存储设备安装,选择第二步骤获取到的证书,会弹窗提示没有可安装的证书。换个姿势再来一次。再试一

2020-07-31 18:05:12 627

原创 为什么 Java 外部类可以访问静态内部类的 private 属性?

外部类可以访问静态内部类的 private 属性。原因静态内部类在经过 Java 编译器编译后会生成 private 属性对应的 access$Xxx(),供外部类使用。一个类被使用到的时候才会加载到内存。静态内部类之所以可以延迟加载是因为,外部类通过调用静态内部类的 static 方法(access$Xxx()),也就是会执行 invokestatic 这个字节码从而引起静态内部类加载(这是触发类加载的一种场景)。扩展可以通过在私有的构造方法中判断对象引用是否为 null 来防止反射调用。.

2020-06-26 16:55:38 3205 3

原创 Java 业务开发中常用的 Hive 技巧

时间戳问题假设我们 mysql 数据库中有张表叫 student ,它有一个字段是 created_at(类型是 long 或 int)。mysql 数据库的 user 表在 hive 中对应的表为 dw_student,dw_student 中 created_at 这个字段对应的类型是 string。这个时候我们在写 hive sql 的时候,如果想比较时间戳,需要把 hive 表中的 created_at 转换为时间戳去比较,否则会查询不到任何数据且不报错。select * from dw_st

2020-06-08 20:04:11 618

原创 Java 必备原理知识

注:这篇博客主要记录一些我觉得作为一个 Java 开发所应该知道的基础知识。有的内容我觉得有些博客已经写的很清晰了,我就会直接复制过来并标明原文链接。final、static、static final修饰的字段赋值的区别static修饰的字段在类加载过程中的准备阶段被初始化为0或null等默认值,而后在初始化阶段(触发类构造器)才会被赋予代码中设定的值,如果没有设定值,那么它的值就为默认值。final修饰的字段在运行时被初始化(可以直接赋值,也可以在实例构造器中赋值),一旦赋值便不可更改;stati

2020-06-07 10:32:46 363

原创 编程设计的思考

日常思考一些设计的做法可能跟它的初衷有关。需要去考虑设计的初衷是什么。设计良好的模块会隐藏所有的实现细节,把它的 API 与它的实现清晰地隔离开来。模块之间只通过它们的 API 进行通信,一个模块不需要知道其他模块的内部工作情况,这个概念被称为信息隐藏或封装。因此访问权限应当尽可能地使每个类或者成员不被外界访问。接口:规范、锲约。为了解耦。有时候也作为功能的标识。Like - A。抽象类:编码过程中为了提高程序的复用性,IS - A。子类需满足里氏替换原则。使用接口:需要让不相关的类都实现一个方

2020-05-24 16:51:56 143

原创 Linux 常用命令

命令ps -ef|grep execFileName 查看某个进行的状态cat filePathmkdir /fileName 创建文件夹cp /sourcePath /destPath 复制touchpwd 查看当前路径ln -s /fileName /xxx 创建软连接rm -f 删除指定文件。rm -rf 会把目录下的所有文件删除。yum install xx 安装所需软件包wget http://www.xxxx.tar.gz 下载压缩包tar -zxv

2020-05-24 16:38:22 267

原创 Maven 基础

Maven 常用网站Maven 官网:链接Maven 仓库:链接Maven 安装与配置Maven 下载:http://maven.apache.org/download.cgi首先要确定 jdk 已经安装和配置 把 maven 解压到放到 D 盘配置 maven 环境变量:M2_HOME D:\maven\apache-maven-3.3.3modelVersion:POM 模型版本...

2020-01-19 18:58:12 167 1

原创 JavaScript 使用技巧

1. JavaScript 介绍JavaScript 是一种脚本语言,是一种解释型语言(就是说,代码执行不进行预编译)。JavaScript 被设计用来向 HTML 页面添加交互行为。组成:ECMAScript:它是整个 javascript 的核心,包含(基本语法、变量、关键字、保留字、数 据类型、语句、函数等等)DOM:文档对象模型,包含(整个 html 页面的内容)BOM:浏览器...

2020-01-19 18:45:40 187

原创 2019 年总结

点击上方蓝色字体,选择“置顶公众号”一起自学,一起进步在高中总是好奇那些好学生为什么那么喜欢总结,到了大学终于明白了。学习不是死记硬背,是逻辑的推理,就像一颗树上的枝叶一样,你越推理枝叶...

2020-01-06 23:12:58 135

原创 Redis Key 统一管理技巧

背景我们的项目中可能存在多种业务场景需要接入 redis 缓存,在插入缓存时需要设置 key,如果这个 key 散落在项目的各个业务代码中的话,会给后期维护带来很大的不便。所以我建议把系统中用到缓存 key 放到一个类中统一管理,相同业务的 key 放到一起,这样也提高了系统代码的可读性,让看这个系统的人一眼就知道哪些业务场景用到了缓存。Key 定义public class RedisKey...

2019-11-25 20:06:33 2854

原创 职场肌肉记忆总结

点击上方蓝色字体,选择“置顶公众号”一起自学,一起进步时间过的挺快,不知不觉我已经实习了大半年了(从大三下学期到大四上)。在实习的过程中,我明白了很多道理,也有些许感悟。接下来就分享职场...

2019-11-24 21:27:44 433

原创 Kafka 高性能的原因

主要因素主要是以下三点:Broker NIO 异步消息处理,实现了 IO 线程与业务线程分离磁盘顺序写零拷贝

2019-11-06 21:00:01 1362

原创 数据库热点数据更新的思考

点击上方蓝色字体,选择“置顶公众号”一起自学,一起进步热点数据更新对于有限的数据库资源,如果有大量请求去消费的话,肯定会产生大量的锁竞争(数据库对一条数据的更新会导致在索引上给这条记录加...

2019-10-02 19:56:50 827

原创 mysql 中文乱码问题解决(复制粘贴就可以解决)

问题出现中文乱码一般是有三处的编码不统一:mysql 客户端character_set_client与程序的链接处character_set_connectionmysql 的服务端character_set_server具体怎么查看这三处的编码可以在 mysql 的 cmd 中执行下面这条命令:show variables like 'character%';解决办法解决过...

2019-10-02 11:53:45 988

原创 对 spring 中两种不同动态代理技术的思考

基于继承的代理cglib 实现动态代理就是基于继承实现的。public class ProxyReferenceTest { @Test public void testReferenceRelation() { EatProxyClass eatProxyClass = new EatProxyClass(); eatProxyClass.e...

2019-10-01 21:25:51 556 2

原创 spring 的巧妙设计

我们平时如果想让一个循环执行过程中不关系异常的话,可以把异常收集到一个集合中,for 循环结束后,最终一次性抛出。// @since 2.0 它继承自TypeConverterSupport 相当于实现了TypeConverter以及PropertyEditorRegistry的所有内容public abstract class AbstractPropertyAccessor extend...

2019-09-26 08:39:15 212

转载 IDEA 的 Maven下 出现 Cannot access in offline mode 问题的解决方案

Plugin com.google.code.maven-svn-revision-number-plugin:svn-revision-number-maven-plugin:1.13 or one of its dependencies could not be resolved: Cannot access nexus-all (http://192.168.4.119:8081/nexus...

2019-09-23 11:57:11 2458

原创 MySQL char 与 varchar 的底层区别

前言以 char(64) 、varchar(64) 为例来说明这个问题。分两个角度来讲1. 磁盘char(64) 不管你字符实际用了几个字符,磁盘存储都需要 64 个字符的存储空间。varchar(64) 是根据这个字段实际占用了多少个字符去存储磁盘的。2. 内存在内存中它们两者没有什么区别。都是占用 64 个字符的内存空间。所以平时在建字段的时候建议不要把 varchar(M) ...

2019-09-21 16:18:14 862

原创 npm 下载依赖、安装前端项目没有反应的解决方案

问题描述最近想搞一个前后端分离的项目,想通过 npm 去下载一个前端的开源项目,但是等了好久一直是以下这两张状态。状态一状态二问题解决出现这个情况一般是由于 npm 的镜像没有改,是使用系统默认的。解决的办法通常是改为淘宝的镜像。1. 显示当前的镜像网址// 把下面这个命令粘贴到 cmd 或终端上执行npm get registry执行结果应该是:https://reg...

2019-09-21 16:08:23 2240

原创 JVM 的类加载过程

流程图详细分析1. 加载找到 class 文件并加载到方法区中,在堆中创建对应的 Class 对象。2. 链接分为三步:验证、准备、解析。3.初始化执行类的类构造方法 <clinit> 。...

2019-09-08 09:35:00 112

原创 2019 秋招提前批蘑菇街一面面经(带答案)

点击上方蓝色字体,选择“置顶公众号”一起自学,一起进步今天给大家分享一下我的秋招提前批面试经历,目前三面技术面已过,hr 面也面过了,正在等消息。由于内容太多,先分享一面的面经。自我介绍...

2019-09-01 18:42:45 362 1

原创 MySQL 数据库各种类型对应的存储字节大小

背景学东西还是看官网呀,大家意会一下。对应关系图1. 数字类型2. Date、Time 类型3. 字符类型参考链接https://dev.mysql.com/doc/refman/8.0/en/storage-requirements.html...

2019-08-27 09:49:41 2654

原创 JDK1.6 对 synchronized 的锁优化

1. 背景在 JDK 1.6 中对锁的实现引入了大量的优化。目的减少锁操作的开销。2. 锁优化在看下面的内容之间,希望大家对 Mark Word 有个大体的理解。Java 中一个对象在堆中的内存结构是这样的:Mark Word 是这样的:2.1 适应性自旋锁自旋锁的思想:让一个线程在请求一个共享数据的锁时执行忙循环(自旋)一段时间,如果在这段时间内能获得锁,...

2019-08-25 08:47:49 447

原创 Spring Context 你真的懂了吗

今天介绍一下大家常见的一个单词 context 应该怎么去理解,正确的理解它有助于我们学习 spring 以及计算机系统中的其他知识。 1. context 是什么 我们经常在编程中见到 context 这个单词,当然每个人有每个人的理解,它被理解为:上下文、容器等等。我想说的是,context 理解为上下文最为合适。为什么呢?我以一个在计算机系统的例子来解释一下。 在计...

2019-08-24 23:19:39 1490

原创 Spring Context 究竟怎么理解?它到底是个什么妖魔鬼怪

spring context 的生命周期1. 初始化2. 启动3. 运行4. 关闭/销毁spring context 的初始化和启动我们平时常说的 spring 启动其实就是调用 AbstractApplicationContext#refresh 完成 spring context 的初始化和启动过程。spring context 初始化从开始到最后结束以及启动,这整个过程都在 re...

2019-08-24 22:12:16 6210

原创 Spring 实例时使用的策略模式

策略接口// Interface responsible for creating instances corresponding to a root bean definition.public interface InstantiationStrategy { }实例化策略的某个具体实现public class SimpleInstantiationStrategy imp...

2019-08-24 18:32:13 487

原创 Hbase 的数据视图

参考链接http://0b4af6cdc2f0c5998459-c0245c5c937c5dedcca3f1764ecc9b2f.r43.cf2.rackcdn.com/9353-login1210_khurana.pdf

2019-08-22 17:04:31 372

趣谈网络协议的电子书完整版

用故事的方式来讲解网络,对学习网络的人来说是本好书。对于想学习分布式云计算也设计到相关的知识,最后会教大家搭建一个网路环境作为实验。

2019-02-27

tomcat 最全源码分析

对 NIO 模式,请求的流程描述的很详细。值得去仔细的研究。

2019-02-27

空空如也

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

TA关注的人

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