基础
文章平均质量分 74
超分辨菜鸟
这个作者很懒,什么都没留下…
展开
-
java使用fiddler抓HTTP包
Fiddler抓包1.界面介绍2.查看抓取到的包:3.post请求和get请求的区别1.界面介绍2.查看抓取到的包:左侧为抓取到的包,右侧为包中的内容右边上半部分为请求信息,下半部分为相应信息:这里能够看到请求头是一个GET的请求头还有一种post请求头,3.post请求和get请求的区别首先通过前端提交数据的格式改为post接下来用fiddler抓包如下get请求中前端提交的信息保存在url中返回后端而post请求的前端的信息保存在body中因此get方式相较于post并原创 2021-06-29 11:24:50 · 511 阅读 · 0 评论 -
Tomcat的简单使用
简单使用Tomcat1.Tomcat--Web容器:1.1安装1.2.Tomcat文件夹功能讲解3.启动Tomcat4.发布网页1.Tomcat–Web容器:Tomcat是用来发布前端站点或者后端程序的1.1安装Tomcat 的安装非常简单,下载安装包(版本 8.5.47) ,选择合适的文件夹,进行解压即可Tomcat官网1.2.Tomcat文件夹功能讲解安装解压之后:看看Tomcat文件夹下的各个文件夹的功能;我们能够利用即可,不必追求理解其深层原理bin\ 存放各种原创 2021-06-28 19:39:58 · 581 阅读 · 1 评论 -
Mysql索引及事务
联合查询、索引及事务1. 索引1.1 概念1.2 作用1.3 使用场景1.4 使用1.5 索引测试2.事务2.1事务的概念和特性2.2 为什么使用事务2.3 事务使用测试事务:1. 索引1.1 概念索引是一种特殊的文件,包含着对数据表里所有记录的引用指针。可以对表中的一列或多列创建索引,并指定索引的类型,各类索引有各自的数据结构实现。(具体细节在后续的数据库原理课程讲解)1.2 作用数据库中的表、数据、索引之间的关系,类似于书架上的图书、书籍内容和书籍目录的关系。索引所起的作用类似书籍目原创 2021-06-25 15:37:24 · 353 阅读 · 1 评论 -
java--for循环执行的顺序
来自小米笔试static boolean foo(charc){ System.out.print(c); return true; } public static void main(String[] args) { int i =0; for(foo('B');foo('A')&&(i<2);foo('C')) { i++; foo('原创 2021-06-20 21:21:54 · 1239 阅读 · 4 评论 -
java-Lamda表达式
lamda表达式:1.定义1.1 lamda表达式的语法1.2 函数时接口1.3 代码演示2.变量捕获;2.1 匿名内部类2.2 Lamda的变量捕获3.lamda表达式在集合中的用法3.1 Collection接口示例3.3 Map接口4.总结1.定义Lambda表达式是Java SE 8中一个重要的新特性。lambda表达式允许你通过表达式来代替功能接口。 lambda表达式就和方法一样,它提供了一个正常的参数列表和一个使用这些参数的主体(body,可以是一个表达式或一个代码块)。 Lambda原创 2021-06-20 15:14:24 · 616 阅读 · 1 评论 -
java枚举的了解
java枚举枚举:1.定义2.枚举的使用场景3.Enum的常用方法4.面试题枚举:1.定义枚举是在JDK1.5后引入的,主要是用于,将一组常量组织起来,在这之前表示一组常量通常使用定义常量的方式:public static int final a = 1;public static int final b = 2;public static int final c = 3;这样做在遇到了数字1式,可能会误认为是a;现在有了枚举类型之后,可以用枚举类型直接组织管理,这样就有了枚举类型,而不是普原创 2021-06-19 21:05:00 · 157 阅读 · 0 评论 -
java反射机制-认识和理解
java反射机制反射1.定义2.应用3.反射的基本信息4.反射相关的类4.1 class类--反射的起源4.1.1 Class类中的相关方法4.1.2 通过反射创建对象4.1.3 反射私有属性4.1.4 反射私有方法5.反射的优点和缺点反射1.定义Java的反射(reflection)机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性,既然能拿到那么,我们就可以修改部分类型信息;这种动态获取信息以及动态调用对象方法的功能称为java语言原创 2021-06-18 16:28:02 · 322 阅读 · 0 评论 -
java哈希表
哈希表1.哈希表2.Hash冲突3.避免冲突3.1 哈希函数的设计3.2 负载因子调节3.3 闭散列3.3.1 线性探测3.3.2 二次探测4.自行实现哈希表1.哈希表顺序结构以及平衡树中,元素关键码与其存储位置之间没有对应的关系,因此在查找一个元素时,必须要经过关键码的多次比较。顺序查找时间复杂度为O(N),平衡树中为树的高度,即O(log2N),搜索的效率取决于搜索过程中元素的比较次数。理想的搜索方法:可以不经过任何比较,一次直接从表中得到要搜索的元素。 如果构造一种存储结构,通过某种函数(has原创 2021-06-17 20:42:21 · 632 阅读 · 1 评论 -
java访问控制权限
包的访问权限控制范围同一包中的同一类同一包中的不同类不同包中的子类不同包中的非子类defaulokokprivateokprotectedokokokpublicokokokok原创 2021-06-17 17:01:19 · 80 阅读 · 0 评论 -
java字符大小写转化
1.字符与ASCII码对应关系字符与数字之间的对应关系:a-z:97-122,A-Z:65-901-9:49-572.代码示例2.1 大写转小写字符char采用的是Unicode编码的16位字符类型,其表示范围是0-65536。标准的8位ASCII字符集是Unicode 的子集,其取值范围为0-127。大小写字母之间正好相差32直接显示a+32;会导致jvm只显示数字,并不能直接转换为字符a+=32;会将原本对应的ASCII码转到小写public static void main(St原创 2021-06-17 11:30:54 · 605 阅读 · 0 评论 -
遍历HashMap的几种方式
1.通过EntrySetpublic static void main(String[] args){ HashMap<String,Integer> map = new HashMap<>(); Map<String,Integer> map1 = new HashMap<>(); Map<String,String> map2 = new HashMap<>(); map2.原创 2021-06-16 21:40:46 · 119 阅读 · 0 评论 -
java对象比较-comparable和comparator
Comparable和compareTo1.元素的比较1.1 基本类型的比较1.2 对象的比较2. 对象的比较2.1 覆写基类的equal2.2 基于Comparable接口的比较2.3 基于比较器Comparator的比较2.4 几种不同的compare对比1.元素的比较1.1 基本类型的比较java中的基本类型的对象是可以进行比较的如public static void main(String[] args){ int a = 10; int b = 20;原创 2021-06-15 22:04:20 · 1701 阅读 · 2 评论 -
java-JVM-虚拟机全面解读
JVM初识1.JVM简介1.1虚拟机是什么?1.2常用的虚拟机都有哪些呢?2.JAVA内存区域2.1运行时的数据区域2.1.1 java堆2.1.2 方法区2.1.2.1 运行时常量池--方法区的一部分2.1.3 程序计数器2.1.4 JVM栈--java虚拟机栈2.1.4.2 局部变量表2.1.5 本地方法栈2.2java的内存溢出问题2.2.1 java堆溢出2.2.2虚拟栈和本地方法栈溢出内存布局总结3.垃圾回收器和内存分配策略3.1如何判断对象已死3.1.1引用计数法3.1.2 可达性分析算法3.2转载 2021-06-10 16:48:10 · 1057 阅读 · 1 评论 -
深入理解TCP协议
定义看看百度百科的解释:传输控制协议(TCP,Transmission ControlProtocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793 [1] 定义。TCP旨在适应支持多网络应用的分层协议层次结构。连接到不同但互连的计算机通信网络的主计算机中的成对进程之间依靠TCP提供可靠的通信服务。TCP假设它可以从较低级别的协议获得简单的,可能不可靠的数据报服务。原则上,TCP应该能够在从硬线连接到分组交换或电路交换网络的各种通信系统之上操作。可以看原创 2021-06-07 10:43:07 · 930 阅读 · 1 评论 -
JAVA-基础-单例模式
单例模式单例模式定义:单例模式出现的原因:单例模式的2种写法:饿汉单例懒汉模式1.非安全的懒汉模式2.安全的懒汉模式:单例模式定义:单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在整个程序的运行过程中只存在一个实例化的对象。单例模式出现的原因:所有可以使用单例模式的类都有一个共性,那就是这个类没有自己的状态,换句话说,这些类无论你实例化多少个,其实都是一样的,而且更重要的一点是,这个类如果有两个或者两个以上的实例的话,程序竟然会产生程序错误或者与现实相违背的逻辑错误。原创 2021-06-01 10:47:02 · 221 阅读 · 2 评论 -
JAVA-Web-ThreadLocal
ThreadLocal的使用线程不安全的解决方案:使用场景1:需求:1000个任务的时间格式化线程不安全的解决方案:1.CPU抢占执行2.加锁synchronized\lock3.私有变量-------ThreadLocal线程级别的私有变量,和任务中的私有变量完全不同使用场景1:解决线程安全问题;需求:1000个任务的时间格式化方案A:加锁,可以解决线程不安全的问题,但需要排队执行,方案B:ThreadLocal创建线程级别的变量–10个SimpleDateFormat对象;1.通过线原创 2021-05-31 11:14:43 · 500 阅读 · 0 评论 -
JAVA-线程-CAS
线程高阶线程扩展常用专业术语:CAS(乐观锁的实现),ABA,JUC乐观锁:CAS问题**ABA解决方法**悲观锁**共享锁-非共享锁**:**读写锁****公平锁**:**自旋锁**:**可重入锁**:问题1:线程扩展常用专业术语:CAS(乐观锁的实现),ABA,JUC乐观锁:认为一般情况下不会发生并发冲突,只有在进行数据更新的时候,才会检测并发冲突,若无冲突则直接修改,有冲突返回失败CAS-Compare and swap,比较并交换,操作:假设内存中原数据为v,旧的预期值A,需要修改的新值原创 2021-05-28 11:15:49 · 214 阅读 · 1 评论 -
JAVA-Web-基础-线程池
线程池引入:线程的缺点:1.线程的创建需要开辟内存资源,*1.本地方法栈,*2.虚拟机栈*3.程序计数器等线程私有变量的内存频繁的创建和消耗会出现一定的性能开销2.使用线程不能很好的管理任务和友好的拒绝任务3,强制:线程资源必须通过线程池提供,不允许在应用中自行显示的创建线程,线程池可以减少在创建和销毁线程上锁消耗的时间以及系统资源的开销,解决资源不足的问题,如果不使用线程池,有可能造成系统创建大量同类线程而导致消耗完内存或“过度切换”的问题;线程池定义:指的是池化技术来管理和使原创 2021-05-24 10:28:15 · 602 阅读 · 1 评论 -
JAVA-基础-线程不安全问题
111原创 2021-05-09 17:02:32 · 501 阅读 · 0 评论 -
JAVA-基础-线程
多线程:进程是系统分配资源的最小单位,线程是系统调度的最小单位,一个进程内的线程之间是可以共享资源的;线程是进程执行的最小单位,也是进程执行的实际单位;线程依附进程进行存活;进程好比工厂,线程好比流水线;进程不能共享资源,线程可以共享资源每个进程至少有一个线程存在,即主线程;线程可共享的资源:1.打开的文件;2.内存:对象不可共享的资源:线程自身的上下文,记账信息,状态不可共享当线程的数量到达某个合适的值是最好的,如果有太多的线程,就会出现线程之间的争抢和CPU的过度调度问题,而CPU调度是原创 2021-05-06 19:20:06 · 405 阅读 · 1 评论 -
JAVA-Web基础-http原理
http原理要理解Http原理首先得指导TCP/IP协议计算机与网络设备之间如果要相互通信,双方就必须基于相同的方法,比如如何探测到通信目标,由哪边发起通信,使用哪种语言进行通信,怎样结束通信,都需要提前确定好,所以需要一种规则,称为协议。TCP和IP都是分层管理的,分别为应用层,传输层,网络层,数据链路层,物理层,分层之后,对于后期需要改进的地方,可以进行快速的改进,无需全部替换,只需将变动层替换即可具体分层如下所示:物理层:负责信息在节点之间的传输,本层协议和链路有关,也与传输介质有关,原创 2021-03-31 21:30:07 · 212 阅读 · 4 评论 -
JAVA-Web基础-HTML
JAVA-Web-基础HTML关于元素块元素和内联元素空元素属性布尔属性文档结构常见的元素介绍标题:到段落:列表:超链接:``块级无语义元素:``HTMLHTML并不是一门变成语言, 而是一种用来告知浏览器如何组织页面的标记语言,HTML可以很复杂它也可以很简单,一切取决于开发者。HTML由一系列简单的元素组成,这些元素可以用来包围不同部分的内容,使其按照想要的方式呈现或者工作。一对标签可以为以短文字或图像添加超链接,将文字设置为斜体,改变字号等关于元素开始标签:包含元素的名称,被<&g原创 2021-03-31 17:16:08 · 408 阅读 · 0 评论 -
MYSQL-基础学习
基础创建操作:1.创建数据库:显示当前有哪些数据库:show databases; create database 数据库名;如果当前没有此数据库就创建一个,create database if not exists db_test2;还可以同时设置数据库的校验规则:create database if not exists db_test2 character set utf8mb4;使用数据库:use 数据库名;删除数据库:drop database 数据库名;2.在数据库原创 2021-03-14 21:42:09 · 122 阅读 · 0 评论 -
JAVA-基础-Map和Set
1概念Map和set是一种专门用来进行搜索的容器或者数据结构,其搜索的效率与其具体的实例化子类有关。以前常见的搜索方式有:直接遍历,时间复杂度为O(N),元素如果比较多效率会非常慢二分查找,时间复杂度为,但搜索前必须要求序列是有序的上述排序比较适合静态类型的查找,即一般不会对区间进行插入和删除操作了,而现实中的查找比如:根据姓名查询考试成绩通讯录,即根据姓名查询联系方式不重复集合,即需要先搜索关键字是否已经在集合中可能在查找时进行一些插入和删除的操作,即动态查找,那上述两种方式就不太适原创 2021-02-16 21:04:29 · 376 阅读 · 4 评论 -
JAVA-基础-几种常见的排序
1.概念排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。平时的上下文中,如果提到排序,通常指的是排升序(非降序)。通常意义上的排序,都是指的原地排序(in place sort)。排序的稳定性指的是:两个相等的数据,如果经过排序后,排序算法能保证其相对位置不发生变化,则我们称该算法是具备稳定性的排序算法2.几种常见的排序方法1.直接插入排序:直接插入排序非常简单,将数组分为两个区间,有序和无序区间,将无序区间的数一个个的插入到有序区间即可;用图来演示:上原创 2021-02-01 21:38:27 · 399 阅读 · 1 评论 -
JAVA-基础-优先级队列(堆)
1.优先级队列:堆使用数组保存二叉树结构,方式即将二叉树用层序遍历方式放入数组中。一般只适合表示完全二叉树,因为非完全二叉树会有空间的浪费。这种方式的主要用法就是堆的表示。在存储二叉树的数组中:已知双亲(parent)的下标,则:左孩子(left)下标 = 2 * parent + 1;右孩子(right)下标 = 2 * parent + 2;已知孩子(不区分左右)(child)下标,则:双亲(parent)下标 = (child - 1) / 2;2.堆heap的概念堆逻辑上是一棵原创 2021-01-30 11:14:57 · 152 阅读 · 0 评论 -
JAVA-完全二叉树的判断
1.完全二叉树首先了解什么样的二叉树是完全二叉树:完全二叉树:完全二叉树是效率很高的数据结构,完全二叉树是由满二叉树而引出来的。对于深度为K的,有n个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从1至n的结点一一对应时称之为完全二叉树。下面用几个例子来表示一下:从上图可以总结出,完全二叉树的特点:1.与对应的满二叉树的节点序号可以对应,这也就是说:按照层序遍历完全二叉树,将每个节点存储到栈中,这些节点中间是不存在null节点的2.非完全二叉树往往中间存在空节点,而完全二叉原创 2021-01-28 16:50:02 · 1283 阅读 · 0 评论 -
JAVA-基础-二叉树
1.树的概念最近学习了二叉树,总结一下二叉树的有关知识树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:1.有一个特殊的节点,称为根节点,根节点没有前驱节点。2.除根节点外,其余节点被分成M(M > 0)个互不相交的集合T1、T2、…、Tm,其中每一个集合Ti (1 <= i <= m) 又是一棵与树类似的子树,每棵子树的根节点有且只有一个前驱,可以有原创 2021-01-26 19:48:29 · 146 阅读 · 0 评论 -
JAVA-集合-LinkedList
这里的链表代码用集合的方法写,链表能够存储各个类型的元素定义和概念省略,在这个链表中加入了抛出异常的操作,让整个链表更加完整package 集合;public class myLinkedList <T>{ private ListNode<T> head; private int size; private ListNode<T> end; public void display(){ ListNode cur=原创 2021-01-24 15:13:13 · 103 阅读 · 0 评论 -
JAVA-基础-字符串相关知识
1.创建字符串public static void main(String[] args) { //创建字符串的三种方式 //1. String str1 = "hello"; //2. String str2 = new String("hello"); //3. char[] chars = {'h','e','l','l','o'}; String str3 = new S原创 2021-01-20 17:30:30 · 168 阅读 · 1 评论 -
JAVA-练习-throws和throw抛出异常
1.throwsthrows抛出异常,通常是在类的声明阶段,代表声明的异常抛出,但不进行处理;当程序员不能处理出可能出现的异常时,就需要在方法声明阶段声明异常,那么在后续出现异常的情况下就能够知道异常的情况避免了出现异常却不知道具体异常的情况代码示例如下:注意 在方法声明异常时需要在调用其的方法也声明异常如代码中match2中声明了异常,main中也需要声明异常public class testDemo { private static String userName ="char原创 2021-01-19 22:41:45 · 552 阅读 · 0 评论 -
JAVA-图书按管理系统程序练习
图书管理系统的操作对象是书因此先定义书package book;import java.awt.print.Book;public class book { private String name; private String author; private int price; private String type; private boolean isBorrowed = false; public book(String name,Str原创 2021-01-18 19:25:42 · 293 阅读 · 1 评论 -
JAVA-多态
对多态的理解有了向上转型,动态绑定和方法重写的了解之后,才能理解多态的形式首先看看通过使用动态绑定的形式使用不同类中的同名方法public class muchState { public static void main(String[] args) { Shape s1 = new Cycle(); Shape s2 = new Rect(); Shape s3 = new triangle(); drawMap(s1);原创 2021-01-18 00:00:13 · 142 阅读 · 1 评论 -
JAVA-基础-类和对象基础知识
java类和对象1.类的实例化2.构造方法3.通过this关键字调用构造方法1.类的实例化本文内容皆用代码表示:public class Main{ public static void main(String[] args){ //类的实例化 Person lz = new Person(); lz.eat(); lz.sleep(); lz.setMoral("bad"); System.out原创 2020-12-25 12:25:06 · 276 阅读 · 2 评论 -
JAVA-基础:继承和多态-基础
1.包包是组织类的一种方式。使用包的主要目的是保证类的唯一性。如:在代码同个包低下写了两个名称相同的类,就会冲突,导致代码不能编译通过。使用 import 可以导入我们所需要的包import java.util.date;import java.util.* //表示导入Java.util包底下所有的方法/类public class test{ public static void main(String[] args){ Date date = new Date(); syst原创 2021-01-14 22:11:09 · 140 阅读 · 0 评论