- 博客(321)
- 资源 (3)
- 收藏
- 关注
原创 Java foreach 循环陷阱
为什么阿里的 Java 开发手册里会强制不要在 foreach 里进行元素的删除操作?list.add("王二");list.add("王三");list.add("有趣的程序员");if ("王二".equals(str)) {remove 的时候触发执行了方法,该方法对 modCount 和 expectedModCount 进行了比较,发现两者不等,就抛出了异常。list.add("王二");list.add("王三");list.add("有趣的程序员");
2024-02-26 17:41:33 663
原创 网站首页优化
优化是不可能一步到位的,通常在页面响应时间达不到要求的情况下,必须先要从网页的内容开始优化,然后再从硬件资源方面。这里推荐几款网页优化的测试工具:YSlow,Page Speed等,都是运行于Firefox浏览器下的。
2024-02-21 17:47:50 199
原创 java学习网站
学习网址:https://www.bilibili.com/video/BV1fh411y7R8/?网址:https://www.bilibili.com/video/BV1Kb411W75N?学习网址:http://www.w3schools.cn/java/default.asp。力扣:https://leetcode-cn.com/problemset/all/
2024-02-21 17:02:05 95
原创 15个学习Go语言的网站推荐
网站介绍:Go by Example是一个通过一系列可执行代码实例来学习Go语言的优质网站。网站介绍:GolangBot提供全面的Go语言教程和互动练习,帮助你学习Go的基础知识。网站介绍:Golang Programs提供基本的教程和练习,帮助你开始使用Go。网站介绍:Go in 5 Minutes提供视频教程,重点介绍Go语言的基本功能。网站介绍:Go101是一个全面的Go语言指南网站,专注于语言的基础知识。网站介绍:Golang Spec是Go语言的官方规范。
2024-02-19 17:51:34 878
原创 C#/.NET技术社区
13 DotNetGuide技术社区交流群。10 51CTO技术社区.NET专栏。12 .NET API在线目录查询。1 DotNetGuide简介。4 .NET Blog官方博客。8 CSDN.NET社区论坛。9 博客园.NET技术专区。11 .NET在线源码查询。5 .NET中文官方博客。3 .NET开发者社区。
2024-01-15 15:50:49 378
原创 Spring Boot参数校验方案
Pattern(regexp = "^((13[0-9])|(15[^4])|(18[0-9])|(17[0-9])|(147))\d{8}$", message = "手机号格式不正确")@Max(value = 1120, message = "年龄不应超过120岁")@Size(min = 6, message = "密码长度不能少于6位")@Min(value = 0, message = "年龄不能小于0岁")@NotBlank(message = "密码不能为空")
2024-01-09 15:06:01 1112 1
原创 MySQL 函数大全
MySQL 数值型函数函数名称 作 用 ABS 求绝对值 SQRT 求二次方根 MOD 求余数 CEIL 和 CEILING 两个函数功能相同,都是返回不小于参数的最小整数,即向上取整 FLOOR 向下取整,返回值转化为一个BIGINT RAND 生成一个0~1之间的随机数,传入整数参数是,用来产生重复序列 ROUND 对所传参数进行四舍五入 SIGN 返回参数的符号 POW 和 POWER 两个函数的功能相
2024-01-05 14:38:37 917
原创 程序员常用的学习网站有哪些?10大网站整理
全力为IT开发者打造分享技术心得、讨论技术话题的信息平台。代码仓库托管及基本的 Web 管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。技术社区,形成了由开源软件库、代码分享、资讯、协作翻译、码云、众包、招聘等几大模块内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。博客园创建于2004年1月,是一个面向开发者的知识分享社区,属于一个纯技术的交流空间;4、Stack Overflow-开发人员学习、共享、建立职业的地方(
2024-01-04 15:00:28 417
原创 mybatis 面试
一级缓存的作用域是 SqlSession,当多次查询相同的数据时,第一次查询的结果会被缓存下来,后续的查询可以直接从缓存中获取结果。插件会拦截 Executor 对象的方法调用,根据传入的分页参数动态修改 SQL 语句,从而实现分页查询的功能。物理分页:通过在 SQL 语句中使用数据库提供的分页语法(如 MySQL 的 LIMIT)来实现分页,数据库会返回指定范围的数据。RowBounds 是 MyBatis 提供的一种分页查询的方式,它可以通过设置偏移量和限制数量,从结果集中截取指定范围的数据。
2023-12-25 15:59:08 152
原创 zookeeper 面试
ZooKeeper 的通知机制是指客户端可以注册对某个节点的监听,一旦该节点发生变化(例如数据变更、节点删除等),ZooKeeper 会向客户端发送通知。因为在集群模式下,ZooKeeper 会自动选举新的主节点来代替宕机的节点,保证集群的正常运行和数据的一致性。主节点的存在可以提供统一的协调和管理,例如分布式锁的竞争、配置的更新等。主节点负责处理集群的写操作,并确保其他从节点与主节点的数据保持一致。当主节点宕机时,从节点中的一台会被选举为新的主节点,保证集群的可用性和数据的一致性。
2023-12-25 15:54:30 356
原创 RabbitMQ 面试
如果 RabbitMQ 集群中唯一一个磁盘节点崩溃了,那么磁盘节点上的队列和消息就会不可用,但其他内存节点仍然可用。发布/订阅模式:支持创建交换机(Exchange)和多个队列(Queue),发布者将消息发送到交换机,订阅者从队列中接收消息,实现广播和订阅功能。磁盘节点和内存节点的混合节点(Disk and RAM Node):同时保存队列数据和元数据,既能提供持久化能力,又能提供较高的吞吐量。节点的命名和集群配置:为每个节点指定唯一的名称,并在配置文件中指定节点所属的集群。
2023-12-25 15:52:59 405
原创 kafka 面试
但在生产环境中,建议还是保留 Zookeeper,因为它在 Kafka 集群中担任着重要的角色,包括保存集群的元数据、broker 的健康状态等。当设置了同时基于时间和大小的数据清除策略时,如果在第五天时消息达到了 10G,Kafka 将按照优先级较高的清除策略来进行数据清除,即先清除时间超过 7 天的消息,直到满足数据大小不超过 10G的条件。基于时间的保留策略:根据消息的时间戳来决定消息的保留时间。基于大小的保留策略:根据日志段文件的大小来决定消息的保留。合理的分区规划和副本分配,避免出现热点分区。
2023-12-25 15:49:54 251 1
原创 jvm 面试
是Java类加载机制中的一种策略,用于保护核心库的安全性和稳定性。复制算法(Copying):将内存分为两个相等的区域,每次只使用其中一个区域,当该区域用尽时,将存活的对象复制到另一个区域,然后清除当前区域中的所有对象。分代垃圾回收器的工作原理是基于对象的生命周期 将堆内存划分为不同的代(一般是新生代和老年代),并使用不同的垃圾回收算法对不同代进行回收。强引用(Strong Reference):最常见的引用类型,通过关键字new创建的对象默认是强引用,只要强引用存在,垃圾收集器就不会回收该对象。
2023-12-23 09:20:32 389
原创 java反射 面试
无论哪种方式,都需要提供一个InvocationHandler或MethodInterceptor来处理被代理对象的方法调用,并在必要的时候添加额外的逻辑。反射是指在运行时动态地获取类的信息(包括类的成员变量、方法、构造函数等),并且可以通过反射调用类的方法、访问和修改类的属性,以及创建对象实例。这种方式可以对没有实现接口的类进行代理。Java的反射机制提供了一种强大的能力,使得程序可以在运行时通过名称来访问、检测和操作类的成员。动态代理是指在运行时动态生成代理类,并在代理类中处理被代理对象的方法调用。
2023-12-23 09:18:31 138
原创 java 异常 面试
如果省略 catch 块,则必须在方法签名中声明方法可能会抛出的异常类型,或者使用 throws 关键字抛出异常;finally 块中的代码总是在 try-catch 块结束后执行,无论是否发生异常,因此即使在 catch 块中执行了 return 语句,finally 块中的代码也会被执行。finally 是一个关键字,用于定义在try-catch语句块中,无论是否发生异常,finally块中的代码都会被执行。它通常在方法内部使用,表示方法执行时发生了异常情况,需要将异常信息传递给调用者处理。
2023-12-23 09:16:38 68
原创 java网络面试
301 Moved Permanently(永久重定向):表示请求的资源被永久移动到了新的URL,未来所有对该资源的请求都应该使用新的URL。需要注意的是,JSONP只支持GET请求,并且存在安全性问题,因为它依赖于服务器返回的代码的可信任性。URL地址栏会改变为重定向的URL,原始请求的参数不会传递给新的URL。302 Found(临时重定向):表示请求的资源暂时移动到了新的URL,未来可能还会发生变化,所以搜索引擎会保留原有的链接。对于重定向后的请求,客户端应该继续使用原有的URL。
2023-12-23 09:14:56 78
原创 hibernate 面试
当应用程序需要访问数据库时,Hibernate会根据配置信息生成SQL语句并执行,最后将查询结果转化为Java对象返回给应用程序。瞬时态表示对象没有关联到数据库,持久态表示对象已经被保存到数据库中并与Session关联,游离态表示对象曾经与Session关联过,但已经脱离了Session的管理。另外,load()方法在实际使用时是延迟加载的,只有在访问对象属性时才会触发真正的数据库查询。如果将实体类定义为final,Hibernate在运行时无法生成代理对象,可能会影响性能和某些功能,如延迟加载。
2023-12-22 14:34:32 77
原创 Java Web 面试
Servlet是一种运行在服务器上的Java程序,用于接收和处理来自客户端的HTTP请求,并生成响应。如果客户端禁止Cookie,仍然可以使用Session,但需要通过URL重写的方式将Session ID添加到URL参数中,在每个请求中都携带Session ID。使用ORM框架(如Hibernate、MyBatis):ORM框架会自动处理SQL语句和参数的拼接,减少手动拼接SQL的机会,从而降低SQL注入的风险。输入验证和过滤:对用户输入进行验证和过滤,确保输入的数据符合预期的格式和类型。
2023-12-22 14:21:09 73
原创 java反射面试
无论哪种方式,都需要提供一个InvocationHandler或MethodInterceptor来处理被代理对象的方法调用,并在必要的时候添加额外的逻辑。反射是指在运行时动态地获取类的信息(包括类的成员变量、方法、构造函数等),并且可以通过反射调用类的方法、访问和修改类的属性,以及创建对象实例。这种方式可以对没有实现接口的类进行代理。Java的反射机制提供了一种强大的能力,使得程序可以在运行时通过名称来访问、检测和操作类的成员。动态代理是指在运行时动态生成代理类,并在代理类中处理被代理对象的方法调用。
2023-12-22 14:05:51 89
原创 java 多线程面试
Callable是Java 5中引入的接口,与Runnable类似,但可以返回执行结果,并且可以抛出异常。notify()用于唤醒在此对象监视器上等待的单个线程,如果有多个线程在等待,则只会唤醒其中一个线程;submit()方法用于执行实现了Callable接口的任务,并且可以获取任务执行的结果或抛出的异常。run()方法是Thread类的普通方法,用于定义线程要执行的任务,直接调用时相当于普通方法的调用;execute()方法用于执行实现了Runnable接口的任务,无法获取任务执行的结果或抛出的异常;
2023-12-22 13:57:38 62
原创 java 容器 面试
在HashMap中,通过hashCode计算出元素的哈希值,然后将元素放入数组中对应的位置(通过哈希值取模数组长度),如果发生哈希碰撞(即不同的元素具有相同的哈希值),则以链表或红黑树的形式存储在数组的同一个位置上。List转换为数组:可以使用List的toArray方法将List转换为数组,例如:String[] array = list.toArray(new String[list.size()]);性能:由于Hashtable是线程安全的,其在竞争资源时需要进行同步,可能会影响性能;
2023-12-22 13:24:44 63
原创 Java 基础面试
但是,抽象类的方法可以继续被子类实现和重写,即final关键字只对类有效,不影响方法的继承和重写。String str = "i"" 是使用字符串字面量创建一个String对象,会在字符串常量池中查找是否存在相同内容的字符串,如果存在则直接引用,如果不存在则创建新的String对象。String str = new String("i")" 是使用new关键字创建一个新的String对象,不会在字符串常量池中查找,而是在堆内存中创建一个新的String对象。对于引用类型,比较的是它们在内存中的地址。
2023-12-22 11:07:04 66
原创 开源的Spring Boot学习资源
它的功能包括分类列表、分类详情、品牌列表、品牌详情、新品首发、人气推荐、优惠券列表、优惠券选择、管理平台功能包括会员管理、商城管理、商品管理、推广管理、系统管理、配置管理、统计报表等。团购(团购业务有待完善)、搜索、商品详情、商品评价、商品分享、购物车、下单、订单列表、功能点管理、菜单管理、权限分配、数据权限分配、代码生成等功能。SpringBoot 2 的管理后台系统,包含了用户管理、组织机构管理、角色管理、,对于有支付需求的开发者来说,这个项目再合适不过了。
2023-12-16 10:47:34 207
原创 springboot 学习网站
4、@EnableWebMvc,WebMvcConfigurationSupport,WebMvcConfigurer和WebMvcConfigurationAdapter区别。3 、SpringApplication和SpringApplicationBuilder。5、springboot 跨源资源共享(CORS)7、springboot整合logback。6、springboot整合redis。1、自定义banner。
2023-12-16 10:27:00 217
原创 java 必备网站
Java Code Geeks 是一个专注于 Java 技术的博客网站,提供了大量的 Java 编程教程、文章和技术资源,涵盖了 Java 语言、框架、工具和开发方法等方面的内容。JAVA.SE 是一个 Java 技术网站,提供了许多 Java 编程教程、文章和技术资源,涵盖了 Java 语言、框架、工具和开发方法等方面的内容。Java 社区是 Java 官方提供的一个开发者社区,提供了许多 Java 编程教程、文章和技术资源,涵盖了 Java 语言、框架、工具和开发方法等方面的内容。
2023-12-16 10:21:07 138
原创 StringUtils
replaceChars(String str, String searchChars, String replaceChars):将字符串 str 中所有出现的字符串 searchChars 替换为字符串 replaceChars。defaultIfBlank(String str, String defaultStr):如果字符串 str 为空白字符(包括 null、长度为 0 或仅包含空白字符),则返回字符串 defaultStr;
2023-12-09 14:49:20 86
原创 java 好码
对于一写多读,是可以解决变量同步问题, 但是如果多写,同样无法解决线程安全问题。6【强制】注意 Math.random() 这个方法返回是 double 类型,注意取值的范围 0≤x
2023-12-09 10:54:48 56
原创 Criteria类
方法:这些方法允许您组合多个条件,以使用“和”或“或”逻辑将它们连接起来。方法:用于指定小于、小于或等于、大于、大于或等于某个值的条件。方法:指定数组中至少一个元素满足给定的条件。方法:用于指定模数条件和所有元素匹配条件。4 gte方法:大于等于某个值的条件。6 lte方法:小于等于某个值的条件。2 ne方法:不等于某个值的条件。方法:用于指定要匹配的字段名。1eq方法:等于某个值的条件,3 gt方法:大于某个值的条件。5 lt方法:小于某个值的条件。方法:用于指定要否定的条件。方法:用于指定要匹配的值。
2023-12-09 09:39:17 145
原创 MongoTemplate 常用查询
是Spring Data MongoDB提供的一个Java编程接口,用于操作MongoDB数据库。它提供了一系列方法和功能,以便进行数据的插入、更新、删除和查询等操作。使用MongoTemplate,你可以通过编写Java代码与MongoDB进行交互,而无需直接编写原生的MongoDB查询语句。它提供了一些便捷的方法,如save、insert、update和remove,用于对文档进行增删改操作。同时,它还支持复杂的查询条件和排序,以及聚合管道查询等高级功能。
2023-12-08 15:56:08 367
原创 java 常用 jar 包
谷歌作为大公司,当然会从日常的工作中提取中很多高效率的方法出来。jackson一直很主流,社区和文档支持也很充足,但有人还是嫌它不够快,不够简洁,于是便有了fastjson,看名字就知道它的主要特点就是快,可能在功能和其他支持方面不能和jackson媲美,但天下武功,唯快不破,这就决定了fastjson有了一定的市场。10 json-lib,算是很早的转换工具了,用的人很多,说实在现在完全不适合了,缺点比较多,依赖的第三方实在是比较多,效率低下,API也比较繁琐,说他纯粹是因为以前的老项目很多人都用到它。
2023-09-04 17:40:15 1478
原创 MySQL查询数据库所有表名及其注释
COLUMN_NAME 字段,column_comment 中文,COLUMN_Type as 类型 ,column_key 主键,IS_NULLABLE 可空,EXTRA 备注。
2023-09-02 11:00:36 979
原创 百度前端面试题
只要我们使用HTML编码将浏览器需要渲染的信息编码后,浏览器在渲染DOM元素的时候,会自动解码需要渲染的信息,将上述信息解析成字符串而不是JS脚本,这就是我们防御XSS攻击的核心想法。返回的 Promise 对象在其中任何一个输入的 Promise 对象变为 fulfilled 或 rejected 状态时立即变为相应的状态,并且将第一个变为 fulfilled 或 rejected 状态的 Promise 对象的结果作为该 Promise 对象的结果。将代码中永远不会⾛到的⽚段删除掉(消除死代码)。
2023-08-21 18:02:01 1173
原创 大厂前端面试题汇总
基本类型:1、占用空间固定,保存在栈中(当一个方法执行时,每个方法都会建立自己的内存栈,在这个方法内定义的变量将会逐个放入这块栈内存里,随着方法的执行结束,这个方法的内存栈也将自然销毁了。栈中存储的是基础变量以及一些对象的引用变量,基础变量的值是存储在栈中,而引用变量存储在栈中的是指向堆中的数组或者对象的地址,这就是为何修改引用类型总会影响到其他指向这个地址的引用变量。3.这两个方法没有太大的不同。那么小程序代码的打包,可以按照功能的划分,拆分成几个分包,当需要用到某个功能时,才加载这个功能对应的分包。
2023-08-21 15:37:48 158
原创 vue2和vue3
vue2中:在使用v-if、vi-else、v-else-if时,为了保证dom节点渲染的正确性,通常需要在对应的节点添加不同的key,以确保vue在进行虚拟dom对比时是准确的;因为setup函数中,props是响应式得,当传入新的prop时,它将会被更新,所以不能使用es6解构,因为它会消除prop得响应性,如需解构prop,可以通过使用setup函数中得toRefs来完成此操作。在vue3中采用组合式API,将同一个功能的代码集中起来处理,使得代码更加有序,有利于代码的书写和维护,更加简便和整洁。
2023-08-18 14:06:29 374
原创 java#CAS
CAS 称 自旋锁,无锁, 比较并换,不用加锁也能保证原子性CAS 的全称 为 Compare-And-Swap 它是一条CPU并发原语它的功能是判断内存某个位置的值是 否为预期值,如果是则更改为新的值,这个过程是原子。
2023-08-12 16:07:10 151
Introduction.rar
2020-08-20
ThreadTest.rar
2020-08-20
asp.net中导出Execl的方法
2011-04-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人