finalheart的博客

私信 关注
finalheart
码龄3年

希望可以迭代出一个更好的自己

  • 143,938
    被访问量
  • 83
    原创文章
  • 57,082
    作者排名
  • 44
    粉丝数量
  • 于 2018-06-09 加入CSDN
获得成就
  • 获得68次点赞
  • 内容获得32次评论
  • 获得158次收藏
荣誉勋章
兴趣领域
  • #安全
    #安全架构#系统安全#web安全
TA的专栏
  • elkf
    5篇
  • 面试题
    3篇
  • MySQL
    7篇
  • redis
    2篇
  • 设计模式
    1篇
  • PostgreSQL
    2篇
  • http
    5篇
  • 认证&鉴权
    1篇
  • MongoDB
    1篇
  • nginx
    2篇
  • kafka
  • effectiveJava
    7篇
  • java基础
    12篇
  • Jenkins
    1篇
  • aws
    4篇
  • 模板引擎
  • 第三方常用jar包
    2篇
  • spring
    3篇
  • Linux
    6篇
  • IDE
    1篇
  • git
    4篇
  • 前端
    2篇
  • docker
    8篇
  • go
    3篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

【吐血总结】Java面试题集锦(附答案),亲身经历——实用性极佳!

本篇记录一下自己面试的一些中大厂(包括BAT)的 1~3年Java开发的面试题以及自己对题目理解的答案(结合网上查的资料)1、hashmap rehash 过程 扩容几倍,扩容时候插入数据会怎样,扩容时候取数据怎样扩容两倍。 hashmap多线程不安全,扩容时多个线程操作可能会导致死循环,循环链表。所以如果不是在单线程环境使用时,用concurrentHashmap 这个是synchronized和cas乐观锁的线程安全的map数据结构。get取数据时是算hash,hash算法:re
原创
183阅读
1评论
1点赞
发布博客于 1 月前

Grpc&&protocol buffer结合提供grpc服务

Grpc&&protocol buffer关于下载:首先下载一个protobuf对于mac系统就brew install protobuf 就可以了。然后可以 protoc --version 看下安装的版本号,默认按最新版。如果想手动按就去官网下载https://github.com/protocolbuffers/protobuf/releases下载go语言的proto插件protoc -h 看到没有 --go_out 就没法生成go的pb.proto代码,所以需要
原创
690阅读
4评论
0点赞
发布博客于 3 月前

Java高阶面试题复习整理(多线程)

1.aio,nio,bio,epoll,select由于篇幅较长,整理到这里https://blog.csdn.net/finalheart/article/details/1078014962.reactor模式印象中有netty和Redis用了这个模式。既然这么牛逼的中间件高并发框架介绍reactor模式是事件驱动的,有一个或多个并发输入源,有一个service Handler,有多个Request Handlers;这个Service Handler会同步的将输入的请求(Event)多
原创
184阅读
0评论
1点赞
发布博客于 6 月前

Java中的wait和notify

介绍一个线程调用 Object(对象) 的 wait() 方法,使其线程被阻塞;另一线程调用 Object(对象) 的 notify()/notifyAll() 方法,wait() 阻塞的线程继续执行。例如:A a = new A(); a.wait(); a.notify();这两个方法(同一个对象的)wait/notify 方法方法说明wait()当前线程被阻塞,线程进入 WAITING 状态wait(long)设置线程阻塞时长,线程会进入 TIMED_
原创
117阅读
0评论
0点赞
发布博客于 6 月前

Linux下rpm&yum&apt-get理解

RPM简介RPM命名“RedHat Package Manager”,简称则为RPM。属于Red Hat阵营的,与其并列的则是debian。centos中大部分我们安装都是使用yum install,而debian的Ubuntu中我们大部分使用的就是apt-get了。两大阵营、优点:RPM会将软件包信息记录在Linux主机的数据库中,/var/lib/rpm 每一个RPM包都是编译好的(二进制安装),方便查询本地安装版本和升级卸载。缺点:软件信息包安装的环境必须与打包时的环境一致或相当。必须安装
原创
126阅读
0评论
0点赞
发布博客于 6 月前

Liunx下源代码安装&&make&&makefile理解

Linux下安装软件的方式分为源代码安装和二进制安装源代码安装,即使用应用程序源代码进行编译安装二进制安装,例如red hat发行的 .rpm包、debian发行的 .deb包源代码安装用c语言为例#include <stdio.h>int main(){ printf("hello world"); return 1;}使用gcc进行编译。 gcc a.c 然后当前目录会生成一个a.out 文件 然 ./a.out就执行了 输出 hello world
原创
134阅读
0评论
0点赞
发布博客于 6 月前

关于Java中的synchronized用法介绍

介绍synchronized分为对象锁和类锁对象锁:在java中每个对象都会有一个 monitor 对象,这个对象其实就是 Java 对象的锁,通常会被称为“内置锁”或“对象锁”。类的对象可以有多个,所以每个对象有其独立的对象锁,互不干扰。类锁:在 Java 中,针对每个类也有一个锁,可以称为“类锁”,类锁实际上是通过对象锁实现的,即类的 Class 对象锁。每个类只有一个 Class 对象,所以每个类只有一个类锁。以上的实现分别作用于实例方法,静态方法,代码块中锁this或者class
原创
80阅读
0评论
0点赞
发布博客于 6 月前

Reactor模式学习&理解

