自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 Java后端学习总结目录

持续更新中~Java基础集合ArrayList、Vector源码解析LinkedList源码解析HashMap源码解析HashMap线程不安全分析Hashtable源码解析Iterator、Enumeration和fail-fastWeakHashMap源码分析HashSet源码分析TreeMap源码分析(还没写)TreeSet源码分析 (还没写)LinkedHashM...

2019-05-07 21:13:49 2165 2

原创 Redis内存淘汰机制

Redis内存淘汰机制概述Redis清除过期Key的方式定期删除惰性删除Redis内存淘汰机制概述Redis是基于内存存储,常用于数据的缓存,所以Redis提供了对键的过期时间的设置,实现了几种淘汰机制便于适应各种场景。设置过期时间我们可以在设置键时设置expire time,也可以在运行时给存在的键设置剩余的生存时间,不设置则默认为-1,设置为-1时表示永久存储。Redis清除过期K...

2019-05-25 12:42:25 8447 4

原创 Redis基础入门

Redis基础入门Redis是什么为什么要使用Redis?Redis和MySQL的区别?为什么不用Map做缓存而是RedisRedis是单线程处理请求为什么这么快?Redis value的基本数据类型StringHashListSetSort SetRedis是什么Redis是一个开源的,基于内存的数据结构存储,它可以用作数据库、缓存、消息中间件。为什么要使用Redis?Redis是基于...

2019-05-24 21:10:13 319 1

原创 MySQL事务概念

MySQL事务详解ACID隔离级别并发事务可能导致的问题四个隔离级别ACID原子性(Atomicity): 事务被视为不可分割的最小工作单元,整个事务中的所有操作,要么全部执行,要么全部不执行。一致性(Consistency): 执行事务的前后,数据库总是从一个一致性状态换到另一个一致性状态。事务在执行过程中,如果中途出现了错误,因为事务还没有被提交,事务中间做的修改不会被保存,数据库的...

2019-05-23 13:41:02 783

原创 MySQL数据库引擎对比

MySQL数据库引擎概述MyISAMInnoDBInnoDB和MyISAM的对比总结概述在MySQL5.5以前使用的是MyISAM数据库引擎,在5.6开始引入了InnoDB数据库引擎,大多数情况下使用的是InnoDB,在某些情况下使用MyISAM会更好,MyISAM更适合读密集的表,而InnoDB更适合写密集的的表。MyISAMMyISAM只支持表锁,不支持行锁。 在操作MyISAM表时...

2019-05-23 09:48:04 698

原创 常用SQL语句(MySQL)

SQL语句执行算术运算常用函数数学函数处理字符串聚合函数AVG()MAX()MIN()COUNT()SUM()子查询一些关键字GROUP BYOrder ByLimitInHavingASLike多表查询Join执行算术运算说明: SQL中允许进行加减乘除简单算术运算。示例:select 1+1;select name from persion where id=1+1;常用函数数...

2019-05-22 21:03:27 1106

原创 JDBC与连接池

JDBC与连接池JDBC什么是JDBCJDBC操作数据库步骤常见的JDBC组件JDBC注册驱动为什么是使用反射而不是创建对象直接注册?JDBC事务JDBC什么是JDBCJDBC全程为Java DataBase Connection,它是JDK提供用于操作数据库的接口,换句话说,它是JDK为Java操作数据库提供的API规范。具体的数据库驱动、API的实现类是由数据库厂商实现。例如使用MySQ...

2019-05-21 17:32:49 639

原创 探究SpringMVC中常用注解

探究SpringMVC中常用注解@Controller@RestController@ResponseBody@RequestBody@RequestMappingSpring提供了快捷使用的方式天天在项目中用的注解,今天来研究一下它们。建议先理解SpringMVC原理篇:https://blog.csdn.net/weixin_43184769/article/details/90372793...

2019-05-20 15:28:37 539

原创 SpringMVC原理分析

SpringMVC原理分析组件介绍DispatcherServlet(核心控制器)HandlerMapping(处理映射器)HandlerAdapter(处理适配器)Handler(其实就是我们写的Controller)View resolver(视图解析器)View(视图)SpringMVC工作原理准备工作一个Request来了此博客参照了其他人的源码分析博客总结而成。组件介绍Disp...

