![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 70
step by step.
和优秀的人,做有挑战的事
展开
-
.IndexOutOfBoundsException: Index: 0, Size: 0 异常
这个异常通常是由于尝试访问一个空列表或数组的第一个元素而引起的。在这种情况下,列表或数组的大小为0,因此没有任何元素可以访问。要解决这个问题,您需要确保在访问列表或数组的元素之前,先检查它们的大小是否为0。您可以使用条件语句或try-catch块来处理这种情况。或者是使用List的get()方法传参超过List的大小。越界问题,检查数据,检查大小。原创 2023-04-14 21:01:18 · 2686 阅读 · 0 评论 -
Mbatis中if test判断出错 status !=null and status != ‘‘
status值为0时、此sql不会被拼加上原创 2023-04-14 20:50:45 · 343 阅读 · 0 评论 -
java的代码之进制转换(2,8,16与10进制转换)
文章目录一、2,8,16进制转换成10进制二、10进制转换成2,8,16进制返回STRING三、自己写的十进制转换成十六进制一、2,8,16进制转换成10进制使用Integer.parseInt()方法;转换成负数只需要在字符串前加上负号-;大于Integer.MAX_VALUE或小于Integer.MIN_VALUE的转换将会抛出错误。int b = Integer.parseInt("1001", 2); // 2进制转10进制int o = Integer.parseInt("12"原创 2022-03-07 15:59:50 · 7008 阅读 · 0 评论 -
Java遇到“_“分割分割字符
实际项目中遇到一个用”_“分割的字符,需要读取后半部分。例如"AU_saga",实际运用的就是找到位置,再加一代码是int a = data.indexOf("_");String result = data.substring(a+1);这个REsult就是我们需要用的...原创 2022-03-07 15:20:57 · 129 阅读 · 0 评论 -
Java写Excel ,各种版本
文章目录一、Java操作写入普通的03和07版本的Excel二、关于03和07版本的大数据写入并比较时间三、07版本升级版的写入(SXSSFWorkbook)用到的pom文件一、Java操作写入普通的03和07版本的Excel String PATH="/公共路径/"; @Test public void testWrite03() throws Exception { //1,创建一个工作簿 Workbook workbook=new HSSFWork原创 2022-02-23 17:20:50 · 1389 阅读 · 0 评论 -
Java读取Excel,03版本和07版本
文章目录java读取Exceljava读取Excel采用poi,这里有个知识点,03版本和07版本的Excel是有区别的,03的最多只有65536行,07的无限制读取03版本的Excel,后缀.xls读取07版本的Excel,后缀.xlsxpublic class ExcelReadTest { String PATH = "你的公共路径保存文件啥的"; /** * 读取03版本的Excel表 */ @Test public void testR原创 2022-02-23 17:10:20 · 1045 阅读 · 0 评论 -
Java操作Excel表读取的数字变成科学计数法
当使用POI处理excel的时候,遇到了比较长的数字,虽然excel里面设置该单元格是文本类型的,但是POI的cell的类型就会变成数字类型。而且无论数字是否小数,使用cell.getNumbericCellValue() 去获取值的时候,会得到一个double,并且当长度大一点的时候会变成科学计数法形式。那么获取这个单元格的原始的数据,就其实是一个double怎么转换成整数的问题了。使用DecimalFormat对这个double进行了格式化,然后使用format方法获得的String就是你想要的值原创 2022-02-23 16:53:53 · 5573 阅读 · 1 评论 -
java调用HTTP的GET实现方式
文章目录 /** * 向指定URL发送GET方法的请求 * * @param url 发送请求的URL * @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 * @return URL 所代表远程资源的响应结果 */ public static String sendGet(String url, String param) { String re原创 2022-02-23 11:36:04 · 3642 阅读 · 0 评论 -
简单了解ConcurrentHashMap
ConcurrentHashMap2 JDK1.8之后的ConcurrentHashMap3 ConcurrentHashMap和HashTable的区别原理分析HashMap 不是线程安全的,在并发场景下可以使用Collections.synchronizedMap() 方法来包装我们的 HashMap。但这是通过使用一个全局的锁来同步不同线程间的并发访问,因此会带来不可忽视的性能问题。ConcurrentHashMap是HashMap 的线程安全版本,在 ConcurrentHashMap 中,无论原创 2021-09-11 00:53:06 · 290 阅读 · 0 评论 -
HashMap杂货
这里写自定义目录标题一、哈希表1、什么是哈希表HashMap实现原理为何HashMap的数组长度一定是2的次幂?为什么HashMap桶(链表)的长度超过8才会转换成红黑树那加载因子为什么是 0.75 而不是 0.5 或者 1.0 呢?HashMap 是如何导致死循环的?为什么用HashMap?解决 hash 碰撞还有那些办法?为什么重写hashCode(),一定要重写equals()方法一、哈希表哈希表(hash table)也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如m原创 2021-09-01 23:47:23 · 110 阅读 · 0 评论 -
JVM——经典的垃圾收集器
这里写自定义目录标题什么是垃圾( Garbage) ?为什么需要GC(Garbage Collection)?一、jdk1.7 默认垃圾收集器Parallel Scavenge(新生代)+Parallel Old(老年代)jdk1.8 默认垃圾收集器Parallel Scavenge(新生代)+Parallel Old(老年代)jdk1.9 默认垃圾收集器G1什么是垃圾( Garbage) ?垃圾是指在运行程序中没有任何指针指向的对象,这个对象就是需要被回收的垃圾。外文: An object原创 2021-08-18 01:15:16 · 250 阅读 · 0 评论 -
final、finally、finalize作用分别是什么,有没有关系?
final、finally、finalize一、final1.final修饰的类不能被继承2.final修饰的方法不可以被重写3.final修饰的变量不可以第二次被赋值4. -final修饰的所有常量字母都要大写5.修饰的变量可以防止指令重排序二、finally三、finalizegc时对象自救方式一、finalfinal之前有讲过,如果从入门级了解final请参考另一篇博客final,权限,内部类,引用类型谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字原创 2021-08-16 01:47:14 · 420 阅读 · 0 评论 -
深入理解Java中的四种引用类型:强引用、软引用、弱引用和虚引用(附全代码解析)
这里写自定义目录标题一、关于引用二、 什么是GC三、强引用(Strongly Re-ference)四、软引用(Soft Reference)五、弱引用(Weak Reference)六、 虚引用(Phantom Reference)七、总结一、关于引用在JDK 1.2版之前,Java里面的引用是很传统的定义: 如果reference类型的数据中存储的数值代表的是另外一块内存的起始地址,就称该reference数据是代表 某块内存、某个对象的引用。这种定义并没有什么不对,只是现在看来有些过于狭隘了。在原创 2021-08-16 00:40:06 · 581 阅读 · 0 评论 -
手写MyBatis分页插件&SQL日志打印插件(全代码分享),一点也不难!?!?
MyBatis分页插件一、简介二、加载三、准备工作四、分页代码五、日志代码一、简介MyBatis 允许你在映射语句执行过程中的某一点进行拦截调用。默认情况下,MyBatis 允许使用插件来拦截的方法调用包括:Executor执行增删改查操作ParameterHandler设置预编译参数用的ResultSetHandler处理结果集StatementHandler处理SQL预编译,设置参数等相关工作允许使用插件来拦截的四大对象在MyBatis的执行流程如下图所示:官方文档 https://原创 2021-08-14 17:45:59 · 435 阅读 · 2 评论 -
java核心技术——代理(Proxy)附源码
一、了解代理代理(Proxy) 是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能.这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或者方法,如果需改修改,可以通过代理的方式来扩展该方法java中的代理模式:定义:给目标对象提供一个代理对象,并且由代理对象控制对目标对象的引用目的:①:通过代理对象的方式间接的访问目标对象,防止直接访问目标对象给系统带来不必要的复杂性②:原创 2021-08-14 16:29:39 · 829 阅读 · 3 评论 -
Spring MVC实现原理(手撕代码模拟呈现MVC反射原理)
文章会用到的包以及类的分层1. 注解详解@Documented@Documented 在自定义注解的时候可以使用@Documented来进行标注@Retention@Retention 用来说明该注解类的生命周期。它有以下三个参数:RetentionPolicy.SOURCE : 注解只保留在源文件中RetentionPolicy.CLASS : 注解保留在class文件中,在加载到JVM虚拟机时丢弃RetentionPolicy.RUNTIME : 注解保留在程序运行期间,此时可以通过原创 2021-08-14 13:16:41 · 293 阅读 · 0 评论 -
java核心技术——反射(二)
代码实现Teacher类,私有属性namepackage com.mystep.step.demo1;import java.lang.reflect.Field;/** * @author step * @date 2021年08月14日 11:40 */public class TeaMain { public static void main(String[] args) throws ClassNotFoundException, NoSuchFieldException原创 2021-08-14 12:16:44 · 97 阅读 · 0 评论 -
java核心技术——反射
一、什么是反射?1. Java反射机制的核心是在程序运行时动态加载类并获取类的详细信息,从而操作类或对象的属性和方法,不受访问修饰符的限制。本质是JVM得到类对象之后,再通过类对象进行反编译,从而获取对象的各种信息。2. Java属于先编译再运行的语言,程序中对象的类型在编译期就确定下来了,而当程序在运行时可能需要动态加载某些类,这些类因为之前用不到,所以没有被加载到JVM。通过反射,可以在运行时动态地创建对象并调用其属性,不需要提前在编译期知道运行的对象是谁能够分析类能力的程序称为反射(re...原创 2021-08-14 11:12:47 · 330 阅读 · 0 评论 -
java异常体系简介
这里写自定义目录标题一、异常分类二、对比2.1 Error与Exception2.2 受查异常和非受查异常如何规避2.3 运行时异常和非运行时异常三、异常关键字四、try-catch-finally4.1 异常处理步骤4.2 try-catch-finally 中,如果 catch 中 return 了,finally 还会执行吗一、异常分类在 Java 程序设计语言中, 异常对象都是派生于 Throwable 类的一个实例。查看javaAPI,异常属于java.lang首先我们来看一下java异原创 2021-08-12 22:00:00 · 145 阅读 · 0 评论 -
java核心技术——参数传递(二、代码实现)java是值传递
一、基本概念参数类型形参: 方法被调用时需要传递进来的参数,例如:function(int a)中的a,他只有func被调用期间a才有意义,也就是被分配内存空间,在方法function方法被执行完后,a就会被销毁释放内存空间,也就不存在了实参: 方法被调用时传递进来的实际值,他在方法被调用前就已经被初始化,并且在方法被调用时传入。 值传递和引用传递值传递:在方法被调用时,实参通过把他的内容副本传入方法内部,此时形参接收的内容是实参的一个拷贝,因此在方法内对实参的任何操作,都仅仅是对这个内容的副本原创 2021-08-12 01:57:59 · 286 阅读 · 0 评论 -
java核心技术——方法参数(java是值传递)
这里写自定义目录标题 首先回顾一下在程序设计语言中有关将参数传递给方法(或函数)的一些专业术语。按值调用 (call by value) 表示方法接收的是调用者提供的值。而**按引用调用 ( call by reference)**表示方法接收的是调用者提供的变量地址。一个方法可以修改传递引用所对应的变量值,而不能修改传递值调用所对应的变量值。**Java 程序设计语言总是采用按值调用。**也就是说, 方法得到的是所有参数值的一个拷贝,特别是,方法不能修改传递给它的任何参数变量的内容。例如, 考虑下原创 2021-08-12 00:45:53 · 143 阅读 · 0 评论 -
普通类调用Service方法报空指针
原因:service接口注入失败!写了一个登录日志用来记录获取客户端的IP和传过来的account,数据库中的表是因为这个方法是写在登录接口中加的,登录接口接受的是从前台传过来的一个用户对象,所以这里需要的 account 我直接从对象里面拿,我再util文件里面建了一个 LogLoginUtil 的类,这个类我加上 @Component 注解这里讲一下 @Component@Component讲解@Component (把普通pojo实例化到spring容器中,相当于配置文件中的 )泛指各原创 2021-08-03 23:21:50 · 3798 阅读 · 0 评论 -
java获取客户端登录的IP地址
文章目录标题网络上常见的请求头1、X-Forwarded-For2、Proxy-Client-IP3、WL- Proxy-Client-IP4、HTTP_CLIENT_IP5、X-Real-IP基础知识注意Spring boot项目中需要数据库中记录登陆者的IP,于是代码如下public String getIpAddr(HttpServletRequest request) throws Exception { String ip = request.getHeader("x-forwarde原创 2021-08-02 23:17:09 · 1014 阅读 · 0 评论 -
Bcrypt加密&更改密码&密码校验&Vue页面渲染&Sping boot后台
这里写自定义目录标题Bcrypt1.需求描述2.问题描述3.解决办法3.1 后台密码方式具体讲解3.2后台Spring全部代码Controller实体类ServiceServiceImpl (Service实现类)MapperMapper.xml3.3 前台Vue全部代码Password.vueuserStudent.js前台:Vue后台:Spring bootBcryptbcrypt,是一个跨平台的文件加密工具。由它加密的文件可在所有支持的操作系统和处理器上进行转移。它的口令必须是8至56个字符,原创 2021-08-01 00:26:58 · 1436 阅读 · 0 评论