- 博客(32)
- 收藏
- 关注
原创 10月23日总结
JDK和JRE是什么?JDK 是 Java Development ToolKit 的简称,也就是Java开发工具包,JDK是整个 Java的核心,包括Java运行环境(Java Runtime Envirnment,简称 JRE),Java工具(比如 javac、java、javap等等),以及Java基础类库(比如 **.jar)。JRE(Java Runtime Envirnment)是Java运行时环境,包括JVM(Java虚拟机)和Java核心类库。Java中的集合类有哪些?ArrayLis
2023-10-23 23:05:55
90
原创 Java中的String
采用new关键字新建一个字符串对象时,JVM首先在字符串池中查找有没有"abcd"这个字符串对象,如果有,则不在池中再去创建"abcd"这个对象了,直接在堆中创建一个"abcd"字符串对象,然后将堆中的这个"abcd"对象的地址返回给s4,这样,s4就指向了堆中的这个"abcd"字符串对象;如果没有,则首先在字符串池中创建一个"abcd"字符串对象,然后再在堆中创建一个"abcd"字符串对象,然后将堆中这个"abcd"字符串对象的地址返回赋给s4引用,这样,s4指向了堆中创建的这个"abcd"字符串对象。
2023-10-18 16:47:08
90
原创 C语言中的字符串
多数人学习编程都是从C语言开始,因为学习C语言可以帮助初学者打下坚实的基础,包括对数据结构的理解,算法、计算机基础的理解;以便于在以后学某一门需求广泛的上层语言时(如:Java),可以事半功倍。
2023-10-15 22:54:46
91
原创 什么是AJAX?一文搞懂AJAX与传统请求的区别
这种方式存在着明显的弊端,假如我们在通过手机号+验证码登录某平台时,我们先输入手机号,然后点击发送验证码按钮,由于是传统的请求方式,将会重新加载整个页面,就会导致手机号的输入框清空,还需要再次输入手机号,这显然不是我们想看到的,这时,就要用到AJAX来解决这个问题了。也就是说,在同一个页面中,可以发送多个AJAX请求,这些请求之间是不需要等待的,而传统的请求方式不能做到这一点。例如,我们通过微信给某人发一条消息,不论他什么时候回复,在他没回复的这段时间,我们完全做其他的事情,而不用一直等待他回复,
2023-07-20 23:46:11
216
原创 Class文件中的静态常量池与方法区的运行时常量池
Java语言并不要求常量只有编译期才能产生,也就是说:并不是只有预置到class文件静态常量池中的内容才能进入到方法区的运行时常量池,在运行期间,也可能将新的常量放入运行时常量池中,这种特性被开发人员利用的较多的有。同时要注意:既然运行时常量池是方法区是一部分,那么自然会受到方法区内存的限制,当运行时常量池无法再申请到内存时,就会抛出。其中符号引用常量包括了类的全限定名称、字段的名称和描述符、方法的名称和描述符。,另一种是class文件中的静态常量池被加载到JVM的方法区中而形成的。
2023-07-01 14:02:51
67
原创 实训笔记(四)
转发是指当你对A请求某个资源时,A没有,但是A去其他地方请求得到,然后再返回给你,在这个过程中,地址栏并不会改变;重定向是指当你对A请求某个资源时,A没有,它会直接让你去另一个地方请求,所以地址栏会改变。注意:在这里,如果不在循环里面加(),那么只有一种商品时不会报错;列表中无元素和null是不一样的,null是空,new ArrayList()是一个新列表,只是列表中无元素。在商城项目里,要注意在下单时,数据库中必须记录有用户购买商品付款的金额,以免在发生退款情况时退款金额错乱。
2023-06-29 16:38:02
64
原创 实训笔记(三)
可能会出现服务错误时,例如:user中的某项数据过长导致插入数据库中时出现报错,如果我们用if else来环绕,那么就会出现500错误,会使服务无法进行;要想返回一个字符串,除了@PostMapping(“/index/addToCart”)这个注解,还得加上@ResponseBody,如果不加上@ResponseBody,那就就是返回路径(页面)。Mapper接口如果只有一个参数,那xml文件里的参数名可以不与Mapper里的参数名一致,因为只有一个参数,不论参数名是否一致,都一定会对应上。
2023-06-29 16:02:06
48
原创 实训笔记(二)
在xml文件里写更新某个元组数据时,可以更新元组的所有属性,这样就会更方便。当需要只更新某元组的一个属性时,直接用这样的语句,把不需要更新的属性保持为原来的值即可。注意:一般Tomcat设置有默认销毁session时间,例如,默认时间为120分钟,也可以自己进行设置。所有的聚合函数都具有确定性。这些数据对于Web应用来说,是全局性的,与整个应用的生命周期相同;前端的from表单中有多个数据时(例如,一个实体类的每一个属性),可以不用。这个数据的name是String类型的,数据本身是Object类型的。
2023-06-24 19:50:28
47
原创 实训笔记(一)
utf8mb3和utf8mb4的区别在于:utf8mb3最多使用3个字节来表示1个字符,utf8mb4最多使用4个字节来表示1个字符;在MySQL / MariaDB中,最好都使用utf8mb4,尽量不要使用utf8。这样写报错的原因可能是:父文件中指定了该依赖的版本,但是仓库中没有这个版本的依赖,所以再加上仓库中有的版本号就行了。自动装配失败,最后将springboot版本号有2.6.1更改为2.7.12后可以成功运行,猜测是版本兼容问题。中的数据,这样加载出来的页面才会有用。中,然后jsp中使用。
2023-06-23 13:35:45
55
原创 如何使用工具类Arrays的sort方法将对象数组进行排序?
如果按照以上的规则返回整数,那么Arrays的sort方法就会将此数组进行升序排序;若想进行降序排序,只需要将上面的规则颠倒,也就是当x小于y时,返回一个正数;当x大于y时,返回一个负数。方法实际上必须能够比较两个对象,并返回一个整数,即当x小于y时,返回一个负数;当x等于y时,返回0;当x大于y时,返回一个正数。在工具类Arrays中,有一个。对象所属的类必须实现。
2023-06-20 22:14:46
175
原创 面试题:Java中类加载的过程是什么?
准备阶段将会为类变量(被static修饰的变量)分配内存,并将其初始化为默认值。但是,在将类变量初始化之前,它们并没有初始化为真正的初始值。过程的最后一步,如果前面的步骤都没有问题,那么类就可以顺利的装载到系统中,此时,才真正开始执行类中定义的Java程序代码(或者说是字节码)。验证是连接阶段的第一步,其目的是为了确保Class文件的字节流中包含的信息符合当前虚拟机的要求,并且不会危害虚拟机自身的安全。方法是Java中的一个静态方法,在类被加载时会调用此方法,用于执行类的静态初始化。
2023-06-20 14:46:25
154
原创 Redis的五种基本数据类型
在Redis中,支持五种基本数据类型和多种高级数据类型。首先,我们要知道Redis是一款免费、开源、遵循BSD协议的高性能结构化存储数据库,Redis自身是通过C语言实现的,同时,Redis是基于内存的,采用Key-Value结构化存储的NoSQL数据库,加上其底层采用单线程和多路I/O复用模型,所以Redis的查询速度很快。Redis中的Key都是字符串类型的,但Value有五种基本数据类型。
2023-06-18 14:48:05
44
原创 SpringBoot项目中自定义RedisTemplate和StringRedisTemplate的属性
提供StringRedisTemplate的主要原因是:在Redis中,大多数的操作都是基于字符串的,因此在RedisTemplate的基础上再进一步提供一个工具类StringRedisTemplate,是针对字符串的,StringRedisTemplate默认采用了String序列化策略,当我们需要对Redis中的字符串进行操作时,就可以直接使用StringRedisTemplate,最大限度地减少其更通用模板的配置,尤其是在序列化上。当然,对于一些特定的Bean组件,也允许用户。
2023-06-15 16:03:46
350
原创 Java集合框架中的LinkedList和ArrayList
Java集合框架为不同的集合类型定义了大量接口,如下图所示:集合框架的接口如下图所示:集合框架中与List接口有关的类如下图所示:本文中我们来学习LinkedList和ArrayList的相关知识。由上图可以看出:在集合框架中,除了以Map结尾的类之外,其他类都实现了Collection接口,而以Map结尾的类实现了Map接口。List接口的常用实现有LinkedList和ArrayList。的功能可以简述为:可以在任意位置高效插入和删除的一个有序序列。
2023-06-12 17:45:43
48
原创 Java中的异常分类
对于异常情况,Java中使用了一种成为的错误捕获机制。Java允许每个方法有一个候选的退出路径,当方法不能以正常的方式运行至退出语句时(不能正常退出),这时就会选择这个退出路径,通过这个退出路径来退出方法。在这种情况下,方法不会返回一个值,而是一个封装了错误信息的对象。通过这种候选的退出路径退出时,这个方法会立刻退出,并不返回正常值(或任何值)。此外,也不会从调用这个方法的代码继续执行,取而代之的是,。在Java程序设计语言中,异常对象都是派生于类的一个类的实例。
2023-06-06 13:32:05
106
原创 面试题:什么是类型擦除?
如果类型变量有一个或多个限定类型,那就用第一个限定来替换类型变量,如果没有限定类型,那就用Object替换;而且编译器会在必要的时候做。是Java泛型的一种实现机制。无论何时定义一个泛型类型,都会自动提供一个相应的。在Java5中引入了泛型,泛型主要通过使用。,原始类型类体中的类型变量会被。,这个原始类型的名字是就是。来进行泛型程序设计。的原始类型的类名就是。
2023-06-05 13:45:40
58
原创 Object类中equals方法的实现机制
在Java中,Object类是所有类的父类,Java中的每一个类都扩展了Object。我们可以使用Object类型的变量但是,Object类型的变量只能用于作为任意值的一个。要想对其中的内容做具体的操作时,还需要清楚对象的原始类型,并进行相应的。然后对employee进行操作。
2023-06-04 16:49:45
114
原创 面试题:Java中的集合类有哪些?
从Java1.0版本开始,标准类库中就包含了Stack类,但是Stack类扩展了Vector类,而Vector类又实现了List接口,所以Stack类也包含在List中。循环可以处理任何实现了Iterable接口的对象,因此,List、Set、Queue这三类集合都可以使用。这里的有序是指在向List中插入元素时,插入的顺序是可以保持的。从继承关系上讲,List、Set、Queue这三个接口都是Collection的子接口,而。其中List、Set、Queue都是单一元素的集合,而Map中存储的是键值对。
2023-06-03 23:42:31
111
原创 Java集合框架中Iterable接口和Collection接口
需要知道,Java集合类库将。下面的图片展示了Java集合框架的接口:本文中我们来了解Iterable接口和Conllection接口的基本功能。
2023-06-02 19:01:06
206
原创 面试题:什么是反射机制?为什么反射慢?
能够分析类能力的程序称为可反射Java的反射机制是指在程序的运行状态中,可以构造任意一个类的对象,可以了解任意一个类的能力,可以了解任意一个对象所属的类,可以调用任意一个对象的属性和方法。在运行时分析类的能力。在运行时检查对象。例如,编写一个适用于所有类的toString方法。实现泛型数组操作代码。利用Method对象。
2023-06-01 13:54:16
229
原创 面试题:Java的基本数据类型和对应的包装类
合适的使用基本数据类型可以提高效率。所以基本数据类型的存在很必要。Java的对象存储在堆中,基本类型变量存储在栈中;Java中,一切都是对象,但依然有基本数据类型。,比如集合的元素要求必须是Object类型。包装类型相当于将基本数据类型转换为对象,一方面是因为基本数据类型使用起来。,所以就有了包装类型。
2023-05-31 15:01:56
104
原创 Java的Class类是什么,Java的Class类有什么用?
在Java中,class(注意c是小写)是声明类的关键字;但是在java.lang包中,还存在一个名为Class(注意C是大写)的类,Class类也是一个实实在在的类,并且是一个泛型类。Class类和java中其他类一样,也是Object的子类。Class类的构造方法是私有的,这意味着我们不能通过new的方式来创建Class对象,只有JVM可以创建Class类的实例。
2023-05-31 10:01:25
518
原创 面试题之Java中的大数:BigInteger 和 BigDecimal
在Java中,如果基本的整数和浮点数精度不足以满足需求,那么可以这两个类可以处理包含任意长度数字序列的数值。BigInteger类实现,BigDecimal类。BigInteger还有一些常量:BigInteger.ZERO、BigInteger.ONE、BigInteger.TEN,Java9之后还增加了BigInteger.TWO。BigInteger的构造函数并无特殊的地方,大家直接使用即可。
2023-05-30 16:14:39
135
1
原创 什么是泛型?泛型其实如此简单
看下面这段代码,anInt这个方法接收了一个int类型的参数,形参的名字是num,num就是。也就是说,以前参数的类型是固定的,我们只能传递一个固定类型的参数;)括起来,放在public修饰符的后面。当我们需要用到这个方法时,就。在这一段代码中,引入了一个。
2023-05-30 10:49:56
73
1
原创 Java中为什么要引入接口呢?
在Java程序设计语言中,接口不是类,而是对希望符合这个接口的类的一组需求。接口变量必须引用实现了这个接口的一个类的对象。接口不是类,也就是说,不能使用。实例化一个接口,但是。
2023-05-29 13:38:30
264
1
原创 接口中也可以有方法的实现了!
关于具体实现只能在实现类中给出。在API手册中,往往会看到成对出现的。(eg:Path和Paths),这是因为接口不能给出方法的实现,所以。但在Java8以后,我们可以将静态方法写在接口中了,就不需要再为。提供另一个伴随类了。
2023-05-29 11:32:25
808
1
原创 通过例子来看开闭原则!
的派生类少的时候,完全可以这样做,可如果有几十个、甚至是上百个派生类时,这时工作量就是巨大的;在这个例子中,我们可以遵循开闭原则来对它进行修改。当有外观颜色不同的鸭子时,都可以继承。,并在构造方法中实例化fly变量。这时,就要用到我们的设计原则了。需要声明抽象出去的接口变量。,将白色鸭子的飞行方法重写成。,而且飞行方法还会定期更新。这样,在创建子类时就可以通过。现在有个新的需求,要求让。,然后再覆盖继承得到的。,这很容易做到,只要在。
2023-05-28 19:16:52
486
原创 数据结构:数据结构到底是什么,深度解析数据结构
在学习数据结构前,我们先来了解一下什么是数据,或者说什么可以称为数据。数据是指对客观事件进行记录并可以鉴别的符号,是对客观事物的性质、状态以及相互关系等进行记载的物理符号或这些物理符号的组合。它是可识别的、抽象的符号。数据的表现形式还不能完全表达其内容,需要经过解释,数据和关于数据的解释是不可分的。例如,60是一个数据,可以是某个人的年龄,也可以是某个人的体重。现在我们假设学生的基本信息由学号、姓名、性别组成,那么一个学生的基本信息就可以说是一个数据。当有多个学生的基本信息时,我们把这称为数据集。
2023-05-25 21:16:47
89
1
原创 力扣第二题,两数相加,附完整代码和全注释
下面是笔者自己进行解题时缩写代码,过于繁琐,当时的思路是先创建了一个工具类,用工具类遍历单链表,分别得到单链表的长度,然后依据单链表的长度进行操作。这是一道链表题,重点在对于链表的操作。难点在于操作链表过程中两数相加时进位的操作。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。请你将两个数相加,并以相同形式返回一个表示和的链表。的方式存储的,并且每个节点只能存储。它们每位数字都是按照。如下是依据官方思路操作的代码。
2023-05-24 19:04:53
333
1
原创 力扣(Leetcode)第一题:两数之和,用哈希表解决
在遍历每个元素时都要判断此HashMap中是否存在一个key(注意是key,不是value),使得key=target-nums[i],HashMap的containsKey(Key)方法会判断哈希表中是否存在这个Key,返回类型为布尔型。如果不存在这样的一个key,则将(key: nums[i], value: i)放入HashMap中,依然是通过for循环遍历数组,在开始遍历前先创建一个空的HashMap,如果存在这样的一个key,则成功找到结果,返回。(因为value中放的是下表) 和。
2023-05-23 19:38:58
366
1
原创 设计模式之观察者模式
Observer的子类或实现类的构造方法可以接收一个 Subject对象作为参数,表明这个对象要观察哪一个subject对象,构造方法中必须包含将自己加入到subject对象的观察者列表中这一步骤,这样每个subject对象的ArrayList数组中都放着依赖于自己的观察者,就是一对多,当subject对象发生改变时,可以通过foreach循环遍历数组,来通知到依赖于它的每一个观察者。一对多中的“一”是指,这一个对象的状态发生改变时,所有依赖于它的对象(这是一对多中的“多”)都会得到通知并自动更新。
2023-05-23 00:42:36
27
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人