自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java异常

1、异常是一个在程序执行期间发生的事件,它中断了正在执行的程序的正常指令流。Java的异常处理是结构化的,不会因为一个异常影响整个程序的执行。2、捕获异常时需要分清稳定代码和非稳定代码,稳定代码指的是无论如何都不会出错的代码,例如 int a = 10。异常捕获是针对非稳定代码的,捕获时要区分异常类型并做相应的处理。3、throw是方法内部抛出具体异常类对象的关键字,而throws则用于方...

2018-12-09 17:27:23 203

原创 forward和redirect的区别

forward又叫转发,redirect叫做重定向1、forward(直接转发)1.1、是服务器内部的重定向,服务器直接访问目标地址的 url网址,把里面的东西读取出来,但是客户端并不知道,因此用forward的话,客户端浏览器的网址是不会发生变化的;1.2、关于request: 由于在整个定向的过程中用的是同一个request,因此forward会将request的信息带到被重定向的...

2018-12-09 16:40:20 288

原创 Eclipse中无法输入中文

1、问题背景:在Eclipse或IntelliJ IDEA中输入不了中文,只能输入英文字母,但是在其他地方,比如浏览器、记事本、word等都能正常输入中文;2、解决方法:按快捷键(Ctrl+Shift+E)可以解决该问题。...

2018-08-15 08:41:39 1244

原创 Redis Sentinel(哨兵)

当主节点出现故障时,Redis Sentinel能自动完成故障发现和故障转移,并通知应用方,从而实现真正的高可用。Redis Sentinel是一个分布式架构,其中包含若干个Sentinel节点和数据节点,每个Sentinel节点会对数据节点和其余Sentinel节点进行监控,当它发现节点不可达时,会对节点做下线标识。如果被标识的是主节点,它还会和其他Sentinel节点进行"协商",当大多数Se...

2018-07-15 17:50:53 383

原创 Redis内存管理

Redis通过控制内存上限和回收策略实现内存管理,使用maxmemory参数限制最大可用内存,限制内存的主要目的是:用于缓存场景,当超出内存上限时使用LRU等删除策略释放空间;防止所用内存超过服务器的物理内存。内存回收的策略1、删除过期键对象,由于内存中保存了大量的键,维护键精准的过期删除机制会导致消耗大量的CPU,对于单线程的Redis来说成本过高,因此,Redis采用惰性删除和定时任务删除机制...

2018-07-15 17:23:37 1561

原创 Redis复制原理

1、在从节点执行slaveof命令后,从节点只保存主节点(master)的地址信息便直接返回,此时复制流程还没开始;2、从节点(slave)内部通过每秒运行的定时任务维护复制相关逻辑,当定时任务发现新的主节点后,会尝试与该节点建立网络连接,即主从建立socket连接;3、发送ping命令,主从连接建立成功后从节点发送ping请求进行首次通信,ping请求的主要目的是:检测主从之间网络套接字是否可以...

2018-07-15 16:48:26 194

原创 Redis持久化

Redis支持RDB和AOF两种持久化机制,持久化功能有效地避免因进程退出造成地数据丢失问题,当下次重启时利用之前持久化单位文件即可实现数据恢复。1、RDB持久化是把当前进程数据生成快照保存到硬盘的过程,触发RDB持久化过程分为手动触发和自动触发。手动触发分别对应save和bgsave命令:save命令,阻塞当前Redis服务器,直到RDB过程完成为止,对于内存较大的实例会造成长时间阻塞,线上环境...

2018-07-15 11:52:57 184

原创 Redis使用场景

1、缓存缓存机制几乎在所有的大型网站都有使用,合理地使用缓存不仅可以加快数据的访问速度,而且能够有效地降低后端数据库的压力。Redis提供了键过期时间设置,并且也提供了灵活控制最大内存和内存溢出后的淘汰策略。2、排行榜系统按照热度排名的排行榜,按照发布时间的排行榜,按照各种复杂维度计算出的排行榜,Redis提供了列表和有序集合数据结构,合理地使用这些数据结构可以很方便地构建各种排行榜系统。3、当计...

2018-07-15 09:18:48 228

原创 造就Redis高性能的三个因素

1、纯内存访问,Redis将所有数据放在内存中,内存的响应时间大约为100纳秒,这时Redis达到每秒万级别访问的重要基础;2、非阻塞I/O,Redis使用epoll作为I/O多路复用技术的实现,在加上Redis自身的事件处理模型将epoll中的链接、读写、关闭都转换为事件,不在网络I/O上浪费过多的时间;3、单线程避免了线程切换和竞态产生的消耗。In a word,纯内存存储、IO多路复用技术、...

2018-07-15 09:00:27 4342

原创 Java线程的实现方式

1、继承Thread2、实现Runnable接口3、通过Executors创建线程池

2018-07-14 12:43:07 168

原创 垃圾收集器

1、判断Java对象是否已死的方法:1.1、引用计数法1.2、可达性分析算法2、垃圾收集算法2.1、标记 - 清除算法2.2、复制算法2.3、标记 - 整理算法2.4、分代收集算法3、垃圾收集器3.1、Serial 收集器(串行收集器)3.2、ParNew 收集器3.3、Parallel Scavenge 收集器(并行收集器)3.4、Serial Old 收集器3.5、Parallel Old 收...

