- 博客(49)
- 收藏
- 关注
原创 spring的切面编程
大家好,这里是教授.F前置条件:需要引入核心的aspect包前置通知:@Before返回通知:@AfterReturning异常通知:@AfterThrowing后置通知:@After环绕通知:@Around切面编程说白了就是在一个方法的执行再细分出前中后等等。我们使用@Before就能在执行前插入一些操作,使用@After就能在方法执行后进行一些操作。这就是所谓的切面编程,只要了解了动态代理,在理解切面编程,问题不大。
2024-06-14 18:18:01
268
原创 Could not resolve dependencies for project XXX
找到Local repository那个目录----mvn-repo【拿完来举例】,将里面的文件全部删除。如果你还是报错,就找到你对应缺失jar的位置,点击Download Sources。删除之后,在idea中找到。大家好,这里是教授.F。
2024-06-12 20:57:29
347
原创 java算法篇之二分查找的公共函数
方法还会考虑一些边界情况,比如输入数组为空、目标元素小于数组第一个元素或大于数组最后一个元素等情况。此外,对于基本数据类型的数组和对象数组,其比较方式可能略有不同。会返回两种int属性的值,负数代表所查找的数组中没有目标数,并且该负数变成正数后,是该目标数应该插入数组的下标。缺点:缺点非常明显,内存消耗会比较大。因为调用时需要将整个数组进行拷贝,如果数组很大,内存消耗很明显。方法采用了高效的二分查找算法来在已排序的数组中搜索目标元素,以实现快速查找的目的。方法的底层实现是使用经过优化的二分查找算法。
2024-06-09 13:05:42
363
1
原创 springmvc中的类型转换
2) 对于日期和货币可以使用 @DateTimeFormat 和 @NumberFormat 注解. 把这两个注解标记在字段上即可.1) 特殊数据类型和字符串之间的转换使用注解(比如日期,规定格式的小数比如货币形式等。在springmvc中,如果出现中文乱码时,只要在web.xml配置过滤器即可。配置 web.xml , 将该过滤器配置在最前面。对于基本数据类型和字符串的转化,是自动的。大家好,这里是教授.F。
2024-06-08 14:44:08
180
原创 场景下的Spring bean相关的注解
RestController : @RestController注解是@Controller和@ResponseBody的合集,表示这是个控 制器 bean,并且是将函数的返回值直 接填入 HTTP 响应体中,是 REST 风格的控制器。这里我想对常见的bean相关的注解整合一下,如果我们直接说每个注解有什么作用,其实很难通俗易懂,所以我想放在一个场景下进行讲解。@Service : 对应服务层,主要涉及一些复杂的逻辑,需要用到 Dao 层。大家好,这里是教授.F。
2024-06-06 09:42:56
532
原创 算法基础之哈希表
哈希表其实就是数组的pro版本。数组有下标,每个下标对应着一个值。哈希表也类似,哈希表有很多哈希值,然后每一个哈希值都会对应着一个值。就是这样:hash(key)
2024-06-05 13:25:39
831
原创 Spring的容器结构/机制
大家好,这里是教授.F在讲解spring的容器机制之前,我们先要了解IoC。在Java的Spring框架中,IoC是一个核心概念,它允许用户将原本需要在程序内部创建和管理的对象交由框架来管理。IoC的工作原理大致如下:解耦:在传统的程序设计中,对象之间的依赖关系通常是硬编码的,这意味着对象A直接创建对象B的实例来使用。而在IoC容器中,对象A不需要知道对象B是如何被创建和销毁的,这些工作都由IoC容器负责。配置:开发者通过配置文件(XML、注解或Java配置类)来描述对象A和对象B之间的依赖关系。Sprin
2024-06-03 09:25:23
771
原创 Javaweb基础之Cookie会话技术
我们想在登录一个网站时,能够显示我们上一次的登录时间啊,或者我们在该网站的浏览痕迹。哪这些要怎么做到?我们想,这些数据不可能从服务端给你返回来,因为一旦用户多了,对服务器的要求太大。所以就要有一种技术来实现能否在浏览器中给你返回这些数据,也就是能不能将这些数据放在浏览器中。这就是客户端存储数据技术。
2024-05-31 12:36:52
546
原创 springMVC工作流程
2.此时前端控制器会调用HandlerMapping处理器映射器,然后返回处理器执行器链(HandlerExecutionChain,这是一个对象,该对象中有一个对象是HandlerInterceptor(拦截器,拦截器有多个))6.最终按原路返回,返回ModelAndView(是一个对象)给HandlerAdapter处理器适配器。8.前端控制器调用视图解析器(ViewResolver),就行解析并以对象的形式返回视图(View)3.前端控制器去调用处理器适配器(HanlerAdapter)
2024-05-28 10:48:40
131
原创 Java体系篇之内部类
嵌套其他类的类称为外部类(outer class)。是我们类的第五大成员,内部类最大的特点就是可以直接访问私有属性,并且可以体现类与类之间的包含关系。一个类的内部又完成的嵌套了另一个结构。被嵌套的类称为内部类(inner class)。文档链接: https://www.mubu.com/doc/5PuyH-YNoZ。密码:微信公众号《教头编程象行记》回复:内部类思维导图密码。大家好,我是教授.F。
2024-03-22 14:22:26
241
原创 Java体系篇之IO流
为基本单位进行操作的,但也提供了字符流来方便处理字符数据。Java 的 IO流主要分为字节流和字符流,分别对应字节和字符的输入输出操作。IO(Input/Output)流用于处理 输入 和 输出 操作。文档链接: https://www.mubu.com/doc/DwYNW2f8Ct。想要思维导图的:微信公众号《教头编程象行记》回复:IO流思维导图密码。
2024-03-21 18:38:49
588
1
原创 Java细节篇之对象与对象引用
对象变量是指向对象的引用,它存储了对象在内存中的地址。对象变量本身并不包含整个对象,而只是指向对象的指针或引用。因此,多个对象变量可以指向同一个对象,也可以随时改变指向的对象。:对象是类的实例化,它是在内存中分配空间并被创建的实体。对象包含了该类的属性和方法,并且可以通过引用来访问和操作对象的内容。都是对象变量,它们存储了对象在内存中的地址。所指向的对象会影响到通过。访问相同对象时的结果。
2024-03-20 21:49:41
343
1
原创 Java设计模式之单例设计模式
整体就是,用static修饰一个对象,然后将构造器私有化,保证外界无法调用构造器,然后向外暴露一个static修饰的public方法,该方法能返回该目标对象,所以只能在这个方法调用目标对象。那为什么说是饿汉式:原因是,对象用static修饰后,在编译时就以创建并初始化完毕,显得很着急,所以叫饿汉式。在类加载时就创建并初始化单例对象。懒汉式,只有当用户使用时,才返回该对象,后面再次调用,会返回上次创建的对象。对象通常是重量级对象,饿汉式可能造成创建了对象,但是没有使用。单例设计模式包括两种:饿汉式和懒汉式。
2024-03-20 21:27:55
464
1
原创 Java细节篇之向下转型与向上转型
但是最终调用的效果还要看子类,因为如果子类和父类都有该方法,那么就会调用子类的方法。向上转型能够调用父类的所有方法,但是不能调用子类的特有方法,因为编译类型为父类。向下转型能够调用子类的所有方法,但是不能调用父类的特有方法,因为编译类型为子类。注意:只能强转父类的引用,不能强转父类的对象,并且父类的。转型指的是将类型的 运行类型 进行改变,为了调用子类中或父类中的方法。语法:子类类型 引用名 = (子类类型) 父类类型。语法:父类类型 引用名 = new 子类类型。必须指向的是当前目标类型的对象。
2024-03-19 21:24:27
460
原创 java实战篇之多态实际应用
像这样,将不同类型的类都可以存放到数组,遍历也方便,只需用if判断语句进行向下转型或向上转型或直接输出。这样做,好处是:当想添加其他类的类型时,直接在继承Person类后,添加在数组中即可。多态数组意思是:将数组定义为父类,然后数组存放的是子类类型。这个多态数组相似,只是没有了数组这一概念。同样需要使用到向上转型和向下转型。指的是方法定义的形参类型为父类类型,实参类型允许为子类类型。这里我就不多赘述,如果大家想了解,私信我。大家好,我是教授.F。
2024-03-19 13:22:41
234
原创 java细节篇之动态绑定机制
这时要注意了,这个animal能调用什么方法要看Animal中有什么方法,Animal有什么方法才能调用什么方法,这时在编译期间的,也就是你写完后,仅仅只能证明语句不会报错。那在运行期间,animal是要跑到Dog中看看是否有你写的那些方法,如果没有,程序还是不能正常执行,如果有,则只会调用Dog中的成员。如果在代码中直接使用具体的子类,将限制您的代码在未来进行扩展的能力。直接使用Cat和Dog类,如果后期需要引入更多的动物类,或者对原有类进行修改,可能会导致代码的耦合度增加,使得代码难以维护和扩展。
2024-03-18 13:18:06
1010
原创 java传参机制(基本数据类型 VS 引用类型)
main栈先创建成功,基本数据类型,就会直接在main方法中有地址,然后new AA类出来,在堆中直接创建地址。所以引用类型在栈中产生的内存只是指向堆中的地址。因为改变的是堆中的数据,又因为main中的数据指向的堆中的数据,所以数据的交换会影响到实参。基本数据类型和引用类型的传参机制是不同的,前者传递的是值(值拷贝),不会影响实参:后者传递的是地址,会影响实参的值。与基本数据类型的区别在于在栈中产生的地址,存放的是 指向 引用类型在堆中的地址。就算调用类中的方法,产生的栈存放的也只是指向堆中的地址。
2024-03-18 12:32:42
358
原创 封装用在哪些场景?
上面的例子可以看到,id信息是可以直接调用输出的,不用用到方法,但passwo就不行了。其实也可以破解,如果我们使用构造器指定属性,就会直接绕过防护机制。封装的作用是将数据和方法封装在一个类中,并对外部隐藏对象的内部细节。这样做可以保护数据不受外部直接访问和修改,只能通过类提供的接口进行访问,提高了代码的安全性和可维护性。此外,还可以将用户输入的密码进行判断,我们可以要求有密码要包括什么、不要包括什么和要密码长度要求……一个简单的例子:一个账号的密码是不能直接被别人看到的,所以对于密码这个属性就要封装。
2024-01-28 13:16:49
268
原创 房屋出租系统---Java(思路篇)
声明:该项目是来自韩顺平Java视频学的,内容一样。这篇文章我不讲述代码这么写,只捋思路、讲比较好的思想。工具类和代码在微信公众号:《教头编程象行记》回复:房屋出租系统就能拿到。对于一个房屋出租系统,要完善的有呈现房屋列表信息、查找房屋信息、增添房屋信息、删除房屋信息、修改房屋信息、退出系统。这就相当于一个界面,根据不同操作,执行对应的操作。所以使用switch语句就得以解决。对于是否退出程序,可以使用do-while语句配合。如下图:这是程序大概的骨架。现在就需要完善它。
2024-01-27 20:12:05
653
1
原创 return 1;return; return0;有什么的区别
用于表示函数正常执行完毕,并返回一个值为`0`的整数。` 用于表示函数执行完毕,并返回一个非`0`的整数,可以用于表示程序执行的结果。例如,`main()` 函数返回`0`表示程序正常退出,返回非`0`值表示程序异常退出。`:这个语句表示函数执行完毕,并返回一个非`0`的整数。在某些约定下,返回`1`表示成功,返回`0`表示失败。在这种情况下,函数的返回值默认为`0`。`:这个语句表示函数正常执行完毕,并返回一个值为`0`的整数。
2023-12-30 10:30:39
4758
2
原创 双指针的四大模型(面试基础)
判断一个单链表,是否存在“环” 我们可以用两个指针,指向同一个地方,但是一个走的比较快,一个走的比较慢。例如下面的代码,一个指针一次走一格,一个指针一次走两个格。例如一个单链表长度未知,我们想返回倒数第三个,那么我们就可以有一个指针指向表头,另一个指针指向第三个。我是这么做的:当相遇时,用一个指针指向相遇位置,一个指针指向单链表的表头。我们将两个数组进行合并,怎么保证相加后的数组的元素是按顺序排的呢?我们可以用两个指针,一个在前面,一个在最后面,往中间靠拢。实现有序数组的合并,合并后的新数组,保存有序。
2023-12-27 07:49:59
863
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人