- 博客(69)
- 资源 (2)
- 收藏
- 关注
原创 Java基础
文章目录面向对象和面向过程的区别Java语言有哪些特点?JVM JDK JREJava 和 C++的区别?字符型常量和字符串常量的区别?构造器Constructor 是否可被override?重载和重写的区别Java面向对象三大特性String StringBuffer 和 StringBuilder 的区别是什么? String 为什么是不可变的?自动装箱与拆箱在⼀个静态⽅法内调⽤⼀个⾮静态成员为什么是⾮法的?在 Java 中定义⼀个不做事且没有参数的构造⽅法的作⽤接口和抽象类的区别成员变量与局部变量的区
2020-12-22 23:05:07 263
原创 Java多线程
文章目录什么是线程和进程?请简要描述线程与进程的关系,区别及优缺点?并发和并行的区别?为什么要使用多线程呢?使用多线程可能带来什么问题?线程的生命周期和状态什么是上下文切换?什么是线程死锁?如何避免死锁?什么是线程和进程?何为进程?进程是程序的⼀次执行过程,是系统运行程序的基本单位,因此进程是动态的。系统运⾏⼀个程序即是⼀个进程从创建,运⾏到消亡的过程。在 Java 中,当我们启动 main 函数时其实就是启动了⼀个 JVM 的进程,⽽ main 函数所在的线程就是这个进程中的⼀个线程,也称主线
2020-12-19 22:55:09 214
原创 操作系统知识
文章目录操作系统基础1.1 什么是操作系统?1.2 系统调用进程和线程2.1 进程和线程的区别2.2 进程有哪⼏种状态?2.3 进程间的通信⽅式2.4 线程间的同步的⽅式2.5 进程的调度算法操作系统内存管理基础3.1 内存管理介绍3.2 常⻅的⼏种内存管理机制3.3 快表和多级⻚表3.4 分⻚机制和分段机制的共同点和区别3.5 逻辑(虚拟)地址和物理地址3.6 CPU 寻址了解吗?为什么需要虚拟地址空间?虚拟内存4.1 什么是虚拟内存(Virtual Memory)?4.2 局部性原理4.3 虚拟存储器4
2020-12-18 23:15:25 373
原创 计算机⽹络
文章目录OSI与TCP/IP各层的结构与功能,都有哪些协议?TCP 三次握⼿和四次挥⼿(⾯试常客)TCP,UDP 协议的区别TCP 协议如何保证可靠传输ARQ协议滑动窗⼝和流量控制拥塞控制在浏览器中输⼊url地址 ->> 显示主⻚的过程(⾯试常客)状态码各种协议与HTTP协议之间的关系HTTP⻓连接,短连接HTTP是不保存状态的协议,如何保存⽤户状态?Cookie的作⽤是什么?和Session有什么区别?HTTP 1.0和HTTP 1.1的主要区别是什么?URI和URL的区别是什么?HTTP 和
2020-12-18 21:11:33 198
原创 JVM知识
文章目录Java内存区域(运行时数据区)Java对象的创建过程对象的访问定位有哪两种⽅式?堆内存中对象的分配的基本策略Minor GC和Major GC/Full GC 有什么不同呢?如何判断对象是否死亡?(两种⽅法)简单的介绍⼀下强引⽤,软引⽤,弱引⽤,虚引⽤如何判断⼀个常量是废弃常量?如何判断⼀个类是⽆⽤的类?垃圾收集有哪些算法,各⾃的特点?HotSpot为什么要分为新⽣代和⽼年代?常⻅的垃圾回收器有那些?类文件结构类加载过程Java内存区域(运行时数据区)Java 虚拟机在执⾏ Java 程序的过
2020-12-18 19:17:37 162
原创 Java集合
文章目录说说List,Set,Map三者的区别?Arraylist 、LinkedList 与 Vector 的 区别?双向链表和双向循环链表RandomAccess接口list 的遍历方式选择HashMap 和 Hashtable 的区别HashMap 和 HashSet区别HashSet如何检查重复HashMap的长度为什么要是2的n次方HashMap 多线程操作导致死循环问题ConcurrentHashMap 和 Hashtable 的区别ConcurrentHashMap线程安全的具体实现方式/底层
2020-12-17 21:58:15 124
原创 SpringBoot学习笔记(十)——SpringSecurity
文章目录SpringSecurity基本配置hello, securityapplication.properties配置java代码实现在内存中配置用户名和密码HttpSecurity配置在configure(HttpSecurity http)方法中配置登录表单formLogin()在configure(HttpSecurity http)方法中配置注销登录配置多个HttpSecuritySpringSecurity提供的密码加密方式BCryptPasswordEncoder方法安全基于数据库的认证高级
2020-12-04 09:15:04 577
原创 什么是 JWT -- JSON WEB TOKEN
什么是JWTJson web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。起源说起JWT,我们应该来谈一谈基于token的认证和传统的session认证的区
2020-11-29 16:35:02 183
原创 Redis12:缓存穿透与雪崩
文章目录缓存穿透与雪崩服务的高可用问题缓存穿透缓存击穿缓存穿透与雪崩服务的高可用问题Redis缓存的使用,极大的提升了应用程序的性能和效率,特别是数据查询方面。但同时,它也带来了一些问题。其中,最要害的问题,就是数据的一致性问题(事务在运行时不能保证原子性),从严格意义上讲,这个问题无解。如果对数据的一致性要求很高,那么就不能使用缓存。另外的一些典型问题就是,缓存穿透、缓存雪崩和缓存击穿。目前,业界也都有比较流行的解决方案。缓存穿透概念缓存穿透的概念很简单,用户想要查询一个数据,发现re
2020-11-25 19:12:59 185
原创 Redis11:主从复制
文章目录Redis主从复制一主二从哨兵模式Redis主从复制概念主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(Master/Leader),后者称为从节点(Slave/Follower), 数据的复制是单向的!只能由主节点复制到从节点(主节点以写为主、从节点以读为主)。默认情况下,每台Redis服务器都是主节点,一个主节点可以有0个或者多个从节点,但每个从节点只能由一个主节点。作用数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗
2020-11-25 17:13:36 157
原创 Redis09:AOF
文章目录AOF(Append Only File)AOF(Append Only File)将我们的所有命令都记录下来,history,恢复的时候就把这个文件全部在执行一遍!AOF以日志的形式来记录每个写操作,将Redis执行过的所有指令记录下来(读操作不记录),只许追加文件但不可以改写文件,redis启动之初会读取该文件重新构建数据,换言之,redis重启的话就根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作AOF保存的是 appendonly.aof 文件什么是AOF快
2020-11-24 23:16:16 225
原创 Redis08:持久化
文章目录Redis持久化RDB(Redis DataBase)Redis持久化面试和工作,持久化都是重点!Redis 是内存数据库,如果不将内存中的数据库状态保存到磁盘,那么一旦服务器进程退出,服务器中的数据库状态也会消失。所以 Redis 提供了持久化功能!RDB(Redis DataBase)什么是RDB配置部分在快照SNAPSHOTTING在指定的时间间隔内将内存中的数据集体快照写入磁盘,也就是Snapshot快照,它恢复时是将快照文件直接读到内存里。Redis会单独创建(fo
2020-11-24 22:50:14 134
原创 Redis07:Redis.conf详解
文章目录Redis.conf详解bgsaveRedis.conf详解启动的时候,就通过配置文件来启动!配置文件路径[root@centos ~]# cd /usr/local/bin[root@centos bin]# lsdump.rdb dyconfig redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-sentinel redis-server[root@centos bin]# cd dycon
2020-11-24 22:24:04 517 1
原创 Redis06:SpringBoot整合
文章目录SpringBoot整合SpringBoot整合在SpringBoot2.x之后,原来使用的jedis被替换为了lettuce?jedis:采用的直连,多个线程操作的话,是不安全的,如果想要避免不安全的,使用jedis pool 连接池! 更像BIO模式lettuce:采用netty,实例可以再多个线程中进行共享,不存在线程不安全的情况!可以减少线程数据了!更像 NIO模式源码分析@Bean// @ConditionalOnMissingBean(name = "redisTempl
2020-11-24 21:48:15 124
原创 Redis05:Jedis
文章目录基本命令事务什么是Jedis?Jedis是Redis官方推荐的java连接开发工具!使用Java操作Redis中间件!如果你要使用java操作redis,那么一定要对Jedis十分的熟悉!测试导入对应的依赖<dependencies> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artif
2020-11-24 19:07:56 164
原创 Redis04:事务
文章目录事务事务Redis 事务可以一次执行多个命令, 并且带有以下两个重要的保证:事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。一次性、顺序性、排他性----队列set set set执行------Redis事务没有没有隔离级别的概念!所有的命令在事务中,并没有直接被执行!只有发起执行命令的时候才会执行!ExecRedis单条命令式保存原子性的,但是事务不保证原子性!redis的事务︰开启事务(m
2020-11-24 17:41:41 138
原创 Redis03:三种特殊数据类型
文章目录geospatial地理位置HyperLogLogBitmapsgeospatial地理位置官网链接六个命令GEOADD 命令 - 将指定的地理空间位置(纬度、经度、名称)添加到指定的key中127.0.0.1:6379> geoadd china:city 1116.4 39.9 beijing(error) ERR invalid longitude,latitude pair 1116.400000,39.900000127.0.0.1:6379> geoa
2020-11-24 16:02:41 137
原创 Redis02:五大基本数据类型
文章目录Redis-KeyStringRedis-Key127.0.0.1:6379[3]> keys * # 查看所有的key(empty array)127.0.0.1:6379[3]> select 0OK127.0.0.1:6379> keys *1) "name"2) "counter:__rand_int__"3) "mylist"4) "key:__rand_int__"5) "myhash"127.0.0.1:6379> FLUSHDB
2020-11-24 15:00:25 134
原创 Redis01:入门
文章目录概述Windows安装Linux安装概述Redis是什么Redis(Remote Dictionary Server ),即远程字典服务。一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。免费和开源,是当下最热门的NoSQL技术之一,也被人们称之为结构化数据库!
2020-11-23 17:08:29 144
原创 Linux03:Vim使用及账号用户管理
Vim编辑器什么是Vim编辑器Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。vim 则可以说是程序开发者的一项很好用的工具。所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在。连 vim 的官方网站 (http://www.vim.org) 自己也说 vim 是一个程序开发工具而不是文字处理软件。
2020-11-19 20:30:06 2485 3
原创 Linux02:常用的基本命令
文章目录目录管理基本属性文件内容查看目录管理绝对路径和相对路径我们知道Linux的目录结构为树状结构,最顶级的目录为根目录 /。其他目录通过挂载可以将它们添加到树中,通过解除挂载可以移除它们。在开始本教程前我们需要先知道什么是绝对路径与相对路径。绝对路径:路径的写法,由根目录 / 写起,例如:/usr/share/doc 这个目录。相对路径:路径的写法,不是由 / 写起,例如由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成:cd …/man 这就是
2020-11-16 21:21:09 164
原创 Linux01:概述及环境搭建
文章目录入门概述环境搭建走近Linux系统入门概述我们为什么要学习Linuxlinux诞生了这么多年,以前还喊着如何能取代windows系统,现在这个口号已经小多了,任何事物发展都有其局限性都有其天花板。就如同在国内再搞一个社交软件取代腾讯一样,想想而已基本不可能,因为用户已经习惯于使用微信交流,不是说技术上实现不了解而是老百姓已经习惯了,想让他们不用,即使他们自己不用亲戚朋友还是要用,没有办法的事情。用习惯了windows操作系统,再让大家切换到别的操作系统基本上是不可能的事情,改变一个人已经
2020-11-16 20:59:48 463
原创 SpringBoot17:Dubbo和Zookeeper集成
文章目录分布式理论什么是RPC测试环境搭建SpringBoot 整合 Dubbo + zookeeper上一篇:SpringBoot16:异步、定时、邮件任务分布式理论什么是分布式系统?在《分布式系统原理与范型》一书中有如下定义:“分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统”;分布式系统是由一组通过网络进行通信、为了完成共同的任务而协调工作的计算机节点组成的系统。分布式系统的出现是为了用廉价的、普通的机器完成单个计算机无法完成的计算、存储任务。其目的是利用更多的机
2020-11-14 16:31:35 145
原创 SpringBoot16:异步、定时、邮件任务
文章目录前言异步任务定时任务邮件任务上一篇:SpringBoot15:集成Swagger前言在我们的工作中,常常会用到异步处理任务,比如我们在网站上发送邮件,后台会去发送邮件,此时前台会造成响应不动,直到邮件发送完毕,响应才会成功,所以我们一般会采用多线程的方式去处理这些任务。还有一些定时任务,比如需要在每天凌晨的时候,分析一次前一天的日志信息。还有就是邮件的发送,微信的前身也是邮件服务呢?这些东西都是怎么实现的呢?其实SpringBoot都给我们提供了对应的支持,我们上手使用十分的简单,只需要开启一
2020-11-13 22:46:13 262
转载 SpringBoot15:集成Swagger
文章目录项目集成Swagger上一篇:SpringBoot14:整合Shiro项目集成Swagger学习目标:了解Swagger的概念及作用掌握在项目中集成Swagger自动生成API文档Swagger简介前后端分离前端 -> 前端控制层、视图层后端 -> 后端控制层、服务层、数据访问层前后端通过API进行交互前后端相对独立且松耦合产生的问题前后端集成,前端或者后端无法做到“及时协商,尽早解决”,最终导致问题集中爆发解决方案
2020-11-13 20:35:16 168
原创 SpringBoot14:整合Shiro
文章目录概述简介Apache Shiro是一个强大且易用的Java安全框架可以完成身份验证、授权、密码和会话管理Shiro 不仅可以用在 JavaSE 环境中,也可以用在 JavaEE 环境中官网: http://shiro.apache.org/功能在这里插入图片描述Authentication:身份认证/登录,验证用户是不是拥有相应的身份;Authorization:授权,即权限验证,验证某个已认证的用户是否拥有某个权限;即判断用户是否能做事情,常见的如:验证某个用户是否拥有
2020-11-13 09:51:57 126
原创 SpringBoot13:集成SpringSecurity
文章目录安全简介实战测试认识SpringSecurity权限控制和注销rememberMe定制登录页SpringBoot12:整合MyBatis安全简介在 Web 开发中,安全一直是非常重要的一个方面。安全虽然属于应用的非功能性需求,但是应该在应用开发的初期就考虑进来。如果在应用开发的后期才考虑安全的问题,就可能陷入一个两难的境地:一方面,应用存在严重的安全漏洞,无法满足用户的要求,并可能造成用户的隐私数据被攻击者窃取;另一方面,应用的基本架构已经确定,要修复安全漏洞,可能需要对系统的架构做出比较重大
2020-11-12 15:48:10 174
原创 SpringBoot11:整合Druid
文章目录集成DruidSpringBoot10:整合JDBC集成DruidDruid简介Java程序很大一部分要操作数据库,为了提高性能操作数据库的时候,又不得不使用数据库连接池。Druid 是阿里巴巴开源平台上一个数据库连接池实现,结合了 C3P0、DBCP 等 DB 池的优点,同时加入了日志监控。Druid 可以很好的监控 DB 池连接和 SQL 的执行情况,天生就是针对监控而生的 DB 连接池。Druid已经在阿里巴巴部署了超过600个应用,经过一年多生产环境大规模部署的严苛考验。Sp
2020-11-11 23:01:45 137
原创 SpringBoot10:整合JDBC
文章目录SpringData简介整合JDBCSpringBoot09:员工管理系统(thymeleaf)SpringData简介对于数据访问层,无论是 SQL(关系型数据库) 还是 NOSQL(非关系型数据库),Spring Boot 底层都是采用 Spring Data 的方式进行统一处理。Spring Boot 底层都是采用 Spring Data 的方式进行统一处理各种数据库,Spring Data 也是 Spring 中与 Spring Boot、Spring Cloud 等齐名的知名项目。
2020-11-11 22:24:40 116
原创 SpringBoot08:MVC自动配置原理
文章目录MVC自动配置原理上篇文章传送门MVC自动配置原理官网在进行项目编写前,我们还需要知道一个东西,就是SpringBoot对我们的SpringMVC还做了哪些配置,包括如何扩展,如何定制。只有把这些都搞清楚了,我们在之后使用才会更加得心应手。途径一:源码分析,途径二:官方文档!地址 :https://docs.spring.io/spring-boot/docs/2.2.5.RELEASE/reference/htmlsingle/#boot-features-spring-mvc-
2020-11-10 20:09:46 137
原创 SpringBoot07:Thymeleaf模板引擎
文章目录Thymeleaf测试上篇文章传送门Thymeleaf模板引擎前端交给我们的页面,是html页面。以前的开发,我们需要把html页面转成jsp页面,jsp好处就是当我们查出一些数据转发到jsp页面以后,jsp可以轻松实现数据的显示,及交互等。jsp支持非常强大的功能,包括能写Java代码,但是现在,SpringBoot这个项目首先是以jar的方式,不是war,并且,我们用的还是嵌入式的Tomcat,所以,现在默认是不支持jsp的。那不支持jsp,如果我们直接用纯静态页面的方式,那给我
2020-11-10 16:42:41 167
原创 SpringBoot06:Web开发静态资源处理
文章目录Web开发探究静态资源处理首页处理上篇文章传送门Web开发探究简介接下来,我们开始学习SpringBoot与Web开发,从这一章往后,就属于我们实战部分的内容了;其实SpringBoot的东西用起来非常简单,因为SpringBoot最大的特点就是自动装配。使用SpringBoot的步骤:创建一个SpringBoot应用,选择我们需要的模块,SpringBoot就会默认将我们的需要的模块自动配置好手动在配置文件中配置部分配置项目就可以运行起来了专注编写业务代码,不需要
2020-11-10 10:54:45 133
原创 SpringBoot05:自动配置原理
文章目录自动配置原理自动配置原理研究SpringBoot 2.2.0源码配置文件到底能写什么?怎么写?SpringBoot官方文档中有大量的配置,我们无法全部记住分析自动配置原理我们以HttpEncodingAutoConfiguration(Http编码自动配置)为例解释自动配置原理;//表示这是一个配置类,和以前编写的配置文件一样,也可以给容器中添加组件;@Configuration //启动指定类的ConfigurationProperties功能; //进入这个HttpP
2020-11-09 23:00:51 118
原创 SpringBoot04:JSR303数据校验及多环境切换
文章目录JSR303数据校验多环境切换JSR303数据校验如何使用Springboot中可以用@validated来校验数据,如果数据异常则会统一抛出异常,方便异常中心统一处理。我们这里来写个注解让我们的name只能支持Email格式;@Component //注册bean@ConfigurationProperties(prefix = "person")@Validated //数据校验public class Person { @Email(message="邮箱格式错误
2020-11-09 21:29:23 139
原创 SpringBoot03:yaml配置注入
文章目录yaml语法学习注入配置文件yaml语法学习配置文件SpringBoot使用一个全局的配置文件 , 配置文件名称是固定的application.properties语法结构 :key=valueapplication.yml语法结构 :key:空格 value配置文件的作用 :修改SpringBoot自动配置的默认值,因为SpringBoot在底层都给我们自动配置好了;比如我们可以在配置文件中修改Tomcat 默认启动的端口号!测试一下!server.po
2020-11-09 19:19:30 282
原创 SpringBoot02:运行原理
文章目录运行原理探究pom.xml启动器 spring-boot-starter主启动类SpringApplication运行原理探究我们之前写的HelloSpringBoot,到底是怎么运行的呢,Maven项目,我们一般从pom.xml文件探究起;pom.xml父依赖其中它主要是依赖一个父项目,主要是管理项目的资源过滤及插件!<parent> <groupId>org.springframework.boot</groupId> <
2020-11-09 16:47:25 168
titanic.ipynb
2019-08-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人