自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 springboot中有关数据库信息转换的处理

4.方法名一定为getXXXXX()的格式,因为spring进行json转换时是以getter方法进行转换的,方法名部位getXXX(),是不会将其转为json变量的。1.因为实体类中不可能改变原字段类型,所以就要加一个方法,返回类型为String,方法名为getXXXXX(),判断status的值,后返回"审核/未审核"字符串。注*方法名一定要为get开头,因为pringboot将对象转json就是依据getter方法转换的,不叫getXXX()最后转为json给前端是不会有这个变量的。

2025-04-29 14:37:00 755

原创 freemarker的使用

在springboot项目中,freemarker模板放到resource下面的templates文件下,并将后缀.html改为.ftl对应的css/js/img放到reource->static下面。

2025-04-24 11:42:29 633

原创 Restful接口设计风格(搭配统一结果集,和全局异常处理一起使用)

default="默认值“ //不给值时,赋默认值 ,不能和上面的属性一起使用。不同访问类型的url映射名可以重复,但是同一种请求方式下的url映射名不能相同("test"和"test/{id}"属于两种不同的名字)@ResponseBody //将接口方法的返回值以json形式返回给调用接口地方。//效果等同于使用多个@RequestParam("")//调用使用该注解的接口,//用于接收前端的传递的单个参数。//使用对象来接受前端传递的json格式数据,

2025-04-17 19:51:48 928

原创 浅克隆和深克隆

缺点:如果引用类型的属性中又有引用类型,使用clone()时一该引用类型一样又被浅克隆了,只能重写一个个类的clone(),太复杂了。)所以克隆的新对象的引用类型并不是重新new的 而是和 原对象引用属性一样,指向堆中同一内容。就是直接使用clone()实现克隆,对于引用类型属性的指向不理会,就让他们指向堆中同一内容。手动重写要克隆类的clone()方法,在方法里面让他的引用类型也执行clone()方法。深克隆:就是解决无法克隆引用类型对象的问题。对于引用类型属性,值就是指向堆中的地址。

2025-03-21 18:03:28 293

原创 java多线程基础

硬盘上保存的迅雷代码就是程序,打开迅雷就是开启了一个进程,同时下载多个资源就是开启多个下载线程,同时又在上传资源,下载和上传是两个不同的线程,也就是不同的功能,他们都是由迅雷这个进程创建的。线程更像是一个 程序的功能(部分代码) 执行过程,这个功能运行的生命周期就是线程,只是线程由进程创建,有时一个功能(线程)开启多次,有时开启多个不同功能(线程)4.环境为两核cpu,cpu1执行QQ,cpu2执行微信,某一刻QQ和微信并行,然后cpu1执行聊天线程,cpu2执行视频通话线程。首先进程和线程都是一个过程。

2025-03-12 17:07:48 832

原创 反序列化时动态绑定突破类的访问域问题

B类修饰符默认,访问域为本包,A类修饰符为public,让B继承A并实现Serializable标记接口,然后再Two包下实现对B类对象的序列化,在One包中实现B类对象的反序列化。在接收反序列化后,通过调用Object的toString()方法,动态的调用了Dog重写的toString方法,这是通过动态绑定的方式打破了Dog类的访问域(同包下可访问)。类的访问修饰符主要是针对对类的直接访问的情况,多态的动态绑定可以打破类的访问域,访问到类中的部分内容。上诉为Dog代码,由此可见Dog是默认修饰符,

2025-01-07 19:34:13 378

原创 static final修饰的成员变量在调用时引发的类加载问题

变量会在编译时期(生成class文件时期)就将代码中变量引用替换为常量,这个过程中基本类型的常量会放进静态常量池中(运行后就会变为方法区内的运行时常量池),String常量会放到字符串常量池中(堆中)。在编译时期不会发生常量折叠,在编译时期class文件中只保留final修饰的引用类型的引用,他的真正初始化是在类加载时期/创建对象时的构造中进行的,具体发生在那个时期要看该变量有没有static修饰,static final 修饰的引用类型变量,会在类加载时期进行初始化,所以引用时会触发类加载。

2024-12-23 17:56:04 371

原创 Tomcat(web服务软件)的部署

1.官网给的信息可以知道使用tomcat9中一些类导包(javax.servlet)和使用tomcat10及以后的版本导入工具类的包(jakarat.servlet)是不一样的,tomcat9基于javaEE规范开发的,tomcat10以后是基于 Jakarta EE规范开发的。启动tomcat程序后日志信息是乱码,是因为tomcat控制台的编码格式和系统编码格式不相同,修改其一至相同即可。startup.bat是启动tomcat程序,shutdown.bat是关闭tomcat程序。

2024-12-16 20:59:07 903

原创 在继承关系中和重写和重载的一些内容补充(已完)