2019-05-20 12:59:35 1222

原创 SpringMVC入门篇

SpringMVC入门篇MVC模式SpringMVC概述SpringMVC快速入门MVC模式(摘自菜鸟教程)MVC 模式代表 Model-View-Controller(模型-视图-控制器) 模式。这种模式用于应用程序的分层开发。Model 模型代表一个存取数据的对象或POJO类。模型接受视图数据的请求,并返回最终的处理结果。View 视图就是用户看到的并与之交互的界面信息,比如:h...

2019-05-19 17:09:24 287

原创 Java线程池相关

Java线程池相关什么是线程池?为什么要用线程池?线程池的使用方式ThreadPoolExecutor核心属性几种创建方式创建任务Callable和Runnable的区别execute()方法和submit()方法的区别关闭线程池ThreadPoolExecutor原理简析Worker对象execute()原理线程复用的秘密什么是线程池?线程池可以看做是线程的集合。线程池中提供了对池中的线程与...

2019-05-19 15:30:08 403

原创 Servlet总结

Servlet总结Servlet概述Servlet接口Servlet生命周期GenericServletHttpServletServlet概述Java Servlet是一个遵循Servlet接口开发的java类。它能够处理HTTP Request请求,并返回Response响应,从而实现浏览器和服务器的交互。Servlet接口其中定义了5个方法需要实现。@Override p...

2019-05-17 17:29:03 434

原创 Tomcat入门

Tomcat入门概述为什么要使用TomcatTomcat文件目录webapps配置虚拟目录[转载]参考了其他人的博客,链接在文末。概述Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器。Tomcat简单的说就是一个运行JAVA的网络服务器,底层是Socket的一个程序,它也是JSP和Serlvet的一个容器。为什么要使用Tomcat举个简单的例子,我们...

2019-05-15 15:25:28 555

原创 Spring AOP详解

Spring AOP详解概述静态代理、动态代理、CGLIB代理概述AOP(Aspect Oriented Programming),即面向切面编程。它利用一种称为"横切"的技术,剖解开封装的对象内部,并将那些影响了多个类的公共行为封装到一个可重用模块,并将其命名为"Aspect",即切面。所谓"切面",简单说就是那些与业务无关,却为业务模块所共同调用的逻辑或责任封装起来,便于减少系统的重复...

2019-05-15 11:12:09 251

原创 静态代理,动态代理,CGLIB动态代理

静态代理,动态代理,CGLIB动态代理 概述静态代理动态代理CGLIB代理概述代理是一种设计模式,提供了对目标对象的间接访问,即通过代理访问目标对象的方法,那么就可以很方便的在目标方法的基础上添加额外的操作,前拦截,后拦截等。按照代理的创建时期可以分为两种:静态代理:由程序员创建代理类或特定工具自动生成源代码再对其编译。在程序运行前代理类的.class文件就已经存在了。动态代理:在程序运...

2019-05-14 13:17:51 480

原创 Java反射机制

Java反射机制什么是反射?反射机制能做什么?获取字节码对象的三种方式简单实用例子创建对象实例获取构造器创建对象实例获得成员变量获取对象中的方法反射的实际使用场景什么是反射?反射机制是在运行状态中,对于任意一个类,都能知道这个类的所有属性和方法,对于任意一个对象,都能调用它的任意一个方法和属性,这种动态获取的信息以及动态调用对象的方法的功能就称为java语言的反射机制。想要使用反射机制就必...

2019-05-13 14:59:20 385

原创 HTTP协议

HTTP协议是什么?HTTP方法GET和POST的区别常见的状态码URI和URLHTTPSHTTP和HTTPS的区别HTTPS工作原理HTTPS是如何防止中间人攻击的?HTTPS的缺点HTTP和TCP/IP的关系HTTP长连接与短连接HTTP请求报文HTTP响应报文是什么?HTTP(超文本传输协议)是一个基于请求与相应模式的、无状态的、应用层协议。HTTP请求由三部分组成,分别是:请求行、消息...

2019-05-13 10:35:18 472

原创 Spring入门简介

