- 博客(48)
- 收藏
- 关注
原创 初识HTTP的基础逻辑入门(内含思维导图)
初识HTTP一,HTTP协议简介二,HTTP请求/响应的步骤1,客户端连接到web服务器2,发送HTTP请求3,服务器接收请求并返回HTTP响应4,释放TCP连接5,客户端浏览器解析HTML内容三,HTTP请求方法GETHEADPOSTPUTDELETETRACEOPTIONSCONNECT四,两种开发模式1,静态网页2,动态网页3,BS/CS的结构和各自优缺点优点缺点一,HTTP协议简介超⽂本传输协议(英⽂:HyperText TransferProtocol,缩写:HTTP)是⼀种用于分布式、
2021-12-28 11:08:38
1589
1
原创 如何避免SQL注入(一文弄懂SQL注入与它的解决办法)
如何避免SQL注入(一文弄懂SQL注入与其解决办法)一,SQL注入:1. 是什么2. 语句3. 如何解决二,PreparedStatement1. 什么是动态提供参数2. 对比PreparedStatement与Statement3. 实例展示最近学习到了SQL注入,也就是利用现有应用程序,将恶意的SQL命令注入到后台数据库引擎,最终达到欺骗服务器执行恶意的SQL命令。那么如何解决这个问题呢,下面博主对自己的学习结果进行总结与大家分享。一,SQL注入:1. 是什么就是利用现有应用程序,将恶意
2021-12-03 23:11:25
2526
原创 JDBC 如何在Java中操作数据库(实例演示,看不懂我背锅)
JDBC 如何在Java中操作数据库一,JDBC简介1,是什么:2,有什么用:3,核心组件:二,CRUD语法介绍1,是什么:2,怎么用:三, JDBC使用步骤1,在Java中操作数据库六步骤:2,JDBC的连接步骤(1) 导入JDBC包:(2) 注册JDBC驱动程序:(3) 数据库URL配置:(4) 创建连接对象:四,不同数据库的网址格式五,实例演示1,通过Java演示查询操作:2,通过Java演示增加、修改、删除操作六,最后工具介绍一,JDBC简介1,是什么:JDBC(Java DataBase
2021-12-02 21:15:24
629
原创 SQL语言(最基础,实例讲解)
SQL语言1. 概述2. SQL语句分类2.1 DDL操作数据库1 创建2 查看数据库3 修改数据库4 删除数据库5 其他语句2.2 DDL操作表其他表操作2.3 DML操作1. 插入操作 INSERT2. 修改操作 UPTATE3. 删除操作 DELETE4. sql中的运算符:2.4 DCL操作1、创建用户:2、用户授权:3、用户权限查询:4、撤销用户权限:5、删除用户:2.5 DQL数据查询(重要)1, 简单查询2, 条件查询3, 模糊查询4,字段控制查询5, 排序6, 聚合函数聚合函数之分组查询聚
2021-11-29 23:21:35
7546
原创 数据库简介
数据库简介数据库简介常见数据库管理系统三大范式:数据库简介数据库(DataBase,DB):指长期保存在计算机设备上,按一定规则组织起来,能被用户和应用共享的数据集合。数据库管理系统(DataBase Management System,DBMS):指一种管理和操作数据库的大型软件,能够建立、使用、维护数据库,用户通过数据库管理系统访问数据库中数据。在编程中,对数据库的理解就是:存储、维护和管理数据的集合。常见数据库管理系统Oracle:Oracle数据库被认为是业界目前比较成功的关系型数据库
2021-11-29 23:20:08
250
原创 JSON与Java两种解析方式
JSON与Java两种解析方式JSON介绍对象格式数组格式案例:JSON解析 (重要)GsonFastJsonJSON介绍JSON(JavaScript Object Notation)是一种独立于任何语言的轻量级简谱,用来存储数据。相对于XML,JSON格式文本,程序员解析更加简单,机器解析效率更高。由于文本更小所以传输更快。对象格式一个对象, 由一个大括号表示.括号中描述对象的属性 .通过键值对来描述对象的属性(可以理解为, 大括号中, 包含的是一个个的键值对.)格式:键与值之间使用冒
2021-11-26 13:57:43
234
1
原创 XML及XML的解析方式
XML写在前面的话简介为什么学习XMLXML文件XML语法格式1,XML文档声明2,标记(元素/ 标签/ 节点 )3,标记可以嵌套,但不能交叉4,一个XML文档中,必须有且仅有一个根标记5,标记的层级称号6,标记名称允许重复7,标记除了开始和结束,还有属性8,注释语法进阶CDATA(了解)DOM4解析XML解析步骤:文档对象 Document元素对象解析本地文件案例:解析网络文件案例:Xpath解析XML路径表达式使用步骤通过java生成XML步骤举例:XStream的使用(了解)使用步骤举例:Java如何
2021-11-26 00:05:07
550
原创 Java 基于TCP的网络编程
基于TCP的网络编程TCP协议的C/S程序ServerSocker常用构造方法:常用方法:Socker构造方法常用方法:举例多线程服务器TCP协议的C/S程序需要使用到两个类,来编写TCP协议的 CS 程序:ServerSocker 搭建服务器Socker 搭建客户端在进行网络搭建,一定是先有服务器,然后我们再搭建客户端连接服务器。下面对两个类进行介绍:ServerSocker用于创建服务器,创建完毕后,会绑定一个端口号;然后此服务器就可以等待客户端的连接。每连接一个客户端,服务器就
2021-11-24 23:02:08
653
原创 Java 网络编程:最重要的三点
网络编程网络编程程序的分类TCP协议 - OSI网络模型:三次握手和四次挥手:网络编程最需要重点了解的有三个点:ip地址端口号网络协议了解以上这些后就能进行网络编程。什么是计算机网络分布在不同地域的计算机, 通过硬件等网络设备使用通信线路互相连接形成的一个网格系统. 计算机网络, 可以很方便的进行 信息的传递, 资源的共享 !什么是计算机的IP地址IP地址 是计算机在互联网中的唯一标识 . 就像人在社会中的身份证号码. 本机IP: 127.0.0.1 localhost
2021-11-24 23:01:21
354
原创 线程池与Lambda表达式
线程池与Lambda表达式四种线程池缓存线程池:定长线程池3. 单线程线程池4. 周期性任务定长线程池Lambda表达式一个线程执行任务的完整流程是:创建线程创建任务执行任务关闭线程这个流程中创建线程和关闭线程耗费的时间在90%,而我们有时候创建线程就是为了执行一个很小的任务,这就会导致效率很低。而线程池就是一个容纳多个线程的容器,池中的线程可以反复的使用,省去了频繁创建和销毁线程的时间。线程池分为定长和非定常线程池,线程池的结构可以看作是数组形式,每个下标放一个线程。四种线程池Ja
2021-11-23 22:29:25
415
原创 多线程之六种状态
多线程之六种状态多线程通信举例子线程的六种状态带返回值的线程CallableCallable接口的所有方法Callable使用方法使用步骤不调用get方法调用get方法多线程通信多线程通信即多线程交互问题,举个例子:线程一网上下载音乐,线程二播放下载的音乐。交互问题都可以归类为生产者和消费者问题:生产者生产时消费者休眠,生产好后生产者唤醒消费者然后生产者休眠,消费者消费完之后再唤醒生产者然后消费者休眠,生产者还是工作。在这里生产者和消费者各代表一个线程。在Object类中有几个方法是用于多线程通
2021-11-23 22:28:27
245
原创 线程与进程及多线程实现
这里写目录标题线程与进程概述线程调度同步与异步并发与并行在JAVA中实现多线程程序线程创建方式一:继承Thread:线程创建方式二:实现Runnable实现Runnable与继承Thread相比有如下优势:Thread类第一看常用构造方法,用来创建一个线程:第二看常用的普通中常用的方法:设置和获取线程名称线程休眠sleep线程阻塞线程中断线程守护线程安全问题线程安全1—同步代码块线程安全2—同步方法线程安全3—显示锁Lock公平锁和非公平锁线程死锁线程与进程概述进程:一个进程指一个应用程序,每个进程都有
2021-11-22 23:07:19
227
原创 IO流,小白入门基础知识
IO流IO流什么是IO流IO流的分类字节流前序OutputStream方法FileOutputStreamInputStream方法FileInputStream构造方法字符流文字在UTF-8的存储WriterFileWriterReaderflush刷新管道字节转换字符流输入流转换InputStreamReader输出流转换OutputStreamWriterPrint与BufferedReaderIO流什么是IO流将文件从C盘复制到D盘,或者网上下载一个文件,这种可以将数据传输的操作,看做一种数据
2021-10-14 22:50:32
236
原创 集合在JDK9中的新特性
集合在JDK9中的新特性JDK9有提供创建固定长度集合更便捷的方法;集合长度是不可变的仅仅存在于:List.of(e…);Set.of(e…);Map.of(e…);
2021-10-03 19:48:28
94
原创 关于手动构建二叉树和它的底层逻辑
手动构建二叉树要满足的基本功能:创建二叉树节点;存数据;取数据;创建节点:/** * 二叉树的节点 */public class TreeNode { private Integer data; private TreeNode left; private TreeNode right; public TreeNode(Integer data) { this.data = data; } public Integer get
2021-10-03 19:45:17
148
原创 Map集合各子类区别分析
Map集合各子类区别分析Map集合下各子类存取方法其实不管是哪个子类,其存取方法都是一样的import java.util.*;public calss Demo{ //Map //HashMap,Hashtable,ConcurrentHashMap //TreeMap //LinkedHashMap public static void main(String[] args) throws IOException{ HashMap<
2021-10-01 21:31:20
230
原创 哈希表概述
哈希表概述哈希值万物都有哈希值方法hashCode()就是返回一个对象的哈希值;这个方法属于Object类,Object类是万物的父类,所以也就是万物都有哈希值;hashCode()返回的是int类型的值;哈希表结构哈希表的结构是对象数组+链表+二叉树的形式;对象数组长度为16,元素下标为0-15,每个元素称之为哈希桶,也就是有16个哈希桶;每个哈希桶的结构是链表加二叉树的形式;哈希表存取数据假如有个Object对象要存入哈希表中:刚开使用**Object.hashCode()**得到
2021-09-30 21:58:36
179
原创 常用类库之——泛型;入门级详解基础又全面
泛型定义:泛型指得是“参数化的类型”。通俗来讲就是我们要传入一个变量a,但是a具体是什么类型我们暂不确定,就给它定义为一个泛型(成为类型形参),等到后面a类型确定再传入具体类型(成为类型实参)。使用:泛型的使用有三种场景:在类中的使用、在接口中的使用、在方法中的使用。类中的使用:// 定义一个泛类public class ClassName<T>{private T data; public T getData() { return data; } pub
2021-09-28 11:42:09
140
原创 Java集合之——简述Map集合
Map集合前序如果现在假设要操作一对对象,则就必须使用 Map 接口,里面的所有内容都按照 key—value链值对的形式保存,也称为二元偶对象。接口定义public interface Map<K,V>K为链,V为值,一个链只能对应一个值,而且链不能重复变量和类型方法名称类型描述voidclear()普通清空 Map 集合中的内容booleancontainsKey(Object key)普通判断集合中是否存在指定的 keybool
2021-09-28 11:41:25
102
原创 Java集合之——Iterator与ListIterator迭代器
Iterator与ListIterator迭代器前言迭代器的作用就是用于遍历我们的集合,从集合中取数据。迭代器分为两种:Iteraitor:可以来迭代Collection下的所有集合,List和Set ;ListIterator:只能迭代List下的集合;Iterator方法iterator.hasNext():判断下一个位置有没有数据,返回boolean类型的值iterator.next():将指针箭头下移一格并获取数据iterator.remove():删除当前指针箭头指
2021-09-28 11:40:13
185
原创 java集合之——Collection接口;一文摸清楚collection和它子接口
文章目录**Collection与其子接口****前言****Collection方法****List接口****List接口中的方法****ArrayList类****前序:****实现****Vector类****前序****实现****构造方法****Vector 类和 ArrayList 类的区别****LinkedList类****前序****实现****LinkedList可以用来模拟栈的数据结构****LinkedList可以用来模拟队列(单端和双端)的数据结构****Set接口****前言*
2021-09-28 11:37:18
583
原创 Java面向对象之——接口;摸清楚接口和抽象类的区别
前言接口的概念和抽象类很像,不同的地方是:1,接口不允许有实例字段(对象中的数据称之为实例字段),而抽象类中允许有;2,接口中只能允许有抽象方法和全局常量;(全局常量就是由 public static final 修饰的属性)接口语法定义格式:interface 接口名称{ 全局常量; 抽象方法;}因为接口里面全部是抽象的方法,所以需要依赖自己的”子“来实现,这个”子“就是接口的实现类;接口的实现implements定义格式:class 子类 implements 父接口1,
2021-09-28 11:23:37
152
原创 Java核心类库之——String类;是小白就点进来吧
文章目录**String类****写在前面的话****String字符串****共享内存地址****字符串常量池****方法区****堆****1,新生代:****2,老年代:****3,永久代:****方法区的演变****String的构造方法****String类的所有方法****String字符串的拼接**拼接的另一种更好方法步骤String类写在前面的话在之前的操作中可以发现String可以表示一个字符串,Java中所有的字符串(“abc”)都是此类的实例。但是使用此类的时候也会发现有一
2021-09-28 11:17:18
287
原创 Java核心类库之——BigDecimal类;是小白就点进来吧
BigDecimal类我们知道,如果直接通过控制台运算0.1+0.2这类计算,会发现double和float的运算都会有些许误差。由于float和double类型运算时可能存在误差,所以BigDecimal的作用就体现出来了,它的目的就是为了解决运算之间存在的误差。使用方法首先分别创建两个BigDecimal的对象,然后通过调用BigDecimal中的方法对其进行运算,最后方法会返回一个新的BigDecimal对象。常用构造方法Public BigDecimal(String val){//传
2021-09-28 11:13:11
164
原创 Java核心类库之——Arrays类;是小白就点进来吧
Arrays类Arrays类包含用于操作数组的各种方法,比如二分查找,排序等等此类还包含一个静态工厂,允许将数组视为列表。如果指定的数组为null,则此类的方法都要抛出NullPointerException,除非另有说明。方法举例二分查找int[] arr = {8,1,2,3,4,5,6,7};//返回指定数字的下标System.out.println(Arrays.binarySearch(arr,key:8));//结果:0//遍历打印System.out.println(A
2021-09-28 11:12:10
121
原创 Java核心类库之——Math类;是小白就点进来吧
Math类Math包含很多方法,适用于执行基本数字运算的,比如指数,对数,四舍五入等等。。。碰到如需数字计算的,我们应该首先想到Math类。方法讲解举例:System.out.println(Math.abs(-100));//取绝对值System.out.println(Math.min(-100,200));//取最小值System.out.println(Math.manx(-100,200));//取最大值System.out.println(Math.round(100.5));
2021-09-28 11:10:52
347
原创 Java核心类库之——Objects类;是小白就点进来吧
Objects类Objects类是一个方法类,方里面包含很多的静态方法可以被我们直接调用。方法类整理:Objects类有很多方法,以下只是选了常用几个进行分析。equals方法equals是比较两个参数是否相等,相等返回true,不相等返回false;直接调用equals与Objects里的equals之间的区别:int a = null;int b = 10;System.out.println(a.euqals(b));System.out.println(Objects.equa
2021-09-28 11:08:57
373
原创 异常处理之——throws|throw|自定义异常;关键的混淆点都在这里了
throws关键字若某个方法可能会发生异常,但是不想在当前方法中来处理这个异常,那么可以将这个异常抛出,然后在调用该方法的代码中进行异常的捕获以及处理。所以将异常抛出,可以用throws关键字来实现,throws关键字通常被应用在声明方法中,用来指定方法可能抛出的异常,多个异常可以用逗号来分隔。如果异常的类型是Erro和RuntimeException或是它们的子类,那么可以不使用throws关键字来声明。将异常通过throws关键字抛给上一级,如果仍然不限处理这个异常,可以继续向上抛出,但是最终必
2021-09-27 12:00:39
429
原创 异常处理之try-catch;入门级详解基础又全面
异常处理之try-catch目标1,明确什么是异常(重点)2,能辨识出常见异常和含义(熟悉)3,理解异常产生原理(了解)4,能够处理异常(重点)5,能够自定义异常类型(熟悉)什么是异常异常就是在程序中导致程序中断的一种指令流。如何处理异常异常怎么发生的呢?我们写的代码通过main入口被JVM虚拟机调用,但JVM按照你写的指令执行时发现了错误,便会以程序中断的方式告诉你写的代码有错误。异常类型官方在发展的过程中给所有异常都归了类,以面向的对象的形式把异常告诉你。例如当JVM发
2021-09-27 11:48:18
573
原创 JAVA面向对象之——包装类;入门讲解进来就能看懂
写在前面的话在Java中有一个设计的原则“一切皆对象”,那么这样一来Java中的一些基本的数据类型,就完全不符合于这种设计思想,因为Java中的八种基本数据类型并不是引用数据类型,所以Java中为了解决这样的问题,引入了八种基本数据类型的包装类。为八种基本数据类型提供包装类的作用包装类的出现,能够使得基本数据类型和引用数据类型之间可以相互转换;序号基本数据类型包装类1intInteger2charCharacter3floatFloat4do
2021-09-27 11:44:28
149
原创 JAVA面向对象之——内部类;入门级详解进来就能看懂
写在前面的话内部类在面向对象中用的并不多,而且使用起来也有点抽象,所以我们只需要对其概念有个理解就好。不需要花费功夫深入学习。概念所谓内部类,就是在类的里面再定义一个类,那么这样的类称之为内部类。内部类有四种:成员内部类局部内部类匿名内部类静态内部类匿名内部类也是局部内部类的一种。成员内部类类的成员有属性、方法。现在又多了一种成员,这种成员为类。如果类不创建对象,则成员属性无法使用,对于成员内部类也一样,如果外部类不创建对象,内部类是使用不了的。成员内部类可以无条件使
2021-09-27 11:32:43
84
原创 JAVA面向对象之——Object类;入门讲解进来就能看懂
文章目录***写在前面的话******一,Object的多态******1,Object的继承******二,Api的使用 ******三,toString方法 ******四,equals方法***写在前面的话今天我们来讲Object类。之前说过万物皆对象,object就是对象的意思。这个概念放在类中的体现就是Object是所有类的父类。如果一个类没有明确哪个类是它父类,则默认Object类为它父类。一,Object的多态例如我们定义一个类:public class Person{}其实
2021-09-27 11:20:41
246
原创 JAVA面向对象之——多态;入门级讲解进来就能看懂
文章目录***写在前面的话******一,多态的体现******二,多态在编程中的体现******1,基础概念******2,编程中的使用******三,instanceof***写在前面的话多态是面向对象的三大特征之一。多态的意思可以理解为对象的多种表现形式,在面向对象中占有很重要的地位。一,多态的体现对象的多态性:我们知道类中有子类和父类之称,子类创建的对象,也是父类型的一种形态。这就是对象的多态性。扩展:方法的重载和重写也是多态的一种,不过是方法的多态(相同方法名称的多种形态)。重载
2021-09-27 11:14:39
131
原创 JAVA面向对象之——抽象类与接口;入门级详解进来就能看懂
文章目录***写在前面的话******一,抽象类******1,抽象方法******二,接口******1,面向接口编程思想******2,全局常量和抽象方法的简写******3,接口的实现 implements******4,接口的继承******5,接口和抽象类的继承***写在前面的话抽象类的在实际的工程开发中应用的特别广,它能够脱离项目之间牵扯的限制而单独编写。其实编写的也是一个抽象的概念,相当于给出一个框架,具体血肉在后面编程中再填上去。而接口,如果一个类中的全部方法都是抽象方法,全部属性都是
2021-09-27 11:09:21
102
原创 JAVA面向对象之——继承与重写;入门级讲解进来就能看懂
文章目录写在前面的话继承继承限制子类对象的实例化过程继承了就能拥有父类的所有东西吗?super关键字super可以做什么?重写重写规则重写Override与重载Overload的区别写在前面的话继承是Java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。是很重要的一个知识点。重写指的是方法的重写,发生在类的继承中。继承继承就是子类继承父类的特征和行为,使得子类具有父类的方法和属性。除了继承,子类还能创建自己的属性和方法。格式class 父类{}class 子类 exte
2021-09-27 10:32:57
138
原创 JAVA面向对象之——关键字;入门级进来就能看懂
thisthis指的是当前对象:Person p = new Person(); this指得就是new Person()或p。使用this关键字可以完成以下的操作:· 调用类中的属性。· 调用类中的方法或构造方法。· 表示当前对象。通俗的说:只要在类外外面能通过上面对象名p调用的,在类里面都能通过this调用。class Person{ private String name; private int age; Person(){ this("小明",
2021-09-27 10:20:06
92
原创 Java面向对象之——创建对象内存分析;入门级讲解进来就能看懂
写在前面的话Java中的不同数据存储在不同的存储区中,今天是将Java的面向对象,所以只介绍和其相关的三种内存区:栈、堆、方法区。栈栈特点栈的特点的先进后出,响应速度特别快。存储速度快的原因:栈内存, 通过 ‘栈指针’ 来创建空间与释放空间 !指针向下移动, 会创建新的内存, 向上移动, 会释放这些内存 !以此实现先进后出这种方式速度特别快 , 仅次于PC寄存器 !值得注意的是,这种移动的方式, 必须要明确移动的大小与范围 ,明确大小与范围是为了方便指针的移动 , 这是一个对于数据存储
2021-09-27 09:59:21
121
原创 面向对象的详解,只看这一篇就够了
目录一,面向对象概述与传统程序设计区别解决规模二,类概述封装扩展继承三,对象对象的三特性:行为状态标识四,创建类的思路五,类之间关系依赖聚合继承一,面向对象概述面向对象程序设计(object-oriented programming, OOP)是目前主流的程序设计范型。它的出现代替了以前的基于面向过程的编程技术。由于Java是基于面向对象设计的一门语言,所以想要学习Java,熟悉OOP...
2021-07-16 15:32:14
895
2
原创 多维数组和多维指针
目录一,多维指针二,多维数组一,多维指针首先我们已经知道: 指针的本质是变量 指针会占用一定的内存空间 所以基于此,我们可以定义指向指针地址的指针来保存指针变量的地址,这就称之为二维指针。intmain(){inti=0;int* p =NULL;int** pp = NULL;pp = &p;*pp= &i;return0...
2021-07-16 01:01:43
226
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人