自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

陈家二少的博客

小小程序员

  • 博客(74)
  • 资源 (6)
  • 收藏
  • 关注

原创 第一次阿里面试之旅

第一次阿里面试之旅1、一周大事记即将过去的一周,总共发生了三件大事:美国大选:目前看来拜登胜了蚂蚁上市:搁浅了,马老师被约谈了面试菜鸟:走到终面,结果是不通过在这么大的背景下,面试失败实在是不值一提,不过对于我来说,确实意义重大,所以不得不提,不得不写篇博客来记录一下。2、事出有因进入顺丰科技才一年多,并且刚经历过晋升、涨薪,而且又到了年底,为啥我会去面试阿里呢?其实理由很简单:作为一个程序员,需要偶尔出去面试,刷刷经验作为一个Java程序员,需要去阿里找找虐,了解自己的不足

2020-11-08 17:05:34 1087 1

原创 嚼一嚼秒杀系统(一)基于数据库乐观锁

嚼一嚼秒杀系统(一)基于数据库乐观锁1、背景最近突然对秒杀系统比较感兴趣,所以突发奇想来研究一下。其实在面试过程中也经常会遇到此类问题:如果你有一千个商品,怎么在最快的时间内卖出去,且不多卖不少卖。下面我就基于这个常见的问题,逐步完成一个高性能的秒杀系统。github地址:https://github.com/351524388/flash-sale2、架构本篇文章介绍demo1,使用到的技术如下:SpringBoot-V2.3.1.RELEASEJPA@Version:数据版本号,

2020-11-07 17:00:29 160

原创 面了个十年的Java高级

面了个十年的Java高级0、背景最近被安排一些面试的工作,先是项目组有外包离职需要补缺,面了一些。当时我就想,现在就要我面外包(才来一年),过几天岂不是要面自有。果不其然,安排就来了。更令人以外的是,求职者是个有着十年工作经验的老Java。1、寒暄Me:你好,欢迎参加今天的面试,请先自我介绍一下He:我是xxx,以往工作经历xxx,在某大厂待过几个月,因为xx原因离职回家Me:我这边更多的考察技术,你看有没有什么问题(对方求职是高级)He:没问题2、出题Me:SpringCloud相关

2020-10-17 11:15:20 143 1

原创 咀嚼Spring源码(二)运行demo

