自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 网络(二)(三握四挥***重点)

重点重点重点TCP状态迁移TCP在传输数据之前,需要建立连接,所有TCP都是一个面向连接的、可靠的、安全的、有效的传输协议三次握手三次握手后变为establish状态,可以传输数据1、一开始,客户端和服务端都处于Closed状态。先是服务器端主动监听某个端口,处于Listening状态2、客户端会初始化序号(client_isn),同时发送SYN报文给服务端,表示向服务端发起链接,之后客户端处于SYN-SENT状态(第一次握手)。3、服务端收到客户端SYN报文后,首先服务端也会随机初始化自己的

2021-02-10 13:31:30 117

原创 ConcurrentHashMap底层源码分析

ConcurrentHashMap在JDK1.8以后使用的是Node数组+链表+红黑树的结构来实现的,并发控制使用Synchronized和CAS来操作,所以整个过程看起来是安全的,但是实际上在写入过程中是用CAS执行操作,只是表征安全,实际上不安全,但是独占锁时安全;// node数组最大容量:2^30private static final int MAXIMUM_CAPACITY = 1 << 30;// 默认初始值大小为16,必须是2的幂数private static final

2020-12-01 12:00:14 182 6

原创 sql 保留小数位数和小数点后为零不显示处理

sql 保留小数位数和小数点后为零不显示处理

2022-06-22 11:30:51 9987 2

原创 SpringMVC

SpringMVCMVCC - Controller:控制器。接受用户请求,调用 Model 处理,然后选择合适的View给客户。M - Model:模型。业务处理模型,接受Controller的调遣,处理业务,处理数据。V - View:视图。返回给客户看的结果。注意这里的客户未必是人,可能是浏览器,可能是APP。spring web Mvcspring框架中提供的一个功能模块,它主要实现了MVC架构的web开发模式,并提供了相关的API简化Web开发特点1、底层基于servlet进行开发

2021-03-28 15:20:35 159 1

原创 spring框架的AOP过程