这里有一点需要解释以下那就是父类如果存在一个private方法,子类中在不使用@Override这个标记的情况下,是允许存在一个和父类完全一样的方法。原因是父类的private方法没有被继承,这里写一个一摸一样的private方法不能算是重载,而是子类独有的方法,且也不能被继承。第二中方式报错是因为final方法可以被继承,这里算是在重载该方法,但是重载要求参数类型和顺序不能相同,所以报错。当加上@Override时就会报错,因为这是声明是在重写,但是父类的private方法不能被子类重写。

2024-12-06 19:10:05 198

原创 代码块的应用

注*这里要和普通代码快区分,普通代码快是对象创建时才会被装载到堆中执行,而静态代码块是在类加载时就会执行,而对象的第一次创建引发了类加载。,将父类的属性从最上层父类开始依次加载到堆中去,(猜测向上转型的多态只能调用编译对象的成员变量就跟这种加载方式有关?,且映像生成时就会执行静态代码块一次,这也是为什么静态代码块只有在类加载时才会被执行一次,且也只执行这一次。调用类方法或者类成员时,该类静态代码块和父类静态代码块也会被加载,且只会被加载一次。创建类或其子类对象时,会出现类加载。,不是对象,而在映像中存在。

2024-12-03 19:57:34 652

原创 String与StringBulider和StringBuffer的使用

String常用的构造String(char[]) String(char[],int start , int count) String (String) String(byte[]) String(byte[],int start,int end)猜测实现CharSequence接口是因为String底层是通过char[]数组实现的?看见评论区说java9后底层改为使用byte[]存储,有待验证?String是一个final类型的类,不可以被继承。

2024-11-28 16:59:36 275

原创 常量池(静态/运行),对象池的用途(不一定对,尝试理解)

这个并非常量池,而是类中通过数组方式实现的一个对象池,例如,Integer中赋值常量时,当范围在-128-127之间时,会直接指向类中静态内部类,类中存有-128-127之间的Integer类型的数组,会直接指向数组,但是超出这个范围就会在堆中new一个新的Integer保存这个常量(在队中哪里不知道?时其实是在堆中创建一个String对象里面直接放常量而不是地址,然后还会在字符串常量池中再创建一个该常量,而String.intern(),这是先检索字符串常量池有没有该常量,有的话不创建,没有的话创建。

2024-11-22 17:47:55 896

原创 float浮动出现的格式错误问题

注*文本(文字)会跟着父元素一起浮动,但是父元素周围有其他浮动元素,依然有可能影响文本(文字)排版,文本套到块级元素中文本也是行内元素,只是可以通过定位或浮动跟着父级块一起挪动。float和相对定位(relative)可以一起使用,且都会生效,但是float不可以和绝对定位(absolute)一起使用,否者浮动会失效。float浮动算是半脱离标准流,之所以说半脱离是因浮动后,(block)感受不到浮动元素,会挤占原来浮动元素的空间。浮动元素进行排列,并不会挤占原来浮动元素的空间。

2024-10-28 18:23:00 168

原创 margin塌陷问题和margin:auto居中问题

解决方法:给父边框一个border边距,border边距也会算到盒子的大小上,加上border后父子盒子的顶端/底端就不会出现重合现象。父子盒子的顶部/底部要紧贴在一起(盒子最顶端/底端像素完全重叠),才会出贴合部分上的margin塌陷。竖向上兄弟盒子间的margin有交集时就会出现塌陷,只会取一个最大值进行塌陷。塌陷只出现在竖直方向上,横向上的margin只会叠加。禁止模块两边出现浮动。2.设置overflow:hidden;

2024-10-28 17:20:14 243

原创 HTML中的块级元素和行内元素

一般用于套文字改样式--例如:<a> <strong> <em> <mark> <span> <u> <i> <del>等。行内元素可以通过ccs的display属性=inline-black/black变为行内块元素/块级元素。例如:<div> <p> <hn><ul><li><dd><dl><dt> <tr>行内块级元素由于with不一定等于100%,所以可以并排。例如:<img> <input> <td>width收缩到至内容大小;块级元素间不能并排;大小默认为内容大小;

2024-10-24 18:40:01 204

原创 有关变量初始值化问题

注*关于不同类型的变量默认值整形都是0,浮点型都是0.0,boolean时false,引用类型全是null,数组虽然是引用类型,但是分配空间后,不赋值默认都是当基本类型默认值赋予。只有局部变量,一定要初始化,因为再调用时不会赋予默认值,不初始化会报错。其中静态变量不给赋值时,在加载程序时会赋予默认值。全局变量当创建新的类时,也会被赋予默认值。静态变量:stadic。

2024-07-19 19:56:03 229

原创 引用变量的常量赋值在内存中的指向问题(已解决)

这四种类变量在进行常量赋值时会到常量池去找赋值的常量是否存在,如果存在会执行他们自带的一个方法valueOf(),该方法就很操蛋,因为这四个都是整形,如果常量值在-128-127之间会直接返回常量池的地址,如果不在这个范围会new一个新的Integer返回(这里我也有个疑问,new的新的包装类应该是放在堆中了,而不再是放在常量池中,不知道这样理解对不对),也就是所只要常量在-128-127之间,那么这四个的变量指向的内存地址都一样,否者就不一样。这三个就没有这么多规矩,常量池有就会直接指向。

2024-07-13 01:40:14 303

原创 原码 反码 补码

注*在java中int类型占四个字节,也就是32位(bit),即32位二进制,所以位运算时是以32位二进制进行运算的,我为了省事拿八进制举例的。-1的原码10000001 -1的反码11111110 -1的补码11111111。1的原码00000001 1的反码00000001 1的补码00000001。补码=反码的二进制数加上二进制的1(加二进制1时注意二进制位数)例如 00000010。例2如00000001。反码=原码的符号位不变,其它位取反,即1变0,0变1。

2024-06-27 10:47:09 596

原创 不同进制间的转换

1 101 100 110:很明显最后多一个1不够三位就补零变为 001 101 100 110 :001=1 101=5 100=4 110=6 最终转换的八进制为1546。十六进制:由0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F组成,满十六进一(在Java中使用十六进制后面的字母不需要区分大小写)十进制:由0、1、2、3、4、5、6、7、8、9组成满10进一(就是日常使用的计数方式)八进制:由0、1、2、3、4、5、6、7组成,满八进一。

2024-05-29 16:36:13 444

原创 java中==与equals的应用

特殊的是equals,equals只能用于应用类型之间的比较,所有的类都继承自Object,而object的equals()方法比较的也是变量值(即引用类型变量中保存的地址),为了达到比较指向内容的目的,大部分引用类会将equals方法重写,比如(String,Integer,Double....),重写后equals将会比较变量指向的内容(具体细节可以去看源码)。==用于基础类型判断或者引用类型之间的比较时,都是直接比较变量中存放的内容(值也好地址也好)仅作个人记录,不建议游客观看,写的很乱测试用的)

2024-05-10 11:29:11 188

原创 String数据类型与基本数据类型之间的相互转换

首先String类型数据不属于基本数据类型而是引用类型,String格式的数据每个字符大小并非固定的,数字字母一个字节,汉字两个字节。基本数据类型有byte、short、int、long、float、double、char、boolean。

2024-04-16 17:22:18 184

原创 JAVA的数据类型

float(单精度浮点型):4字节。double(双精度浮点):8字节。short(短整型): 2字节。long(长整型):8字节。int(整型):4字节。类:例如String。

2024-04-03 09:58:21 1490

原创 常用的dos命令(了解即可)

cd /D c: 由d盘更换到C盘,切换驱动。tree 相对路径/绝对路径 查看一个目录下的所有子目录,不含文件。dir 相对路径/绝对路径 查看指定目录下文件。首先dos不区分大小写。

2024-04-01 14:21:58 253 1

原创 java源文件在dos下编译和在eclipse中编译的不同之处

,你若是拿着在eclipse中创建的.java文件在dos中用口令编译生成.class文件一样可以通过,但是.class文件无法在dos中用口令运行,因为在dos中用口令编译.java文件时会把文件开头自带的包名()也编译进.class文件,再通过dos运行时就会报错,想要再dos中执行.class文件需要先把源文件中第一行添加的包名删掉或注释掉,然后用口令重新编译生成新的.class文件才可以再次用口令运行。注*java程序的执行是在某个类下的main方法中开始的,定死的规矩!有错误希望友友们指正~

2024-03-26 17:08:16 606

原创 下载JDK后为什么要配置环境变量

注*环境变量页面打开后分为上下两部分,上面是用户变量(配置的环境变量只能该用户使用,即用该用户登陆系统时才可用),下面则是系统变量,即配置后所有用户可用,为了一劳永逸直接在系统的Path变量中添加JDK的bin地址即可。注*dos窗口可以在任意文件目录下运行,上述只是通用打开方式,如想在JDK的bin目录下运行,只需在我的电脑中打开bin目录,在地址栏输入cmd回车即可在JDK的bin目录下运行。下载JDK后,在没配置环境变量的情况下从dos中输入java口令会显示找不到文件,原因是。

2024-03-24 12:23:10 384 1

原创 JDK、JRE、JVM间的关系

如果要编译一个.java文件少不了java开发工具(一堆不同功能的.exe文件),而JDK就是包含了JRE和java开发工具,也就是说安装了JDK也就相当于安装JRE,安装JDK后我们既可以编译.java文件生成class文件,也可以让系统运行class文件执行我们的程序。例如java文件编译后生成class文件,class文件无法被系统直接运行,需要通过JVM虚拟机对class文件进行处理后才能被系统运行,而且是边解释边运行,不会保留执行文件,每次在系统运行class文件都要经过JVM的边解释边运行。

2024-03-23 12:52:45 914 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除