![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java基础
aGloomyBoy
这个作者很懒,什么都没留下…
展开
-
Excel文件导出功能实现以及注意的
创建一个工作簿:XSSFWorkbook workbook new XSSFWorkbook();创建一个工作表:XSSfSheet sheet= workbook.creatSheet();创建一个行//创建行需要注意的是:如果对同一行中进行数据操作,那么就要一定要保持行对象的唯一性,//不然数据会操作不成功,创建一个行对象,对其添加数据,就会把之前的给覆盖掉。XSSFRow row = sheet.creatRow();创建一个单元格//在对单元格进行样式设计的时候,需要对每一个原创 2021-07-16 10:34:25 · 217 阅读 · 0 评论 -
springboot整合mybatis--一级缓存与二级缓存
概念1)一级缓存 Mybatis的一级缓存是指SQLSession,一级缓存的作用域是SQlSession, Mabits默认开启一级缓存。 在同一个SqlSession中,执行相同的SQL查询时;第一次会去查询数据库,并写在缓存中,第二次会直接从缓存中取。 当执行SQL时候两次查询中间发生了增删改的操作,则SQLSession的缓存会被清空。 每次查询会先去缓存中找,如果找不到,再去数据库查询,然后把结果写到缓存中。 Mybatis的内部缓存使用一个HashMap,key为hashcode+statem原创 2021-12-08 23:28:19 · 1711 阅读 · 0 评论 -
git命令整理
git config --global --unset http.proxygit pull --rebase origin chenkedonggit push -u origin chenkedonggit remote add origin https://github.com/1093932173/gitTest2.git原创 2021-11-30 13:55:37 · 943 阅读 · 0 评论 -
stream中的sorted方法
List<User> list = new ArrayList<>(); User user1 = new User("zhangsan",13); User user2 = new User("lisi1",12); User user3 = new User("lisi2",12); User user4 = new User("wangwu",6); list.add(user1);原创 2021-11-24 01:30:00 · 32092 阅读 · 1 评论 -
接口中default方法
一、概念接口提供一个默认实现的方法,并且不强制实现类重写此方法默认方法使用default关键字来修饰二、引入背景当一个接口添加新方法时,需要所有的实现类都重写新方法,影响到了已有的实现类,可能导致应用崩溃默认方法可以不强制重写,也不会影响到已有的实现类例如Iterable接口的foreach方法,就是一个默认方法,参数是一个Consumer对象三、使用当一个实现类实现了多个接口,多个接口里都有相同的默认方法时,实现类必须重写该默认方法,否则编译错误a. 实现原创 2021-11-11 15:31:59 · 4298 阅读 · 0 评论 -
java中值传递与引用传递!
值传递:是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中对参数的修改就不会对之前的值有影响。引用传递:这里是将参数的引用地址传递到了函数中,这样对参数的修改就会影响到实际参数。通俗一点讲就是:值传递就是将值复制了一个,然后将复制那个传递到了函数中,相当于一个副本,对副本的修改,对原始值无影响。引用传递也是将值复制了一次,但是这个值是引用,将对堆中地址的引用复制了一次传递到了函数中,原参数的引用和复制的引用都指向同一个地址,所以复制引用对内存中进行了修改,原引用中的数据也变了。比较特别的原创 2021-05-16 16:44:08 · 81 阅读 · 0 评论 -
java基础-内部类
内部类就是一个类中还包含一个类。内部类又有成员内部类,局部内部类(匿名内部类)。内部类的使用方法:(Out是外部类,In是内部类)直接使用:Out.In o = new Out().new In();当内部类被static修饰的时候,就可以这样用:new Out.In() ;间接使用:只调用外部类的方法,在外部类方法中使用内部类。注:在内部使用外部类的变量的时候,一定要保证这个变量是不可变的。匿名内部类:如果是接口的实现类,父类的子类,就可以使用匿名内部类。接口 变量名 = n原创 2021-04-21 10:46:26 · 79 阅读 · 0 评论 -
java基础-final关键字
final关键字可以修饰变量(成员变量,局部变量),方法,类修饰成员变量:成员变量不加final修饰的时候,不对他进行赋值,会有一个默认值,但是添加了final修饰之后,必须要进行赋值操作,可以通过两种方式赋值,一种是手动赋值,一种是通过构造方法赋值,同时还要将此变量的setter方法去掉。修饰局部变量:必须要进行手动赋值操作。修饰方法:被修饰方法不能被重写,重载是可以的。修饰类:这个类就是成了太监类,不能被继承。需要注意的一点是final关键字不能和abstract关键字同时使用,相矛盾,abs原创 2021-04-21 09:37:27 · 70 阅读 · 0 评论 -
JVM详解
JVM的组成:堆,方法区;(共享)本地方法栈,虚拟机栈,程序计数器;(线程私有)堆:存储数组,new出来的对象;(是存储数据的地方)方法区:此处存储的是一些唯一性的东西,像类的class对象;方法区中还有常量池,常量池中存储的有两种信息,一个就是类的信息,一个就是常量,像被final修饰的值,String a = “asd”;这里的asd也会存储到常量池中。本地方法栈:当我们调用本地方法的时候就是在本地方法栈中运行。虚拟机栈:当我们运行到一个方法的时候我们就会在虚拟机栈中形成一个栈帧,方法中的原创 2021-04-21 00:24:57 · 249 阅读 · 0 评论 -
多态的好处
多态1、多态:同一个对象,在不同时刻体现出来的不同状态。2、多态的前提: 1)要有继承关系或实现关系(接口); 2)要有方法重写; 3)要有父类或者父接口引用指向子类`Fu f= new Zi(); 注意:形参实参形式的(形参父类实参子类)。3、多态的分类: 1)具体类多态class Fu{}class Zi extends Fu{}Fu f= new Zi()//父类引用指向子类2)抽象类多态(常用)abstract class Fu{}class Zi ex原创 2021-03-30 16:23:30 · 1295 阅读 · 3 评论 -
Java 静态内部类的加载时机
前言:在看单例模式的时候,在网上找帖子看见其中有一种(IoDH) 实现单例的方式,其中用到了静态内部类,文章中有写到当jvm加载外部类的时候,并没有加载静态内部内这和之前自己想的不一样,特意在网上找了一些帖子总结一下。一、学习前千的疑问:稍微了解Java虚拟机内的加载过程的步骤,都很清楚,一个类的静态资源、一些常量都是在类加载的时候就被加载金内存中分配空间了,所以我一开始理所当然的以为静态内部类中的静态变量同样属于静态资源,也应该在在内加载的时候被加载,然而实际情况却不是这样的,带着这个问题我上转载 2021-03-21 10:02:27 · 993 阅读 · 2 评论 -
Java中Final修饰一个变量时,是引用不能变还是引用的对象不能变
Java中,使用Final修饰一个变量,是引用不能变,还是引用对象不能变?是引用对象的地址不能变,引用变量所指的对象的内容可以改变。final变量永远指向这个对象,是一个常量指针,而不是指向常量的指针。比如:final StringBuffer sb=new StringBuffer(“abc”);对sb重新赋值 sb=new StringBuffer(“cde”);会出现编译错误,被final修饰的变量是不能重新赋值的;但是 sb.append(“ced”);是可以编译通过的。F转载 2020-11-06 11:09:54 · 397 阅读 · 0 评论