- 博客(23)
- 收藏
- 关注
原创 SpringBoot 整合sftp 实现文件的上传和下载
1.引入pom文件依赖<!--sftp核心依赖包--><dependency> <groupId>com.jcraft</groupId> <artifactId>jsch</artifactId> <version>0.1.54</version></dependency> 1.1pom文件详情<?xml version="1.0...
2022-03-22 17:49:21
3370
1
原创 索引的优势与劣势
1.优势1.1 查找类似大学图书馆的书目索引,提高数据检索的效率,降低数据库的IO成本。1.2 排序通过索引对数据进行排序,降低数据排序的成本,降低了CPU的消耗。2. 劣势2.1 实际上索引也是一张表,该表保存了主键与索引字段,并指向实体表的记录,所以索引列也是要占用空间的。3. 注意虽然索引大大提高了查询速度,但是同时会降低表的更新速度,例如对表频繁的进行insert、update、delete。因为更新表的...
2022-03-10 17:01:41
1000
原创 数据库中char与varchar的区别?
1.char类型的长度是固定的,varchar的长度是可变的。2. char类型的效率比varchar的效率稍高。3.底层存储方式不同,char的存储方式是:对英文字符(ASCII)占用一个字节,对一个汉字占用两个字节;而varchar的存储方式是,对每个英文字符占用两个字节,汉字也占用了两个字节。两者的存储数据都非Unicode的字符数据...
2022-03-10 17:00:08
10353
1
原创 JDBC连接数据库的六大步骤
1. 加载驱动Class.forName("com.mysql.jdbc.Driver");2. 创建连接对象String url = "jdbc:mysql://localhost:3306/test";String user = "root";String password = "123456";Connection conn = DriverManager.getConnection(url, user, password);3. 创建执行sql语句的对象,传参。
2022-03-10 16:59:09
5620
原创 MySQL中并发事务会带来哪些问题?
1.脏读一个事务在处理过程中读取了另外一个事务未提交的数据。2. 丢失修改在第一个事务中修改了数据后,第二个事务也修改了这个数据。这样第一个事务内的修改结果就被丢失,因此称为丢失修改。3. 不可重复读一个事务范围内。多次查询某个数据,却得到不同的结果。实质是违反了事务的一致性原则。4. 幻读:幻读是指此事务中没有查到此数据,而在修改时却影响。 隔离级别 脏读 不可重复读 幻读 READ
2022-03-10 16:56:57
1844
原创 事务的四大特性(ACID)
1. Automicity:原子性: 强调事务的不可分割。2. consistency:一致性:事务的执行的前后,数据的完整性保持一致。且事务执行前后数据的总和不变。3. isolation:隔离性: 一个事务在执行的过程中,不应该受到其它事务的干扰。4. durability:持久性:事务一旦结束,数据就持久到数据库中。事务隔离性的四大隔离级别1.read uncommitted (读取未提交)2.read committed (读取已提交)3.repeatab
2022-03-10 16:56:09
616
原创 在mysql中,truncate和delete的区别
1. delete后面可以跟where条件,truncate不能跟条件。2. delete删除后有影响行数显示,truncate没有受影响行数显示。3. delete是一条一条数据删除,效率低;truncate是将整个表删除,在创建一个一模一样的表结构,效率高。4. delete删除后自增在原来最大值基础上,truncate会重新开始。5. delete删除是可以回滚的,truncate不能回滚。总结:1. 在速度上,一般来说,drop > truncate > de
2022-03-10 16:55:17
1108
原创 Java泛型
Java泛型(generics)是JDK5中引入的一个新特性,泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。泛型一般有三种使用方式:泛型类、泛型接口、泛型方法。常用的通配符为:T, E, K, V, ? 。?:表示不确定的Java类型。T(type):表示具体的一个Java类型。K V(key value):分别代表Java键值中的key、value。E(element):代表...
2022-03-10 16:51:40
105
原创 Java中的序列化和反序列化
序列化:将数据结构或对象转化成二进制字节流的过程。反序列化:将在序列化过程中所生成的二进制字节流转换成数据结构或者对象的过程。对于不想进行序列化的变量,使用transient关键字修饰。transient关键字的作用:阻止实例中那些用次关键字修饰的变量序列化,当对象被反序列化时,被transient修饰的变量值不会被持久化和恢复。关于transient还有几点注意:1. transient只能修饰变量,不...
2022-03-10 16:49:57
394
原创 构造方法有哪些特点?是否可被override?
1. 名字与类名相同。2. 没有返回值,但不能用void声明构造函数3.生成类的对象时自动执行,无需调用。4. 构造方法不能被override(重写),但是可以overload(重载)定义格式:修饰符 方法名称(参数列表) {方法体}...
2022-03-10 16:48:23
372
原创 什么是双亲委派机制?
1.什么是类加载通过javac将.java文件编译成.class字节码文件后,则需要将.class加载到JVM中运行,哪么是谁将.class加载到JVM的呢?那就是类加载器啦。2.类加载器类型Bootstrap ClassLoader(启动类加载器):该类加载器由C++实现的。负责加载Java基础类,对应加载的文件是%JRE_HOME/lib/ 目录下的rt.jar、resources.jar、charsets.jar和class等。 Extension ClassLoader(标准扩展类
2022-03-10 09:56:45
1009
原创 静态代码块和普通代码块的区别
1. 格式不同,静态代码块 static {},普通代码块{};2. 静态代码,在虚拟机加载类的时候就会加载执行,而且只执行一次;非静态代码,在创建对象的时候(即new 一个对象的时候)执行,每次创建对象都会执行一次。3. 执行顺序,静态代码块 -> 非静态代码块 -> 构造方法。...
2022-03-09 17:09:27
1884
原创 使用递归有什么注意事项?
1. 递归的效率比较低,因为方法需要不断的进栈和出栈。2. 递归的算法比较浪费栈内存的空间,栈内存本身比较小,很容易将栈内存的内存空间耗尽,那么程序就无法继续执行下去,报出一个错误:StackOverflowError 栈内存移除3. 递归一定要有出口,否则就是死递归。4. 构造方法不能递归使用。5. 递归算法的好处:思路比较简单,假设简单问题解决了。6. 所有的递归算法,都有非递归的解决方式,只不过非递归的算法设计比较困难。...
2022-03-09 17:08:40
1436
原创 ConcurrentModificationException 并发修改异常的出现原因以及避免方法?
并发修改异常(ConcurrentModificationException)出现原因:在使用迭代器遍历集合的同时,使用集合对象增加集合的元素;迭代器是依赖集合而存在的,在判断成功后,集合中新增加了元素,而迭代器却不知道就报错了。/** * 迭代器遍历 + 集合添加 * @param data */public static void mixture(List<Integer> data) { for(Integer number : data) {
2022-03-09 17:07:10
561
原创 Collection和Collections有什么区别?
Collection:java.util.Collection是一个集合接口(集合类的一个顶级接口)。它提供了对集合对象进行基本操作的通用接口方法。Collection接口的意图是为各种具体的集合提供最大化的统一操作方式。Collections则是集合类的一个工具类/帮助类,其中提供了一系列静态方法,用于对集合中元素进行排序、搜索以及线程安全等各种操作。...
2022-03-09 17:03:50
185
原创 接口和抽象类的异同?
相同点:1.都是上层的抽象层2.都不能被实例化3.都能包含抽象的方法,用于描述类具备的功能,但是不提供具体的实现。不同点:1:实现抽象类的子类使用extends来继承;接口必须使用implements来实现接口。2. 构造函数抽象类可以有构造函数,接口不能有。3. main方法:抽象类可以有main方法,并且我们能运行它;接口不能有main方法。4.实现数量类可以实现很多个接口,但是只能继承一个抽象类。5.访问修饰符接口中方法默认使用public修饰;
2022-03-09 16:56:44
211
原创 Java中操作字符串都有那些类?它们之间有什么区别?
操作字符串的类有:String、StringBuffer、StringBuild区别:String声明的是不可变的对象,每次操作都会生成新的String对象。然后将指针指向新的String对象,而StringBuffer、StringBuild可以在原有对象的基础上进行操作,所以在频繁修改字符串内容的情况下最好不要使用String。StringBuffer和StringBuild最大的区别在于,StringBuffer是线程安全的,而StringBuilder是非...
2022-03-09 16:55:57
2757
原创 静态变量和非静态变量的区别
1.成员变量有两种一种是被static关键字修饰的变量,叫类变量或者静态变量。另一种没有static修饰,为成员变量。类的静态变量在内存中只有一个,Java虚拟机在加载类的过程中为静态变量分配内存,静态变量位于方法区,被类的所有实例共享。静态变量可以直接通过类名进行访问,其生命周期与类的生命周期一样。而成员变量取决于类的实例。每创建一个实例,Java虚拟机就会为实例变量分配一次内存,实例变量位于堆内存中,其生命周期取决于实例的生命周期。...
2022-03-09 15:23:30
446
原创 成员变量和局部变量的区别
1. 在类中的位置不同:成员变量:类中方法外局部变量:方法定义中或者方法声明上(方法中)2. 在内存中的位置不同:成员变量在堆中局部变量在栈中3. 生命周期不同:成员变量:随着对象的创建而存在,随着对象的消失而消失;局部变量:随着方法的调用而存在,随着方法的调用完毕而小时。4. 初始化值不同:成员变量:有默认值局部变量:没有默认值,必须定义,赋值,然后才能使用。默认值:布尔值:Boolean false字节型:byte 0短整型:short 0
2022-03-09 15:21:40
518
原创 == 号和equal方法的区别
== 是一个比较运算符号,既可以比较基本数据类型,也可以比较引用数据类型,基本数据类型比较的是值,引用数据类型比较的是地址值。equal方法:Object内的equals方法比较的是是否为同一个对象,但是重写的equals方法比较的是引用数据类型的值。...
2022-03-09 15:20:11
213
原创 重载与重写的区别
重载(Overload):在同一个类中,方法名称相同,参数列表不同,与返回值类型无关重写(Override):在继承关系中,方法名称相同,参数列表不同,与返回值类型有关。重写,使用新的的方法实现,将父类方法中旧的方法实现覆盖掉。总结:方法的重载和重写都是实现多态的方式,区别在于重载实现的是编译时的多态性,而后者实现的是运行时的多态性。重载发生在一个类中,重写发生在子类与父类之间,重写要求子类被重写方法与父类被重写方法有相同的参数列表,有兼容...
2022-03-09 15:18:06
111
原创 力扣刷题 数组篇 第1331题 数组序号转换
1.题目描述:给你一个整数数组arr ,请你将数组中的每个元素替换为它们排序后的序号。序号代表了一个元素有多大。序号编号的规则如下:序号从 1 开始编号。一个元素越大,那么序号越大。如果两个元素相等,那么它们的序号相同。每个数字的序号都应该尽可能地小。2.示例输出:输入:arr = [40,10,20,30]输出:[4,1,2,3]解释:40 是最大的元素。 10 是最小的元素。 20 是第二小的数字。 30 是第三小的数字。输入:arr = [100,100..
2020-11-22 22:31:40
376
原创 如何简单制作自己想要的GeoJSON地理信息文件
如何简单制作自己想要的GeoJSON地理信息文件1、简介GeoJSON 是一种对各种地理数据结构进行编码的格式。GeoJSON 对象可以表示几何、特征或者特征集合。GeoJSON 支持下面几何类型:点、线、面、多点、多线、多面和几何集合。GeoJSON 里的特征包含一个几何对象和其他属性,特征集合表示一系列特征。2、开发中使用的场景经常我们在开发某个系统首页大屏展示时,可能会需要某个地图区域的GeoJSON文件。一般情况下常规的地图GeoJSON文件我们在网上是比较好找的。下面介绍一个我在日常开发中
2020-11-22 17:56:57
8420
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人