印象中有netty和Redis用了这个模式。既然这么牛逼的中间件高并发框架reactor是一种模式,或者说是一种软件工程的概念。相当于设计模式,是一个概念不是一个实体。 不过JavaNIO的reactor实现真的有一种epoll的感觉,select,selectionKeysSynchronous Event Demultiplexer 阻塞等待一系列的Handle中的事件到来,如果阻塞等待返回,即表示在返回的Handle中可以不阻塞的执行返回的事件类型。相当于java中的selector se
原创
105阅读
0评论
0点赞
发布博客于 6 月前

Linux IO模式及 select、poll、epoll详解

一 概念说明在进行解释之前,首先要说明几个概念:- 用户空间和内核空间- 进程切换- 进程的阻塞- 文件描述符- 缓存 I/O用户空间与内核空间现在操作系统都是采用虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次方)。操作系统的核心是内核,独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件设备的所有权限。为了保证用户进程不能直接操作内核(kernel),保证内核的安全,操心系统将虚拟空间划分为两部分,一部分为内核空间,一部分为用户空间。
转载
90阅读
0评论
0点赞
发布博客于 6 月前

docker网络相关

Docker 网络什么是网卡:连接计算机网络的硬件资源。 常用查网卡的命令 ifconfig [lo eth0]什么是集线器:一个口收信号,原封不动的发送给所有其他的口,表现在物理层什么是网桥:网桥也叫桥接器,是连接两个局域网的一种存储/转发设备,工作在数据链路层,以太网中,数据链路层就是Mac地址,相当于一个桥梁,只有符合的mac地址能出来。docker的网络模式有四种,bridge host container nonebridge模式(默认)当docker启动时会在主机创建
原创
58阅读
0评论
0点赞
发布博客于 6 月前

如何断网安装docker

docker rpm安装(不能联网情况)生产环境可能是不能联网的,当我们需要用到docker(或其他组件)的时候,就需要借助能联网的环境下载好rpm包,然后去操作系统服务器装下载好的docker RPM包。uname -a 确保centos7以上系统 修改/etc/yum.repos.d/CentOS-Base.repo 先备份一份先找个能联网的环境下载rpm, 如下更换了yum源#CentOS-Base.repo## The mirror system uses the ...
原创
135阅读
0评论
0点赞
发布博客于 6 月前

MongoDB官网学习记录

参考:官方文档 https://docs.mongodb.com/manual/introduction/ 基于4.2一、TPS:Transactions Per Second(每秒传输的事物处理个数),即服务器每秒处理的事务数。TPS包括一条消息入和一条消息出,加上一次用户数据库访问。(业务TPS = CAPS × 每个呼叫平均TPS)二、QPS:每秒查询率QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准,在因特网上,作为域名系统服务器的机器的性能经常用每秒查询率来衡量Mong
原创
77阅读
0评论
0点赞
发布博客于 6 月前

openresty 学习记录

本篇是从https://legacy.gitbook.com/book/moonbingbing/openresty-best-practices 学习记录的,目的是为了查询方便。openresty 学习记录openresty与nginx的区别OpenResty是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项OpenResty的目标是让你的Web服务直接跑在Nginx服务内部,充分利用 Nginx 的非阻塞 I/O 模型
原创
85阅读
0评论
0点赞
发布博客于 7 月前

Redis 底层数据结构原理

注:本篇按照Redis设计与实现这本书来写。基于Redis3.0版本redis使用了 SDS、链表、字典(哈希表)、跳跃表、整数集合、压缩列表 几种数据类型,我们操作的api是对这几个数据结构的封装SDS 简单动态字符串Redis是用c语言写的,自然而言遵循c语言的特性。c语言字符串就有一堆坑,比如缓冲区溢出,获取字符串长度o(n)复杂度。对于c语言来说,字符串存储在字符数组里面,每次字符串的变更导致数组的变更,从而进行内存重新分配。因为内存重分配涉及复杂的算法, 并且可能需要执行系统调用,
原创
176阅读
0评论
0点赞
发布博客于 8 月前

Redis命令&&应知应会

Redis是一个高速缓存的NoSql数据库。可支持持久化。就是把数据写到硬盘。基于key-value来进行缓存。首先引用一下百度百科中的介绍。redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型...
原创
85阅读
0评论
0点赞
发布博客于 8 月前

Redis复习总结(Redis面试必过!!!)

注:本篇是看了别人写的一些面试题,然后记录一下面试题的链接以及自己对面试题部分知识点的理解。面试题传送门:https://thinkwon.blog.csdn.net/article/details/103522351https://blog.csdn.net/Butterfly_resting/article/details/89668661还有一些Redis的应知应会:https://blog.csdn.net/finalheart/article/details/85230..
原创
577阅读
0评论
1点赞
发布博客于 8 月前

MySQL 复习总结(MySQL面试必过!!!)

注:本篇是看了别人写的一些面试题,然后记录一下面试题的连接以及自己对面试题部分知识点的理解我首先看的文章是下面这个,真的是太多了,有的没有说的很深,需要再进一步学习下。https://blog.csdn.net/ThinkWon/article/details/1047786211.MySQL text长度mysql的text是65535的字节限制,而pg是不限制的、2.覆盖索引**聚簇索引(https://blog.csdn.net/alexdamiao/articl...
原创
126阅读
0评论
0点赞
发布博客于 8 月前

MySQL 复制、扩展性、高可用、备份

注:本篇是《高性能Mysql》第三版的读书笔记复制MySQL支持两种复制方式:基于行的复制和基于语句的复制。在主库记录二进制日志,然后在备库重放日志的方式来实现异步的数据复制,可想而知,从库数据一致性是有延迟的。复制解决的问题:数据分布、负载均衡、备份、高可用和故障切换、MySQL升级测试。基于语句复制模式下:主库会记录那些造成数据更改的查询,当备库读取并重放这些事件时,实际上是把主库上执行过的SQL在执行一遍。缺点:对于那些使用时间戳的数据肯定不百分百准,更新必须.
原创
79阅读
0评论
0点赞
发布博客于 8 月前

