- 博客(16)
- 收藏
- 关注
原创 谷粒商城购物车系统
Nginx购物车注册到购物中心先启动网关 再启动购物车系统先根据请求映射到虚拟机虚拟机根据Nginx转发给网关网关再转发给购物车2.购物车业务用户可以使用购物车一起结算下单给购物车添加商品用户可以查询自己的购物车用户可以在购物车中修改购买商品的数量用户可以在购物车中删除商品选中不选中在购物车展示商品优惠信息提示购物车商品价格变化存数据:NoSQL数据库比如mongodb但是一般放入redis(内存数据库)指定持久化策略怕宕机 不用mysql临时购物车 可以保存在loca
2021-05-27 11:40:33
227
原创 Spring IOC详解 以及 Bean生命周期详细过程
Spring IOC详解 以及 Bean生命周期详细过程IOC :控制反转对象交于容器控制 用户只关注业务需求反转就是让实例来找对象所以bean对象的创建是依赖容器的通过容器注入bean对象 也就是说容器会自动找到和bean对象匹配的类型实例注入到对象中。spring ioc的加载过程BeanDefinitionReader是加载配置文件的统一接口 由各个加载方式进行实现,如果后期你想要用json的方式进行配置 只需要实现这个接口即可。BeanDefinition:存储bean的定义信息
2021-05-25 11:04:51
416
原创 南方面试题锦
万丈高楼平地起!!!1.集合基础如果我想让list也去重应该怎么做?1)双重for循环去重遍历集合所有元素 然后进行判断是否有相同元素两两比较如果相等的话就删除第二个2)HashSet去重把List集合所有元素存入HashSet对象 接着把List集合元素全部清空 最后把HashSet对象元素全部添加到List集合中 这样就可以去重了。foreach(var item in hs){Console.writeLine($"")};console.ReadKey();3)java8新特性st
2021-05-24 15:05:29
137
原创 面试题集锦1
1.准备自我介绍2.dubbo踩过的坑?版本兼容问题比如说dubbo2.7.1只支持jdk83.自定义异常拦截器4.谈谈线程安全?进程的概念线程的概念线程安全:当多个线程访问某个方法时,我们在主程序中不需要去做任何的同步,这个类的结果行为就是我们设想的正确行为,那么我们就说这个类是线程安全的。保证线程安全的方法1).竞争与原子操作2)同步与锁3)可重入(并发安全的强力保障)4)过度优化(volatile)第一阻止编译器为了提高速度将一个变量缓存到寄存器而不写回第二阻止编译器调整
2021-05-22 17:11:31
142
原创 秒杀系统设计
01 | 遵循5个架构原则秒杀系统本质上就是一个满足大并发、高性能和高可用的分布式系统。架构原则:“4 要 1 不要”数据要尽量少请求数要尽量少路径要尽量短依赖要尽量少不要有单点
2020-12-07 11:57:48
103
原创 solr学习
solr学习1.克隆 centos-7-1908:solr2.设置ip./ip-staticip: 192.168.64.1703.两个文件上传到 /root/jdk-8u212-linux-x64.tar.gzsolr-8.1.1.tgz4.解压jdktar -xf jdk-8u212-linux-x64.tar.gz -C /usr/local/5.配置环境变量vim /etc/profile末尾添加下面两行:export JAVA_HOME=/usr/local/jd
2020-12-02 08:51:48
127
原创 数据库的优化(MySQL调优)
如何优化设计数据库时:数据库表、字段的设计,存储引擎利用好MySQL自身提供的功能,如索引等横向扩展:MySQL集群、负载均衡、读写分离SQL语句的优化(收效甚微)1.字段设计尽量使用整型表示字符串定长和非定长数据类型的选择尽可能选择小的数据类型和指定短的长度尽可能使用 not null字段注释要完整,见名知意单表字段不宜过多可以预留字段2.存储引擎选择选择MySQL的默认存储引擎InnoDB特点:1.按主键大小有序插入2.不产生空间碎片3.支持事务4.支持外键5.行级锁定、
2020-11-25 20:30:12
106
原创 redis基础
我们为啥要用redis?因为传统的关系型数据库如Mysql已经不能适应所有场景了,比如秒杀的库存扣减,app首页的访问流量高峰等等,都很容易把数据库打崩,所以引入了缓存中间件,目前市面上比较常用的缓存中间件有redis和Memcached.Redis 和 Memcached 的区别?Redis有哪些数据结构?基本五种结构:String Hash List Set SortedSet加分:玩过redis module...
2020-11-21 15:46:12
131
1
原创 谈谈您对java集合的理解
1.我们先了解一下集合框架图2.STL(c++模板库)中set底层实现方式? 为什么不用hash?3.hashset和hashmap的区别?HashSet底层声明了一个HashMap,HashSet做了一层包装,操作HashSet里的元素时其实是在操作HashMap里的元素。TreeSet底层也是声明了一个TreeMap,操作TreeSet里的元素其实是操作TreeMap里的元素。...
2020-11-21 11:16:47
285
原创 缓存穿透 缓存击穿 缓存雪崩
缓存穿透:缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求。解决:1.用bitmap 2.bitmap解决不了用布隆过滤器(Bloom Filter) 3.为请求设置一个值为null的缓存 设置较短的过期时间
2020-11-21 11:08:04
165
原创 你真的熟悉RESTful风格吗?
答.首先,我们明白restful是一种架构设计思想。我们先看REST是什么意思,英文Representational state transfer 表述性状态转移。说通俗点就是通过URL来定位资源,通过GET,POST,PUT,DELETE等进行增删改查
2020-11-20 20:23:51
170
原创 StringBuffer 线程安全与StringBuilder 线程非安全
/** * StringBuffer 线程安全 * StringBuilder 线程非安全 * @author 909974 * */public class Test1 { public static void main(String[] argaa) { MyString sb = new MyString(); StringBuilder sbBuilder = new StringBuilder(); StringBuffer st
2020-11-19 09:00:35
146
原创 java中静态代码执行顺序
1.Java中静态变量只能在类主体中定义,不能在方法中定义。 静态变量属于类所有而不属于方法。2.执行顺序优先级:静态块>main()>构造块>构造方法类的加载顺序 (1) 父类静态对象和静态代码块 (2) 子类静态对象和静态代码块 (3) 父类非静态对象和非静态代码块 (4) 父类构造函数 (5) 子类 非静态对象和非静态代码块 (6) 子类构造函数class Root{ static { System.out.println("
2020-11-18 21:15:01
207
原创 简析一个Java程序的执行过程
一、JDK①java.exe 解释器②javac.exe 编译器运行程序时候为程序分配三个区域:方法区(类的方法具体实现和类的成员变量声明),堆(程序运行时候使用new开辟的内存空间)和栈(程序实际运行所需的空间)。相关问题:java程序是如何运行的?是如何被JVM执行的?首先JVM找到包含main方法的类,然后将该类加载到方法区中。此时方法区包含该类的成员变量,成员方法(包括main方法)。接着执行main方法,此时在栈开辟一片区域用于main方法的执行。进入main方法里面,第一句是声明一
2020-11-18 19:59:41
131
原创 简单说说SpringCloud入门
1.HttpClient方式2.HttpClientDemo3.SOA思想4.RPC调用5.zookeeper集群5.Dubbo框架
2020-11-18 19:03:54
201
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人