fastjson
alibaba出品 12345<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>x.x.x</version></dependency> 12String text = JSON.toJSONString(obj); //序列化VO vo = JSON.parseObject("{...}", VO.class); //反序列化 JSON.toJsonString(Object)主要有两个方法将对象转换为json字符串 JSON.parseObject(String, Object.class)将json字符串转换为对象,转换的时候需要指定对应的对象类 https://github.com/alibaba/fastjson/wiki/Quick-Start-CN
SpringMVC
第四章、SpringMVC控制器开发详解 二4.1 核心要点 接受客户端(client)请求参数 [讲解完毕] 调用业务对象[讲解] 页面跳转 4.2 SpringMVC控制器调用业务对象【SSM整合】4.2.1 核心思路分析 4.2.2 编码 dispatcher.xml 1234567891011121314151617181920212223242526272829303132333435363738<context:component-scan base-package="com.baizhiedu"/><mvc:annotation-driven/><bean id="resolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!--路径--> <property name="prefix" value="...
git:rebase、merge
git:rebase 、mergegit merge–会有新的提交**在 Git 中合并两个分支时会产生一个特殊的提交记录,它有两个父节点。**翻译成自然语言相当于:“我要把这两个父节点本身及它们所有的祖先都包含进来。” 1234# 在master分支上git merge bugFix# 会生成一个新的提交在master上面 1234# 在bugfix去mergemaster,因为之前master已经合并 了,所以直接快速合并git checkout bugFixgit merge master 因为 master 继承自 bugFix,Git 什么都不用做,只是简单地把 bugFix 移动到 master 所指向的那个提交记录。 现在所有提交记录的颜色都一样了,这表明每一个分支都包含了代码库的所有修改 rebase–不会生成新的提交不要在master使用,在自己的分支使用即可 merge更加关注历史记录 git rebase。Rebase 实际上就是取出一系列的提交记录,“复制”它们,然后在另外一个地方逐个的放下去。 Rebase 的优势就是可以创造更线性的提交历史...
gitreset、revert
git reset、revertgit resetgit reset 通过把分支记录回退几个提交记录来实现撤销改动。你可以将这想象成“改写历史”。git reset 向上移动分支,原来指向的提交记录就跟从来没有提交过一样。 1git reset HEAD~1 Git 把 master 分支移回到 C1;现在我们的本地代码库根本就不知道有 C2 这个提交了。在reset后, C2 所做的变更还在,但是处于未加入暂存区状态。 git revert虽然在你的本地分支中使用 git reset 很方便,但是这种“改写历史”的方法对大家一起使用的远程分支是无效的 为了撤销更改并分享给别人,我们需要使用 git revert。 1git revert HEAD 在我们要撤销的提交记录后面居然多了一个新提交!这是因为新提交记录 C2’ 引入了更改 —— 这些更改刚好是用来撤销 C2 这个提交的。也就是说 C2’ 的状态与 C1 是相同的。 revert 之后就可以把你的更改推送到远程仓库与别人分享啦。 注意reset是HEAD^,而revert是HEAD
javaLong类型在前端json数据损失精度
方法一:重新生成pojo对象,将所有数据库类型为bigint都映射成String类 方法二:对于使用springboot,则增加配置代码: 12345678910111213141516171819202122232425262728293031package com.gj.app.config; import com.fasterxml.jackson.databind.ObjectMapper;import com.fasterxml.jackson.databind.module.SimpleModule;import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;import org.springframework.context.annotation.Configuration;import org.springframework.http.converter.HttpMessageConverter;import org.springframework.http.converter.json.Map...
netty--源码流程--结合NIO点位
https://www.processon.com/view/60ddb9aae0b34d238be316ca?fromnew=1
netty高性能网络框架原理
https://www.processon.com/view/608e06281e085376286d72ef?fromnew=1
iowait的CPU使用率升高-大量不可中断进程和僵尸进程
进程的不可中断状态是系统的一种保护机制,可以 保证硬件的交互过程不被意外打断。所以,短时间的不可中断状态是很正常的。但是,当进程长时间都处于不可中断状态时,进程很可能因为得不到硬件的响应,而长时间处于不可中断状态。 从 ps 或者 top 命令的输出中 D 状态,也就是不可中断状态 (Uninterruptible Sleep)。 等待 I/O 的 CPU 使用率(以下简称为 iowait)升高,也是最常见的一个服务器性能问题。 Linux 进程状态查看–top 的 S 列top的输出里面,S 列(也就是 Status 列)表示进程的状态。 R 是 Running 或 Runnable 的缩写,表示进程在 CPU 的就绪队列中,正在运行或者正 在等待运行。 D 是 Disk Sleep 的缩写,也就是不可中断状态睡眠****(Uninterruptible Sleep) 不可中断状态,表示进程正在跟硬件交互,为了保护进程数据和硬件的一致性,系统不允 许其他进程或中断打断这个进程。进程长时间处于不可中断状态,通常表示系统有 I/O 性能问题。 保证进程数据...
netty思维导图总结
https://www.processon.com/view/link/610420f01e0853746618739d
presto配置
presto启动时默认配置文件目录在安装目录下的etc下 每个节点的配置在etc下创建node.properties文件,配置如下: 123node.environment=productionnode.id=ffffffff-ffff-ffff-ffff-ffffffffffffnode.data-dir=/var/presto/data node.environment: 集群名字,一个集群内所有的节点必须一致。 node.id: 节点id,每个节点同一集群内保持唯一。 node.data-dir:节点数据目录,数据目录用于存放日志和服务的pid。 服务配置presto server分为coordinator和worker,coordinator可以认为是master节点,worker可以认为是计算节点。配置时在etc下创建config.properties文件。 coordinator配置如下:12345678coordinator=truenode-scheduler.include-coordinator=falsehttp-server.http.port=8...
