- 博客(18)
- 收藏
- 关注
原创 Java中回调函数
其实回调函数就是处理一些逻辑后,知道自己处理的结果和响应,比如点击鼠标事件:点击后我怎么知道鼠标是点击成功的。发送消息:发送后我怎么知道自己发送消息对方接收了,这时对方就要调我的方法通知我,这时这个方法就是回调方法。方法参数一般通过接口(对象)实现,调用者实现接口,并将接口实例传给调用方,在特定条件后调用。是指将方法作为参数传给另一个方法,在特定事件或特定条件后执行传递的方法。在观察者模式中,观察者实现方法,在被观察者状态改变时接收通知。-实现接口:调用者实现接口,并在实现中定义具体行为。
2025-01-20 15:40:34
431
原创 Java设计模式—观察者模式
实例:现实生活中很多事物都是依赖存在的,一个发生变化会影响很多事物。比如油价上涨,关系很多企业,很多家庭;红绿灯发生变化时,人们会停止,会前进等。观察者模式(ObserverPattern):是一种一对多的依赖关系,让多个观察对象同时监听某一个主题对象,当主题对象的状态发生变化时,会自动通知所有观察者,使得它们能够自动更新自己。适用于当一个对象的状态发生改变时,所有依赖于它的对象都需要得到通知的情况。观察者模式具体的角色。
2025-01-20 15:38:09
1630
原创 Java前端基础——CSS
Java前端基础——CSS目录Java前端基础——CSS1.什么是CSS?2.基础语法2.1CSS的引用方式2.2 选择器2.2.1基础选择器2.2.2复杂选择器2.2.3伪类选择器和伪元素选择器2.2.4选择器优先级2.3 常用属性2.3.1字体属性2.3.2文本属性2.3.3背景属性2.3.4列表属性2.3.5表格属性2.4盒子模型2.5.定位方式2.5.1 什么是定位方式?2.5.2 相对定位2.5.3 绝对定位2.5.4 固定定位2.5.5 z-index2.6 CSS属性扩展2.6.1 浮动和清
2024-12-26 17:47:31
1076
原创 Java前端基础—HTML
1.网页组成:文字,图片,音频,视频,超链接。2.代码如何转换成网页:依靠的是浏览器的渲染和解析将代码翻译成网页。3.渲染引擎**(浏览器内核)**:浏览器中专门对代码进行解析渲染的部分。浏览器出品的公司不同,内在的渲染引擎也是不同,渲染引擎不同,导致解析相同代码的速度、性能、效果也不同。这就是后面前端要处理一大难题,适配兼容问题。4.web 标准:让不同浏览器按照相同的标准显示结果,让展示的效果统一。构成语言说明结构HTML页面元素和内容表现CSS。
2024-12-26 17:07:56
896
原创 问题记录-Java后端(持续更新中)
2.找到使用事务的地方,在Transactional注解内加入 transactionManager = “xxxTransactionManager” ,指向对应的事务就可以了。问题:在springBoot项目中多表处理数据时使用@Transaction注解处理事务会导致连不上指定的库,访问失败。原因:配置动态多数据源导致事务处理不知道走哪一个TransactionManager。1.在配置多数据源文件中,统一在事务管理器上也指定。
2024-11-25 10:38:44
1073
原创 Java面试--框架--Spring MVC
Spring MVC是一款由Spring Framework 提供的 web组件,实现mvc设计模式的一款框架,Java web开发者必会框架,前后端不分离。MVC是一种软件架构思想,把软件按照模型,视图,控制器来划分Model:模型层,指工程中的JavaBean,用来处理数据,JavaBean分成两类:一类称为实体类Bean:专门用来存储业务数据(返回和接收数据),比如Student,User一类称为业务处理Bean:指Servlet或Dao对象,专门用来处理业务逻辑和数据访问。
2024-08-14 17:46:06
1078
1
原创 Java面试--设计模式
代理:一般请求服务器,会直接执行核心代码返回结果即可。但我们在返回结果可以附加些功能,比如日志打印,保存等,这些都可以通过代理模式实现。单例模式是Java的一种设计思想,用此模式下,某个对象在jvm只允许有一个实例,防止这个对象多次引用创建多个实例消耗内存。工厂模式主要就是创建对象,且不让对象的逻辑暴露给客户端。动态代理有JDK代理和cglib代理。
2024-08-13 16:18:19
519
原创 数据库—关系型数据库的差异(持续更新中)
与MySQL的CONCAT()函数类似,SQL Server的CONCAT()函数会自动忽略NULL值,并允许将两个或多个字符串值连接成一个字符串,也可以连接可以隐式转换成字符串类型的数据。在MySQL 中 CONCAT()可以连接两个或多个字符串,也可以连接可以隐式转换成字符串类型的数据。然而,Oracle的CONCAT()函数只接受两个参数,也可以连接可以隐式转换成字符串类型的数据,如果你需要连接多个字符串,需要嵌套使用CONCAT()或使用||操作符。这通常与主键一起使用,并且只能有一个自增字段。
2024-08-13 16:00:46
876
原创 Java框架—SpringBoot+MyBatis实现多数据源配置
spring:druid:master:slave:DruidDataSourceAutoConfigure会注入一个DataSourceWrapper,其会在原生的spring.datasource下找 url, username, password 等。动态数据源 URL 等配置是在 druid下,因此需要排除,否则会报错。
2024-08-09 18:07:53
3515
原创 Java面试-Git&Linux
Git 是一个免费的、开源的分布式版本控制系统,可以快速高效地处理各种信息。Git和VCS,Subversion 或 Perforce这些版本控制工具使用起来很像但是他们在对信息存储和认知方式有很大差异:①记录快照,非差异比较:其它版本控制工具是记录累积的差异,是基于差异控制;而Git是在提交或保存项目状态时,对当前文件都创建一个快照并保存快照索引,如果文件没有修改就不会重新存储文件,只保留之间文件存储地址。②Git所有操作都是本地操作。
2024-06-29 17:33:38
621
原创 Java面试--锁
① 就是执行操作时觉得不会出现任何问题,在提交的时候对对应的数据进行验证。② 更适合读操作多的场景,因为不加锁会让读操作的性能提升。①认为执行任何操作都可能会出现问题,每一个都上了锁,执行完才会释放锁,会造成线程阻塞和死锁的情况。② 更适合写操作多的场景,因为先加锁可以保证数据的正确。
2024-06-18 10:43:45
603
原创 Java面试--Redis
③定期删除: 定时删除和惰性删除的结合体,每隔一段时间抽取设置过期的key检测是否过期(默认是1s执行10次清除,每次抽取5个检测),过期就清除。②惰性删除: 用到key的时候再去判断过没过期,过期就清除,可以节省cpu的资源,但是对内存不友好。①定时删除: 每个key都需要创建一个定时器,到时间就会清除key,所以对内存很友好,但是会占用cpu的大量资源去处理过期。①RDB:一定时间内将内存数据以快照的形式保存在硬盘中,也就是某个片段的数据写到临时文件中替换上次的持久化文件。优点:安全,几乎不丢失数据。
2024-06-12 18:13:43
1446
原创 Java面试--jvm
防止核心API被篡改:如果都让各个类加载器去加载的话,用户自己也编写一个Object类的话,系统中会出现多个不同的Object类,Java中最基础的方法也无法保证,就会混乱。轻GC: 普通GC,当新对象在伊甸园区申请内存失败时,进行轻GC,会回收可回收对象,没有被回收的对象进入幸存区,新对象分配内存极大部分都是在伊甸园区,所以这个区GC比较频繁。优点:并发速度快,低停顿。⑤轻GC后,进入老年代的大小大于老年代的可用内存会,第一次轻GC进入老年代要2MB,第二次的时候会判断是否大于2MB,不满足就会重GC。
2024-06-05 17:37:58
612
原创 Java面试--框架--MyBatis
是一个半自动化的orm(关系映射)框架,只用关心sql就好了,因为内置JDBC不需要花时间去处理数据库驱动和连接等过程。sql注入:在应用输入参数时输入恶意查询语句或插入语句,在sql解析执行是进行攻击。比如:在登录时输入密码时加入or语句,此时用${}就会出现sql注入问题。#{}:相当于标识符?,可有效解决sql注入问题;${}:相当于字符串拼接,直接拼接,会有sql注入问题。
2024-06-03 17:03:23
870
原创 Java面试--MySQL
事务是对数据库中进行一系列回滚或提交的操作,用来保存数据的完整性和一致性。索引是一种高效获取数据的数据结构,相当于目录,占用物理空间。默认B+树结构,或者hash结构。
2024-05-28 16:01:46
717
原创 Java面试--多线程
线程是程序最小的调度单位,进程包含多个线程。如打开电脑任务管理器会看到多个进程在运行,进程可能含有很多功能,这些功能又由很多线程去执行。多线程是多个线程并发执行的技术。Jvm中栈都是独立不共享的,一个线程一个栈,启动五个线程就会开辟出五个栈内存,每个栈和每个栈之间,互不干扰,各自执行各自的,这就是多线程并发,出现多线程就是为了提高效率。JMM 是Java内存模型( Java Memory Model),简称JMM。
2024-05-27 18:00:00
1932
原创 Java面试--集合
哈希表根据关键码值(Key,Value)而直接进行访问的数据结构。它通过把关键码值key映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表也叫哈希表。哈希冲突根据一定的规则放进存放哈希值的数组中,下标为1的数组已经有值了,后面根据规则,判定某个数也需要放到下标为1的数组中,这样就导致了只有一个位置两个人都要坐,就引起了冲突。(不同的key值产生的哈希值是一样的)。
2024-05-23 18:51:47
1989
1
原创 JAVA面试--基础
面向过程:它是一种具体化的思想,具体化某一个实体对象。如:想吃番茄炒蛋,就得去超市买鸡蛋,番茄所需要的具体食材,然后去一步步去炒去实现。面向对象:这是Java的一种编程思想,是模型化的,将某一具体事情对象抽象成某一类事情对象,但面向对象底层还是面向过程。如:想吃番茄炒蛋不需要自己去做,去饭店报菜单即可,不想吃番茄鸡蛋换其它也可以。面向编程思想实现离不开四大特性:抽象,封装,继承,多态。
2024-05-22 18:48:57
890
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人