自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

今晚会有星星么

写博客完全是方便自己区域复习

  • 博客(63)
  • 收藏
  • 关注

原创 git原理浅析

讲述git原理

2022-12-05 23:59:51 627 1

转载 SpringMVC的九大组件

主要内容来自转载:https://www.cnblogs.com/baichunyu/p/11157337.html组件的初始化:去容器中找这个组件,如果没有找到就会使用默认的配置.如果对组件很熟悉,可以在web.xml中修改DispatcherServlet某些属性的默认配置:利用标签修改,例:<init-param> <param-name>deteAllHandlerMappings</param-name> <param-

2021-02-24 22:51:56 138

原创 SpringMVC-DispatcherServlet源码分析

首先DispatcherServlet继承自FrameworkServletpublic class DispatcherServlet extends FrameworkServlet {然后FrameworkServlet又继承了HttpServletBeanpublic abstract class FrameworkServlet extends HttpServletBean implements ApplicationContextAware {HttpServletBean又继承自

2021-02-24 19:48:23 188

原创 synchronized和Lock锁的区别

synchronizedjava中每一个对象都可以作为一把锁,而这把锁就是synchronized关键字存在的理由:1.synchronized修饰静态方法,代表的锁的是这个类对象.public synchronized static void test(){}2.synchronized修饰普通方法,代表锁的是当前实例对象public synchronized void test(){}3.在同步代码块中也分为实例对象锁和类锁public class Test{public void

2020-10-24 23:13:38 461 1

转载 synchronized修饰静态方法、普通方法与代码块的区别.

https://www.jianshu.com/p/3cfdf32bd37e

2020-08-20 21:30:31 537

原创 重写了equals为什么还要重写hashcode

首先先来看看不重写任何方法的结果public class equalsAndhashcodeDemo {//equals和hashcode public static void main(String[] args) { Student student=new Student("小明",2,1); Student student1=new Student("小明",2,1); System.out.println(student.equals(st

2020-08-15 11:48:25 133

原创 Linux (常用)命令

1.man有问题找男人(man),可以查看指令用法,例: man cd 查看cd的用法.2.cd用来切换目录 cd /返回根目录, cd ~返回家目录 ,cd … 返回上级目录3.pwd查看当前目录完整路径4.touch创建一个空文件.5.echo编写文件内容 例:echo “编写内容” >指定文件6.cat读取文件内容.7.mkdir创建目录 例:mkdir b 创建目录b. 例:mkdir b/d/c/ -p 创建目录组8.rm删除

2020-08-09 15:42:55 197 1

原创 类加载机制

个数

2020-08-02 18:17:04 160

原创 java反射机制

认识反射机制:我们正常的关于对象的处理流程:根据包名.类名找到类.所谓的"反"指的是根据对象来取得对象的来源信息,⽽而这个"反"的操作核⼼心的处理理就在于Object类的⼀一 个方法:public final native Class<?> getClass(); 该方法返回的是⼀一个Class类对象,这个Class描述的就是类.public class Test {//getclass() public static void main(String[] args) {

2020-08-02 15:01:04 129

原创 String,StringBuffer,StringBuider的区别

1.String字符串常量简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,这样不仅效率低下,而且大量浪费有限的内存空间,所以经常改变内容的字符串最好不要用 String 。因为每次生成对象都会对系统性能产生影响,特别当内存中无引用对象多了以后, JVM 的 GC 就会开始工作,那速度是一定会相当慢的..

2020-08-01 19:02:15 236

原创 设计模式之单例模式

单例模式单例模式是设计模式中最简单的形式之一。这一模式的目的是使得类的一个对象成为系统中的唯一实例。要实现这一点,可以从客户端对其进行实例化开始。因此需要用一种只允许生成对象类的唯一实例的机制,“阻止”所有想要生成对象的访问单例模式,属于创建类型的一种常用的软件设计模式。通过单例模式的方法创建的类在当前进程中只有一个实例(根据需要,也有可能一个线程中属于单例,如:仅线程上下文内使用同一个实例).特点优点:(1) 由于单例模式在内存中只有一个实例,减少内存开支,特别是一个对象需要频繁地创建销毁时,而且

2020-08-01 13:47:51 111

原创 哈希表

在编程实现中,常常面临着两个问题:存储和查找,存储和查找的效率往往决定了整个程序的效率。脑补下,你在家里忘记了指甲刀放在哪里,通常要在你家所有抽屉中顺序寻找,直到找到,最差情况下,有N个抽屉,你就要打开N个抽屉。这种存储方式叫数组,查找方法称为「遍历」。脑补下,你是一个整理控,所有物品必须分门别类放入整理箱,再将整理箱编号,比如1号放入针线,2号放入证件,3号放入细软。这种存储和查找方式称为「哈希」,如果这个时候要查找护照,你不许要再翻所有抽屉,直接可在2号整理箱中获取,通常只用一次查找即可,如何编号整

2020-07-31 15:38:44 103

原创 JVM和JMM的关系

JVM(java Virtual Machine)JVM(Java Virtual Machine的简称。意为Java虚拟机。)虚拟机: 指通过软件模拟的具有完整硬件功能的、运行在一个完全隔离的环境中的完整计算机系统。JDK1.6java虚拟机模型大致如上图,方法区中包含常量池;在JDK1.7常量池分为类常量池,运行时常量池和字符串常量池,并将 字符串常量池 移进了堆中;JDK1.8后,方法区移进了本地内存.改名为元数据区.这就是大致的变化运行时数据区JVM会在执行Java程序的过程中把它管理的

2020-07-30 22:17:51 759

原创 JVM内存分配与回收策略

了解内存分配与垃圾回收之前先来看图:将GC区分为年轻代,老年代,其次是方法区或者元空间为永久代.年轻代又分为伊甸区,和survivor0和survivor1.内存分配与回收1. 对象优先在Eden分配大多数情况下,对象在新生代Eden区中分配。当Eden区没有足够的空间进行分配时,虚拟机将发生一 次Minor GC.2.大对象直接进入老年代所谓的大对象是指,需要大量连续空间的Java对象,典型的大对象就是那种很长的字符串以及数组。大对象对虚拟机的内存分配是一个坏消息,经常出现大对象容易

2020-07-30 14:20:00 250

原创 JVM垃圾收集算法及垃圾收集器

如何判断对象已死?1.引用计数法很多教科书判断对象是否存活的算法是这样的:给对象中添加一个引用计数器,每当有一个地方引 用它时,计数器值就加1;当引用失效时,计数器值就减1;任何时刻计数器为0的对象就是不可能再被使用的。即对象已死.引用计数法实现简单,判定效率也比较高,在大部分情况下都是一个不错的算法.但是,在主流的JVM中没有选用引用计数法来管理内存,最主要的原因就是引用计数法无法解决对象的循环引用问题/** *testGC()方法执行后,objA和objB会不会被GC呢? *@author zzm

2020-07-29 20:02:29 191

原创 ConcurrentHashMap原理

我们都知道Hashmap是线程不安全的,在多线程环境下,使用Hashmap进行put操作会引起死循环,导致CPU利用率接近100%,所以在并发情况下不能使用HashMapHashTable和HashMap的实现原理几乎一样,差别无非是 HashTable不允许key和value为null HashTable是线程安全的但是HashTable线程安全的策略实现代价却太大了,简单粗暴,get/put所有相关操作都是synchronized的,这相当于给整个哈希表加了一把大锁。多线程访问时候,只要有一个线程访问

2020-07-28 20:21:46 132

原创 深入了解多线程(Lock锁,AQS,CAS等)

开局先来两张图:1.乐观锁与悲观锁不是指什么具体类型的锁,而是指在并发同步的角度。乐观锁:认为对于共享资源的并发操作是不会发生修改的,在更新数据的时候,会采用尝试更新,不断重试的方式更新数据。乐观的认为,不加锁的并发操作共享资源是没问题的.乐观锁假设认为数据一般情况下不会产生并发冲突,所以在数据进行提交更新的时候,才会正式对数据是 否产生并发冲突进行检测,如果发现并发冲突了,则让返回用户错误的信息,让用户决定如何去做。悲观锁:认为对于共享资源的并发操作,一定是发生xi修改的,哪怕没有发生修改,也

2020-07-28 13:36:02 272

原创 网络应用层以及http

HTTP(超文本传输协议)超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。1960年美国人Ted Nelson构思了一种通过计算机处理文本信息的方法,并称之为超文本(hypertext),这成为了HTTP超文本传输协议标准架构的发展根基。Ted Nelson组织协调万维网协会(World Wide Web Consortium)和互联

2020-07-26 17:51:30 151

原创 udp-tcp-ip详解

UDP协议UDP协议格式:16位UDP长度, 表示整个数据报(UDP首部+UDP数据)的最大长度.如果16位校验和出错,则数据就直接丢失.UDP的特点:无连接: 知道对端的IP和端口号就直接进行传输, 不需要建立连接;不可靠: 没有确认机制, 没有重传机制; 如果因为网络故障该段无法发到对方, UDP协议层也不会给应用层返 回任何错误信息;面向数据报: 不能够灵活的控制读写数据的次数和数量,应用层交给UDP多长的报文, UDP原样发送, 既不会拆分, 也不会合并;UDP的缓冲区:UDP没

2020-07-26 09:56:02 858

原创 初识网络基础

网络发展1.网络独立最开始每台计算机是独立的,都有自己独立的数据2.网络互连后来,多台计算机互连起来起来,实现数据共享.3.局域网LAN计算机越来越多,通过交换机和路由器连接起来,局域网出现4.广域网WAN局域网越来越多,将千里之外的计算机连在一起,这样广域网出现.协议机器之间的约定,就叫协议.计算机之间的传输媒介是光信号和电信号. 通过 “频率” 和 “强弱” 来表示 0 和 1 这样的信息. 要想传递各种不同的信息, 就需要约定好双方的数据格式. 网络中存在各种各样的协议.例如;

2020-07-25 13:44:11 124

原创 基础IO流

File文件类文件类基础方法:构造方法:public File(String pathname){} 创建指定路径文件对象public File(String parent,String child) 同上,可指明父路径和子路径基本文件操作方法:boolean exists() 指定文件或目录是否存在boolean isDirectory() 判定一个文件是目录boolean isFile() 判断是否是文件boolean delete() 删

2020-07-24 19:00:58 136

原创 java线程池简介

线程池线程池(英语:thread pool):一种线程使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务。这避免了在处理短时间任务时创建与销毁线程的代价。线程池不仅能够保证内核的充分利用,还能防止过分调度。可用线程数量应该取决于可用的并发处理器、处理器内核、内存、网络sockets等的数量。线程池的优势1)、降低系统资源消耗,通过重用已存在的线程,降低线程创建和销毁造成的消耗;(2)、提高系统响应速度,当有任务到达时,通过复用

2020-07-24 14:13:48 117

原创 操作系统进程与线程(多线程).

操作系统操作系统(Operating System,简称OS)是管理计算机硬件与软件资源的计算机程序。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。简单来说:操作系统就是多个基本程序的集合,包括内核(进程管理,内存管理,文件管理和驱动管理)和其他程序进程对操作系统来说,一个任务就是一个进程(Process).进程是担当分配系统资源(CPU时间,内存)的实体,是具有动态特性的.是

2020-07-23 23:32:56 362

转载 数据库基础-关系数据库简介和关系代数8种运算方法及例题

数据库基础-关系数据库简介和关系代数8种运算方法及例题很清晰

2020-07-20 22:45:18 437

原创 Mysql数据库事务与索引

索引索引是一种特殊的文件,包含着对数据表里所有记录的引用指针。可以对表中的一列或多列创建索引, 并指定索引的类型,各类索引有各自的数据结构实现.索引的作用:设置了合适的索引之后,数据库利用各种快速的定位技术,能够大大加快查询速率,特别是当表很大时,或者查询涉及到多个表时,使用索引可使查询加快成千倍。可以降低数据库的lo成本, 并且索引还可以降低数据库的排序成本。通过创建唯一-性索引保证数据表数据的唯一性,可以加快表与表之间的连接。在使用分组和排序时,可大大减少分组和排序时间。这里先说一下特殊

2020-07-19 18:21:55 98

原创 mysql数据库的增删改查(进阶篇)

数据库约束首先来了解一下数据库约束NOT NULL - 指示某列不能存储 NULL 值。UNIQUE - 保证某列的每行必须有唯一的值。DEFAULT - 规定没有给列赋值时的默认值。--指定插入数据时,name列为空,默认值unkown name VARCHAR(20) DEFAULT 'unkown';PRIMARY KEY - NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标 识,有助于更容易更快速地找到表中的一个特定的记录。--对于整数类型的主键,

2020-05-22 23:25:07 1048

原创 mysql数据库的增删改查(基础篇)

这里我们先创建一张表,方便后面的演示:-- 创建一张学生表DROP TABLE IF EXISTS student;CREATE TABLE student (id INT,sn INT comment '学号',name VARCHAR(20) comment '姓名',qq_mail VARCHAR(20) comment 'QQ邮箱' );1.新增数据:INSERT [INTO] table_name[(column [, column] …)]VALUES (value_li

2020-05-20 23:32:34 194

原创 mysql数据库的基础使用

对数据库的操作显示数据库:show databases; 建库:CREATE DATABASE [库名];建库时可以进行一些规定:指定数据库采用的字符集 DEFAULT CHARACTER SET charset_name;指定数据库字符集的校验规则 DEFAULT COLLATE collation_name;删库:DROP DATABASE IF EXISTS db_name;数据库的常用类型:1.数值类型:2.字符串类型:3.日期类型:比较常用的数据类型:I

2020-05-19 22:55:29 132

原创 mysql的安装与配置

数据库简单来说,所谓的数据库就是存储数据的容器,而且是永久存储的。数据库的分类在实际项目开发中,数据库一共分为两大类:①关系型数据库 ②非关系型数据非关系型数据库有哪些:Redis、MongoDB关系型数据库:小型数据库:微软Access中型数据库:DB2、MySQL(开源,免费)、SQL Server(收费)大型数据库:Oracle(收费)一,配置环境变量:右键 此电脑 -> 高级系统设置 -> 环境变量 -> 在下面 系统变量栏 点击 新建 ->变量名:

2020-05-18 15:22:45 166

原创 数据结构之堆

堆堆(Heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵完全二叉树的数组对象.

2020-05-08 17:44:15 93

原创 数据结构之B树与B+树

B树1970年,提出了一种用于外查找的树,名为B树,B树是一颗平衡多叉树,允许一个节点有多个孩子,B树也常常称为M树,M为一个节点的子节点数B树满足以下标准特征:1.根结点至少有两个子女。2.每个中间节点都包含k-1个元素和k个孩子,其中 m/2 <= k <= m3.每一个叶子节点都包含k-1个元素,其中 m/2 <= k <= m4.所有的叶子结点都位于同一...

2020-04-30 18:15:42 243

原创 数据结构之红黑树

红黑树红黑树是每个节点都带有颜色属性的二叉查找树,颜色或红色或黑色.红黑树是一种特定类型的二叉树,它是在计算机科学中用来组织数据比如数字的块的一种结构。若一棵二叉查找树是红黑树,则它的任一子树必为红黑树.红黑树是一种平衡二叉查找树的变体,它的左右子树高差有可能大于 1,所以红黑树不是严格意义上的平衡二叉树(AVL),但 对之进行平衡的代价较低, 其平均统计性能要强于 AVL 。由于每一颗红黑树...

2020-04-29 23:19:08 422

原创 数据结构之AVL树

AVL树特点AVL树本质上还是一棵二叉搜索树,它的特点是:1.本身首先是一棵二叉搜索树。2.带有平衡条件:每个结点的左右子树的高度之差的绝对值(平衡因子)最多为1。也就是说,AVL树,本质上是带了平衡功能的二叉查找树(二叉排序树,二叉搜索树)。...

2020-04-28 12:33:16 225

原创 搜索树

二叉搜索树二叉搜索树(Binary Search Tree),(又:二叉查找树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。特点:二叉搜索树作为一种经典的数据结构,它既有链表的快速插入与删除操作的特点,又有数组快速查...

2020-04-26 23:26:49 306

原创 set集合的认识及使用

SetSet集合,是基于Connection的,有插入无序的特征,有具体的实现类HashSet和TreeSet.Set集合不能指定位置访问元素Set集合是基于Map集合写的,通过内部封装Map来实现的Set集合HashSetSortedSet interfaceTreeSetHashSet插入无序,内部无序,是内部封装了HashMap来实现的常用方法:Set集合的元素不能重复...

2020-04-26 14:20:18 167

原创 设计模式之状态模式

状态模式允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类,(State Pattern)是设计模式的一种,属于行为模式状态模式主要解决的是当控制一个对象状态的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类中,可以把复杂的判断逻辑简化。适用场景:1.一个对象的行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为。2.一个操作中含有庞大...

2020-04-22 23:13:25 185

原创 二分查找算法

二分查找二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列特点优点是比较次数少,查找速度快,平均性能好; 其缺点是要求待查表为有序表,且插入删除困难。 因此,折半查找方法适用于不经常变动而查找频繁的有序列表。演示图:演示代码:public class BinarySearch {...

2020-04-22 19:33:38 108

原创 Map的认识和基础理解

Map<Key,Value>Map集合类是一个基于哈希表实现的接口,下面有实现类HashMapSortedMap是继承自Map的接口,实现类为TreeMapHashMap基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了非同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保...

2020-04-22 18:42:36 159

原创 栈和队列

栈栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。栈简单实现:import java.util.Arrays;pub...

2020-04-22 00:28:40 140

原创 顺序表与链表

顺序表顺序表是在计算机内存中以数组的形式保存的线性表,线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素、使得线性表中在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中,即通过数据元素物理存储的相邻关系来反映数据元素之间逻辑上的相邻关系,采用顺序存储结构的线性表通常称为顺序表。顺序表是将表中的结点依次存放在计算机内存中一组地址连续的存储单元中。...

2020-04-21 13:59:03 136

空空如也

空空如也

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

TA关注的人

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