MySQL服务器设置&&硬件优化

注:本篇是《高性能Mysql》第三版的读书笔记优化服务器的设置优化服务器的配置一般是在schema和索引优化之后进行的。大多数的默认配置已经趋近于最优设置了。学习创建一个好的配置是从理解MySQL内核和行为开始 mysql --verbose --help |grep -A 1 'Default options' 查配置文件位置。默认的配置如果够用就别乱改。分为服务器级别的(全局变量),连接变量(会话作用域) 剩下的一些是对象级的。对于一些全局变量,你给他分配太大内存...
原创
122阅读
0评论
0点赞
发布博客于 9 月前

Mysql 高级特性

注:本篇是《高性能Mysql》第三版的读书笔记分区表根据某种情况进行分表操作,一般常用于按照时间分表,比如每个月的数据存储到一张分区表中,分区表在查询时匹配where条件,查询总表时匹配where条件会减少查询范围,去查询分区表,过滤很多其他分区表的数据来达到一个高效的方式。...
原创
101阅读
0评论
0点赞
发布博客于 9 月前

php如何使用S3

本篇是新手使用PHP调aws的s3服务的一些心得一、关于AWS-S3s3是一个文件存储服务,当需要做成服务来进行微服务调用,或者终端服务端文件交流使用s3是一个非常不错的选择、aws各种常见的语言例如:Java,Python,PHP,golang等都是有SDK的,可以通过SDK几行代码就操作s3二、PHP调s3的SDKPHP调用s3有多种方式,如果项目没用composer这种东西,而是用PHP原生或者简单的框架,那么使用源码方式最好不过了。下面是PHP调用s3的文档...
原创
189阅读
0评论
0点赞
发布博客于 9 月前

Mysql 查询性能优化

注:本篇是《高性能Mysql》第三版的读书笔记查询性能优化查询性能低下的基本原因就是访问的数据量太多,而有些数据根本就用不着,或者mysql在进行分析时存在大量超过结果行的数据一些经典案例对性能造成损失1、查询不需要的记录,返回没有limit2、多表关联时返回全部列。3、总是取出全部列。这个需要作出取舍。4、重复查询相同的数据,这种最好将这种数据进行缓存。对于mysql最简单衡量查询开销的三个指标如下响应时间 扫描的行数 返回的行数响应时间是两个的和:服务时间.
原创
101阅读
0评论
0点赞
发布博客于 9 月前

Mysql Schema && 数据类型索引优化

注:本篇是《高性能Mysql》第三版的读书笔记Scheme && 数据类型优化反范式的设计可以加快某些类型的查询,但同时可能使另一些类型的查询变慢。比如添加计数表和汇总表是一种很好的优化方式。选择优化的数据类型存储更小的数据类型通常更好,更小的数据类型占用更少的内存和更少的磁盘空间。 简单更好,一般能用整型表达的就不要用字符串,字符串对校验排序规则等有更多的...
原创
81阅读
0评论
0点赞
发布博客于 9 月前

Mysql性能测试&服务器性能剖析

注:本篇是《高性能Mysql》第三版的读书笔记基准测试基准测试即性能测试,是我们判断系统的正确性&负载量的一个得力助手。基准测试可以评估在项目未来的负载下,需要什么硬件,需要多大容量的网络,以及其他相关资源。总之压测是必然的。基准测试一共有两个测试策略。1.针对整个系统的整体测试。包括web mysql 网络 等等、所有的因素加到一起。2. 单独...
原创
123阅读
0评论
0点赞
发布博客于 10 月前

Git 工作中会这些就够了

-------------------git 常规一套流程git clone http://github.com/jquery/jquery.git 克隆远程仓库到本地git status //(最常用的命令) 查看当前代码库当前分支的变化,包括 没有add的文件和已提交等待push的commit如果本地代码都push到远程了会返回类似 nothin...
原创
87阅读
0评论
0点赞
发布博客于 10 月前

Git Flow 用法&理解

git flow 工作流程。如下图所示。master 分支master 分支主要方稳定、随时可上线的版本。这个分支只能从别的分支上合并过来,一般来讲,从develop 上合并,或者从hotfix分支上合并过来。不能直接在master 分支上进行commit文件。因为是稳定的版本,所以每次版本发布都要在这个分支上添加标签(tag)。develop 分支develop 分支是...
原创
92阅读
0评论
0点赞
发布博客于 10 月前

filebeat学习&理解

注:本篇基于filebeat7.5.2filebeat是什么? Filebeat是用于转发和集中日志数据的轻量级传送程序。作为服务器上的代理安装,Filebeat监视您指定的日志文件或位置,收集日志事件,并将它们转发到Elasticsearch或Logstash等进行索引。filebeat工作方式 Filebeat的工作方式如下:启动Filebe...
原创
279阅读
0评论
0点赞
发布博客于 1 年前

field [offset] not present as part of path [offset]报错解决