咀嚼Spring源码(二)运行demo1、新增一个demo模块MyTestBeanpackage top.changelife.demo.day01;public class MyTestBean { private String testStr = "testStr"; public String getTestStr() { return testStr; } public void setTestStr(String testStr) { this.testStr = t

2020-11-30 20:53:14 199 2

原创 咀嚼Spring源码(一)环境搭建

咀嚼Spring源码(一)环境搭建1、fork登录github,查找 spring-framework 仓库,将其fork到自己的仓库中2、clone将fork库克隆到本地,到指定目录下执行命令git clone xxx/spring-framework切换分支,默认是master分支,这里切换到 5.2.X3、导入ideaspring-framework项目根目录下有个说明文件,名为import-into-idea,从名字就可以看出,这是将项目导入idea的说明文件。下面我们根据这个说明文件

2020-11-30 11:52:32 202

原创 2020年前面试小结

2020年前面试小结1、为什么要面试其实选择年前出来面试,主要是以下几个原因:干得不爽钱少想去大厂一份工作,我觉得至少应该满足“钱多事少离家近”中的一样,但是我现在这份工作全不满足,所以就得出来看看新机会了。工作有四年多了,也许是年限到了,也许是顺丰科技这个招牌还行,在BOSS上面打开简历以后,消息纷至沓来,各种外包公司不说,还有很多一二线大厂,瞎得我赶紧就隐藏了简历。突然就有点理解,为什么陌陌上面的小姐姐,都不爱回消息。2、面试经历时间公司面试官轮次方式结果结果获

2020-11-17 23:41:10 250

原创 嚼一嚼HTTPS

嚼一嚼HTTPS1、什么是HTTP以下内容来自《How Tomcat Works》HTTP 是一种协议,允许 web 服务器和浏览器通过互联网进行来发送和接受数据。它是一种请求和响应协议。客户端请求一个文件而服务器响应请求。HTTP 使用可靠的 TCP 连接,TCP 默认使用 80 端口。一个 HTTP 请求包括三个组成部分:方法—统一资源标识符(URI)—协议/版本:如 POST /examples/default.jsp HTTP/1.1请求的头部:如 Content-Type: ap

2020-08-26 01:45:52 80

原创 嚼一嚼Object类中的方法

嚼一嚼Object类中的方法Java 中的所有类都有一个共同的祖先,那就是 Object 类,现在我们就来看看这个类中有哪些方法。1、Object 类中方法源码(JDK8)private static native void registerNatives();public final native Class<?> getClass();public native int hashCode();public boolean equals(Object obj) {

2020-08-19 10:50:35 532

原创 嚼一嚼 class 文件结构

嚼一嚼 class 文件结构0、准备如果需要运行本文中相关的程序或命令,您需要注意以下几点,不然可能得到不同的结果:win10操作系统安装 jdk1.8.0_161 并配置好环境变量安装 Notepad++ 和里面的 HEX-Editor 插件1、生成一个 class 文件我们平时写的java代码存储在 .java 文件中,称之为 java 源文件。下面是 Test.java 文件的内容:public class Test{ private int i; public int add

2020-08-17 14:35:22 307

原创 破解 Navicat 保存的密码

破解 Navicat 保存的密码1、进入注册表win + R输入 regedit 回车2、找到 navicat 中存储的密码HKEY_CURRENT_USERSoftwarePremiumSoftNavicatServers点击要破解密码的数据库,右边会出现 Pwd,值就是加密后的密码3、解密密码到我的资源里面下载工具双击打开,输入前面获取到的密码,点击解密...

2019-06-20 14:58:31 10598

原创 基于 SpringBoot 的快速开发框架

cz-core基于 SpringBoot 的自研核心依赖,用于快速开发项目名称版本SpringBoot2.0.1SpringCloudFinchley.SR10、依赖本 jar 包目前项目还在开发中,没有推到 maven 中央库,故只能克隆到本地,然后依赖。在安装有 git、maven 的前提下,依次运行以下命令:git clone git@githu...

2019-05-10 11:51:12 1604

原创 B站后端源码"泄露"

B 站后端源码泄露作为 Java 程序员,听到后端源码泄露,还是 B 站这种名厂,想必是十分激动的。但是上 github 上瞅了一眼,是 GO 开发的,顿时就感觉凉了。B 站方面反映也很及时,十个小时不到,现在就已经搜不到了,不过我在浏览器上下载项目的 zip 包,还是在缓缓进行中。事情具体是怎么样的也不清楚,看了 github 上最初的几条留言以及知乎上的回答,大概是离职员工做的吧。挺可...

2019-04-22 17:33:45 5340

原创 那些值得一看的博客

那些值得一看的博客ASCII,Unicode和UTF-8终于找到一个能完全搞清楚的文章了

2019-04-19 15:30:55 142

原创 自定义对象池接口

自定义对象池接口github 地址为什么要用对象池对象池就是把一群已经实例化过的对象,在使用完了以后保存起来,这样下次需要用到的时候,就不用重新创建。你可能会疑惑,这样存起来岂不是占用内存空间。对的,但是优势在于,如果是一些建立时比较耗时的对象,那么就可以做到用空间换时间了,例如数据库连接对象、一些TCP、HTTP连接对象等,这些对象在创建和销毁是比较耗时的。自定义实现这里主要涉及到以下...

2019-04-14 13:26:32 340

原创 自定义注解实现

自定义注解实现github 地址先贴代码自定义 Controller 注解:package top.changelife.zero.core.annotation;import org.springframework.core.annotation.AliasFor;import org.springframework.web.bind.annotation.RequestMappi...

2019-04-12 13:57:41 159

原创 Linux 云服务器 buff/cache 占用过多

Linux 云服务器 buff/cache 占用过多0、问题介绍在Linux下经常会遇到buff/cache内存占用过多问题,尤其是使用云主机的时候最严重,由于很多是虚拟内存,因此如果buff/cache占用过大的,free空闲内存就很少。普通机器:total=used+free虚拟机器:total=used+free+buff/cache1、手动解决依次运行以下命令:syncec...

2019-04-11 11:22:49 1066

原创 top.changelife.zero

top.changelife.zero0、从零开始准备自己造点破轮子了,那就从起个包名开始吧。changelife.top这是我的域名,zero就象征从零开始吧。假如未来有一天,它真的存在并且你需要用到,那么你这样依赖一下就可以了。当然,不保证版本是对的哦!<dependency> <groupId>top.changelife.zero</groupId&...

2019-04-10 00:44:35 115

原创 springboot 整合 kafka

springboot 整合 kafka0、安装 kafkakafka 运行需要 JDK 支持下载 kafka,https://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.2.0/kafka_2.12-2.2.0.tgz解压 tar -xzvf kafka_2.12-2.2.0.tgz修改 kafka 配置文件 KAFKA_HOM...

2019-04-09 15:30:49 276

原创 mysql 登录 ip 受限

mysql 登录 ip 受限1、关闭服务器防火墙2、使用 telnet 命令测试服务器端口是否开放telnet 10.0.0.1 33063、出现ip not allowed错误提示首先我们去装 mysql 的服务器上,登录进入 mysql,安装时默认限定root用户只能本地登录,执行以下语句:SELECT USER, HOST FROM mysql.user WHERE USER=...

2019-04-08 16:11:51 742

原创 SpringCloud 服务注册 IP 错误

SpringCloud 服务注册 IP 错误1、错误原因在服务注册的时候,是使用 spring.cloud.client.ipAddress 这个变量,如果本机有多个网卡,那么可能会把不是本机以太网的网卡地址注册上去。使用 ipconfig 可以看到,本机上有多个以太网适配器,而每个以太网适配器,都有一个 IPv4 地址,这时注册上去的 IP,就是其中一个,却不一定是正确的那个。2、处理...

2019-04-03 15:19:41 1422

原创 自动化部署之环境搭建

自动化部署1、安装 JDKcd /opt mkdir java下载 JDK 压缩包,复制到 java 目录下tar -zxvf jdk-8u201-linux-x64.tar.gz mv jdk1.8.0_201 jdkvi /etc/profile 文件末尾加上:export JAVA_HOME=/opt/java/jdkexport JRE_HOME=${JAVA_HOME}/j...

2019-03-27 20:17:14 1361 1

原创 Oracle使用技巧(一):跨库复制数据

Oracle使用技巧(一):跨库复制数据1、查看当前dblinkselect * from dba_db_links;2、创建dblinkcreate public database link 【link名称】 connect to 【被连接库的用户名】 identified by 【被连接库的密码】 using'(DESCRIPTION =(ADDRESS_LIST =(ADDR...

2019-01-19 18:08:15 2154

原创 FastDFS 简单使用教程

FastDFS 简单使用教程安装你问我怎么装,那我就只有问此软件开发者了,要不你也去问他,链接在这https://github.com/happyfish100/fastdfs/wiki安装遇到的问题首先声明,这些问题你不一定会遇到,遇到了也不一定能用我这里提供的方法解决,条条大路通罗马,看缘分了!1、不要用git下载,自己老老实实下载压缩包,然后在服务器上解压(你问我为什么,因为亲测前...

2018-10-30 14:46:47 5784

原创 mybatis + oracle 逆向工程

mybatis + oracle 逆向工程generatorConfig.xml 主要配置项数据库驱动位置:&lt;classPathEntry location="C:/xxx/xxx/xx.jar"/&gt;数据库连接配置:&lt;jdbcConnection...生成表配置:&lt;table tableName="表名" domainObjectName="要生成Model名"...

2018-09-27 12:01:06 3048

原创 Linux 常用命令

Linux 常用命令虚拟机 ubuntu 命令行中文乱码安装中文字符:sudo apt-get install zhcon 添加用户权限:sudo adduser [xx] video 退出重进:logout –&gt;login 执行命令:zhcon --utf8 --drv=fb 注意:每次进入都要执行zhcon命令才有效SSH 工具连接不上安装ssh服务:sudo a...

2018-09-13 18:27:55 117

转载 SpringCloud 注册中心 自我保护机制

自我保护背景首先对Eureka注册中心需要了解的是Eureka各个节点都是平等的,没有ZK中角色的概念, 即使N-1个节点挂掉也不会影响其他节点的正常运行。默认情况下,如果Eureka Server在一定时间内(默认90秒)没有接收到某个微服务实例的心跳,Eureka Server将会移除该实例。但是当网络分区故障发生时,微服务与Eureka Server之间无法正常通信,而微服务本身是正常运...

2018-09-13 17:40:29 1148

转载 raid5 磁盘阵列

raid5 架构RAID5RAID5,至少要用3块硬盘。总容量是N-1。比如3块1T的硬盘,组raid5后就成了2T,还有1T是做备份和校验的。简单理解,RAID5至少使用3块硬盘(也可以更多)组建RAID5磁盘阵列,当有数据写入硬盘的时候,按照1块硬盘的方式就是直接写入这块硬盘的磁道,如果是RAID5的话这次数据写入会根据算法分成3部分,然后写入这3块硬盘,写入的同时还会在这3块硬盘上写...

2018-09-13 15:36:18 8769

转载 淘宝走过的大数据之路

回顾丨13年来,淘宝走过的大数据之路来源:CSDN大数据时间:2016-11-07 10:19:15作者:— 淘宝大数据之路 —  2003年至今淘宝网从零开始飞速发展,走过了13个年头,支撑淘宝业务野蛮式生长背后是一套不断完善的技术平台,淘宝大数据平台,就是其中非常重要的一个组成部分,承担了数据采集、加工处理、数据应用的职责,淘宝大数据平台一路到今天,总共经历了三个大的阶段(...

2018-09-06 10:40:34 3264

转载 任务调度系统浅解

实习生张大胖这是个代码写得很烂的电商系统,只要运行一段时间,服务器就会出现Out Of Memory。别人都忙得四脚朝天,于是实习生张大胖被抓了壮丁去研究为什么会出现OOM。刚入行的张大胖技术水平一般,“装模作样”地看代码,研究日志,请教老员工,一个星期过去了,还是一无所获。周一例行的项目会议上, 大家似乎要看张大胖的笑话了,没想到他却提了一个歪招:“这个OOM问题非常复杂,一时半会儿也解决不了,...

2018-09-06 09:49:35 197

转载 HBase 是如何存取数据的

HBase是一个查询极其快速的非关系型数据库,它在实时读写和实时访问上有着巨大的优势,并且非常灵活。 先来看下面这幅图: 这是一个HBase表的存储结构模型,其中有4个字段。分别为Rowkey(主键)、Time Stamp(时间戳)、CF(列族)、CF:xx(列)。这看上去是一个数据表,但是对于HBase而言,这只是一行数据。看到这大家可能会比较迷惑,这明...

2018-09-04 15:18:39 6047 3

原创 架构探险(第四天)

架构探险(第四天)主要功能aop事务

2018-08-28 14:29:14 269

原创 POST 请求常用 Content-Type

POST 请求常用 Content-Typetext/plaintext 即表明是文本,输入什么就传过来什么,最简单的类型application/json这个与 text 基本没什么区别,只不过逻辑上标记传输过来的文本是 json 类型,其实就算不是 json 也没有影响,但是别人定义好的框架中你不传 json,很大几率会发生 json 转对象异常multipart/form-...

2018-08-23 10:07:35 774

原创 java nio 网络编程

java nio 网络编程三要素Channel:通道,想象成自来水管,所有的数据都要通道来传递Buffer:缓冲区,负责从通道中读写数据,注意,读是从通道中读到缓冲,写是从缓冲写入通道Selector:多路复用器,负责监视通道,如果通道的数据就绪,可以通过 Selector 获取 SelectionKey 进而得到就绪状态的 Channel 集合打个比方缓冲区就是水桶,通道...

2018-08-20 14:00:45 689

原创 Linux 网络 I/O 模型

Linux 网络 I/O 模型阻塞 I/O 模型 :一旦调用函数读取文件,全部读完或出错时返回,否则一直处于等待状态非阻塞 I/O 模型 :还是读一个文件,如果数据没准备好就直接返回一个错误,然后轮询直到数据准备好I/O 复用模型 :Linux提供了select/poll,进程可将多个要读取的文件描述传递给select或poll系统调用,阻塞在select操作上,某一个文件准备好了,se...

2018-08-17 11:27:01 156

转载 select poll epoll系统调用详细分析

原文地址1、select,poll,epoll都是多路复用IO的函数,简单说就是在一个线程里,可以同时处理多个文件描述符的读写。select/poll的实现很类似,epoll是从select/poll扩展而来,主要是为了解决select/poll天生的缺陷。epoll在内核版本2.6以上才出现的新的函数,而他们在linux内核中的实现都是十分相似。这三种函数都需要设备驱动提供poll回调函...

2018-08-17 09:35:17 723

原创 架构探险(第三天)

架构探险(第三天)java 类加载机制Java 源程序(.java 文件)在经过 Java 编译器编译之后就被转换成 Java 字节代码(.class 文件)。类加载器负责读取 Java 字节代码,并转换成 java.lang.Class类的一个实例(Class对象)。也就是说,在Java中,每个java类都有一个相应的Class对象,用于表示这个java类的类型信息。当使用一个类...

2018-08-16 20:28:02 201

原创 架构探险(第二天)

架构探险(第二天)

2018-08-14 20:22:26 219

原创 @Transaction 注解导致动态切换更改数据库失效

@Transaction 注解导致动态切换更改数据库失效使用场景给所有的Controller方法上加切点在@Before注解的方法里,根据http请求中携带的header,动态切换数据源使用mybatis或者jpa执行操作遇到问题当给Controller方法加上@Transaction注解后,动态切换数据源就失效了,原因是每次@Before注解的方法运行之前,protect...

2018-08-14 18:46:12 2474 4

原创 阅读 dbutils 源码(三)

阅读 dbutils 源码(三)BeanProcessor 类这个类主要是辅助RowProcessor这个接口的实现类,例如BasicRowProcessor中就默认使用BeanProcessor,当然也可以自己重写一个BeanProcessor,然后作为参数在BasicRowProcessor构造函数中传进去即可。先看一下BeanProcessor中的方法: 其中toBean和...

2018-08-10 15:17:27 245

原创 阅读 dbutils 源码(二)

阅读 dbutils 源码(二)

2018-08-10 14:01:59 246

www.changelife.top.jdk1.8.zip

JDK全称Java Development ToolKit,是Java语言开发工具包。JDK是整个JAVA的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar)。

2020-01-14

zookeeper-3.4.12

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。 ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。 ZooKeeper包含一个简单的原语集, [1] 提供Java和C的接口。 ZooKeeper代码版本中,提供了分布式独享锁、选举、队列的接口,代码在zookeeper-3.4.3\src\recipes。其中分布锁和队列有Java和C两个版本,选举只有Java版本。

2018-09-05

maven解压包

Apache Maven是一个软件项目管理和综合工具。基于项目对象模型(POM)的概念,Maven可以从一个中心资料片管理项目构建,报告和文件。

2018-06-25

geoserver war包

GeoServer 是 OpenGIS Web 服务器规范的 J2EE 实现,利用 GeoServer 可以方便的发布地图数据,允许用户对特征数据进行更新、删除、插入操作,通过 GeoServer 可以比较容易的在用户之间迅速共享空间地理信息。

2018-06-25

geoserver安装包

GeoServer 是 OpenGIS Web 服务器规范的 J2EE 实现,利用 GeoServer 可以方便的发布地图数据,允许用户对特征数据进行更新、删除、插入操作,通过 GeoServer 可以比较容易的在用户之间迅速共享空间地理信息。

2018-06-25

redis win10 安装包

Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。 Redis 与其他 key - value 缓存产品有以下三个特点: Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。 Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。 Redis支持数据的备份,即master-slave模式的数据备份。

2018-06-21

空空如也

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

TA关注的人

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