- 博客(33)
- 资源 (3)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 从头开始实现一个小型spring框架——实现Bean管理 IOC与DI(解决循环依赖)
手写Spring之 实现Bean管理(IOC与DI)写在前面一、bean管理什么是bean?bean优势二、依赖注入和控制反转控制反转依赖注入写在前面最近学习了一下spring的相关内容,所以也就想要照猫画虎地记录和实现一下spring的框架,通过阅读这些也希望能够消除对Spring框架的恐惧,其实细心阅读框架也很容易理解。mini-spring尽量实现spring的核心功能。文章写得很仓促...
2019-06-09 09:26:23
7101
11
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 从头开始实现一个小型spring框架——手写Spring之集成Tomcat服务器
手写Spring之集成Tomcat与Servlet一、Web服务模型及servletWeb服务器请求流程![在这里插入图片描述](https://img-blog.csdnimg.cn/20190605130519749.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9...
2019-06-05 20:18:24
3501
4
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 从头开始实现一个小型spring框架——手写Spring之实现SpringBoot启动
实现SpringBoot启动方式一、项目结构framework模块test模块二、步骤三、build验证四、小结最近学习了一下spring的相关内容,所以也就想要照猫画虎地记录和实现一下spring的框架,mini-spring尽量实现spring的核心功能。一、项目结构本项目使用gradle进行构建,其中mini-spring为根模块,包含两个子模块:framework模块和test模块...
2019-06-04 20:36:03
6321
9
原创 Java8 mac、linux使用jinfo,jstat命令报错问题 Can't attach symbolicator to the process
一、背景之前在最开始学习jvm的时候使用过一些java的监控命令,但是没有特别深入的去理解。工作之后最近重新学习,却产生了 ***Can’t attach symbolicator to the process***这样的报错,可以说出师不利。详细报错信息如下图:二、问题解决有的地方说是系统的安全权限有问题,有的地方说是 JDK 的 bug。经过一番整理,发现这个问题和平台有关系。...
2020-04-16 23:18:02
4284
5
原创 Nginx故障转移带来的雪崩问题
一、nginx故障转移我们都知道nginx可以用作负载均衡可以通过轮训、weight、ip_hash、url_hash、fair的方式很好的分散请求的压力。基于nginx阿里也有自己的tengin。同时Nginx可以对故障转移进行配置,相关的配置项如下所示:server { listen 80; server_name www.yourdoma...
2020-04-05 20:51:02
2384
原创 Lambda表达式和Stream操作
Lambda表达式Lambda是java8推出的新特性,在优化代码结构上有很大的便利。Lambda表达式是对匿名内部类的一种优化的语法。对比下面的例子就可以看出来lambda的写法更加简洁。//传统写法new Thread(new Runnable(){// 接口名 @Override public void run(){// 方法名 System.out.println("Thr...
2020-03-02 11:36:35
362
原创 压测指标
一、QPS,每秒查询QPS:Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。互联网中,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。二、TPS,每秒事务TPS:是TransactionsPerSecond的缩写,也就是事务数/秒。它是软件测试结果的测量单位。一个事务是指一个客户...
2020-01-14 10:38:55
6180
原创 并发编程之内存可见性
并发编程之内存可见性一、如何保证共享变量的可见性二、从number++看原子操作三、volatile适用场合四、重排序五、as-if-serial原则六、volatiele 和synchronized比较七、64位变量(long,double)一、如何保证共享变量的可见性volatile内存屏障 StoreStore。volatile执行写操作时,会在写操作后加入一条store屏障...
2020-01-03 15:44:07
260
原创 [Java面试]java笔试题总结
这里写自定义目录标题JVM总结二、Statement、PreparedStatement和CallableStatementdoGet和doPost合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,...
2019-08-07 20:55:47
4006
原创 大数据量数据库优化方案(Innodb避免进行全表查询)
首先考虑在涉及到where或order by的字句上建立索引where 中存在 is null使用like进行查询避免在where字句中使用!= 或<>操作符避免在where字句中使用or进行连接能使用between尽量减少in字句的使用,以及not in.不要在 where 子句中的“=”左边进行函数、算术运算或其他表达式运算,否则系统将可能无法正确使用索引。se...
2019-07-17 11:26:53
1141
原创 Java内存模型 看这篇就够了
Java内存模型写在前面一、什么是Java内存模型二、为什么要有内存模型2.1 CPU和缓存一致性2.2 处理器和编译器的指令重排2.3 小结三、Java内存模型的实现3.1 原子性3.2可见性3.3有序性四、总结写在前面在这之前首先我们要搞清楚Java内存模型存在的意义是为了解决并发编程存在的问题,不要与JVM内存结构相混淆。与Java内存模型不同,JVM内存结构描述的是Java虚拟机对不同...
2019-06-27 22:37:45
324
原创 JVM的client模式和Server模式(不要随便搞)
昨天朋友问了我一个问题,JVM client模式和Server模式之间的区别,对于这个问题之前并不知道,后来经过了一番查阅大致了解了一下,在这里简单做一下记录。一、如何查看JVM当前的模式想要查看JVM当前所处的模式很简单,只需要我们安装jdk时候的java -version命令就可以看到当然我们说的是Hot Spot虚拟机。二、启动上的差别Server模式启动时,速度较慢,但是一旦...
2019-06-27 19:54:46
2005
原创 简单的快速排序算法 java版本
简单的快速排序算法一、代码二、一、代码凡事先上代码import java.util.*;class QuickSort1 { private static void quickSort(int[] a, int lo, int hi) { if (lo >= hi) return; int pivot = partition(a, lo, h...
2019-06-04 11:04:57
1858
1
原创 Java位运算不一定比乘法快 (关于java数据运算的一些思考)
//乘法运算 long begin = System.currentTimeMillis(); int a = 256; System.out.println(a); for (int i =0;i<2000000000;i++) a = a * 356; long time =Sy...
2019-06-03 00:26:56
4526
4
原创 String的不可变性及StringBuilder原理
String的不可变性及StringBuilder原理一、String的不可变性为什么将String设计成不可变类?String类设置为不可变类的好处:二、StringBuilder的实现原理原理**append的实现****toString实现**一、String的不可变性关于String类型的具体分析,可以参考我另一篇博客第三小节的补充内容,有很详细的叙述。String 对象的两种创建...
2019-06-03 00:04:01
1957
原创 Java匿名对象的性能优势分析
Java匿名对象的性能优势分析1. 匿名对象2. Java创建对象的过程3. 性能差异存储上的性能差异垃圾回收上的差异4. 继续今天思考了一下java在使用匿名方式创建对象和普通的句柄方式对java传递对象的性能进行了一点简单的思考,可能不是很全面,在某些方面的理解也能有些偏差,欢迎各位大佬探讨指正!首先阐明结论:对于能够使用匿名对象进行对象创建和传递的时候,是具有一定性能优势的,尤...
2019-06-02 23:40:10
3432
原创 一文学会Mybatis Mybatis传入参数及返回类型
Mybatis传入参数及返回类型详解一、Mybatis的三种传入参数的方式1. 根据下标索引传值2. 使用@param注解进行参数传递3、通过map传递参数小结二、Mybatis的返回类型1、返回参数类型2、 指定返回resultType3、 指定返回resultMap一、Mybatis的三种传入参数的方式1. 根据下标索引传值通过传递参数的顺序进行索引,获得参数的值Public User...
2019-05-25 12:02:15
5111
原创 理解Spring家族生态体系
理解Spring家族生态体系第一阶段 spring-core第二阶段 spring-boot第三阶段 spring-cloud微服务第四阶段 spring cloud dataflow小结第一阶段 spring-core开发单体应用,提供便捷的数据库访问功能,还提供mvc功能,通过aop,ioc连接在一起,使得我们的程序能够做到低耦合,可扩展spring core;常用的ioc及aop 的...
2019-05-25 12:01:42
2693
原创 对Git工作原理的一些理解
Git 原理及工作流程一、Git原理:快照流二、Git对数据的存储方式三、Git的3种工作状态四、命令总结网上有很多关于git的教程,或copy或不完整,且大多停留于表面,看完之后对git仅有非常浅显的了解,有的只是对几条简单的命令进行了叙述。本文将结合git的设计原理和实现方法,帮助读者理解git,减少读者的学习成本。一、Git原理:快照流不同于我们常见的VCS对文件修改的保存方式(将它们...
2019-05-18 11:54:50
1885
原创 IDEA进行SSM框架整合(附源码)
IDEA进行SSM框架整合一、创建Maven项目二、配置pom文件三、创建相关的包结构四、 web.xml配置ServletDispathcer拦截五、Spring相关配置文件配置spring-dao.xmlspring-service配置spring-web六、数据库配置文件七、mybatis-config配置八、测试数据库测试Service和Controller测试一、创建Maven项目...
2019-05-13 15:12:57
3334
原创 理解java的回调机制
Java回调机制一、方法的调用模式理解接口和抽象类的设计理念二、回调场景三、小结最近学习了一下Java 的回调机制,查看了网络上的一些内容,并借鉴了一些在这里整理一下自己的思路。一、方法的调用模式(1)同步调用同步调用是最基本并且最简单的一种调用方式,类A的方法a()调用类B的方法b(),一直等待b()方法执行完毕,a()方法继续往下走。这种调用方式适用于方法b()执行时间不长的情况,因...
2019-05-10 16:09:30
4012
2
原创 final和static关键字辨析
final和static关键字辨析final关键字static关键字修饰成员变量和成员方法静态代码块static{}静态代码块与{}非静态代码块(构造代码块)final关键字final关键字被用于修饰 变量,方法和类final修饰的变量若为基本数据类型,值不可改变,如为引用数据类型,则引用指向不可改变。当final修饰一个类时,final类中所有的成员方法都会被隐式的指定为final类型...
2019-04-20 17:38:12
1788
原创 [JavaScript]理解JavaScript函数,类继承
JavaScript函数,类继承一、JavaScript函数二、函数的类属性和实例属性三、区分一个很重要的问题:四、继承机制的实现一、JavaScript函数js函数函数的声明:一般的函数声明function f(){}匿名函数声明var f = function(){}函数的调用直接使用函数名调用(这种调用方法是最直接也是最直观的调用方法,适合用作普通的...
2019-04-17 18:11:37
1865
原创 对Java类初始化顺序的一些理解
静态代码块:用staitc声明,jvm加载类时执行,仅执行一次构造代码块:类中直接用{}定义,每一次创建对象时执行。执行顺序优先级:(静态块| 静态变量) , main(), (构造块|成员变量) , 构造方法。括号内的内容根据声明的先后顺序进行执行。构造函数public HelloA(){//构造函数 }关于构造函数,要注意:执行HelloA helloA =...
2019-04-10 23:21:21
1684
原创 [Java基础]Java Collection集合框架底层数据结构精简总结
Collection集合ListArrayList:object数组LinkedList:双向链表线程安全? 否异同? ArrayList适合随机存取LinkedList适合插入删除操作,不适合搜索MapHashMap:数组加链表,拉链法解决冲突 1.8之后超过阈值转为红黑树以减少搜索时间 非线程安全 初始大小为16,每次扩容为原来的二倍HashTable:数组...
2019-04-07 15:21:00
2272
3
原创 1.8版本 最清晰理解Java内存区域划分
从Java的各种数据类型的存储看Java内存区域划分一、各种基本数据类型的存储我们先来看一段小代码:public class{ int a = 20; public static void main(String[] args){ int b = 10; String str1 = ”abc“; String str2 = new String("abc"); }}我...
2019-03-27 16:31:48
4170
3
原创 有关Java浮点数的一个有趣的例子以及一个尚未解决的疑惑(java在存储float值时采用的什么策略,是否存在舍入优化?)
有关Java浮点数精度丢失的一个有趣的例子以及尚未解决的疑惑本文章重点在于表述最后的例子和尚未解决的疑问,故对于浮点数相关概念只是简单进行叙述一、浮点数的存储模式Java 语言支持两种基本的浮点类型: float 和 double 。java 的浮点类型都依据 IEEE 754 标准。IEEE 754 定义了32 位和 64 位双精度两种浮点二进制小数标准。IEEE 754 用科学记数法以...
2019-03-23 19:47:28
1795
2
原创 Spring IoC概念理解、Spring对Bean的管理方式和几种注入方法的分析
Spring IoC概念理解、Spring对Bean的管理方式和几种注入方法的分析一、核心概念IOC: 控制反转( Inversion of Control)/依赖注入(Dependency Injection) :由Spring容器负责对象的生命周期和对象之间的依赖关系如何理解控制反转?谁控制谁? IOC容器控制对象。传统的开发模式,我们都是采用直接new对象的方式来创建对象,每个...
2019-03-23 17:18:33
2408
原创 Java包装类及自动装箱、拆箱
Java包装类基本类型大小包装器类型boolean/Booleanchar16bitBooleanbyte8bitByteshort/16bitShortint32bitIntegerlong64bitLongfloat32bitFloatdouble64bitDoublevoid/Void...
2019-03-19 15:00:31
4656
3
原创 Java注解学习,反射机制获取由注解标记的信息并构建sql查询语句
java注解学习笔记一、jdk中的注解都属于编译时注解@Deprecated 注解表示方法已过时@Suppress Warning注解:忽略由Deprecated注解造成的警告二、java第三方注解Spring中的注解@Autowired注解@Service注解@Repository注解Mybatis中的注解@InsertProvider@UpdatePro...
2019-03-17 10:05:50
2000
原创 python+selenium+chrome实现淘宝购物车秒杀自动结算
python+seleniu得出m+chrome实现淘宝购物车秒杀自动结算 一、所需环境二、安装三、代码之前总是想要买aj,但是淘宝店铺每次发售手动抢的时候一般都会被黄牛抢走。。。最近毕业设计学习了一下python的东西,所以写了这么一个抢购的东西算是解决自己一个小小的愿望,这可是aj啊。我会把内容写的尽量面向初学者,从头至尾的过程都会有所提及。代码也放在了后面一、所需环境Selen...
2019-03-03 14:23:04
18781
24
qcby_ssm.zip
2019-05-13
基于python实现 淘宝购物车秒杀,自动结算
2019-03-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人