自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(87)
  • 资源 (2)
  • 收藏
  • 关注

原创 服务器发送一个TCP消息到底经过了哪些步骤?

场景服务端主动给客户端发送一条简单的TCP消息,具体的消耗有多大?所经历的步骤衍生问题1次发送3Kb的数据 和 3次发送1Kb的数据 性能差距大吗?系统调用次数?上下文切换次数?

2021-08-24 22:49:20 429

原创 事务原子性的实现方式

目录ACIDAtomicity 原子性Consistency 一致性Isolation 隔离性Durability 持久性原子性方案讨论两种简单的方案和一种复杂方案Direct IOBuffer IOSQLite数据库的Shadow Paging预写日志 + Buffer IO方案ACIDAtomicity 原子性整个事务的开启和提交算是一个整体。在事务开启过程中执行了一百个操作,如果最终提交失败了,这之前的操作也全部都会回滚。Consistency 一致性相较于其他几个特性很特殊,一致性的概念是

2021-06-17 23:08:07 605 1

原创 Java学习 -构造方法与匿名对象

构造方法主要是用于对象的初始化注意:任何对象都至少有一个构造方法,如果我们没有主动定义的话,编译器就会自动创建一个无参的构造方法!但是如果我们有定义构造方法的话,编译器就不会自动创建无参的构造方法! MyBatis有个坑,就是对象必须要有一个无参的构造方法,如果我们定义了有参的构造方法,就会导致异常。上诉的MyBatis报错参考:MyBatis报错构造方法是可以重载的。构造方法是没有返回值的,为的是给编译器来区分去构造方法和普通方法匿名对象匿名对象就是不把对象的引用赋值给任何变量。直接

2021-06-12 16:17:55 176

原创 Java学习 - 对象内存分析

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2021-06-12 14:15:50 134

原创 Erlang内存分配策略

场景:游服 erl虚拟机内存占用率过高,但是实际上的内存利用率非常低。原因是内存分配采用的是最快分配策略,会导致 1kb大小的数据占用 100kb大小的内存块,导致利用率低。原因:我们项目中频繁使用二进制数据,Port口请求、DB存储都有使用二进制数据,当二进制数据的长度超过64 bytes 时就会在堆内存开辟一块空间。数据库read之后,会把查询的值缓存一天,这个值占用的内存空间就不会被释放掉。而内存利用率低的原因个人认为是因为登录数据、战报数据开辟的空间比较大,而DB读取的数据比较小,小的数据占

2021-03-26 15:13:43 1345 1

原创 【Cowboy源码阅读-3】收到 http get 请求的处理流程

直接来看cowboy_http:loop/1,State 的主要参数: parent :: 不重要 ref :: http socket :: 不重要 transport :: ranch_tcp opts = #{ connection_type => supervisor, env => #{dispatch => [{'_',[],[{[],[],toppage_h,[]}]}]} }, peer =

2020-10-24 22:09:02 233

原创 【Cowboy源码阅读-2】Http服务器的启动流程

通过 examples中的 echo_get_app.erl 来顺着捋下来整体流程echo_get_app.erl中的start函数,Dispatch是一个路由逻辑,暂时先不细究,先看 cowboy:start_clear/3,调用cowboy:start_clear/3会开启一个 listener 的监督者cowboy:start_clear/3会先对参数进行格式化处理(List转Map等),其中比较有趣的就是ranch:normalize_opts/1中会处理 ack_timeout 的时间,读到这

2020-10-21 22:04:07 369

原创 【Cowboy源码阅读-1】将Cowboy及其依赖下载到本地,方便调试

先配置好Erlang环境和rebar3,Erlang的版本可以稍微高一点,很多公司用的Erlang版本都非常的旧,太旧的版本可能无法编译cowboy,我用的是 10.5 版本。windows系统配置rebar3可以参考我的另一篇博客:https://blog.csdn.net/yxw908186797/article/details/103192539直接在rebar.config的deps中配置cowboy的话,代码都是从git上下载的,我们比较难对源码进行自己的修改、调试。常规配置如下:{dep

2020-10-21 22:00:34 302

原创 bat 批处理学习记录