标题是使用filebeat & ingest 进行message字段拆分映射时出现的错误。详细报错信息2020-03-24T10:16:13.672+0800 WARN elasticsearch/client.go:511 Cannot index event publisher.Event{Content:beat.Event{Timestamp...
原创
652阅读
0评论
0点赞
发布博客于 1 年前

Kibana学习&理解

注:本篇的kibana基于7.5.1版本Kibana是什么?kibana是一个数据可视化平台(展示与分析)。将es里面的东西通过各种图表展示出来,还可以执行es的各种搜索&监控Kibana环境搭建本篇的kibana也是用docker搭建的,因为比较简单。docker pull kibana:7.5.1docker run -d --name kibana...
原创
245阅读
0评论
1点赞
发布博客于 1 年前

ElasticSearch学习&&理解

目录ElasticSearch的环境搭建ElasticSearch的名词ElasticSearch查询出的数据格式ElasticSearch的架构ElasticSearch索引模板ElasticSearch数据持久化到磁盘的过程ElasticSearch的倒排索引ElasticSearch集群相关ElasticSearch中的节点种类ElasticSearc...
原创
116阅读
0评论
1点赞
发布博客于 1 年前

高性能MySQL&&MySQL架构

注:本篇是《高性能MySQL》第三版的读书笔记。基于MySQL5.5第一章、MySQL的架构与历史如下为MySQL的逻辑架构图最上层是正常的连接处理、授权认证、安全等。中间是核心的服务。查询解析、分析、优化、缓存预计所有内部函数,所有跨越存储引擎的功能都在这一层实现:存储过程、触发器、视图。第三层包含了存储引擎,存储引擎负责数据的存储和提取。MySQL服务器通过A...
原创
56阅读
0评论
1点赞
发布博客于 1 年前

Exiting: error loading config file: open filebeat.yml: permission denied

使用docker 运行filebeat 出现的问题。 这个是因为你宿主机的目录权限与容器内部的filebeat文件权限不一致导致的。docker logs filebeat 看一下 就是标题的错误。不防先进去容器看一下(不映射,先跑起来)docker run --name filebeat --rm -d elastic/filebeat:7.5.1docker exec -...
原创
2751阅读
1评论
1点赞
发布博客于 1 年前

Http 权威指南&重定向与负载均衡

注:本文是HTTP权威指南这本书读的过程中记录下来的一些case第十五章、实体和编码
原创
53阅读
0评论
0点赞
发布博客于 1 年前

Http 权威指南&识别、认证与安全

注:本文是HTTP权威指南这本书读的过程中记录下来的一些case第十一章、客户端识别与cookie机制
原创
143阅读
0评论
0点赞
发布博客于 1 年前

Http 权威指南&HTTP结构

注:本文是HTTP权威指南这本书读的过程中记录下来的一些case(随心记录)五、Web服务器Web服务器实现了HTTP和相关的TCP连接处理。管理Web服务器提供的资源,对Web服务器配置、控制及扩展方面的管理。Web服务器一般做如下操作1、建立连接----接受一个客户端连接,或者不希望建立连接就关闭。2、接收请求----读取HTTP请求报文。3、处理请求----对请...
原创
121阅读
0评论
0点赞
发布博客于 1 年前

no pg_hba.conf entry for host x.x.x.x user postgres database postgres ssl off

上述这个报错是 pg_hba.conf 这个文件没有开放连接导致的。只需添加你想要访问pg的机器的IP 比如 10.95.222.222 想访问 某个机器上安装的pg那么安装pg的机器上的pg_hba.conf 文件中应该添加如下的命令、 并重启pg服务。即可正常访问。host all all 10.95.222.222/32 trus...
原创
248阅读
0评论
0点赞
发布博客于 1 年前

Http 权威指南&Web基础

注:本文是HTTP权威指南这本书读的过程中记录下来的一些case一、http概述媒体类型 MIME 例如 image/jpeg 有数百个MIME类型对于URI和URL的理解: http://localhost:8080/login/index.html带颜色部分可以理解为URI 全部可以理解为URL 而URL一定是URI URL是URI的一个子集、URL说明了协议...
原创
172阅读
0评论
0点赞
发布博客于 1 年前

Nginx相关&理解

nginx是一个非常好的技术点,javaWeb可以用到。php更是与nginx有lnmp的组合说法。网站开发可以说nginx是炙手可热的一个技术点了。本篇博客把我对nginx的了解记载下来。后续对nginx的了解也会补充到这篇文章。文章会从如下几方面进行记载。一.nginx是干什么用的?二.nginx的优势是什么?三.nginx的优势是怎么做到的?四.配置文件相关。五.ngin...
原创
144阅读
0评论
0点赞
发布博客于 2 年前

Docker容器与主机映射相关&docker-compose

本篇是实际项目中,使用到docker-compose这个东西,又补习了卷的概念。于是重新学了一下。记载下来。卷首先说一下这个卷是干啥用的。主机中的文件映射到容器里。达到主机改动文件,容器也能得到改动。还能达到持久化的作用。拿nginx来举例。nginx配置了一个server,这个server指定的了一个文件的目录。然后把nginx起起来了。我们访问nginx配置的server域名做...
原创
1191阅读
0评论
0点赞
发布博客于 2 年前

重学 Golang

前言这两个月看的golang的教程也不少。但是总感觉自己的基础知识不扎实。本篇为看完一本书记载的。后续会不断补充。本篇博客不会记录太基础的知识。如果需要基础知识,教程有的是。本篇记录一下一些重要的用法和自己的理解。本篇也不会写的很深因为我golang水平并不高。只是作为一个入门笔记。在本篇之前可以学习下基础教程:https://golangbot.com/一 初识Gog...
原创
1503阅读
0评论
0点赞
发布博客于 2 年前

Golang 从gopath到 go modules

一 前言Golang是最近新学的语言。偶尔使用一下。属实好用。golang默认使用gopath来管理jar包、gopath 有一个很严重的问题。 当你本地开多个项目的时候,没法让不同项目对应不同的jar包版本。这样很蛋疼的。如果引入的jar版本是不向下兼容的话,那开发的时候都可能会出现很多问题。比如我的jar有这个方法。你的没有。很难玩的。像java的maven是配置jar版本在pom...
原创
1353阅读
2评论
1点赞
发布博客于 2 年前

Oauth2是什么&怎么用

一 Oauth2这个是为了方便安全的用户(第三方)登录用的。一开始听见oauth2这个词肯定是很懵的。这是啥,鉴权用的?认证用的?授权用的?跟shiro(java)是一个东西吗?其实oauth就是一个流程。我们根据这个流程的要求写代码、oauth有一个授权服务器。是作为用户的认证用的。对于服务端来说只需实现一个oauth的授权服务器。对于用户来说(调用授权认证的研发)只需根据流程发请求...
原创
2424阅读
0评论
0点赞
发布博客于 2 年前

Kafka相关&理解

一.安装本文采用的安装方式是Ubuntu:16.04 版本的Linux安装。先找个目录准备wget下载kafka的安装包 kafka下载地址是这http://kafka.apache.org/downloads.htmlcd /homewget http://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.3.0/kaf...
原创
74阅读
0评论
1点赞
发布博客于 2 年前

Git remote: HTTP Basic: Access denied Authentication failed for 'https://xxxxxxxxxx.git/'

windows用户C:\Users\zhangyong\.git-credentials 这里面记录全干掉。然后再pull/push重新输入密码就好了。
原创
749阅读
0评论
1点赞
发布博客于 2 年前

Dockerfile中的expose到底有啥用

如题,看过Dockerfile常识的肯定都知道这个EXPOSE指令是暴露容器的端口。docker run 的时候指定 -P 或者 -p 将容器的端口映射到宿主机上。这样外界访问宿主机就可以获取到容器提供的服务了。-P命令可以结合这个dockerfile文件中的EXPOSE暴露的端口。会将容器中的EXPOSE端口随机映射到宿主机的端口。实际操作一下。例如dockerfile中这...
原创
14020阅读
6评论
6点赞
发布博客于 2 年前

postgreSql入门相关&理解

文章没涉及太底层的原理,个人把觉得欠缺的和重要的以及发现的一些新鲜用法记录在这篇博客。标题四和标题五为文章重点,不分先后。文章涉及索引的例子我创建了三百万条数据真实测试才写的。一!安装Linux如何安装PG可以参考网上搜的这篇文章:https://blog.csdn.net/zhu_xun/article/details/21234663或者官网这篇:http://www.post...
原创
182阅读
0评论
1点赞
发布博客于 2 年前

Docker 入门之DockerFile

本篇记录一下DockerFile怎么写。1. 关于dockerFileDockerfile 是一个文本文件,其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。 因此不要写太多指令,可以将多个指令写在一条。首先创建一个文件夹然后进入这个文件夹创建一个名字叫 Dockerfile 的文件。如下我创建一个dock...
转载
270阅读
0评论
0点赞
发布博客于 2 年前

Docker 入门之镜像&容器

先介绍一下镜像1.从docker registry 获取镜像docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]Docker 镜像仓库地址:地址的格式一般是<域名/IP>[:端口号]。默认地址是 Docker Hub。 仓库名:如之前所说,这里的仓库名是两段式名称,即<用户名>/<软件名&...
原创
97阅读
0评论
0点赞
发布博客于 2 年前

Docker 入门须知。

注:文章内容均是摘自https://yeasy.gitbooks.io/docker_practice/content/ 部分内容加上自己的理解,方便自己后续查看!一 简介docker是使用go语言开发的。Docker 最初是在 Ubuntu 12.04 上开发实现的;优势:1.启动快。传统的虚拟机技术启动应用服务往往需要数分钟,而 Docker 容器应用,由于直接...
转载
152阅读
0评论
0点赞
发布博客于 2 年前

ConcurrentHashMap实现概述&JDK1.8

本文是按照JDK1.8编写的。我们使用的HashMap作为共享资源被多线程操作时是会出现线程安全问题的。注 : 1.8中HashTable和ConcurrentHashMap的key和value值都是不可以为NULL的,NPE例如:map扩容重哈希死循环问题。具体不做解释了。可以用HashTable&ConcurrentHashMap代替HashMap来规避这些err...
原创
244阅读
0评论
1点赞
发布博客于 2 年前

EffectiveJava(7)之方法

注:本文是《Effective Java》学习的笔记。本片叙述如何处理参数和返回值,如何设计方法签名,如何为方法编写文档。49.检查参数的有效性大多数方法和构造器对于传递给它们的参数值都会有某些限制。例如,索引值必须是非负数,对象引用不能为null,等等。应该在文档中清楚的指明这些限制,并且在方法体的开头处检查参数,以强制施加这些限制。如上是发生错误之后尽快检测出错误的原则。...
原创
70阅读
0评论
0点赞
发布博客于 2 年前

EffectiveJava(6)之Lambda和Stream

注:本文是《Effective Java》学习的笔记。Lambda 和 Stream是 java8加进来的。真的特别好用。写出来的代码很漂亮。还增加了函数式接口和方法引用等。42.Lambda优先于匿名类用comparator排序器来举一个例子。下面是匿名类形式package zy.service.effective.six;import java.util.ArrayLis...
原创
1798阅读
0评论
1点赞
发布博客于 2 年前

EffectiveJava(5)之枚举和注解

注:本文是《Effective Java》学习的笔记。Java支持两种特殊用途的引用类型,一种是类,称作枚举类型。另一种是接口,称作注解类型。34.用enum代替int常量枚举类型有两个特征,一是它可能的值是有限的且预先定义的,二是枚举值都有一个顺序枚举之前常常使用int常量来存储常量数值,它存在些许不足。int常量方式没有类型安全性。没有可描述性。int常量是编译时常量,它们的i...
原创
141阅读
0评论
0点赞
发布博客于 2 年前

EffectiveJava(4)之泛型

注:本文是《Effective Java》学习的笔记。26. 请不要使用原生态类型。如果使用原生态类型,就失掉了泛型在安全性和描述性方面的所有优势。原生态类型例如。 List 这就是原生态类型, 而我们要加上泛型。 List<R> 做出了限制。编译期避免了classCastException而使用 ?通配符会限制存取。 31条会说明。27.消除非受检的警...
原创
93阅读
0评论
0点赞
发布博客于 2 年前

EffectiveJava(3)之类和接口

注:本文是《Effective Java》学习的笔记。还是想安利一下这本书,感觉真的不错的。15.使类和成员的可访问性最小化尽可能地使每个类或者成员不被外界访问。缩小访问权限。 注意:如果方法覆盖了超类中的一个方法,子类中的访问级别就不允许低于超类中的访问级别。如下代码是成立的,扩大了tests方法的访问权限。public abstract class CC { ...
原创
1645阅读
0评论
2点赞
发布博客于 2 年前

EffectiveJava(2)之所有对象通用的方法

注:本文是《EffectiveJava》的学习笔记。文章引用的Java源码都是JDK1.8版本的源码。10.覆盖equals时请遵守通用约定equals是Object这个超类的方法。我们常用这个方法判断逻辑相等。equals是可以继承的,所以父类实现后,子类不实现也可以使用equals来判断逻辑等。规定满足如下。自反性、对称性、传递性、一致性。(其实挺简单的概念)x.equals(x)...
原创
794阅读
0评论
2点赞
发布博客于 2 年前

EffectiveJava(1)之创建和销毁对象

注:本文是《Effective Java》学习的笔记。刚看完《java编程思想》这本书。看到网上又推荐了一个叫《EffectiveJava》第三版的书就入手了。这本书意在更有效的java编程。提供了多条不同使用时的建议。一: 创建和销毁对象(与创建型设计模式有关)1.用静态工厂方法代替构造器。此处的静态工厂方法与设计模式中的工厂方法不是一个。此处所指的是除了公有public的构...
原创
111阅读
0评论
0点赞
发布博客于 2 年前

rsync 远程同步记录--解决password-file权限问题。

一。简介rsync 是一个做远程同步用的Linux命令。 (文章没有提及Windows版的cwrsync)安装方式:1.ubuntu apt-get install rsync 2. centosyum install rsync 不再赘述。启动:客户端和服务端都得启动。 rsync --daemon 就启动了。ps -ef|grep rs...
原创
3652阅读
0评论
0点赞
发布博客于 2 年前

Name Error: The domain name does not exist 解决

正常添加本地域名需要修改C:\Windows\System32\drivers\etc 下面的hosts文件。改完之后访问的效果跟你浏览器输入127.0.0.1的呈现结果是一样的。 比如 127.0.0.1 www.zy.com 你添加这一行。你在浏览器输入www.zy.com 就会自动解析到127.0.0.1 的80端口。而可能会出现如标题的问题。解析不...
原创
3688阅读
0评论
1点赞
发布博客于 2 年前

SpringBoot跨域请求问题

今天使用springboot写Web后台时遇到了同样的跨域问题。1.跨域问题最笨的解决办法就是在controller层通过给响应 httpservletResponse 对象添加header但是这样每一个接口都得写。response.addHeader("Access-Control-Allow-Origin", "*");2.还可以使用filter过滤器。请求打过来的时候拦截,做...
原创
77阅读
0评论
0点赞
发布博客于 2 年前

Windows安装Docker整理

网上搜Windows安装docker 应该是有两种方式,一种是使用DockerTool 一种是使用 Docker for windows 的一个官网可下载exe安装包。这两种我都使用过。推荐使用Docker for windows.exe 这种方法。下面介绍安装Docker的必备环境。Windows10 系统中 docker for windows 目前只能在 64 位的 Wind...
原创
244阅读
0评论
1点赞
发布博客于 2 年前

shell 学习笔记

Shell简介这个shell是用c语言编写的。行走在Linux下的脚本。Shell 编程跟 java编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。Linux的shell脚本种类有很多种。1.Bourne Shell(/usr/bin/sh或/bin/sh) 2.Bourne Again Shell(/bin/bash) 3...
原创
91阅读
0评论
0点赞
发布博客于 2 年前

Vim 学习笔记

首先附一张Vim的键盘图。分清模式vim有三种模式,命令模式,输入模式,底线命令行模式。你执行 vim a.txt 进入的是命令模式。我们可以按x删除光标所在字符。双击d也能删光标行的数据(一)我们使用 i 命令进入到输入模式,此时下面写着insert 我们就可以编辑这个a.txt了。Backspace / Delete 是删光标的前面字符和光标选中字符。Pg...
原创
66阅读
0评论
1点赞
发布博客于 2 年前

解决Vue 没有static目录无法动态加载图片的404问题

最近在写毕设,接触到的Vue。 发现vue -V 2.9.6 版本的项目目录下面没有所谓的build 目录也没有static目录。下面是我的项目目录结构。1.首先说一下,我没有改配置。这个目录结构有main.js webpack.config.js这两个主要的配置文件。在解决这个问题时我没有做任何修改。2.我想实现的是数据库里面存的图片路径,然后在img标签中src属性直接...
原创
5298阅读
0评论
1点赞
发布博客于 2 年前

我的毕业设计前端技术栈

后端使用的springboot。 前端我使用的是 Vue 之前也没怎么写过前端。这个前端写的我是相当爽啊。各种奇葩问题我都遇到过、至于学习的方式。我是看官网的一些文档学的。由于没怎么做过前端。一些细节我也解释不清楚。一.使用到的模块使用到了 webpack element-ui vue-router vue-resource vue-awesome-swiper sessio...
原创
1800阅读
6评论
0点赞
发布博客于 2 年前

我的毕业设计后端技术栈

这篇文章是我写毕设后端遇到的一些问题。一技术栈最近在写毕业设计。对于后端的技术栈我是由以下技术完成的。对于毕设内容不作介绍了。说一说遇到的一些问题和如何解决的。java1.8 springboot2.1.3 maven mysql 5.7 redis 2.18 mybatis tk-mapper jetcache freemaker webSocket g...
原创
796阅读
0评论
1点赞
发布博客于 2 年前

Tk-Mapper报错集锦

1. 包扫描路径导致的问题。项目启动报错java.lang.NoSuchMethodException: tk.mybatis.mapper.provider.base.BaseSelectProvider.<init>() at java.lang.Class.getConstructor0(Class.java:3082) ~[na:1.8.0_66] at j...
原创
474阅读
0评论
0点赞
发布博客于 2 年前

Jenkins结合Github从0到1(所有遇到的报错及解决)

本文写Jenkins和GitHub的结合使用。至于为什么用这个叫Jenkins的东西。因为部署自动化,省去了代码打包编译部署发布到服务器上的操作。只需你把代码提交到代码仓库,这一切都由Jenkins帮你做了。关于Jenkins,maven在Linux环境安装可以看我的这篇文章:https://blog.csdn.net/finalheart/article/details/89001665...
原创
1601阅读
0评论
2点赞
发布博客于 2 年前

我的 Linux 软件安装(Ubuntu)

全文是乏味的命令行。我是在我租用的阿里云服务器上玩的。会不断的更新:2019-4-21 新加mysql乱码问题。方便后续操作。1.mysql安装sudo apt-get updatesudo apt-get install mysql-serversudo apt-get install mysql-clientsudo apt-get install libmysqlcl...
原创
149阅读
0评论
0点赞
发布博客于 2 年前

Git本地保存密码&SSH公钥配置

Gitgit有两种方式克隆仓库。https 和 sshhttps就是传统的用户名密码方式。需要配置一下永久存储。git config --global user.name 'gitname'git config --global user.email 'youremail'git config --global credential.helper store注:重点。...
原创
2598阅读
0评论
0点赞
发布博客于 2 年前

springBoot搭建redis mysql mybatis项目

本文打算使用springBoot + mybatis + mysql + redis搭建一个maven项目。使用的编辑器是Idea首先新建一个项目选 spring initializer 然后一路next 选 web,mysql,mybatis,redis 这几个starter。创建好的pom大概如下所示<dependencies> <dependency...
原创
1737阅读
0评论
4点赞
发布博客于 2 年前

Idea Java开发修改的配置总结。

一.下载完Idea做Java编码。首先设置一下字体。要不字太丑。二。idea配置maven1.这个是你下载的apache maven位置。2.这个是你的settings配置文件位置。3.这个是你本地maven仓库位置。tips:" 如果你在idea的终端使用命令不好使,但是外部使用没毛病。那就开启Idea时候选择使用管理员身份启动。三:修改大小写敏感设置,这样你...
原创
206阅读
0评论
0点赞
发布博客于 2 年前

入门node.js笔记&结合AWS-lambda遇到的坑及解决

运行node 是一个单进程单线程的东西。但是可以用回调来异步使用。首先需要下载node.pkg 去官网下就行了。然后配置环境变量。把这个红框的加进去就行了。/etc/profile /etc/paths ~/.bash_profile ~/.bash_login ~/.profile ~/.bashrc 这个是系统配置的路径。 当前配的~/.bash_profilenod...
原创
2210阅读
0评论
0点赞
发布博客于 2 年前

JDK1.8新特性CompletableFuture总结

CompletableFuture这个completableFuture是JDK1.8版本新引入的类。下面是这个类。实现了俩接口。本身是个class。这个是Future的实现类。使用completionStage接口去支持完成时触发的函数和操作。一个completetableFuture就代表了一个任务。他能用Future的方法。还能做一些之前说的executorService配合fu...
原创
38710阅读
3评论
18点赞
发布博客于 2 年前

AWS-ApiGateway403-messageNull解决历程

问题描述最近在尝试使用AWS的APIGateway服务时发现调不通。具体细节如下。1.我是按照AWS-apiGateway帮助文档中的例子来尝试的。PetStore这个例子。以为这样就稳了,不会出现错误了。我使用的例子是代理集成。文档如下。https://docs.aws.amazon.com/zh_cn/apigateway/latest/developerguide/api-gat...
原创
905阅读
0评论
0点赞
发布博客于 2 年前

java之并发&线程(五)

本文说一下并发包的一些额外常用构件。基于JDK1.8CountDownLatch这个构件的作用是同步任务。例如:在3个线程中跑3个任务。第三个任务需要等待前两个任务完成之后执行。假设三者之间不需要返回值的耦合也不需要彻底同步执行。例:做菜时。1.放盐。2.放鸡精。3.做好乘盘。  这是三个任务第三个任务需要等前两个完成在进行。对于需要任务返回值的情况。我们用Future&l...
原创
80阅读
0评论
0点赞
发布博客于 2 年前

java之并发&线程(四)

关于线程安全:1。常量肯定是线程安全的,因为他不能变啊。你想不安全也不知道咋不安全。2。静态变量肯定是线程不安全的,注意我说的是变量。因为这个静态变量是要放在方法区中被多个线程所共享的。所以多个线程操作的时候肯定不安全。3。实例变量对于单例模式是不安全的(以spring为基本)。因为单例模式下的实例变量是初始化时候放到堆中。4。局部变量是安全的。下面是测试 使用的测试软件是...
原创
163阅读
0评论
0点赞
发布博客于 2 年前

java之并发&线程(三)

JavaSE5提供了一个方便操作线程的方式。下面是一个run方法。在使用时可以用executor。代替了你调用start。execute(Runnable)方法runnable 必须不为空。Runnable为空是nullpointexception。当无法执行runnable时rejectedExecutionException。Tips:executor正在关闭并且不想接...
原创
105阅读
0评论
0点赞
发布博客于 2 年前

java之并发&线程(二)

在并发量高一些的情况下。if(a == 10){     a = 5;}假设a是一个实例变量而不是局部变量,此时就可能会产生问题。在一个线程调用 if 部分时,另一个线程将a的值修改了。这时在堆中读取到的a的值是修改后的值,导致程序结果不正确。 计算机在执行程序时,每条指令都是在CPU中执行的,而执行指令过程中,势必涉及到数据的读取和写入。由于程序运行过程中的临时数据是存放...
转载
77阅读
0评论
1点赞
发布博客于 2 年前

java之并发&线程(一)

java作为一个顺序型语言加上了线程操作多任务。也就是处理并发。对于操作多任务并发的场景也有专门针对并发的语言。操作系统中处理多任务有进程和线程的概念。进程是静态的。就是你运行一个APP就起了一个应用程序。而你这个应用程序也可能是多个进程在跑。因为进程也是处理多任务的一种方式,只不过操作系统对于进程的数量和开销很宝贵有限制。对于计算机来说是由中央处理器CPU来处理任务的。一个CPU当下...
原创
57阅读
0评论
0点赞
发布博客于 2 年前

OkHTTP3 学习笔记(结合HTTP请求&postman)

本文说一下最近有用到的 okHttp3 这个jar包 这个包是用来发送HTTP请求的。注:文章是一步一步进行的。没有直接写这个请求咋发,那个响应咋处理。应用场景就是 你项目中需要调其他人的接口。比如说你是Java开发,基于服务化开发。这时要想兼容其他语言。例如 Python 。你需要调Python的接口获取数据。你就可以用这个包来操作。发送Get Post RestFul的HTTP...
原创
3092阅读
0评论
0点赞
发布博客于 2 年前

com.alibaba.fastjson学习笔记

com.alibaba.fastjson说一下好多人都在用的一款json包。本文是操作一些json,jsonObject序列化各种异常之后写的。由于项目在使用这款json包。特意举一些demo详细记录一下。首先这款json包是一款性能非常好的json包,至于为什么性能好,我也不知道。大家都这么说。那我也这么说吧。反正也在用。本文只说很多方法的使用。不说各个版本的区别什么的。因为我也不知...
原创
33080阅读
6评论
10点赞
发布博客于 2 年前

Java之字符串&equals、==、包装类、常量池

在java中有三中对字符串的操作方式。注:文章只注明思路原理。不注明方法,看API就行了。文章就涉及到啥写啥了,哈哈,瞅着可能乱一点。但是这么写就很舒服1、String 常量 效率较低 指的是多进行字符串拼接操作时的效率 final2、StringBuffer 变量 效率其次 多线程安全3、StringBuilder 变...
原创
277阅读
1评论
1点赞
发布博客于 3 年前

java基础之异常&处理手段

在说一下java的异常机制吧。啥是异常呢?就是程序由于某种原因走不通了。java中异常的最高父类是throwable这是父类中的方法private Throwable cause = this; //throwable的一个变量这个cause表示的是原始异常。throwable的子类构造可以接受这个参数。这样即使现在发生异常,也能知道之前那块发生了异常了。Except...
原创
138阅读
0评论
0点赞
发布博客于 3 年前

对于Freemaker的list嵌套list失败的解决方案

在做导出excel,word等操作时,使用的是freemaker模板引擎。但是最近遇到一个问题。对json数据做xml的映射时,出现了遍历list之后还要在内部再遍历一遍list的情景。例如:json:{    "outter": [{            "q": "q1",            "w": "w1",            "e": "
原创
736阅读
1评论
1点赞
发布博客于 3 年前

mac aws-cli安装问题

刚刚安装完  python3   pip  然后安装aws-cli 遇到一点小问题。$ pip install awscli --upgrade --user   安装aws-cli的命令输入aws 的时候告诉我命令找不到。  可想而知这个问题应该是aws 安装的包没有在本地环境变量中。伴随着这个解决问题的思路我就一顿找这个aws-cli的安装位置。我本地python3 安装的路径为/Li...
原创
433阅读
0评论
0点赞
发布博客于 3 年前

mac jenkins 8080端口启动 怎么杀都杀不掉

刚刚随便玩了玩Jenkins,然后就去撸代码了。不巧的是本地8080在Jenkins那已经被占用了,而我的springboot项目用的dev端口号巧合的也是8080,可想而知,端口号冲突,然后就试着在控制台将Jenkins干掉。查询到占用8080端口的是Jenkins ,用kill -9 PID 杀进程的时候提示告诉我。小伙子你成功了。可是我再次查询8080端口号的占用情况时,还是被占用...
原创
1996阅读
1评论
0点赞
发布博客于 3 年前