AOP面向切面编程这五个部分我们把它叫做方法的所有切面五个可以加业务逻辑的点在方法开始之前,前置增强、前置通知增强、切点execution(* com.lanou.test.service..*.*(..)所有的返回值 这个包下面的 所有的子类 所有的方法 所有的参数类型<aop:config><aop:advisor advice-ref="beforAdmvice" pointcut="execution(* com.lanou.test.service.*.s

2021-02-24 09:11:04 105

原创 spring框架的DI过程

DI创建对象的时候的加值过程依赖注入如果是四类八种,或者String可以直接用value赋值,否则用ref <property name="date" value=""/ref=""></property>装配方法手动装配get、set装配 <bean class="com.lanou.test.bean.Order" id="order" scope="prototype" init-method="init"> <property na

2021-02-23 10:04:15 178

原创 spring框架的IOC过程

spring框架归根结底也是一个容器最底层实现是ConcurrentHashMap链接: ConcurrentHashMap.IOC一共有三种:创建对象的过程控制反转 / 反转of控制Inversion of ControlIOC过程默认单例,只创一个对象<bean class="com.lanou.test.bean.Order" id="order" scope="prototype"></bean>原型模式,那几次就创建几个对象 scope="prot

2021-02-22 20:09:24 117

原创 SSM框架简单介绍

SSM框架Spring是一个专门管理对象的容器三个功能:IOC控制反转DIAOPspring管理了Controller和service层mybatis管理了dao层Spring MVCC - Controller:控制器。接受用户请求,调用 Model 处理,然后选择合适的View给客户。M - Model:模型。业务处理模型,接受Controller的调遣,处理业务,处理数据。V - View:视图。返回给客户看的结果。注意这里的客户未必是人,可能是浏览器,可能是APP。MyBa

2021-02-20 16:45:05 214

原创 idea的简单使用,初始化过程

idea提取解压到/bin下,sh idea.sh终端打开工程创建1、选择new project2、点击maven,勾选create from archetype,选择maven-archetype-webapp3、为GroupID填写包名如com.lanou,ArtifactID填写项目名4、配置maven地址,和usersetting地址,用阿里仓库5、创项目,先去先写好文件夹,鼠标右键Mark Directory as设置Sources和resources阿里仓库去/opt/ap

2021-02-19 20:25:06 469

原创 Linux下idea下载、简单的Linux操作指令和环境变量配置

idea下载创建文件夹tool,并将idea移动到tool文件夹中双击压缩包 提取(两遍) 等… 完成后关闭/bin下 idea.sh 在终端打开 sh idea.sh点对勾 continu终端不关使用左边是掏钱的右边是使用30天的 project-->new project Java(简单的Java工程)-->next-->IDEAFirst Java int... JavaEE提高权限ch

2021-02-18 19:52:10 685

原创 Linux简单操作、下载JAVA一些小工具和环境变量

下载JAVAtar -zxvf Jdk-8u271-linux-x64.tar.gz解压缩apt-get update更新最新下载地址sudo su超级管理员su后可以跟要登陆的其他管理员身份mv /***/Jdk-8u271-linux-x64.tar.gz Jdk-8u271-linux-x64.tar.gz移动文件至当前文件夹mv:移动**:路径J…:移动后的名字apt-get install vim安装vim apt-get install *

2021-02-18 09:14:38 93

原创 HTTP常用状态码

HTTP状态码 2XX 200 成功 转发回的也是200 3XX 最终意义就是重定向 服务器临时不可用,或在其他位置 302 重定向 304 未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源 4XX...

2021-02-17 19:53:14 69

原创 select生命周期

select声明周期 生命周期 三个方法 init()初始化阶段 Servlet容器加载Servlet,加载完成后,Servlet容器会创建一个Servlet实例并调用init()方法,init()方法只会调用一次 service()处理客户端请求阶段 每收到一个客户端请求,服务器就会产生一个新的线程去处理。 destroy()终止阶段 ...

2021-02-17 13:05:37 1537

原创 java工具TomCat

TomCat //创建一个对象必须要执行构造方法//Servlet对象只有在被访问这个接口的时候被创建//Servlet创建对象的时候构造函数不能有参数,无参构造//只有被访问的时候才被创建,而且只会创建一次//打脸时刻:<load-on-startup>1</load-on-startup>也可以创建对象 //req 接收数据 resq 返回数据 传输过程 //过程:request(http)-->xx.do--&...

2021-02-16 22:07:15 96

原创 JDBC

JDBC 必要性 JAVA作为一门语言,不可能接入所有第三方内容,Java提供接口,数据库厂商实现接口,开发者直接使用 JDBC Java Database Connectify,简称JDBC;是Java提供的一种SPI之一,Java数据库连接 JDBC编程步骤 加 加载MySQL驱动 URL 全局资...

2021-02-16 16:35:40 119 2

原创 MySQL锁机制及图形化工具使用

MySQL锁机制及图形化工具使用 表锁读写锁 读锁 lock tables tb_1 read; 共享锁,加锁后别的线程也可以加读锁和写锁,可读不可写 写锁 lock tables tb_1 write; 独占锁,加锁以后别的线程不能加读锁和写锁,不能读也不能写 锁升级 加读锁后可再次加写锁 解锁...

2021-02-15 19:06:52 119

原创 数据库引擎和事务

InnoDB引擎链接: B+、B-树.数据库引擎MyISAM是MySQL的默认数据库引擎(5.5版之前)优点性能佳、效率高缺点不支持事务处理(transaction);不安全使用的是B-树,二级索引事物四大特性ACID原子性+指事务包含的所有操作要么全部成功,要么全部失败回滚一致性+指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态。隔离性+当多个用户并发访问数据库时,比如操作同一张表时,数据库为每一个用户开启的

2021-02-15 17:25:52 167 1

原创 数据库三大范式和索引

三大范式第一范式+字段不可分,每个字段是原子级别的第二范式+属性完全依赖于主键(属性都是该对象拥有的)第三范式+属性和主键不能间接相关(减少数据冗余,这样就可以通过主外键进行表之间连接)索引查找速度和存储速度是互斥的主键索引:不能重复,不能为空唯一索引:不能重复,但能为空创建索引alter table tb_student add unique aaa(name);普通索引:可以重复,可以为空创建索引alter table tb_student add index bbb

2021-02-14 13:54:06 227

原创 MySQL中常用的sql语句(增删改查)

增存放数据: create table tb_student();增: insert into tb_student value(‘余’,20,‘文理’,‘13891716424’,‘计算机’);eg:create table tb_student(name char(32),age int,c_name varchar(32),-> phoneNum varchar(32),major varchar(32));增:insert into tb_student(name) value (‘

2021-02-14 09:44:08 2544

原创 MySQL的简单了解

MySQL数据库底层是用毕加树,多路查找树链接: B+树.SQL语言:(对大小写不敏感)+其全称是Struts Query Language(结构化查询语言)+这个语言大量的使用在关系型数据库的基本化操作过程中+在数据库的基本操作过程中,我们很难直接体会到这个语言的特征+而在数据库的触发器,存储过程,函数这些组件中,我们才会真正使用到+SQL的基本操作char和varchar的区别:+char(32):字符型,而且一定有32个字符+varchar(32):可变的字符型,小于32就是输入

2021-02-12 18:49:24 284 1

原创 并发容器

并发容器读写锁ReentrantReadWriteLock排斥性+当有一个readLock读锁时,不会排斥其他的读锁可多线程同时进行+当有一个writeLock写锁时,会拒绝所有的读写锁只能单线程进行CopyOnWriteArrayList与ArrayList的区别+ CopyOnWriteArrayList没有初始容量的说法,需要添加元素时长度+1+ CopyOnWriteArrayList涉及添加修改的时候使用ReentrantLock加锁,保证线程安全+ CopyOnWriteAr

2021-02-12 18:48:16 90

原创 反射

反射reflect在Java中可以称为"神技",类似于开挂般的存在方法Filed格式: Class c = Class.forName("com.lanou.day5.Cat1"); Object obj = c.newInstance(); Field[] fs = c.getFields();//守规则的访问 Field[] fs = c.getDeclaredFields();//使用特权访问,级别压制 for(Field f : fs) { System.out.println

2021-02-11 15:10:35 102

原创 多线程,进程和ReentrantLock

线程、进程进程+ 一个进程包括由操作系统分配的内存空间,一个程序至少有一个进程,一个进程至少有一个线程;+ 一个线程不能独立的存在,它必须是进程的一部分;一个进程一直运行,直到所有的非守护线程都结束运行后才能结束;+ 相当于打开一个黑框,只能运行.exe文件、 Runtime.getRuntime().exec("D://ProgramFiles//Tencent//QQ//Bin//QQScLauncher.exe");并行和并发+并行++多个CPU实例或者多台机器同时执行一段处理逻

2021-02-11 11:06:11 82

原创 网络(三)

网络传输服务器+底层使用TCP协议进行连接建立的一个工具类(套接字工具类)TCP和UDPTCP协议(重点)+TCP在传输数据之前,需要建立连接,所有TCP都是一个面向连接的可靠的、安全的、有效的传输协议UDP协议+用户报文协议套接字工具类:ServerSocket使用方法://后面括号里的为端口ServerSocket ss = new ServerSocket(10003);使用后:启动端口变为Listening状态接受客户端发送的请求我们操作这个请求使用的是Socket对象

2021-02-10 21:43:31 61 1

原创 网络(一)

网络金字塔应用层传输的内容的格式7层模型(应用层、表示层、会话层)协议应用层常用协议+HTTP(超文本传输协议)+HTTPS(安全超文本传输协议)+FTP(文件传输协议)+SIP(会话控制协议)+SNMP(简单网络管理协议)+SMTP(简单邮件传输协议)+WebSocket(网页套接字)HTTP、SSL、、TSL、SNMP、SIP、SMTP、XMPP、RTP、RTSP、RTMP、PPP、FTP传输层传输的方式协议TCP协议(重点)TCP在传输数据之前,需要建立连接,所有T

2021-02-10 11:12:18 69

原创 IO流

IO流阻塞式IO非阻塞式IO输入流 ------从外部可见(文件、网络连接、内存块)读入字节顺序的管道(对象)+字节输入流 ---- InputStream(1) public abstract int read( ):读取一个byte的数据,返回值是高位补0的int类型值。若返回值=-1说明没有读取到任何字节读取工作结束。(2) public int read(byte b[ ]):读取b.length个字节的数据放到b数组中。返回值是读取的字节数。该方法实际上是调用下一个方法实现的(3)

2021-02-10 01:24:37 157

原创 Map接口

Map接口格式:Map<k,v>HashMap格式: HashMap<String,Integer> map = new HashMap<>();底层实现是数组加链表HashMap是一个散列表,它存储的内容是键值对(key-value)映射特点+无序+无角标+k值相同时会被后面的替换掉k所对应的v值放值 map.put(String,String)纵切式遍历 Set<String> keys = map.keySet(); f

2021-02-09 18:36:27 65

原创 java常用工具类(Math / Data)

Math常用类ceil 向上取整 double d = 3.5; System.out.println(Math.round(d));floor 向下取整round 四舍五入pow 求次方 double d = 3.5; System.out.println(Math.pow(d, 2));sqrt 求平方根max/min 最大/最小值random 生成随机数(假随机数)//random 随机数属于随机数工具double dd = Math.random();//生成13到1

2021-02-08 15:19:14 143

原创 异常 Throwable

ThrowableException异常:代表出现之后可以被捕获处理的一种不会大范围影响程序运行过程的错误异常的捕获过程使用:try { } catch(? extends Exception){ }catch可以写多个块,每个块负责不同的Exception,这些个异常是需要有顺序的,其顺序应该是越子类越靠前异常抛出的过程:使用throw抛出异常从根本上讲,也是一个类型的对象,我们在发生异常的时候,如果要自己去抛出某个异常,需要首先创建这个异常的对象,然后使用throw这个关键字,来将异常抛

2021-02-08 13:15:54 304

原创 java.Object方法

Object定义:最大的类,所有的类都是Object的子类包含的方法equals判断;两个值是否相等格式: c1.equals(c) hashCode //哈希,具有ID特性,但是是int的范围 @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + age; result = prime * result + ((color == null

2021-02-07 16:15:25 70

原创 容器Collection

容器CollectionJava面试的重头戏,Java里面所有的数据结构基本都与Collection有关Java提供的容器CollectionColection这个东西,是一个接口,是Java给我们在Java语言中,最常用的顶级容器接口注:顶级接口就是在这个实现链上,他基本已经到了最高的一个接口了容器:我们又有一个内容,容器的基本操作被分为求长、定位、替换容器中包含一些个常用的方法,但是容器本身不包含角标的概念容器的子接口,有LiSee、Set这些子接口部分包含角标概念,我们通过原码的阅读发现

2021-02-07 15:07:13 83

原创 Java面向对象

面向对象抽象过程:+抽象过程就是将很多的实际存在的对象聚合在一起并提取出来相似的属性和方法的过程+属性++对于一个对象描述的过程中,使用名词进行描述的,可以直接赋值的那些特征叫做属性比如年龄,姓名,职业等等都是名词,可以直接赋值+方法++描述某些对象时使用的动词特征叫做对象的行为,这种内容一般指代的一系列的动作,并通过这一系列的动作得到一个结果的过程封装:就是将抽象过程中得到的属性和方法重新打包,并且让原来散乱的属性和方法成为一起出现和一起销毁的过程叫做封装封装一个类的时候,我们管属性叫

2021-02-07 13:52:11 89

原创 InnoDB引擎下的B+和B-树

B+树和B-sh树在MySQL中的InnoDB引擎使用的为B+树和B-树,这两种树结构都属于查找树的一种,对于以前的二叉查找树不同的是,B+树和B-树为多路查找树,并不局限于两条分支,可以有多个条件查找,根据下面的画出的两张图片可以清楚地看到异同点:B+树是一种多路查找树,在InnoDB下使用B+数保存数据,为聚簇索引;在每个节点里面的元素都可以重复,因为每个节点里保存的都只是索引特征,并不是数据;而在叶子层也就是存放数据的容器,在最后一层存放的都是数据,使用的是链表的方式连接;则可以快速查找到

2020-12-05 11:37:37 399

原创 ReentrantLock底层源码

ReentrantLock概述ReentrantLock类,实现了LOck接口,是一种可重入的独占锁,它具有与使用synchronized相同的一些基本行为和语义,但功能更强大。ReentrantLock内部通过内部类实现了AQS框架(AbstractQueuedSynchronized)的API来实现独占锁功能ReentrantLock主要利用CAS+AQS队列来实现。它支持公平锁和非公平锁,两者的实现类似。先通过CAS尝试获取锁;如果此时已经有线程占据了锁,那就加入AQS队列并且被挂起;当锁被

2020-12-02 20:24:58 215

原创 CopyOnWriteArrayList源码分析

CopyOnWriteArrayList:+没有初始容量的说法,需要添加元素时长度+1+涉及添加修改的时候使用ReentrantLock加锁,保证线程安全+遍历时不能进行删除操作+迭代使用snapshot快照,没有快速失败过程//替换public E set(int index, E element) { final ReentrantLock lock = this.lock; //先给容器加上锁,只有一个线程能够修改容器里面的元素 lock.lock(); try

2020-12-02 14:22:02 76

原创 HashMap底层原码分析

HashMap底层是数组+链表+树形结构(红黑树);放值方法1、用key的哈希值,高位取反,低位亦或,然后用得到的值对16取模从而算出放在那里;2、如果要放值的地方为null,则直接放在那里;3、如果要放值的地方为 !null,则放在已有值的next位形成链表;4、如果链表长度超过8位,且容量大小不足64,则扩容;5、若容量大小扩容为64,若此时链表长度还超过8位,则转化为树形结构;扩容过程1、不赋初值默认为16;2、当长度达到0.75f的时候开始扩容,每次呈两倍扩容;eg:扩容后容量大

2020-11-23 19:37:40 86

原创 ArrayList底层源码

ArrayList底层ArrayList底层定义一个初始容量initialCapacity默认大小为10如果初始容量大于零,则this.elementData = new Object[initialCapacity];如果初始容量等于零,则为空this.elementData = EMPTY_ELEMENTDATA;如果初始容量小于零,则抛出异常throw new IllegalArgumentException("Illegal Capacity: "+initialCapacit

2020-11-13 09:11:05 73

空空如也

空空如也

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

TA关注的人

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