- 博客(17)
- 收藏
- 关注
原创 数据库设计——新零售
E-R图可以使用“亿图图示”绘制E-R图三要素1.实体 —用矩形表示2.属性 —用椭圆表示3.实体之间的联系 —用菱形表示E-R图的建立方法先确定实体和联系,再确定实体和联系的属性,最后在唯一标识符下面画上下划线。实体之间的联系1.一对一2.一对多多对多学生ID和课程ID是多对多的关系,可以建立一张关系表。............................................................
2022-04-22 21:19:31
4190
原创 java并发编程(慕课网)
1.多线程典型应用场景1.场景1:工作量太大,需要多人一块儿干,以缩短工期比如要完成书稿校对工作。显然一个人校对太慢了,那就多叫几个人吧!每个人分一个章节,同时进行校对,速度一下就上来了。如下图所示:如果程序需要重复执行一段逻辑,每次执行又互不影响,那么你可以考虑多线程,每个线程执行总量的一部分,最后再把每个线程执行的结果合并。2.场景2:实现分工,协作饭店一般有收银员、厨师、传菜员、清洁员。每个人各司其职,大家配合工作。每种角色的员工只关心自己的输入和输出,比如厨师的输入就是客户的点菜单
2022-03-31 17:12:08
635
1
原创 多线程与高并发(马士兵)
概况6大块内容:1.基本概念2.JUC同步工具3.同步容器4.线程池5.高频面试加分项6.Disruptor1.基本的概念 进程、线程 #### 1.创建线程的方式 1.new Thread().start() 2.new Thread(Runnable).start() 3.Executors.newCachedThreadPool()或者FutureTask + Callable #### 2.线程的3个方法 1.**sleep** 意思就是睡眠,当
2022-03-30 23:35:41
1413
原创 各种指标估算
在架构设计时,你是如何预估某个接口线上运行时的 QPS 范围呢?预估生产流量的3个办法:询问产品了解客户体量进行压测确定接口并发采用二八原则,将日常平均访问量*4,基本就是峰值 4. 做好监控和动态调整机制,如遇突发自动上调......
2022-03-29 11:10:55
113
原创 java避坑指南
java空指针和异常java空指针1.什么是空指针异常? java.lang.NullPointerException 空:内存地址 指针:引用 异常:运行时2.如何避免空指针?3.赋值时自动拆箱出现空指针1.现象:比如: Long a = null; long b = a; //拆箱会报java.lang.NullPointerException2.原理:invokevirtual #2 // Method java/la
2022-03-27 21:06:16
734
转载 23 种设计模式的通俗解释
01 工厂方法追 MM 少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是 MM 爱吃的东西,虽然口味有所不同,但不管你带 MM 去麦当劳或肯德基,只管向服务员说「来四个鸡翅」就行了。麦当劳和肯德基就是生产鸡翅的 Factory 工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如:如何创建及如何向客户端提供。02 建造者模式MM 最爱听的就是「我爱你」这句话了,见到不同地方的 MM,要能够用她们的方
2022-03-25 10:08:58
99
原创 读写分离|分库分表
MyCat读写分离.分库分表分库分表概述1.互联网大数据时代,如何解决数据库性能瓶颈2.读多写少的情况,采用读写分离3.海量数据的情况,采用数据切分数据切分方式1: 垂直切分数据切分方式2: 水平切分4.实现读写分离和数据切分的两种模式:模式一:中间层代理(例如Mycat)模式二:客户端模式(例如Sharding-jdbc)如何选择垂直切分/水平切分建议:先选择垂直拆分再考虑水平拆分垂直拆分1.按照业务去切分2.每种业务一个数据库(比如:用户库,订单库,商品库)3.不同业务之间
2022-03-02 23:04:55
1103
原创 Mybatis使用技巧收录
1.利用MyBatis Generator 插件自动生成实体,Mapper接口,xml文件:帖子:https://zhuanlan.zhihu.com/p/361321386
2022-02-19 23:51:22
165
原创 分布式锁的解决方案
超卖:商品卖出数量超出库存数量原因:用户同时扣减库存解决方法1:1.扣减库存不在程序中进行,而是通过数据库2.向数据库传递库存增量,扣减1个库存,增量为-13.在数据库update语句计算库存,通过update行锁解决并发...
2022-02-08 22:16:36
691
原创 多线程与高并发(咕泡)
在java中如何使用多线程1.实现Runnable接口创建线程public class RunnableThreadExample implements Runnable{ @Override public void run() { System.out.println("RunnableThreadExample.run"); } public static void main(String[] args) { Thread threa
2022-02-06 13:37:35
350
原创 4.新连接接入
分析新连接接入以及绑定reactor线程,绑定到selector的过程新连接接入概述 1.Netty是在哪里检测新连接接入的? 2.新连接是怎样注册到NioEventLoop线程的?新连接检测processSelectedKey(key,channel)-----入口NioMessageUnsafe.read()doReadMessages()----while循环javaChannel().accept()NioSocketChannel的创建new NioSocketChanne
2022-01-16 17:18:56
100
原创 2.Netty服务端启动
服务端启动的demo所有 Netty 服务端的启动类都可以采用如下代码结构进行开发。简单梳理一下流程:首先创建引导器;然后配置线程模型,通过引导器绑定业务逻辑处理器,并配置一些网络参数;最后绑定端口,就可以完成服务器的启动了。public class HttpServer { public void start(int port) throws Exception { EventLoopGroup bossGroup = new NioEventLoopGroup();
2021-12-30 23:15:39
1440
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人