基础知识:a.bat 以 call 的方式调用 b.bat, b.bat可以直接使用a.bat中声明的变量。bat调用之后,均以 ERRORLEVEL 为返回值,0表示成功,1表示失败goto 可以跳转去执行特定的代码,例如@echo off set a="A" call 2.bat if ERRORLEVEL 1 goto failif ERRORLEVEL 0 goto succ :failecho ==============失败==============::做你想

2020-10-16 11:07:08 199

转载 erlang:get_stacktrace注意避开的坑

今天用rebar3编译代码的时候抛了个错:src/riak_sysmon_filter.erl:383: Warning: erlang:get_stacktrace/0 is deprecated and will be removed in OTP 24; use use the new try/catch syntax for retrieving the stack backtrace百度了一波发现:erlang:get_stacktrace()会在OTP 21中把它废弃掉,正确的用法erla

2020-10-13 15:56:48 1528

原创 Erlang rpc.erl 的学习记录

学习到的小知识:调用gen_server的call时, 如果先调用gen_server:reply(Form, Reply1)又返回{reply, Reply2, State} ,那么调用的进程收到函数调用的返回值Reply1,然后再收到 {Ref,Reply2} 。翻过来亦然,会先收到Reply2,再收到{Ref,Reply1}group_leader就是决定erlang的io控制台的输出到那个进程。https://www.iteye.com/blog/mryufeng-271706rpc.er

2020-09-29 20:49:51 325

原创 erlang知识点小结2

获取进程邮箱数量的代码erlang:process_info(self(), message_queue_len)

2020-06-06 09:32:27 273

