- 博客(49)
- 收藏
- 关注
原创 spring浅学
springmvc是基于spring的一个框架,实际上就是spring的一个模块,专门做web开发的,是servlet的一个升级web开发底层是servlet,框架是在servlet基础上加入了一些功能,让你做开发方便SpringMVC就是一个Spring,Spring是容器,ioc能够管理对象,使用, @Component, @Repository, @Service, @Controller。...
2022-08-08 21:43:13
327
2
原创 前端架构基础 vue04 vue中的网络请求
使用ajax请求的时候,如果发送请求的页面url 同 接口 url的 协议、ip(域名),端口号,只要有一个同,那么浏览器就会阻止服务器的响应, 这是浏览器的一种安全机制,这种请求称为:跨域请求。formData 表单数据, 后端要求接收一个 key1=value1&key2=value2的字符串,前端必须拼接成对应的格式发送。$.ajax默认发送也是formData。form表单标签默认发送的就是这种格式。vue.config.js文件。其他就需要自己拼接转换。发送网络请求的url。...
2022-08-06 10:30:31
277
原创 前端框架基础 vue02
手动安装vue-router默认安装出来的版本是4.x版本,4.x版本是为vue3.x匹配制作的,导致我们vue2.x核心的项目无法使用采用构建编译的方式开发项目,经常会遇到依赖与依赖之间版本匹配的问题,特征是代码不报错,项目报错出在依赖中。解决方案是尝试更换不同的依赖版本,一般是降版本。...
2022-07-20 17:05:43
408
原创 前端框架基础 vue01
vue+webpack做的是单页面 SPA应用,因此内部页面跳转,本质上是标签容器的切换。这种切换需要利用前端的路由概念来实现,因此我们需要安装一个别人已经写好的路由跳转插件
2022-07-19 23:21:21
93
原创 doget与dopost、cookie与session学习
HTTP是一个基于请求与响应,无状态的,应用层协议。无状态服务器不知道用户上一次做了什么,这严重阻碍了交互式Web应用程序的实现。Cookie网站为了辨别用户身份,存储在用户本地终端上的数据,Cookie是由服务端生成的,发送给客户端(通常是浏览器)的。Cookie总是保存在客户端中,按在客户端中存储位置,可分为内存Cookie和硬盘Cookie。内存Cookie由浏览器维护,保存在内存中,浏览器关闭后就消失了,其存在时间是短暂的。...
2022-07-19 13:10:44
391
原创 JDBC调用存储过程
加载驱动Class.forName创建数据库连接conn= DriverManager.getConnection创建处理块CallableStatement cs = conn.prepareCall放入参数prepareCall.setString执行存储过程prepareCall.execute()关闭连接无参数的存储过程
2022-07-09 16:30:58
3759
原创 JDBC编程
JDBC即java数据库互连,是java语言和数据库之间独立于数据库的连接标准API,JDBC从根本上来说是一种规范,具体的实现需要依赖于具体数据库生产商提供jar包【驱动】,提供了统一的接口用于访问不同的底层数据库,允许使用java语言编写不同的应用程序以访问数据库。为Java语言定义了一个SQL调用级别的统一界面为访问关系型数据库提供了一个标准的界面所谓的JDBC实际上就是一种用于执行SQL语句的API,可以采用一致的方式连接不同的额数据库系统,从而使用标准的SQL语言来存取数据库中的数据...
2022-07-09 10:55:55
209
原创 数据库连接池
数据库连接是一种关键的、有限的、昂贵的资源,这一点在多用户的应用中体现得尤为突出。对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。数据库连接池正是针对这个问题提出来的数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数据库操作的性能。...
2022-06-25 14:33:22
415
原创 MySQL存储过程
存储过程就是在数据库中定义的一些sql语句的集合,可以直接调用存储过程执行已经定义好的sql语句,从而避免重复编写相同的sql语句的问题。存储过程是一组为了完成特定功能的sql语句的集合,使用存储过程的目的在于将常用的复杂工作预先使用sql语句定义好,并指定一个名称存储起来,数据库管理系统会将存储过程进行编译和优化后存储在数据库服务器中。以后需要使用对应功能时,只需要通过存储过程名称即可直接调用。一个存储过程是一个可编程的函数,在数据库中创建并保存,可以SQL语句和一些特殊控制结构组成常见的sql语句在执行
2022-06-24 15:35:37
1634
原创 数据库概论
数据库是指长期存储在计算机内有组织可共享的数据集合。数据库中的数据以及数据之间的关系按照一 定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并在一定的范围内可以被多个用户共享数据模型:层次模型、网状模型、关系模型,据说下一代是对象模型关系型数据库是建立在关系数据模型基础上的数据库,借助集合代数的概念和方法处理数据库中的数 据,同时也是一个被组织成具有描述的二维表格,表格的实质就是装载数据项的收集器,这些表格中的 数据能以不同的方式被存取或者重新召集,而不需要更新组织数据库的表格。
2022-06-18 14:21:28
83
原创 Java并发编程、锁
Java会将变量直接写入内存,其他线程读取时直接从内存读取。同时禁止指令重新排序volatile是一种轻量级线程安全机制;保证可见性和有序性,不能保证原子性锁对象:非静态this、静态Class、括号Object参数...
2022-06-09 09:36:23
80
原创 锁机制补充、Monitor对象
死锁的4大必要条件死锁的产生需要4个必要条件,也就是说满足4个条件不一定死锁,但是死锁一定满足4个条件1、互斥条件。竞争的资源具有排他性2、不可剥夺性条件。只能由获取资源的进程或线程主动释放,不能剥夺3、请求和保持条件。可以请求新资源,同时永远不释放已经获取到的资源4、循环等待条件。出现了循环等待链...
2022-06-07 11:56:13
1078
原创 统计、reduce归并方法、集合、字符串以及并行流中的问题等(Java学习回顾)
针对简单类型IntStream、LongStream和DoubleStream使用统计结果收集器产生统计结果值,主要用于int、long、double等基本类型reduce归并reduce方法用于将流种的元素进行进一步的对并计算收集结果当数据经过souce–transform–sink处理后进行处理结果的收集。一般使用Collectors提供的常见的收集 器字符串将stream中的字符串连接并收集起来,可以在元素之间添加指定符号Map集合可以使用Collectors.toMap方法将集合中
2022-06-07 09:07:13
458
原创 Java学习(java网络编程)
计算机网络就是通过传输介质、通信设施和网络协议,把分散在不同地点的计算设备互连起来,实现资 源共享和数据传输的系统。
2022-06-06 16:54:35
166
原创 Stream(2)(Java学习回顾)
流的转换操作Stream的操作符基本可以分为中间操作符和终止操作符两大类,中间操作符会继续向下传递,终止操作符直接对数据进行消费或者收集,不会继续向下传递中间操作符map转换操作符,可以将一个A转换为一个BflatMap可以将一个A转换为多个Blimit限流操作distinct去重操作,底层采用equals进行比对filter过滤操作,去除不满足条件的数据peek跳出操作skip跳过操作sorted排序操作,Comparable和Comparator接口
2022-05-04 20:06:54
97
原创 Stream(Java学习回顾)
StreamStream流,是JDK1.8中对集合对象功能的增强,可以通过将集合转换为流模型,通过声明的方式对集合中个每个元素进行一系列并行或者串行的流水线操作对数据进行排序取值从数据源中获取一组用户信息,查找年满18周岁以上的所有用户,然后针对用户信息按照工资值进行倒序排序,获取所有用户的id编号public class User{ private Long id;//用户编号 private String name; private Double salary;//工资 priv
2022-05-04 16:06:56
223
原创 集合框架学习总结
集合框架总结所有的集合类位于java.util包下【注意juc包】,集合类主要是由两个接口派生出来的,Collection和Map接口是整个框架的根接口6个集合接口,用于表示不同的集合类型5个抽象类,对集合接口的部分实现8个实现类,是对接口的具体实现Collection接口:无序、允许重复。包含了集合的基本操作,可以分为List和Set两大分支List有序,每个元素都有一个下标索引,从0开始,具体实现LinkedList、ArrayList、VectorSet不允许重复,具
2022-05-02 11:25:50
143
原创 Stack栈(Java学习)
Stack栈数据的插入和删除只能在一个位置(末端)上进行,末端叫做栈顶,特征后进先出LIFO,实际上针对栈只有两种基本操作push进栈和pop出栈,基本实现有数组(顺序栈)和链表(链式栈)顺序栈的实现public class ArrayStack {// 可以使用泛型或者object类型 private String[] items;// 数组用于存储数据 private int count;// 用于统计栈中元素的个数// 初始化 public ArrayStack(int capacit
2022-05-02 10:49:56
130
原创 HashMap
hashmapJDK1.7采用的是头插法,容易产生环形链和数据丢失问题JDK1.8采用的是尾插法,容易产生数据丢失问题HashMap的实现原理散列或者哈希:以节点的key值为自变量,通过一定的函数关系(散列函数)计算出对应的函数值,以这个值为该节点存储在散列表中的地址JDK1.7采用的是数组+链表,而JDK1.8采用的是数组+链表+红黑树HashMap在JDK1.7和JDK1.8的区别JDK1.7JDK1.8存储结构数组+链表数组+链表+红黑树初始化方式单独函
2022-04-13 14:13:25
117
原创 HashMap实现类
HashMap实现类HashMap默认的初始容积大小为16,加载因子默认0.75,threshold阈值为【容积*加载因子】HashMap采用的是链表法解决哈希冲突问题,同时引入红黑树可以避免单个链表长度过长的问题默认8将单向链表转换为红黑树,注意这里还有一个条件默认64,只有集合中的结点数大于64时才可能进行树化处理默认6将红黑树退化成链表hash函数的涉及需要考虑简单高效和分布均匀两个方面,所以首先获取key对象的hashCode值,然后要将hash值的高位和低位进行与运算后,再针
2022-04-12 17:01:23
443
原创 基本排序算法、查找算法、链表的实现、集合框架回顾(Java学习)
基本排序算法Java中常见的排序算法有7种:冒泡、插入、选择、快速、希尔、归并和堆冒泡排序核心思想是:相邻比较,交换位置时间复杂度O(n**2),空间复杂度O(1),稳定的public class Test1 { public static void main(String[] args) { int[] arr = new int[10]; Random r=new Random(); for(int i=0;i<arr.len
2022-03-19 09:25:39
83
原创 Java学习(克隆)
对象克隆Object类中定义一个clone方法protected native Object clone() throws CloneNotSupportedException;native方法用于声明一个非java语言实现的代码,供java程序调用。因为java语言程序是运行在JVM上, 如果要访问比较底层的与操作系统相关的方法就没有办法了,只能通过比较靠近系统的语言来实现,比 如C/C++。Object a=new Object();Object b=a; //变量b中存储的是变量a的引用
2022-03-15 23:15:59
68
原创 Java学习(流)
流的概念在Java程序中,对于数据的输入输出操作以流Stream方式进行,JavaSE提供各种各样的类用于使用相同的方法获取不同类型的数据,程序中通过标准的方法输入或者输出数据流是处理输入/输出的一个洁净的方法,它不需要代码理解键盘和网络的不同。Java中流的实现是基于java.io包定义的类层次结构的流的分类从Java不同版本上来说,流可以分为BIO、NIO和AIO三大类。Java中的BIO、NIO和AIO理解为是Java语言对操作系统的各种Il0模型的封装。程序员在使用这些API的时候,不需要关
2022-03-15 16:03:26
372
原创 Java学习(泛型2)
泛型本质上是指类型参数化泛型的继承泛型类是可以继承的,任何一个泛型类可以作为父类或者子类,不过和普通的继承略有不同父类 public class A{}泛型的子类必须将将泛型父类所需要的类型参数沿着继承链向上传递子类不是泛型类则需要给泛型父类传递类型常量public class B extends A<String>{}子类时泛型类可以给父类传递类型常量,也可以传递类型变量public class B<T> extends A<T>{}
2022-03-12 09:49:16
180
原创 Java学习(泛型-1)
将一个对象放入集合中,集合不会记住这个对象的具体类型(向上转型Object tmp = new Date();)当再次从集合中取出对象时,该对象的编译期类型变成了Object类型,但是其运行时类型仍然为原始的类型public static void main(String[] args) { List list = new ArrayList(); list.add("123"); list.add(123);// 集合中不能存放原生类型,这里会涉及自动装箱操作 list.add(new
2022-03-10 16:06:59
333
原创 Java学习
Collection接口(无序、可重复),子接口List接口(有序(引入索引号,可插入修改顺序)、可重复),子接口Set接口(无序、不可重复)线性表:数组、链表Iterator 和 Iterable 接口Collection 接口作为集合框架的顶级接口之一,继承于 Iterable 接口public interface Collection <E> extends Iterable<E>Iterable 接口Iterable 接口用于引入可遍历的功能,要求接口的具体实现类
2022-03-06 16:46:36
375
原创 Java学习(集合框架)
集合框架(1)数据结构是了解数据存储在内存中的顺序和位置关系;算法是为求解一个问题所需要遵循的、被清楚指定的简单指令的集合。数据结构是为算法服务的,算法是要作用在特定的数据结构上的。常见的数据结构与算法:数据结构:数组、链表、栈和队列、散列表hash、二叉树、堆、跳表、图算法:递归、排序(学习七种和三种扩展,冒泡和快排必须掌握)、搜索、哈希、贪心、分治、回溯、动态规划、字符串匹配学习方法记忆接口中的方法,记忆对应接口的实现类(区别和如何选择,选择的原因是学习的重点)集合框架如何持有一组数据
2022-02-24 15:46:08
427
原创 Java学习(锁机制)
锁机制对象锁:同步方法,锁住的对象全局锁:类锁,静态方法,锁住的是class类synchronized使用场景用于实现代码的同步处理,保持可见性、有序性和原子性数据不安全的2个条件:共享的临界资源、多线程同时访问并改变数据synchronized三种形式synchronized修饰普通方法,锁对象是当前对象synchronized修饰静态方法,锁对象是当前类synchronized修饰同步代码块,锁对象是synchronized后面括号中的配置对象当时有synchronized修饰同步代
2022-02-21 19:36:50
138
原创 Java学习(BIO编程、NIO、AIO及其区别)
BIO编程使用统一接口进行操作,具体实现细节无关字节流InputStream和OutputStream,都实现了Closeable接口,所以支持try-resourcesInputStream操作用于实现数据的读取操作read():int 注意这里只是读取一个字节,0-255之间,-1表示流结束read(byte[]):int 返回值表示读取的具体字节个数,-1流结束close():void 关闭流另外不重要的方法 read(byte[],int,int) available
2022-02-13 23:17:32
213
原创 流模型学习
##流模型流是用于隐藏数据传输细节的操作模型,是数据传输的抽象表达,Java程序可以通过流来完成输入/输出操作根据操作方式的区别BIO阻塞同步、NIO非阻塞同步、AIO非阻塞异步根据流的方向分为输入流和输出流根据传输单位分为字节流和字符流根据功能范围节点流和过滤流...
2022-02-01 21:35:59
678
原创 Java学习(进程、线程)
基础概念程序是为了完成某个特定任务,使用某种计算机语言编写的一组指令的有序集合进程是具有一定独立功能的程序的运行过程,是系统进行资源分配和任务调度的一个独立单位线程是进程中的一个独立执行线索,是CPU调度和分配的基本单位,自己基本上不拥有系统资源进程每个进程都有独立的代码和数据空间,进程切换成本较高,一个进程中可以包含1-n个线程,进程是资源分配的最小单位同一个进程中的线程可能会有共享代码,可以共享进程的数据空间,每个线程由独立的运行栈和程序计数器,线程切换的开销很小,线程是CPU调用的最小
2022-01-26 14:49:39
361
原创 随机10道10以内的+ - 法
##随机10道10以内的+ - 法import java.io.File;public class Test {public static long number = 0;public static long size = 0;public static void main(String[] args) {File ff = new File(“c:/windows”);list(ff);System.out.println(“总共多少个文件:”+number);System.out.pr
2022-01-25 14:25:59
254
原创 Java学习(成员应用细节、栈和堆的区别、 方法参数传递、字符串缓存池等)
成员应用细节JVM主要包括三块内存空间,分别是栈内存、堆内存和方法区Java虚拟机包含类装载器子系统、执行引擎、运行时数据区、本地方法接口和垃圾收集模块。类装载器子系统:根据给定的全限定类名(如: java.lang.Object)来装载class文件到运行时数据区域的方法区中。执行引擎:执行字节码或执行本地方法。运行时数据区∶就是常说的JVM的内存,堆,方法区,虚拟机栈,本地方法栈,程序计数器。本地方法接口:与本地方法库交互,作用就是为了融合不同编程语言为Java所用,它的初
2021-12-15 13:57:35
103
原创 Java学习记录(抽象类)
抽象类面向对象编程的核心就是面向抽象编程,一般在开发过程中依赖抽象,不依赖具体public class A{ public void pp(Pig pig)}//如果使用具体类,则不具备灵活性。如果需要使用Cat,则只能修改源代码public class A{ public void pp(Animal obj){}//调用方法时实际上可以传入任何Animal的子类,例如Pig或者cat}class Animal{}class Pig extends Anima1{}class cat
2021-12-07 12:03:10
346
原创 语法基础:关键字final及static
语法基础:关键字final及staticfinalfinal的含义是最终的、不变的修饰变量final变量一旦初始化,则不能修改属性赋值可以声明的同时直接赋值private final string name="zhangsan";,还可以在构造器或者非静态代码块中进行赋值class Al { private final String name = "zhangsan" ;}class B1 { private final String name; public B1(){
2021-12-05 09:25:19
101
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人