- 博客(20)
- 收藏
- 关注
转载 wait()与notify()
一,前言 简单画了一下线程的流程图,只是一个大概。如图所示,线程有多种状态,那么不同状态之间是如何切换的,下面主要总结关于wait()和notify()的使用。二,wait() wait()和notify()都是定义在Object类中,为什么如此设计。因为synchronized中的这把锁可以是任意对象,所以任意对象都可以调用wait()和notify(),并且只有同一把...
2019-09-28 15:19:00
239
转载 Synchronized实现原理
一,前言 Synchronized 在多线程环境下是不可缺少的,那么对于Synchronized 又了解多少呢。下面就系统总结,而对于Synchronized的基本使用,请参看另一篇博客。1.1,Synchronized 作用确保线程互斥的访问同步代码保证共享变量的修改能够及时可见有效解决重排序问题二,从JVM理解Synchronized 首先使用JDK自带的反编译...
2019-09-26 21:21:00
148
转载 MySQL优化之索引原理(二)
一,前言 上一篇内容说到了MySQL存储引擎的相关内容,及数据类型的选择优化。下面再来说说索引的内容,包括对B-Tree和B+Tree两者的区别。1.1,什么是索引 索引是存储引擎用于快速找到记录的一种数据结构, 对性能的提升有很大的帮助,尤其当表中数量较大的情况下,索引正确的使用可以对性能提升几个数量级。但是索引经常被忽略,不恰当的索引对性能可能还会带来负面效果。1.2...
2019-09-20 20:14:00
188
转载 Mysql优化总结(一)
一,前言 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。 MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL是开源的,所以不需要支付任何费用。MyS...
2019-09-19 20:33:00
204
转载 Mybatis之连接池
一,前言 连接池有很多种,最为熟悉的比如c3p0,DBCP,druid等。 mybatis支持三种内置的数据源类型:Pooled:实现dataSource接口,并且使用了池的思想。UNPooled:同样也是实现了dataSource接口,但是该类型并没有使用池的思想。JDNI:采用服务器提供的JDNI技术实现的,并且在不同服务器之间获取的连接池是不一样的。 注意:如...
2019-09-17 21:33:00
376
转载 设计模式之单例模式
一,前言 单例模式在23中设计模式中是最为基础的一种,并且使用范围非常广泛,属于设计模式中的创建型模式。 什么是单例:指某一个类只允许存在一个实例对象。 单例模式特点:单例只允许一个实例存在,减少资源浪费。对于频繁创建和销毁的对象,单例模式可以很好的解决,提高系统的性能。单例类只能自己提供自己的实例对象,因为单例模式构造方法是私有的。对外提供唯一的全局访问方式。...
2019-09-16 20:29:00
83
转载 Spring之AOP
一,前言 在上一篇博客中总结了关于IOC和DI的知识点,而对于Spring来说还有另一个核心机制就是AOP。 AOP:,Aspect-OrientedProgramming,面向切面编程。 AOP是一种面向切面的编程思想,那么何为切面。 举例,现在有一张用户表,现要对其中某一个用户进行信息更新。通常的做法是先查询出该用户,然后更新最后再保存到数据库,但这种编程方式并不完善...
2019-09-15 15:59:00
97
转载 Spring之IOC
一,前言 本篇博客分享一些关于Spring中一个核心概念,IOC。 IOC:Inversion of Control ,控制反转。 通常情况下对于实例化一个对象,我们会通过关键字new创建出来。但是在实际项目开发中不可能有一个实例化对象,而多个对象就需要多个new创建。显然,这势必造成多个对象之间的耦合,以及对程序的维护性带来困难。 控制反转 ,顾名思义就是将控制权力交给...
2019-09-14 22:46:00
110
转载 简述反射机制
一,什么是反射1.1,反射:所谓框架的灵魂 框架:半成品软件,可以在框架的基础上进行软件开发,简化代码。 反射:将类的各个组成部分封装为其他对象,反射机制。 简单来说反射就是在程序运行期间,动态的获取类或者对象中的属性。 什么是动态获取。 反射的原理就是通过类的字节码文件(class文件)反向获取该类或者对象中的属性,既然是通过字节码获取,这就需要JVM的操作了。下...
2019-09-12 15:15:00
543
转载 Java之多线程(一)
一,前言 今天总结一些关于线程方面的知识,说到线程可谓是无人不知,毕竟这东西不管是在工作开发中,还是实际生活中都时时存在着。关于线程方面的内容非常多,从简单的单线程,多线程,线程安全以及到高并发等等,当然也包括信息通信。 当然这次从线程的基本开始,后面也会慢慢的补充线程的高级使用,这也算是让自己再复习一次了(哈哈)。 以下内容包括:二,线程介绍三,线程的创建四,线程安...
2019-09-09 17:33:00
123
转载 HashMap的实现原理
一,前言1.1,概述 现实生活中,我们常会看到这样的一种集合:IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等,这种一一对应的关系,就叫做映射(K-V)。Java提供了专门的集合类用来存放这种对象关系的对象,即java.util.Map接口。Collection中的集合,元素是孤立存在的(理解为单身),向集合中存储元素采用一个个元素的方式存储。Map中的集合,元素...
2019-09-08 15:14:00
135
转载 Array List和Linked List实现分析
一,前言 先来一张Collection集合图。 今天分享一些关于Collection集合中的List,讲真的集合这东西在网上真是老生常谈了。说实话连本人都觉得腻了(哈哈),但是话又说回来,整个集合体系对于我们实际开发来说是非常重要的,所以还是有必要系统总结下。 不过在此之前先说说两种数据结构,链表和红黑树。1.1,链表链表:linked list,由一系列结点no...
2019-09-07 15:15:00
296
转载 泛型的使用
一,泛型概述 关于泛型,先来说几句集合。都知道集合是可以存储任意对象,当我们创建一个集合时如果没有声明它的存储类型,那该集合便自动提升为Object类型。请参看如下代码:public class GenericDemo { public static void main(String[] args) { Collection coll = new Array...
2019-09-06 14:35:00
129
转载 Java内部类
一,前言 在 Java 中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类。广泛意义上的内部类一般来说包括这四种:成员内部类、局部内部类、匿名内部类和静态内部类。 作用: 1,间接性实现Java多继承,每个内部类都能独立的继承一个接口的实现,因此对于外部类来说就算继承了某个父类,在内部类中是不会有任何影响的。 2,可以将复杂的逻辑代码组合在一起,且对外...
2019-09-05 16:40:00
110
转载 Java之封装,继承,多态
一,前言 今天总结一下关于Java的三大特性,封装,继承,多态。其实关于三大特性对于从事编程人员来说都是基本的了,毕竟只要接触Java这些都是先要认识的,接下来就系统总结一下。二,封装 先来说说特性之一:封装2.1,什么是封装 封装(Encapsulation)是面向对象方法的重要原则,就是把对象的属性和操作(或服务)结合为一个独立的整体,并尽可能隐藏对象的内部实现细节。...
2019-09-04 23:15:00
1150
转载 String类中intern方法的原理分析
一,前言 昨天简单整理了JVM内存分配和String类常用方法,遇到了String中的intern()方法。本来想一并总结起来,但是intern方法还涉及到JDK版本的问题,内容也相对较多,所以今天就弥补昨天缺失的知识点。二,String.intern() 先来看下网上流行的关于intern()方法的示例代码:public static void main(String[] ...
2019-09-03 11:02:00
230
转载 JVM内存分配及String常用方法
一,JVM内存分配和常量池 在介绍String类之前,先来简单分析一下在JVM中,对内存的使用是如何进行分配的。如下图所示(注意:在jdk1.8之后便没有方法区了): 如上JVM将内存分为多个不同的区域,这些区域都有各自的用途、创建和销毁的时间,有些区域随虚拟机进程的启动而存在,有些区域则是依赖用户线程的启动和结束来建立和销毁。 区域名称的说明:1.1,方法区: ...
2019-09-02 22:40:00
150
转载 Redis缓存,持久化,高可用
一,Redis作缓存服务器 本篇博客是接着上一篇博客未分享完的技术点。 redis作为缓存服务器是众多企业中的选择之一,虽然该技术很成熟但也是存在一定的问题。就是缓存带来的缓存穿透,缓存击穿,缓存失效问题,继而引用分布式锁。1.1,缓存穿透 在如今的项目中大多采用垂直的MVC架构,由service层去调用DAO层,然后DAO层再去查询数据库。而redis作为缓存服务器就是在...
2019-08-25 13:04:00
147
转载 Redis的常用命令与Java整合及高级应用篇
一,redis是什么? 首先数据库分为关系型数据库和非关系型数据库,关系型数据库是采用关系模型来组织数据的数据库,简单来说就是二维表格模型,同时保证事务的一致性。 相反非关系型数据库采用key-value形式进行存储,是一种数据结构化存储方法的集合,具有分布式性质。 Redis是当前比较热门的NOSQL系统之一,它是一个开源的使用ANSI c语言编写的key-value存储系...
2019-08-23 19:48:00
206
转载 阿里云短信服务(JAVA)
一,前言 短信验证码想必大家都不陌生,在很多网站,APP中都有使用到。比如登录,注册,身份校验等场景。不过通常情况下,短信服务都是外包给第三方公司的,接下来向大家分享如何使用阿里的短信服务。二,云通信 阿里云官网:https://www.aliyun.com/ 忘记说了,没有账号的可以直接使用阿里旗下的任何一款账号进行登录,支付宝,淘宝,钉钉等都可以,或者也可以单独进行注册...
2019-08-15 20:35:00
344
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人