2018-07-14 12:12:39 158

原创 JVM运行时数据区

JVM运行时数据区分为线程共享和线程私有1、线程共享的区域包括:堆内存和方法区;2、线程私有的区域包括:程序计数器、虚拟机栈和本地方法栈。

2018-07-14 10:46:51 199

原创 autowired与resource区别

1、@Autowired属于Spring的注解, 默认按类型装配,依赖对象必须存在,如果要允许null值,可以设置它的required属性为false   @Autowired(required=false),也可以使用名称装配,配合@Qualifier注解;2、@Resource不属于Spring的注解,JDK1.6支持的注解,@Resource  默认按名称进行装配,通过name属性进行指定...

2018-07-14 09:40:13 448

原创 死锁

线程死锁是指由于两个或者多个线程互相持有对方所需要的资源,导致这些线程处于等待状态,无法前往执行。1、产生死锁的条件1.1、互斥条件:一个资源只能被一个线程占用,直到被该线程释放;1.2、请求和保持条件:一个线程因请求被占用资源而发生阻塞时,对已获得的资源保持不放;1.3、不剥夺条件:任何一个资源在没被该线程释放之前,任何其他线程都无法对他剥夺占用 ;1.4、循环等待条件:当发生死锁时,所等待的线...

2018-07-14 09:38:24 199

原创 并发和并行的区别

1、并发:指两个或多个事件在同一时间间隔内发生,即交替做不同事的能力,多线程是并发的一种形式。2、并行:指两个或者多个事件在同一时刻发生,即同时做不同事的能力。...

2018-07-14 09:36:14 28359 1

原创 进程和线程的区别

1、进程:每个独立执行的程序都称为进程,进程是cpu资源分配的最小单位。2、线程:线程是进程中的执行流程,一个进程中可以同时包括多个线程,线程是cpu调度的最小单位。...

2018-07-14 09:34:15 182

原创 Mybatis中#与$的区别

1、#将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号2、$将传入的数据直接显示生成在sql中3、#方式能够很大程度防止sql注入4、$方式无法防止Sql注入5、$方式一般用于传入数据库对象,例如传入表名、字段名。MyBatis排序时使用order by 动态参数时需要注意,用$而不是#6、一般能用#的就别用$...

2018-07-14 09:33:05 363

原创 向上转型和向下转型

1、向上转型:子类对象赋值给父类类型的变量,即父类对象引用,指向子类对象;2、向下转型:是将抽象类转换为较具体的类。在执行向下转型时,需用instanceof操作符判断父类对象是否为子类对象的实例。...

2018-07-14 09:27:49 1356 3

原创 java中的final关键字

1、final修饰的变量是常量,值不能够被改变;2、final修饰的方法不能够被重写;3、final修饰的类不能被继承。

2018-07-14 09:26:20 171

原创 重写和重载的区别

1、重写和重载的区别:1.1、方法重写是存在子类与父类之间的,子类定义的方法与父类中的方法具有相同的方法名字,相同的参数列表和相同的返回类型,方法的修饰权限不能缩小;1.2、方法重载是指同一个类中的多个方法具有相同的名字,但这些方法具有不同的参数列表,即参数的数量或参数类型不能完全相同。...

2018-07-14 09:25:31 1466

原创 抽象类与接口的区别

1、抽象类与接口的共同点:1.1、抽象类和接口都不能被实例化,它们都位于继承树的顶端,用于被其他类实现和继承;1.2、抽象类和接口都可以包含抽象方法,继承抽象类或实现接口的普通子类都必须实现这些抽象方法。2、抽象类与接口的不同点:2.1、接口只能做方法申明,抽象类中既可以做方法申明,也可以做方法实现;2.2、抽象类中的成员变量可以是多种访问权限(protected、private等),而接口中的成...

2018-07-14 09:24:49 342

原创 面向对象特征

1、抽象性:就是把现实世界的实体抽象为对象,抽象包括两个方面:数据抽象、过程抽象。1.1、数据抽象:表示世界中一类事物的特征,就是对象的属性.比如鸟有翅膀,羽毛等(类的属性);1.2、过程抽象:表示世界中一类事物的行为,就是对象的行为.比如鸟会飞,会叫(类的方法)。2、封装性:就是把对象的属性和行为封装起来;3、继承性:对象的一个新类可以从现有的类中派生,这个过程称为类继承。子类可以从它的父类那里...

2018-07-14 09:23:37 238

原创 Java中JRE与JDK区别

1、JRE的全称为Java Runtime Environment,它是Java运行环境,主要负责Java程序的运行;2、JDK的全称为Java Development Kit,它包含了Java程序开发所需的编译、调试等工具,还包含JDK的源代码;3、JDK是整个JAVA的核心,包括了Java运行环境JRE、一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API...

2018-07-14 09:22:24 225

原创 Java的数据类型详解

Java有两大种数据类型,分为内置数据类型(即基本数据类型)和引用数据类型,其中内置数据类型有8种,分为三大类:数值型、字符型、布尔型。详解如下图:...

2018-07-14 09:20:57 156

空空如也

空空如也

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

TA关注的人

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