自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 AQS源码分析

本文对Java中多线程的底层基础框架AQS做了比较深入的原理分析和源码阅读,特别是针对如何保持自旋做了着重解读

2023-03-21 11:50:46 638 1

原创 ThreadLocal源码分析

ThreadLocal是Java开发中比较常用的一个多线程工具类,本文对它的底层原理和源码做了深入分析,希望对你有所帮助

2023-03-18 22:59:30 455

原创 ConcurrentHashMap源码分析

本文对Java中ConcurrrentHashMap做了比较深入的原理分析和源码解读,特别是在红黑树情形下的读写操作做了比较细致的分析

2023-03-18 22:53:59 436

原创 HTTP

文章目录HTTP的特点请求报文与响应报文请求报文响应报文常用状态码GET和POST的区别HTTP请求流程HTTP版本HTTP1.1特性HTTP2.0特性HTTPSHTTPS的请求过程对称加密与非对称加密中间人攻击与HTTP的比较HTTP的特点HTTP 是一个属于应用层的面向对象的协议,HTTP 协议一共有五大特点:1、支持客户/服务器模式;2、简单快速;3、灵活;4、无连接;5、无状态无连接无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种

2021-03-17 14:31:27 138

原创 MySQL必知必会

SQL TutorialSelect查询SELECT column1, column2, ...FROM table_name;SELECT * FROM table_name;Select Distinct选择不同的项SELECT DISTINCT column1, column2, ...FROM table_name;where范围选择SELECT column1, column2, ...FROM table_nameWHERE condition;sy

2020-10-05 17:33:56 221 1

原创 最短路径

Floyd​ Floyd算法可以处理带有负权边的图,但不能处理带有负权回路的图​ 算法思想:通过引入中间边来松弛两点之间的距离​ 算法核心语句://floyd算法:求图上任意两点之间的最短路径for(int k =1;k<=n;++k){ for(int i=1;i<=n;++i){ for(int j=1;j<=n;++j){ if(e[i][j]>e[i][k]+e[k][j]){ e

2020-10-02 19:39:21 150

原创 Java并发

Java内存模型​ Java的内存模型和物理机所对应的内存模型很相似,在Java内存模型中,线程都有单独的工作内存,与处理器的高速缓存有异曲同工之妙,多个线程直接与自己的工作内存进行交互,工作内存通过Load/Save与主内存进行交互,而不是直接与主存进行操作。volatile的理解关键字volatile可以说是Java虚拟机提供的最轻量级的同步机制,当一个变量被定义成volatile之后,它将具备两项特性:对其他线程的可见性:当一个线程修改了这个volatile修饰的变量,对于其他线程来说是

2020-09-22 19:11:47 117

原创 Java代理入门