Spring入门简介什么是Spring?Spring的优点Spring模块简介什么是Spring?Spring是一个开源框架。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。Spring的核心是控制反转(IoC)和面向切面(AOP)。简单来说,Sp...

2019-05-12 15:44:12 175

原创 Spring Bean相关

Spring Bean相关Spring Bean的生命周期Spring支持的几种bean的作用域Spring Bean的生命周期实例化Bean:当客户向容器请求一个尚未初始化的bean时,BeanFactory会获取该Bean的定义信息(BeanFactory启动时已经将xml读取将其映射成对象存在HashMap中)并使用反射调用其空参构造实例化出对象。属性注入:使用DI,按照Bean定义...

2019-05-12 15:28:49 284

原创 Spring IOC和DI

Spring IOC和DI概述什么是IOC?IOC与DI的关系几种依赖注入的方法概述IOC(Inversion of control)即控制反转,指的是创建对象控制权的转移,以前创建对象都是在代码中直接new,而现在对象的创建交给了Spring容器。这么做有利于程序降低耦合,便于功能的扩展与复用,Spring的IOC常用的两种注入:构造器注入、setter方法注入。DI(Dependenc...

2019-05-12 13:40:48 345

原创 Java基础多线程(七)Condition

Condition概述使用示例核心函数分析await()signal()signalAll()总结概述在之前的博客中介绍了wait()和notify()/notifAll(),它们只能选择随机唤醒或者全部唤醒等待锁的线程,如果遇到多个保护条件时容易导致过早唤醒问题,而Condition接口很好的解决了这个问题,它十分灵活,可以实现多路通知和选择性通知。文字有点抽象,看例子就明白了。使用示例...

2019-05-10 09:30:48 154 1

原创 Java基础多线程(六)Lock接口

Lock接口概述API使用示例源码分析,显式锁的调度,实现原理等显式锁和synchronized的对比概述摘自博客:http://www.cnblogs.com/skywang12345/p/3496098.htmlJUC包中的 Lock 接口支持那些语义不同(重入、公平等)的锁规则。所谓语义不同,是指锁可是有"公平机制的锁"、“非公平机制的锁”、“可重入的锁"等等。“公平机制"是指"不同...

2019-05-09 21:15:46 271

原创 TCP/UDP详解

TCP/UDP详解TCP三次握手四次挥手TCP为什么是三次握手四次挥手科普一下全双工为什么是三次握手?为什么是四次挥手?为什么TIME_WAIT状态需要经过2MSL(最大报文段生存时间)才能返回到CLOSE状态?TCP和UDP的区别TCP/UDP的使用场景使用TCP/UDP的协议有哪些?TCP是如何完成可靠传输的?TCP拥塞控制如何实现?TCP三次握手tcp报文结构:第一次握手:客户端...

2019-05-09 21:06:52 514

原创 OSI七层模型

详细了解可以看:https://blog.csdn.net/qq_16093323/article/details/79582554#二、 OSI基础知识OSI分层 (7层):物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。TCP/IP分层(4层):网络接口层、 网际层、运输层、 应用层。五层协议 (5层):物理层、数据链路层、网络层、运输层、 应用层。​​第...

2019-05-09 20:51:35 153

原创 JAVA基础(八)TreeMap

eee

2019-05-08 15:03:02 270

原创 JAVA多线程(四)volatile

volatile概述例关于原子性volatile是如何保证变量的有序性和可见性的?科普内存屏障读/写概述volatile关键字用于修饰共享可变变量(没有使用final修饰的实例变量或静态变量)。volatile关键字常被称为轻量级锁,它可以保证可见性和有序性。它能保证修饰变量的写操作的原子性,但没有锁的排他性,所以不会引起上下文切换,所以被称为轻量级锁。volatile只能保证任意单个v...

2019-05-06 11:47:46 263

原创 JAVA多线程知识储备

多线程知识储备线程安全性原子性可见性CAS锁线程安全性如果一个类在单线程环境下能够运行正常,并且在多线程环境下不用修改代码也能正常运行,那么就称它为线程安全的。反之,在单线程下正常运行的类在多线程下不能正常运行则称为线程不安全,造成线程不安全的原因有很多。举个例子:public class Demo implements Runnable{ int ticket = 100;...

2019-05-06 08:56:11 701

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除