
架构师
MonkeyKing.sun
未来已来,记录现在,验证未来
展开
-
JDK1.8环境16G内存tomcatJVM参数设置
设置之后,GC的回收情况-server: 选择使用 Java HotSpot Server VM3。特点是启动速度比较慢,但运行时性能和内存管理效率很高,适用于生产环境。在具有 64 位能力的 jdk 环境下将默认启用该模式,而忽略-server 参数。-Xmn: 设置年轻代的初始和最大大小。建议将年轻代的规模保持在整体堆大小的一半到四分之一之间.-Xms: 指定 jvm 堆的初始大小,默认为物理内存的 1/64,最小为 1M;可以指定单位,比如 k、m,若不指定,则默认为字节。如果未设置此选项,则初始大原创 2022-06-08 21:25:48 · 5219 阅读 · 0 评论 -
jstat 详解
jstat 详解原创 2022-06-08 18:30:43 · 195 阅读 · 0 评论 -
grafana查看日志的方法
单个job查询{job="default/prometheus"}常见的实例{job="monitoring/prometheus"}{job="monitoring/kube-state-metrics"}{job="monitoring/promtail"}{job="traefik/prod-traefik"}{job="1442448583092736000/grafana"}组合查询:{app="cassandra",namespace="prod"}过滤搜索词的查询{原创 2022-05-06 21:18:14 · 8178 阅读 · 1 评论 -
小型网站简单性能指标
1、关键报名路径上的页面加载时长控制在5秒内。2、提交报名,报名成功的网站95%的响应时间控制在3秒内,最大相应时间控制在5秒内。3、网站不可以出现宕机,网站打不开现象。4、保证报名数据的准确性和正确性,数据的错误率为0%。5、关键性能指标:每秒钟系统能处理的报名接口的数量能达到(TPS):6000并发用户数:10000人,系统处理查询次数(QPS):30000...原创 2022-03-22 16:48:06 · 385 阅读 · 0 评论 -
jpa 根据distinct 多个字段,返回整个实体对象
prepostsql 可以这样根据多个字段查询过滤唯一值,并且找到所有的对象赋值select distinct on (b.tenant_id,b.user_id) b.* from billing_detail as b对应的spring jpa的写法 @Query(value="select distinct on (b.tenant_id,b.user_id) b.* from billing_detail as b", nativeQuery = true) fun findAllTena原创 2021-12-16 22:02:34 · 1564 阅读 · 0 评论 -
高并发系统的总结
Java的基本排序-冒泡排序public void bubbleSortArray(){ for(int i=0;i<n;i++){ for(int j=0;j<n-i;j++){ if(a[j]>a[j+1]){ int temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } }}冒泡排序的时间复杂度为o(n2)选择排序public void selectSortArray(){ int min_index原创 2020-10-28 23:15:23 · 147 阅读 · 0 评论 -
java的BIO同步阻塞模型
BIO(Blocking IO) 同步阻塞模型,一个客户端连接对应一个处理线程。java案例:import java.io.IOException;import java.io.InputStream;import java.net.ServerSocket;import java.net.Socket;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;/** * BIO原创 2020-08-06 12:28:49 · 221 阅读 · 0 评论 -
设计模式的六大原则
单一职责原则定义一个类,应该仅有一个引起它变化的原因核心思想:应该有且仅有一个原因引起类的变更问题描述:假如有类Class 完成职责T1,T2,当职责T1或T2有变更需要修改时,有可能影响到该类的另外一个职责正常工作。开放封闭原则类、模块、函数等应该是可以拓展的,但是不可以修改核心思想:尽量通过扩展软件实体来解决需求变化,而不是通过修改已有的代码来完成变化。里氏替换原则所有引用基类的地方必须能透明地使用其子类的对象依赖倒置原则高层模块不应该依赖于底层模块,两者都应该依赖于抽象。抽象不应该原创 2020-08-04 12:42:21 · 132 阅读 · 0 评论 -
Vo对象,Dao对象,Dto对象的部分属性复制BeanCopier&BeanUtils
在实际的开发中,存在Vo对象,Dao对象,DTO对象的部分属性复制的问题比较笨的办法 A.setxxx(B.getXXX),费时又费力,怎么解决这个问题呢?推荐使用两种对象属性复制的办法:对象属性拷贝的两种方式:1、BeanUtils(注意BeanUtils使用的是spring的Beanutils的)2、BeanCopier先准备三个Vo对象,Dao对象,Dto对象,后面我们对这三个对象进行拷贝和复制。@Data@AllArgsConstructorpublic class UserDo原创 2020-07-23 21:59:29 · 1009 阅读 · 0 评论 -
浅拷贝和深拷贝的整理
import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;/** * 浅拷贝: * 创建一个新对象,然后将当前对象的非静态字段复制到该新对象,如果字段是值类型的,那么对该字段执行复制。 * 如果该字段是引用类型的话,则复制引用但不复制引用的对象,因此,原始对象及其副本引用.原创 2020-07-20 22:40:50 · 738 阅读 · 0 评论 -
设计模式的6种关系
UML图中的六种关系,也是设计模式的6种关系1、依赖假设A类的变化引起B类的变化,则说明B类依赖于A类。UML中使用虚线的箭头表示 Java的实现代码:public class Driver { public void driver(Car car) { car.move(); }}public class Car { public void move() { System.out.println("向前走1000m");原创 2020-07-19 11:06:32 · 619 阅读 · 1 评论 -
Java 对象的向上转型和向下转型
public class test { public static void main(String[] args) { Teacher t = new Teacher(); t.setName("zhangsan"); Student s = new Student(); s.setName("lishi"); if(t instanceof Person){ /** .原创 2020-07-18 20:56:37 · 151 阅读 · 0 评论 -
线程start()和run()方法的理解
/** * 线程start()和run()方法的理解 * * Thread和runnable的区别 * */public class TestThread { public static void main(String[] args) { /** * java 7 之前声明线程 */ Thread t=new Thread(){ @Override public void原创 2020-07-17 22:38:22 · 169 阅读 · 0 评论 -
B树的学习
B树也是B-tree,是一个多路平衡查找树。描述一颗B树需要指定它的阶数,阶数表示了一个节点最多有多少个孩子节点,一般用字母M表示阶数。当M=2时,就是常见的二叉搜索树。一颗M阶的Btree的定义:1)每个节点最多有m-1个关键字。2)根节点最少可以只有1个关键字。3)非根节点至少有Math.ceil(m/2)-1个关键字。4)每个节点中的关键字都按照从小到大的顺序排列,每个关键字的左子树中的所有关键字都小于它,而右子树中的所有关键字都是大于他。5)所有叶子节点都是位于同一层或者说根节点到叶子节原创 2020-07-17 15:25:07 · 545 阅读 · 0 评论 -
红黑树的理解
理解红黑树之前,首先需要理解一下什么是2-3树为了解决二叉查找树的不平衡,2-3树孕育而生,2-3树能很好的实现树的平衡2-3树的节点不再是单一的2个节点,节点可能是2节点,3节点。2节点:有一个值,两个子节点。3节点:有两个值,3个子节点。红黑树其实是2-3树的一种只含有2节点的表现形式。红黑树的性质1、每个节点要么是红色的,要么是黑色的2、根节点必须是黑色的3、每个叶子几点必须是黑色的4、每个红色节点的两个子节点一定都是黑色的5、任意一节点到每个叶子节点的路径都包括数量相同的黑节原创 2020-07-16 19:09:22 · 164 阅读 · 0 评论 -
架构师面试系列-桶排序
一、Java 基础1.JDK 和 JRE 有什么区别?答:JDK是Java的开发工具,它不仅提供了Java程序运行所需的JRE,还提供了一系列的编译,运行等工具,如javac,java,javaw等。JRE只是Java程序的运行环境,它最核心的内容就是JVM(Java虚拟机)及核心类库。2.== 和 equals 的区别是什么?答:==是基本类型:比较的是值是否相同;引用类型:比较的是引用是否相同equals 本质上就是 ==,只不过 String 和 Integer 等重写了 equals原创 2020-07-02 10:20:38 · 164 阅读 · 0 评论