原创 MyBatis报错Cause: java.lang.IllegalArgumentException: argument type mismatch

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: Error instantiating class priv.graduation_project.im_system.model.po.FriendApplyPo with invalid types (Integer,FriendApplyReq) or values (11,10

2020-05-15 17:32:10 1532 1

原创 MyBatis基于注解的SQL,获取自增id的正确操作

注意点!使用@Param(“chatGroupPo”)时,keyProperty必须写成类.属性,比如"chatGroupPo.groupId"传入的参数必须是实体类,而不是单单一个Integer @Insert("INSERT INTO chat_group(group_owner_id) VALUES (#{chatGroupPo.groupOwnerId});") @Options(useGeneratedKeys = true, keyProperty = "chat

2020-05-08 18:19:19 930

原创 linux下远端访问redis遇到的坑

redis的安装参考https://www.cnblogs.com/gaojingya/p/10600418.html但是上述文章有一个问题,就是没用关闭protected-mode(保护模式),并且绑定了ip。bind ip 视情况而定。本人注释掉 bind ip ,关闭了保护模式(protected-mode no)。外网就可以正常访问了。当然,记得开放端口的防火墙。...

2020-04-18 12:35:53 187

原创 2020/04 错误汇总

今天出现了一次使用MySQL注解插入数据库,返回值一直为null的问题。错误原因是@Insert用成@Select

2020-03-30 22:13:52 170

原创 CentOS安装PostgreSQL

安装打开https://yum.postgresql.org/repopackages.php ,找到自己需要的版本。或者打开下载地址查找。使用命令下载,大小就几KB,这是正常的。yum install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-latest-x86_64/pgdg-centos10-10-...

2020-03-22 18:38:25 147

原创 centos搭建JavaWeb环境(JDK1.8、Tomcat8.5)

先搭建Jdk环境检查是否已经自带了Java版本yum list installed | grep java如果有则卸载yum -y remove java* //表时卸载所有openjdk相关文件输入yum -y remove tzdata-java.noarch //卸载tzdata-java安装jdk这是查看可以使用yum安装的jdk版本yum search...

2020-03-21 15:49:46 197 1

原创 Module build failed: Error: Cannot find module '模块名'

cnpm install 模块名 --save-dev(关于环境的,表现为npm run dev 启动不了)cnpm install 模块名 --save(关于项目的,比如main.js,表现为npm run dev 成功之后控制台报错)...

2020-03-15 15:52:36 1324

原创 Vue学习第一节:component和router的使用

以下均是学习过程时当下的理解,仅是记录,对错自辨。componentcomponent文件夹需要自己创建,与assets同级。component不过就是一个小的界面,包含 html、css、js的代码,可以像div一样引用。创建一个<template> <div> <li> <router-link to="/seco...

2020-03-14 22:40:55 9798

转载 windows环境搭建Vue开发环境

这篇写的真的很详细!https://www.cnblogs.com/zhaomeizi/p/8483597.html

2020-03-12 23:12:07 95

原创 在windows下编译安装rebar

先安装好git bash在你选择好的目录右键鼠标,运行 Git Bash Here依次输入命令这里用的是码云的连接,git实在太慢了!git clone https://gitee.com/rebar3/rebar3cd rebar3./bootstrap最后一步会比较久,而且一开始是没有反应了,正常现象。出现下图即代表编译完成把clone下来的整个rebar目录添加到...

2019-11-21 23:07:48 781 4

原创 IDEA使Rebar编译Erlang项目

erlang的环境配置略过1、先在 Erlang External Tools 下载 Rebar。2、在 erlang compiler 中,勾选右侧的两个选框3、回到项目,如图4、点击弹窗左上角的 + 号。5、如图填写6、 在项目 src 的下面 新建一个“ job_center.app.src ” 文件代码如下{application, job_center, [ ...

2019-11-12 15:26:32 1365 1

原创 erlang知识点小结

1、 动态产生原子会内存泄漏?怎么动态的产生原子?(erlang趣学指南第6页)2、 函数中的最后一个表达式的执行结果会被自动作为返回值转递给调用者。3、 在Erlang社区中,在模块的概括性注释(模块是做什么的,许可证等)以及模块的区段分隔注释(共有代码、私有代码、辅助函数等)中使用3个百分号。在所有其它需要放置在独立行中的注释使用2个百分号(%%),并和周边的代码采用同样的缩进。防止代码之...

2019-11-03 23:25:00 581

原创 Erlang问题汇总

动态生成原子会内存泄漏?什么样算动态的生成原子?(erlang趣学指南第6页)为什么receive没有匹配的模式,消息会被保存起来供以后处理?这样不是浪费内存和性能吗?...

2019-11-02 17:34:46 304

原创 2019/11 错误记录

1、erlang读取当前目录的文件时,要在文件名前加上‘/’不然会出现异常“init terminating in do_boot ({{badmatch,{error,enoent}},[{road,main…”main() -> FileName = "/road.txt", io:format("~p~n", [FileName]), {ok, Bin} = file:...

2019-11-01 20:22:40 205

原创 init terminating in do_boot ({{badmatch,{error,enoent}},[{road,main,0,[{_},{_}]},{erl_eval,do_apply,

今天在复现《Erlang趣学指南》时,读取文件一直出现这个异常。这个异常出现的原因是因为路径不对(多半是因为空格)。-module(road).-author("pitt").%% API-compile(export_all).main() -> FileName = "road.txt", io:format("~p~n", [FileName]), {ok,...

2019-11-01 20:18:45 1118

原创 Soket编程小结

最近在学习Netty的时候发现自己一直在写业务代码,不重视底层知识的学习。在经过一段时间的知识积累之后,写这篇博客记录和梳理一下今日之所学。先看一段最简单的Java Soket代码。package test;import java.io.InputStream;import java.io.OutputStream;import java.net.ServerSocket;impo...

2019-10-14 12:13:43 229

原创 2020秋招Java面试题汇总

一、Java基础JDK1.6对Synchronized做了哪些优化?底层原理是什么?答:JDK1.6之前,Synchronized默认是重量级锁。而在JDK1.6之后,对synchronized优化,根据不同情形出现了偏向锁、轻量锁、自旋锁(或自适应自旋锁)、重量级等,因此,现在的synchronized可以说是一个几种锁过程的封装。根据不同的场景对锁进行膨胀,但是只能向上升级,不能向下退化...

2019-09-07 12:57:38 4174 3

原创 springboot打包后获取resources下的静态文件

springboot打包后是无法直接访问resources下的文件,必须通过ResourceLoader进行获取例如读取csv文件。//读取csv配对文件,初始化映射关系 File csvFile = null; InputStream stream = null; InputStreamReader reader = null; ...

2019-08-30 10:39:36 5478

原创 SLF4J: The requested version....打包后SLF4J Jar包冲突

今天遇到一个问题,写的一个MQ转发的工具,打成jar包后可以正常运行,但是一旦修改配置文件的数据后,就会报下面这个SLF4J异常!SLF4J: The requested version 1.6.99 by your slf4j binding is not compatible with [1.5.5, 1.5.6, 1.5.7, 1.5.8, 1.5.9, 1.5.10, 1.5.11]一...

2019-08-29 15:49:33 1182

原创 java:网络图片与二进制互转工具类、读取配置文件工具类

一、图片import lombok.extern.slf4j.Slf4j;import javax.imageio.ImageIO;import java.awt.image.BufferedImage;import java.io.*;import java.net.ConnectException;import java.net.HttpURLConnection;import...

2019-08-23 09:56:14 548

原创 使用http协议Header中的Authorization传递token

1、 @GetMapping("/token") public String testToken(HttpServletRequest request, HttpServletResponse response){ String token = request.getHeader("Authorization"); /* 对toke...

2019-08-09 17:46:30 51038 4

原创 AOP获取代理函数的参数名与值,参数不满足则不进入代理函数

一、自定义一个方法:private static Map<String, Object> getFieldsName(ProceedingJoinPoint point) throws ClassNotFoundException, NoSuchMethodException { Map<String,Object> map = new HashMap&...

2019-08-05 10:16:16 362

原创 windows 环境下 kafka网上的指令用不了?

重点!1、JDK的安装目录一定不能有中文,即使你用“PROGRA~1”代替“Program File”也不行!2、网上的大多数dos命令行都过时了,–zookeeper是基本都无法使用的指令。一、下载、配置zookeeper...

2019-08-03 09:47:42 104

原创 logback输出日志到自定义文件(按类、按业务)

一、按照类输出日志文件配置一个日志类别 <appender name="CrossStateService" class="ch.qos.logback.core.rolling.RollingFileAppender"> <filter class="ch.qos.logback.classic.filter.LevelFilter"> ...

2019-08-02 23:07:16 3447 3

原创 Java校验身份证号码的工具类

1.身份证最后的X应该是大写的,我在这个工具类中没有将小写转化为转化为大写,有需要这一点的需要自己转化。2.String[] wf = { “1”, “0”, “X”, “9”, “8”, “7”, “6”, “5”, “4”, “3”, “2” }; 顺序不能变!package com.hikvision.ctm05jotp.util;import java.text.SimpleDa...

2019-07-31 16:12:25 5450

原创 将List生成csv文件并将csv文件转OutputStream流传回前端

主要使用Java的泛型、反射、临时文件、文件流整体流程:1、要返回文件给前端,只需要获取response中的OutputStream,然后像其中写入文件流,就能返回前端进行下载了。这是controller层的代码 OutputStream stream = response.getOutputStream(); response.setContentType("...

2019-07-29 15:01:34 3188 1

原创 Oracle使用mybatis查询的结果和数据库不一致、插入数据提示主键赋值失败。

我的原因是因为表是别人创的!他没有设置主键!导致插入、查询的结果出现一些奇奇怪怪的错误!加上主键就好了。虽然就一句话,但是写成错误记录帖的话,怕帮助不到其他人。...

2019-07-28 17:52:31 703

原创 springboot配置kafka错误:[org.apache.kafka.clients.networkclient broker may not be available]

打开kafka按照路径中的config文件夹里面的server.properties找到 advertised.listeners这里一开始是被注释起来的改成如下图所示advertised.listeners=PLAINTEXT://127.0.0.1:9092springboot 的配置文件也对应 127.0.0.1spring: kafka: bootstra...

2019-07-15 17:58:01 6978

SSM框架课件

学校的JavaEE的SSM入门课件。 适合SSM框架的初学者。 包含示例的源代码!!含源码!

2019-03-04

maven官方下载bin文件

辛苦下载的,网速感人, maven是一个项目构建和管理的工具,提供了帮助管理 构建、文档、报告、依赖、scms、发布、分发的方法。可以方便的编译代码、进行依赖管理、管理二进制库等等。 maven的好处在于可以将项目过程规范化、自动化、高效化以及强大的可扩展性 利用maven自身及其插件还可以获得代码检查报告、单元测试覆盖率、实现持续集成等等。

2019-02-28

空空如也

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

TA关注的人

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