- 博客(30)
- 收藏
- 关注
原创 线程池了解
查看线程死锁命令jstack [进程id]线程池的7个参数public ThreadPoolExecutor(int corePoolSize, //核心线程数 int maximumPoolSize, //最大线程数 long keepAliveTime, //最大线程空闲时间 TimeUnit unit, //时间单位
2022-05-18 14:00:38 97
原创 JVM深入
JVM类加载过程类加载:类加载将class文件加载到虚拟机的内存。1.加载:在磁盘中查找并通过IO读入字节码文件。2.连接:执行校验、准备、解析步骤。 1).校验:校验字节码文件正确性(-Xverifynone 关闭大部分的验证) 2).准备:给类的静态变量分配内存,并赋予默认值 3).解析:将符号引用替换为直接引用,该阶段会把一些静态方法替换为指向数据所存内存的指针或句柄等,这是所谓的 静态链接过程(类加载期间完成),动态链接是在程序运行期间完成的符合引用替换为直接引用。4.初始化
2022-05-05 10:51:08 234
原创 JWT
JWT简介官网地址:https://jwt.io/introductionJWT简称JSON Web Token, 也就是通过json形式作为web应用中的令牌,用于在各方之间安全的将信息作为json对象传输,在数据传输过程中还可以完成数据加密、签名等相关处理。jwt的用处#授权这是jwt最常见的方式,一旦用户登录,每个后续请求将包括jwt,从而允许用户访问该令牌的路由,服务和资源。单点登录是当今广泛使用的jwt的一种方式,因为它的开销很小并且可以在不同的域中轻松使用。#信息交换JSON W
2021-04-11 20:10:45 141
原创 插入排序
插入排序(Insertion Sorting)的基本思想是:把n个待排序的元素看成为一个有序表和一个无序表,开始时有序表中只包含一个元素,无序表中包含有n-1个元素,排序过程中每次从无序表中取出第一个元素,把它的排序码依次与有序表元素的排序码进行比较,将它插入到有序表中的适当位置,使之成为新的有序表。例如对一个数组排序第一轮,先将数组分为一个有序数组和一个无序数组,从无序数组中拿到元素3和有序数组中6进行比较,6比3大,6向后移一位,3放在6前面。第二轮,从无序数组中取出元素2,和有序数组进行比较,
2021-02-22 16:10:14 712
原创 归并排序
归并排序(Merge Sort)是建立在归并操作上的一种有效,稳定的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。算法实现:public static void mergeSort(int[] nums,int left,int right) { if(left >= right) { return; }
2021-02-20 16:14:01 79
原创 二分查找算法
前提:数组中所有元素已经从小到大排序。原理:只是用于有序数组, 每次用目标值target与数组中间的数进行比较nums[mid],如果target>nums[mid],继续与大于nums[mid]部分的中间位置的值进行比较,同理,如果target<nums[mid],则继续与小于nums[mid]的中间位置的值进行比较。如果target==nums[mid],说明找到要查找的数。算法实现:循环实现public static int binarySearch(int[] nums, int
2021-02-20 16:11:58 241
原创 选择排序
原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。例如:要对一个数组进行排序第一轮排序:找到数组中最小值1,与起始位置的4交换。第二轮排序:找到未排序元素中的最小值2,与未排序元素中的首位7交换。第三轮排序:同第二轮排序,找到元素4,与元素6交换。第四轮排序:未排序元素中6比7小,所以不交换位置。代码实现:public static void select
2021-02-20 16:09:38 148
原创 冒泡算法
冒泡排序算法的原理如下:比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。例如:要对一个数组进行排序第一轮排序:1.首先,6和4比较,6比4大,所以6和4交换位置。2.接下来让6和3比较,6比3大,所以6和3交换位置。3.继续让6和9比较,6比9小,所以不用交换位置。
2021-02-20 16:05:32 3446
原创 Redis
Nosql概述为什么要用Nosql!1.单机Mysql的时代90年代,一个基本的网站访问量一般不会太大,单个数据库完全足够!那个时候,更多的去使用静态页面Html-服务器根本没有太大的压力!整个网站的瓶颈是什么? 1.数据量如果太大,一个机器放不下了! 2.数据的索引(B+Tree),一个机器内存也放不下 3.访问量(读写混合),一个服务器承受不了2.Memcached(缓存)+Mysql+垂直拆分(读写分离)网站80%的情况都是在读,每次要去查询数据库的话就十分麻烦,所
2021-02-14 16:36:14 330 1
原创 SpringMVC
1.SpringMVC简介在B站看狂神说视频时,记的笔记官方文档什么是MVC?MVC是模型(model),视图(view),控制器(controller)的简写,是一种软件设计规范是将业务逻辑,数据,显示分离的方法来组织代码MVC主要作用是降低了视图与业务逻辑间的双向耦合MVC不是一种设计模式,MVC是一种架构模式,当然不同的MVC存在差异Model (模型) :数据模型,提供要展示的数据,因此包含数据和行为,可以认为是领域模型或,JavaBean组件(包含数据和行为),不过现在-般都
2021-02-14 15:18:41 332
原创 Spring
在B站看狂神说视频时,记的笔记1. Spring1.1 简介2002,首次推出spring框架的雏形:interface21 框架Spring框架即以interface21框架为基础经过重新设计,并不断丰富其内涵,于2004年3月24日发布了1.0正式版Rod Johnson:Spring Frame创始人,悉尼大学音乐学博士。Spring理念:使现有技术更加容易使用。本事是一个大杂烩,整合了现有的技术框架SSH:Struct2+Spring+Hibernate
2021-02-14 14:54:22 120
原创 Mybatis
1、简介1.1什么是mybatisMyBatis 是一款优秀的持久层框架它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。如何获得mybatismaven仓库<!-- https://mvnrepository.com/artif
2021-01-31 16:28:00 441 2
原创 反射
将类都各个组成部分封装为其他对象,这就是反射机制好处:在程序的运行过程中,操作这些对象。可以解耦,提高程序的可拓展性。获取class对象的方式(3种)class.forName(“全类名”); //将字节码文件加载到内存,返回class对象多用于配置文件,将类名定义在配置文件中,读取文件,加载类类名.class:通过类名的属性class属性多用于参数的传递对象.getClass();:在Object中定义多用于对象的获取字节码的方式结论: 同一个字节码文件
2021-01-29 16:12:20 96
原创 7.树
7.1 树的定义树是由一个集合及该集合上定义的一种关系构成的。集合中的元素称为树的结点,定义的关系称为父子关系,父子关系的树的结点建立一个层次结构。树(tree)是由n(n>=0)结点组成的有限集。当n=0时,称为空树,不包含任何结点。当n>0时,就是一个非空树:有且仅有一个特定的结点称为根结点(root);当n>1时,其它结点可以分为m(m>0)个互不相交的有限集T1,T2…,其中每个有限集又是一棵树,称为根结点的子树(SubTree)。在右图中,结点A是根结点,它
2021-01-07 19:35:54 334
原创 6.队列
6.1 队列的特点及抽象数据结构队列(queue)简称队,也是一种受限的线性表。只允许在线性表的一端进行插入,在表的另一端进行删除。插入数据的一端称为队尾(rear),删除数据的一端称为队首(front)。向队列添加数据称为入队或进队,新入队的元素称为队尾元素。从队列中删除元素称为出队或离队,元素出队之后,它的后继元素称为新的队首元素。队列是一种先进先出(First In First Out,简称FIFO)表。队列的抽象数据类型的定义:ADT Queue{ 数据对象:D={a0,a1,a2,..
2020-12-29 16:20:53 137
原创 5.栈
5.1 栈的特点以及抽象数据类型栈(stack),也是一种堆栈,是一种操作受限的线性表,栈只允许在线性表的一段进行插入/删除等操作,不允许在其它位置插入/删除。在线性表中进行插入/删除的一端称为栈顶(top),栈顶保存的元素称为栈顶元素,相对的另一端称为栈底(bottom)。如果栈中没有数据结构称为空栈。向栈中插入元素称为进栈/入栈,从栈中删除元素称为退栈。栈的插入/删除操作只允许在栈顶进行,后进的元素必定先出栈,称为后进先出,先进后出。插入的顺序是:a0,a1,a2删除的顺序是:a2,a1,
2020-12-28 15:25:10 129
原创 4.线性表
定义由零个或多个数据元素组成的有限序列。首先,他是一个序列,也就是元素之间是有个先来后到的关系。若元素存在多个,则第一个元素无前驱,而最后一个元素无后继,其它元素都有且只有一个前驱和后继。线性表的强调是有限的。例子:若线性表记为(a1,a2,…,ai-1,ai,ai+1,…,an),则表中ai-1领先于ai,ai领先于ai+1,称ai-1是ai的直接前驱元素,ai+1是ai的直接后驱元素。所以线性表元素的个数n(n>=0)定义为线性表的长度,当n=0时,称为空表。4.1 线性.
2020-12-24 18:24:23 318 1
原创 JVM了解
1.JVM的位置2.JVM的体系结构 JVM调优99%调的是方法区和堆3.类加载器 作用:加载Class文件 1.虚拟机自带的加载器 2.启动类(根)加载器 3.扩展加载器 4.应用加载器应用加载器–>扩展加载器–>启动类加载器4.双亲委派机制当某个类加载器需要加载某个.class文件时,它首先把这个任务委托给他的上级类加载器,递归这个操作,如果上级的类加载器没有加载,自己才会去加载这个类。类加载器的类别BootstrapClassLoader(启动类
2020-12-19 18:02:31 229 1
原创 3.算法及性能分析
3.1 算法 算法就是为解决某一个特定问题而规定的一系列的操作,是一组有序的指令的集合。3.1.1 算法的特性输入算法具有零个或多个输入例如:打印一个hello world就不需要参数public void test(){ System.out.println("hello world"); }输出算法至少有一个或多个输出算法一定要输出的,输出的形式可以是打印形式输出,也可以是返回一个值或多个值等。有穷性指算法在执行有限的步骤之后,自动结束而不
2020-12-18 17:29:25 567 1
原创 2.抽象数据类型
数据类型 一组性质相同的数据的集合及该数据集合上操作的总称。 如Java中的int,数据的集合:-2147483648~2147483648,在这组数据上的操作,如加、减、乘、除、求余…抽象数据类型 abstract data type,简称ADT 由一组数据模型及该模型上的一组操作组成。 抽象数据类型ADT,仅仅讨论它的逻辑特性,不关心实现。抽象数据类型一般使用一个三元组表示 ADT = (D,S,P) D是数据对象,S是D上的关系,P是D上的操作.
2020-12-17 18:18:23 574
原创 1.基本概念
1.基本概念1.1 数据 用来描述客观事务的数值、字符,能输入到计算机并且能被计算机处理的各种符号的集合 数据就是信息在计算机中的表示。1.2 数据元素 数据元素就是数据的基本单位。在计算机中,通常把数据元素作为一个整体进行处理。 例如:描述学生信息的一条记录就是一个 数据元素 描述一个点坐标的信息就是一个 数据元素 数据元素通常由若干的数据项组成 例如: 描述学生信息的姓名、学号、年级就是数据项。 点坐标中的横坐标、纵坐标就是数据项。1.3 数据
2020-12-17 18:13:20 585
原创 Ajax
AJAX概述 Ajax(Asynchronous javascript and XML)就是异步和XML,即使用JavaScript语言和服务器进行异步交互,传输数据为XML(不只是XML)。 Ajax还有一个最大的特点就是,当服务器响应时,不用刷新整个浏览器页面,而是可以局部刷新,这一特点给用户的感受就是在不知不觉中完成请求和响应过程。与服务器进行异步交互浏览器页面局部刷新同步交互和异步交互同步交互:客户端发出一个请求后,需要等待服务器响应结束后,才能发出第二个请求。异步交互
2020-12-14 17:00:21 111
原创 MySQL
1.初识MySQL概念 : 是现在流行的开源的,免费的 关系型数据库历史 : 由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。特点 :免费 , 开源数据库小巧 , 功能齐全使用便捷可运行于Windows或Linux操作系统可适用于中小型甚至大型网站应用官网 : https://www.mysql.com/安装MySQL软件下载mysql5.7 64位下载地址:https://dev.mysql.com/get/Downloads/MySQL-5.7/mysq
2020-12-14 16:48:51 295
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人