代理概念通过上图相信可以很直观的了解到代理的作用:可以有效的实现调用方和被调用方的解耦以及对调用方的检查,一些。这样双方之间就无需了解更多细节,而是通过代理对象来中转。Java静态代理静态代理是指代理对象持有目标对象的句柄(指针或引用),可以在代理对象中增添一些新的方法从而可以起到一些额外作用,实现对方法的增强。下面通过一个例子来进行具体说明:package proxy.静态代理;/** * @author pony * @date 2020/5/1 * 这是一个被调用方的接口,使用此

2020-05-09 12:06:56 172

原创 英语词根4

2020-05-04 10:14:44 151

原创 英语词根3

2020-05-04 10:13:08 171

原创 英语词根2

2020-05-04 10:09:42 134

原创 英语词根1

2020-05-04 10:06:00 120

原创 Java反射快速学习

前言反射是java语言一个非常重要的高级特性,很多优秀的框架诸如Spring的Ioc和mybatis等等都运用了Java的反射技术,反射使java插上了动态性的翅膀。本文只是浅要的学习反射的基本概念。创建对象的几种方式1.使用new关键字创建T name = new T();2.通过克隆创建package 反射.关键类;/** * @author pony * @date 2...

2020-05-01 10:40:39 220

原创 java容器超详细

前言java容器是前人为我们提供的一套用于存储数据和对象的工具。如果你学过C++的STL,可以与之类比。java容器又可以称为Java Collection Framework(JCF)。里面除了存储对象的容器之外,还提供了一套用于处理和操作容器里面的对象的一套工具类。整体框架:下面将介绍List、Set、Map以及工具类Collections和Arrays。ListList:列表,...

2020-04-28 15:45:46 8385 3

原创 java异常

异常概述java异常就是指java程序不正常的行为或者状态。异常发生的原因有很多,通常包含以下几大类:用户输入了非法数据。要打开的文件不存在。网络通信时连接中断,或者JVM内存溢出。这些异常有的是因为用户错误引起,有的是程序错误引起的,还有其它一些是因为物理错误引起的。异常的层次结构所有的异常类是从 java.lang.Exception 类继承的子类。ErrorErro...

2020-04-27 21:51:58 368

转载 IDEA中通过搜索添加maven依赖项

IDEA中通过搜索添加maven依赖项

2020-04-22 20:39:41 900

转载 IDEA创建maven web项目

IDEA创建web maven项目具体流程

2020-04-22 19:30:03 107

原创 监听器与过滤器快速入门

监听器与过滤器监听器监听器主要是用于监听某个对象状态变化的组件。监听器相关术语:事件源:被监听的对象监听器:监听事件源的对象(主要有八个)注册监听器:监听器与事件源绑定响应:监听事件源发生变化时,产生的行为监听器划分:域监听器属性监听器域监听器域监听器主要有ServletContextListener监听器、HttpSessionListener监听...

2020-04-21 19:52:28 105

转载 IDEA创建Javaweb工程

IDEA创建Javaweb工程

2020-04-19 21:56:40 100

转载 IDEA快捷键说明

IDEA快捷键中英文对照

2020-04-19 21:35:51 81

原创 2.Http基础

文章目录HTTP协议概念Http请求请求方式请求行请求头请求体请求发送方式Http响应状态码常用其他响应行响应头常见响应头响应体响应体HTTP协议概念HTTP(HyperText Transfer Protocol):超文本传输协议是互联网上应用最为广泛的一种网络协议,所有WWW文件都必须遵守这个协议,从而约束请求与响应。Http请求请求方式8种请求方式OPTIONS:返回服务器针...

2020-02-23 22:34:41 222

原创 1.客户端与服务器

C/S与B/S客户端:当我们使用手机或者电脑通过网络去访问网络资源时,此时我们这一端就叫做客户端。也就是发起访问的一方即为客户端。服务器:服务器实际上也是一台计算机,不过它安装了用于web服务的一些软件。常见的有Tomcat服务器、Php服务器、nodeJs服务器。软件使用方式的两种划分:优点缺点特点C/S(pc客户端/服务器)较为安全,界面丰富,用户体验好不便...

2020-02-23 22:31:23 268

原创 5.JDBC之数据连接池

连接池无连接池情况:当进行CRUD操作时,都要创建一个连接对象加载到内存中、然后验证用户名和密码;操作完成后,再断开连接,及其浪费时间和资源。介绍基本概念:池:保存对象的容器连接池:保存数据库对象的容器作用:初始化时建议一定量的连接对象放到连接池中,需要时直接从连接池中取出空闲对象,使用完毕后不释放掉对象,而是放回到连接池中以便下一次复用。从而提高创建对象带来的延迟,提高系统性能...

2020-02-18 15:08:21 162

原创 4.JDBC之事务与批处理

事务关闭自动提交: conn.setAutoCommit(false);默认情况下时自动提交手动提交:conn.commit();当没有问题时,需要手动提交才能更新数据回滚:conn.rollback()当出现异常时,虽然会进行异常处理,但是不会释放数据库资源,所以需要进行回滚操作批处理addBatch();添加到批处理executeBatch();执...

2020-02-18 15:03:58 100

原创 3.JDBC之预编译

由于在书写sql语句时拼接时容易出错举个栗子:String sql = "insert into stu values("+stu.getId()+",'"+stu.getName()+"',"+stu.getAge()+")";当用预编译语句时直接写成这样:String sql = "insert into stu values(?,?,?)";基本知识:预编译语句通过Prepa...

2020-02-18 15:03:11 462

原创 2.JDBC之DAO

DAO思想没有DAO存在的问题:同时进行CRUD操作时,会有大量重复代码。概念:DAO:Data Access Object(数据存取对象),位于业务逻辑层和持久层之间ORM映射:简单来说就是将数据库中的一条记录封装为一个对象目的:便于以面向对象的思想来使用数据库domain:符合JavaBean规范(一个类中有字段和该字段的get和set方法)的一个类。作用:用户和数据库交互...

2020-02-18 14:58:47 105

原创 1.JDBC之基本概念

JDBCJDBC:java database connectivity 一套操作数据库的标准规范J(可以理解为数据库与java之间的桥梁)​ 与数据库驱动的关系: 接口与实现的关系核心对象:Drivermanager:创建连接Connection:一个连接Statement:操作sql语句,并返回相应结果的对象ResultSet:结果集(客户端用来存储表数据的对象)创建连接:...

2020-02-18 14:43:33 91

原创 SQL语法快速学习

文章目录SQL DatabaseCREATE/DROP DBBACKUPCREATE/DROP TABLEALTAERCONSTRAINT(约束)SQL StatementLIKEWildcards(通配符)INBETWEENAliasjoinuinonGroup ByHavingExistAny/AllSLECT INTOINSERT INTO SELECTCASEFULL Functions...

2019-12-27 16:57:36 1307

原创 KMP模板

kmp模板://得到next数组void get_next(string s,int& next){ int i=0; int j=-1; next[i]=j; int len=s.length(); while(i<len){ if(j==-1||s[i]==s[j]){ ++i; ...

2019-12-15 12:25:14 129

原创 c++之STL总结

c++中的STL(Stand Template Library)提供了最基本的数据结构和算法,功能十分强大。主要分为容器(数组,队列,链表,栈,集合等等),迭代器(一种对象,用来遍历容器中的元素)和常见算法(排序,反转等)文章目录容器字符串vectorlistdequestack容器字符串包含文件:c++头文件中:#include常用方法:初始化:string str:生成空字符...

2019-12-10 17:03:29 237

原创 素数判断

普通方法复杂度:O(n*sqrt(n))bool is_prime(int n){ int m=(int)sqrt(n); for(int i=2;i<=m;++i){ if(n%i==0) return flase; } return true;}6倍法原理:当x大于等于5时可以发现x可以写成6n-1,6...

2019-12-04 13:50:01 163

转载 快速转载csdn上的博客

前言  对于喜欢逛CSDN的人来说,看别人的博客确实能够对自己有不小的提高,有时候看到特别好的博客想转载下载,但是不能一个字一个字的敲了,这时候我们就想快速转载别人的博客,把别人的博客移到自己的空间里面,当然有人会说我们可以收藏博客啊,就不需要转载,(⊙o⊙)… 也对。。实现  因为我自己当初想转载的时候却不知道该怎么转载,所以学会了之后就把方法写出来,帮...

2019-10-30 09:53:15 138

转载 解决ctrl+c/v突然不能用的方法

在遇到这种情况的时候有可能是电脑中病毒了,打开杀毒软件对电脑所有磁盘进行杀毒,然后重启电脑即可。如果杀毒还没有用的话那就...

2019-10-30 09:48:06 21947

转载 CSDN博客换肤教程

相信很多使用csdn的小伙伴都为不能设置博客主题感到烦恼,虽然官方提供了许多好看的模板(个人主观感受哈)。但由于某些原因却不能进行切换(实在让人感到头疼)。今天为大家带来一种切换主题的方法:首先F12找到打开调试器,用元素选择器找到以下代码ps:不会用元素选择器的小伙伴也可以将鼠标移动到某一主题上,然后单击鼠标右键,选择检查,就能很快速的找到上述代码啦。找到代码之后,找到你喜欢模板的di...

2019-08-13 15:13:08 382

原创 线索二叉树

概念:在一棵具有n个节点二叉树中,若采用二叉链表存储结构,在2n个指针域中有n+1个空指针域,线索二叉树就是利用这些空指针来指向节点的前驱节点或后驱节点从而使二叉树的某些操做得到优化的目的。...

2019-05-25 18:00:45 275

原创 pta 7-19求线性链表的倒数第k项

给定一系列正整数,请设计一个尽可能高效的算法,查找倒数第K个位置上的数字。输入格式:输入首先给出一个正整数K,随后是若干正整数,最后以一个负整数表示结尾(该负数不算在序列内,不要处理)。输出格式:输出倒数第K个位置上的数据。如果这个位置不存在,输出错误信息NULL。输入样例:4 1 2 3 4 5 6 7 8 9 0 -1输出样例:7#include<stdio.h>...

2019-05-19 13:30:29 616

原创 pta-7-51(合并两个有序链表)

本题属于一道水题,但有几个地方地思想还是值得好好体会,一是在合并时采用带头结点的链表避免讨论新链表的头的指向问题,二是相对于网上其他的题解来说,本题解更加简洁。欢迎各位交流学习。#include<stdio.h>#include<stdlib.h>typedef struct List{ int data; struct List *next;}node,...

2019-05-19 10:33:34 569

原创 二叉树的遍历

前序遍历递归算法:void RECUR_PREORDER(BTREE T){ if(T){ VISIT(T); PREORDER(T->lchild); PREORDER(T->rchild); }}非递归算法:核心思想:设置一活动指针p...

2019-05-17 19:56:16 232

原创 二叉树深度问题

递归求解:int SECUR_BEDEPTH(BTREE T){ int ldepth=0,rdepth; if(T){ ldepth=BEDEPTH(T->lchild); rdepth=BEDEPTH(T->rchild); return ldepth>rdepth? ldepth+1:rdepth+1; ...

2019-05-17 19:44:47 403

原创 KMP算法小结

KMP算法总结算法背景:计算机中时常需要查找一个字符串(假定为字符串t)又称为模式字符串在另一个字符串的出现的位置。比较容易想到的是设定两个指针,一个指向模式字符串,另一个指向主串,依次比较,如果另个字符相等,则两个指针同时向后移动,如果不等,将主串从初位置向后移动,模式串的指针重新设定指向模式串的头,重复上面动作,直到找到或者字符串结束。此方法易于理解,但分析其时间复杂度由于有两个for循环...

2019-05-17 12:15:02 177

空空如也

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

TA关注的人

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