![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
mr.rui
这个作者很懒,什么都没留下…
展开
-
SpringMVC和Springboot的区别
SpringMvc是一个基于Servlet的一个MVC框架,SpringMVC 是spring的一个模块,他们都基于IOC(控制翻转)和AOP(切面使用动态代理)的编程来减少代码的耦合度,IOC就是把对象的管理交给spring容器来管理减少代码之前的耦合度,在代码运行的时候spring通过反射的方式动态创建实例对象。AOP面向切面的编程:1. Aspect(切面)通常是一个类里面可以定义切入点和通知。2.JoinPoint(连接点)程序执行中明确的点,一般是方法调用。3.Advice(通知)方法的增强处理原创 2020-10-12 11:57:27 · 533 阅读 · 0 评论 -
SpringMVC架构总结
SpringMVC架构流程图第一步:用户发起request请求,请求至DispatcherServlet前端控制器第二步:DispatcherServlet前端控制器请求HandlerMapping处理器映射器查找Handler DispatcherServlet:前端控制器,相当于中央调度器,各各组件都和前端控制器进行交互,降低了各各组件之间耦合度。第三步:HandlerMapping处理器映射器,根据url及一些配置规则(xml配置、注解配置)查找Handl...原创 2020-09-30 12:08:49 · 136 阅读 · 0 评论 -
Redis 持久化总结
一、Redis提供了哪些持久化机制: 1). RDB持久化: 该机制是指在指定的时间间隔内将内存中的数据集快照写入磁盘。 2). AOF持久化: 该机制将以日志的形式记录服务器所处理的每一个写操作,在Redis服务器启动之初会读取该文件来重新构建数据库,以保证启动后数据库中的数据是完整的。 3). 无持久化: 我们可以通过配置的方式禁用Redis服务器的持久化功能,这样我们就可以将Redis视为一个功能加强版的memcached了。 4). ...原创 2020-09-29 19:12:48 · 143 阅读 · 0 评论 -
Java 数据库优化之索引优化
索引是数据库优化中最常见也 最重要的手段之一,通过索引通常可以帮助用户解决大多数的SQL性能问题。索引的创建:create index ind_company_name on company(name(4))其中company表明ind_company_name 索引名看下我们数据库下面有多少数据库啊show databases;use test;键一个表和创建主键索引;CREATE TABLE t1( id INT UNSIGNED AUTO_INCREMENT .原创 2020-09-29 14:29:30 · 353 阅读 · 0 评论 -
HTTP,HTTP1.1,HTTPS 的区别
HTTP:http 1.0要指定keep-alive来开启持久连接,默认是短连接,就是浏览器每次请求都要重新建立一次tcp连接,完事儿了就释放tcp连接。早 期的网页都很low,没啥东西,就一点文字,就用这个没问题。但是现在,一个网页打开之后,还要加载大量的图片、css、js,这就坑爹了, 发送多次请求。 早期,2000年之前,那个时候网页,都很low,当时你打开一个网页,就是说现场底层tcp三次握手,跟网站建立一个tcp连接,然后通过这个 tcp连接,发送一次http请..原创 2020-09-27 17:36:58 · 1850 阅读 · 0 评论 -
TCP三次握手和四次挥手
首先我们来回顾一下 TCP 的数据传输单元,TCP 传送的数据单元称为报文段。一个 TCP 报文段分为 TCP 首部和 TCP 数据两部分,整个 TCP 报文段都封装在 IP 数据报中的数据部分,TCP 首部长度是4的整数倍,其中有固定的20个字节,剩余的可变动的就是选项和填充「最常见的 可选字段是最长报文大小,又称为MSS(Maximum Segment Size),每个连接方通常都在通信的第一个报文段(为建立连接而设置SYN标 志为1的那个段)中指明这个选项,它表示本端所能接受的最大报文段的长度。」,2原创 2020-09-27 15:02:52 · 100 阅读 · 0 评论 -
Java 内存区域
Java内存区域(运行时数据区域)和内存模型(JMM)Java 内存区域和内存模型是不一样的东西,内存区域是指 Jvm 运行时将数据分区域存储,强调对内存空间的划分。而内存模型(Java Memory Model,简称 JMM )是定义了线程和主内存之间的抽象关系,即 JMM 定义了 JVM 在计算机内存(RAM)中的工作方式,如果我们要想深入了解Java并发编程,就要先理解好Java内存模型。Java运行时内存区域Java 虚拟机有自动内存管理机制,如果出现内存泄漏和溢出方面的问题,排查错原创 2020-09-25 15:48:28 · 251 阅读 · 0 评论 -
Java ThreadLocal小结
ThreadLocalThreadLocal是解决每个线程都有自己的变量共享,在多线程环境下,可以保证各个线程的变量互相隔离,相互独立。在线程中可以通过Threadlocal.get/set来操作访问变量。这种变量在线程生命周期内起作用,可以减少同一个线程内。多个函数或者组件之间一些公共变量的传递的复杂度。每个Thread中都一个自己ThreadLocalMap对象,ThreadLocalMap用来存储与线程有关联的hash表,内部通过封装Entry类来存储key和value。 Threa...原创 2020-09-24 17:05:42 · 71 阅读 · 0 评论 -
Java ThreadPoolExceutor线程池详解
线程池核心类1.在java.util.concurrent包中我们能找到线程池的定义,其中ThreadPoolExecutor是我们线程池核心类,首先看看线程池类的主要参数有哪些 public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime,原创 2020-09-24 11:47:51 · 410 阅读 · 0 评论 -
Java Synchronized原理
synchronized底层语义原理Java 虚拟机中的同步(Synchronization)基于进入和退出管程(Monitor)对象实现, 无论是显式同步(有明确的 monitorenter 和 monitorexit 指令,即同步代码块)还是隐式同步都是如此。在 Java 语言中,同步用的最多的地方可能是被 synchronized 修饰的同步方法。同步方法 并不是由 monitorenter 和 monitorexit 指令来实现同步的,而是由方法调用指令读取运行时常量池中方法的 ACC_SYNC原创 2020-09-22 19:25:16 · 576 阅读 · 0 评论 -
Java同步锁Synchronzied和Lock的区别
同步锁 java内置同步锁,每个java对象都可以用作同步锁,这些锁成为内置锁。线程进入同步代码块或方法的时候会自动获得该锁,在退出同步代码块或方法时会释放该锁。获取锁的唯一途径就是进入同步方法和同步代码块。java同步锁是一个互斥锁,只能有一个线程获取该锁,当线程A要获取B线程持有的对象锁的时候,只能在等待队列中等待,当B代码执行完毕释放锁,A才能获取该锁。如果B线程不释放锁,A线程会一直等待。synchronzied和lock的区别1.synchronzied是java内置的关键字..原创 2020-09-22 15:49:37 · 448 阅读 · 0 评论 -
Java 动态代理小结
好读书不求甚解一.动态代理 动态代理:在运行时生成代理类的方式称为动态代理 应用场景:给某一个类增加权限,日志,或者额外功能扩展等 优点:解耦,灵活,扩展性强 1. 动态代理实现步骤 a. 定义接口 b. 实现InvocationHandler c. 接口 object=Proxy.newInstance() d. object.方法()--->InvocationHandler->invoke()...原创 2020-09-17 11:36:52 · 76 阅读 · 0 评论 -
Java APT简单理解
好读书不求甚解!1.什么是APT Apt编译时注解-是javac的一个工具,中文名字注解处理器。APT可以用来在编译期间扫描和处理注解。通过APT可以获取注解和备注解的相关信息,通过这些信息 动态的生成代码省去手动编写。反射是在运行时处理注解,相比反射APT效率更高。APT的核心类的是AbstractProcessor2.用到的APT的框架 ButterKnife,EventBus,Dragger2,ARouter等3.如何构建一个APT项目 APT项目至少需要2个Java lib...原创 2020-09-16 16:33:16 · 1581 阅读 · 1 评论 -
Java关键字static
第一次弄博客,虽然是不是自己写的,但愿开个好头转载 2016-05-05 10:48:05 · 257 阅读 · 0 评论