java基础与jvm
JavaSE基础,常用回收算法,GC原理等
心诚则灵'
这个作者很懒,什么都没留下…
展开
-
Java将小数转换为成百分比输出
import java.text.DecimalFormat;import java.text.NumberFormat;import org.junit.Test;public class TestCase { /** * 将小数装换成百分比输出 * 将double类型保留小数点后两位,转换成 */ @Test public void test(){// ======================================原创 2022-07-04 16:18:06 · 1639 阅读 · 0 评论 -
java中过滤字符串首尾的空格,保留中间空格
java中过滤字符串首尾的空格,保留中间空格原创 2022-06-14 16:37:28 · 426 阅读 · 1 评论 -
Spring Boot Configuration Annotation Processor not configured
Spring Boot Configuration Annotation Processor not configured 解决方案问题背景:进行Spring Boot配置文件部署时,发出警告Spring Boot Configuration Annotation Processor not configured,但是不影响运行。问题解决方案:在pom.xml文件中引入依赖如果引入的依赖报红,那就下载没有引入的资源,下载完成后点击下刷新即可。Spring Boot Configuration原创 2022-06-09 11:24:36 · 261 阅读 · 0 评论 -
时间少一天(后端和数据库的时间显示正常,到了前端显示少一天)
不正常的显示:正常的显示:代码研究:结果讨论:加入注解,大部门的时间是转换正确的,但是一些特殊的时间就会出问题:比如1986-05-20 这个时间显示就有问题。解决方法:还是后端不直接做转换,前端有控件可以支持很好的时间转换。直接返回上面的格式给前端就好。注解可以改成下面的试试:@JsonFormat(shape = JsonFormat.Shape.STRING, pattern ="yyyy-MM-dd HH:mm:ss", timezone =..原创 2022-05-13 16:16:35 · 1403 阅读 · 0 评论 -
RedisTemplate常用集合之boundValueOps
一、boundValueOps简单的Key-Value操作。1、BoundValueOperationsBoundValueOperations就是一个绑定key的对象,我们可以通过这个对象来进行与key相关的操作。# 绑定一个key对象FetterBoundValueOperations boundValueOps = redisTemplate.boundValueOps("Fetter");2、set(V value)给绑定键重新设置值(如果没有值,则会添加这个值)。b原创 2022-05-11 18:13:44 · 1449 阅读 · 0 评论 -
POI的 CellRangeAddress 参数
EXCEL合并列方法的参数:CellRangeAddress(int firstRow, int lastRow, int firstCol, int lastCol)参数说明:int firstRow:起始行号 ,0是第一行int lastRow: 终止行号int firstCol: 起始列号,0是第一列int lastCol: 终止列号从0开始,不是从1开始例子:.addMergedRegion(new CellRangeAddress(3,11,1,4))参数..原创 2022-03-21 15:35:42 · 1681 阅读 · 0 评论 -
mybatis之jdbcType(日期)
在insert的时候对于一些数据库中可以为空的值要指定jdbcType。 对于时间类型,如果只记录年月日,jdbcType即可指定为Date。如果需要记录时分秒,则需要指定jdbcType为TIMESTAMP类型。原创 2022-03-17 17:11:10 · 2974 阅读 · 0 评论 -
公司规定所有接口都用 POST请求,这是为什么?
今天再次看到这个问题,我也有了一些新的理解和感触,临时回顾了一下get与post的请求的一些区别: post更安全(不会作为url的一部分,不会被缓存、保存在服务器日志、以及浏览器浏览记录中) post发送的数据更大(get有url长度限制) post能发送更多的数据类型(get只能发送ASCII字符) post比get慢 post用于修改和写入数据,get一般用于搜索排序和筛选之类的操作 get请求的是静态资源,则会缓存,如果是数据,则不会缓存原创 2022-02-17 10:00:22 · 1581 阅读 · 0 评论 -
attempted to return null from a method with a primitive return type (int).
错误产生的场景dao层接口如下int getResourceDataNumsByTitle(String title);mapper.xml 中sql语句如下<select id="getResourceDataNumsByTitle" parameterType="java.lang.String" resultType="java.lang.Integer"> SELECT * FROM t_resourceData where title = #{titl原创 2022-01-26 14:18:16 · 3466 阅读 · 0 评论 -
java字符串为空抛出异常
以下是Java 判断字符串是否为空的四种方法:方法一: 最多人使用的一个方法, 直观, 方便, 但效率很低:if(s == null ||"".equals(s));方法二: 比较字符串长度, 效率高, 是我知道的最好一个方法:if(s == null || s.length() <= 0);方法三: Java SE 6.0 才开始提供的方法, 效率和方法二几乎相等, 但出于兼容性考虑, 推荐使用方法二.if(s == null || s.isEmpty());方法四: .原创 2022-01-20 17:26:07 · 2166 阅读 · 0 评论 -
StringBuffer拼接XML报文
可使用StringBuffer str = new StringBuffer();拼接报文发送网络请求。原创 2021-11-08 15:30:06 · 1850 阅读 · 0 评论 -
java.lang.ClassNotFoundException: org.apache.http.client.HttpClient的解决方式
java.lang.ClassNotFoundException: org.apache.http.client.HttpClient的解决方式原因:缺少依赖解决方式:解决之前<dependency> <groupId>org.apache.solr</groupId> <artifactId>solr-solrj</artifactId> <version>5.3.1</vers原创 2021-11-05 17:46:25 · 2894 阅读 · 0 评论 -
session.setAttribute()方法是做什么用的?
session.setAttribute("xyyyy",xyyy);保存session.getAttribute("xyyyy");取得把自己要的数据放在session里面传来传去原创 2021-11-05 17:32:56 · 434 阅读 · 0 评论 -
HttpStatus状态,HttpStatus.OK,HttpStatus.BADREQUEST等
常用HttpStatus状态:HttpStatus.OK = 200; HttpStatus.BAD_REQUEST = 400; HttpStatus.FORBIDDEN = 403; HttpStatus.NOT_FOUND = 404; HttpStatus.REQUEST_TIMEOUT = 408; HttpStatus.SERVICE_UNAVAILABLE =500;HttpStatus状态码详解HttpStatus = { //Information原创 2021-11-03 11:07:39 · 1444 阅读 · 0 评论 -
java三元表达式
布尔表达式?a:b布尔表达式为true结果为a,表达式为false结果为bjava三元表达式有字符强转的功能,会把后面的强转为和前面的类型一样如果前面是int型 会把后面字符变成对应的ascii码。如果前面是char型 会把后面数字转换成对应的字符。条件?a:b;等同于if(条件){ a;}else{ b;}public class A{public static void main(String[] args) { char a = 'a'; ...原创 2021-10-20 17:35:32 · 15966 阅读 · 0 评论 -
StringBuffer调用append时的空指针异常
如果写成:StringBuffer s = null;System.out.println(s.append(""));就会报出:java.lang.NullPointerException 空指针异常。必须:StringBuffer s = new StringBuffer();原创 2021-10-11 17:03:22 · 670 阅读 · 0 评论 -
实体类 @TableName
//指向表table_biao@TableName("table_biao)public class UserThirdLogin extends Model<UserThirdLogin>{ private static final long serialVersionUID = 1L; //指向表中的id @TableId(value = "id", type = IdType.AUTO) private Integer id; /** .原创 2021-10-08 11:35:50 · 545 阅读 · 0 评论 -
json数据按写入顺序进行输出
只需要在 new的时候设置成true,即可JSONObject json = new JSONObject(true);原创 2021-09-30 16:19:17 · 525 阅读 · 0 评论 -
java两个List合并去重
@Test public void test3(){ List<MyTest> a = new ArrayList<MyTest>(); List<MyTest> b = new ArrayList<MyTest>(); MyTest a1 = new MyTest(); MyTest a2 = new MyTest(); MyTest b1 = new .原创 2021-08-23 11:04:31 · 2996 阅读 · 0 评论 -
JAVA中获取当前系统时间
import java.util.Date;import java.text.SimpleDateFormat;public class TestTime{ public static void main(String[] args) { SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式 System.out.println(df.format(new.原创 2021-07-26 17:41:05 · 193 阅读 · 0 评论 -
遍历List集合的三种方法
List<String> list = new ArrayList<String>();list.add("aaa");list.add("bbb");list.add("ccc");//方法一://超级for循环遍历for(String attribute : list) { System.out.println(attribute);}//方法二://对于ArrayList来说速度比较快, 用for循环, 以size为条件遍历:for(int i = 0.原创 2021-07-22 17:30:00 · 899 阅读 · 0 评论 -
在IDEA中统计项目代码的总行数
1.安装 Statistic 插件统计项目代码,需要先安装插件,idea 插件安装方法如下:(1)点击File -> Settings。(2)进入 Settings 界面后,输入框搜索 plugins,然后点击 Plugins。(3)插件搜索框输入 Statistic,然后点击 Install 安装插件。(4)重启 Idea,使插件生效。2.查看 重启 idea 之后,在左下方可以看到 Statistic (如果没有 , 可以点击View菜单 ->...原创 2021-07-19 15:55:29 · 2416 阅读 · 0 评论 -
常见的几种新建一个带有数据的list方法
public class Test{ public static void main(String[] args){ String[] strings = new String[]{ "one","two","three" }; //Arrays工具类 List<String> list1 = Arrays.asList("1", "2", "aaa"); .原创 2021-07-12 14:17:14 · 3413 阅读 · 0 评论 -
java手册-并发处理
1.线程池不允许使用Executors去创建,而是通过ThreadPoolExecutor的方式,这样的处理方式让写的同学更加明确线程池的运行规则,规避资源耗尽的风险。说明:Executors返回的线程池对象的弊端如下:1)FixedThreadPool和SingleThreadPool: 允许的请求队列长度为Integer.MAX_VALUE,可能会堆积大量的请求,从而导致OOM。2)CachedThreadPool和ScheduledThreadPool: 允许的创建线程数量为..原创 2021-04-19 16:23:01 · 104 阅读 · 0 评论 -
java手册-集合处理
1.使用集合转数组的方法,必须使用集合的toArray(T[] array),传入的是类型完全一样的数组,大小就是list.size()。说明:使用toArray带参方法,入参分配的数组空间不够大时,toArray方法内部将重新分配内存空间,并返回新数组地址;如果数组元素个数大于实际所需,下标为[ list.size() ]的数组元素将被置为null,其它数组元素保持原值,因此最好将方法入参数组大小定义与集合元素个数一致。正例:List<String> list = n原创 2021-04-17 17:44:54 · 180 阅读 · 0 评论 -
java手册-常用规范
OOP规约1.所有的覆写方法,必须加@Override注解。说明:getObject()与get⊙bject()的问题。一个是字母的O,一个是数字的⊙,加@Override可以准确判断是否覆盖成功。另外,如果在抽象类中对方法签名进行修改,其实现类会马上编译报错。2.setter方法中,参数名称与类成员变量名称一致,this.成员名=参数名。在getter/setter方法中,不要增加业务逻辑,增加排查问题的难度。反例:public Integer getData() {原创 2021-04-17 11:54:46 · 186 阅读 · 0 评论 -
BaseBean的统一解析
将json转换为对象private T parseJson(String json) { Gson gson = new Gson(); //从一个json中去解析数据,这里需要建立对应的java bean类 //没有T.class的写法,使用泛型解析 ParameterizedType type = (ParameterizedType) getClass().getGenericSuperclss(); Type[] types = type.getActualTyp原创 2021-02-04 17:14:26 · 883 阅读 · 0 评论 -
Java String类详解
Java String类字符串广泛应用在Java编程中,在Java中字符串属于对象,Java提供了String类来创建和操作字符串。public class StringDemo{ public static void main(String args[]){ char[] helloArray = { 'r', 'u', 'n', 'o', 'o', 'b'}; String helloString = new String(helloArray);原创 2020-12-08 16:23:11 · 135 阅读 · 0 评论 -
Tomcat8.5.50的安装与配置
下载官网:https://tomcat.apache.org/下载后解压到根目录。但必须有jdk,本人用的是jdk1.8。配置环境变量在classpath这个变量中加入D:\apache-tomcat-8.5.50\bin没有就新建一个classpath变量名原创 2020-09-07 09:52:46 · 1770 阅读 · 0 评论 -
i++和++i的真正区别详解
在解释这两个运算之前,先引入局部变量表和操作数栈。i++的通俗的解释即是先赋值再自增,其实这里赋值的值是从操作数栈取的值,也就是说先将i的值压入栈中,而自增是局部变量表的值自增。而++i则相反,是先自增后赋值,就是局部变量表的自增,然后把局部变量表的值压入栈中。现在我们用一道经典题来从底层原理解释这两个运算操作public static void mian(string[] ar...原创 2020-02-28 22:11:55 · 66146 阅读 · 24 评论 -
JVM垃圾回收机制中GC的介绍以及它的四大算法是什么
GC是发生在堆(heap)里。GC是什么(分代收集算法)有两种GC(MinorGC、 Full GC)次数上频繁收集Young区 MinorGC(复制算法) 次数上较少收集Old区 Full GC(标记清除、标记压缩) 基本不动Perm(永久)区GC的4大算法1. 引用计数法之所以被JVM淘汰较难处理循环引用 每次对对象赋值时均要维护引用计数器,且计数器...原创 2020-04-16 13:38:02 · 332 阅读 · 0 评论 -
阿里云ECS如何查看linux端口占用情况
如何查看阿里云linux系统下的ECS端口占用情况?在安装服务之前,我们都会习惯的查询一下该服务的端口占用情况,有时候会出现该服务所对应的端口占用,导致该服务启动不了,所以检查linux端口占用情况是十分必要的。如何查看linux端口占用情况?两种方式:安装lsofyum install lsof -y使用命令:lsof -i查看具体某个端口号占用情况查看具体某个端口号占用情况,我们以80端口为例使用命令:netstat -tunlp |grep 80(80改成你想要查看的端原创 2020-07-25 00:26:59 · 1757 阅读 · 0 评论 -
Java中的名称命名规范
标识符的使用标识符:凡是自己可以起名字的地方都叫标识符。比如:类名、变量名、方法名、接口名、包名...标识符的命名规则:-->如果不遵守如下的规则,编译不通过!。需要大家严格遵守由26个英文字母大小写,0-9,_或$组成 数字不可以开头。 不可以使用关键字和保留字,但能包含关键字和保留字。 Java中严格区分大小写,长度无限制。 标识符不能包含空格Ja...原创 2020-05-01 23:57:27 · 365 阅读 · 0 评论 -
Server Tomcat v7.0 Server at localhost was unable to start within 45 seconds.
在重新运行之前的项目时,运行项目出现了这个tomcat小问题。Server Tomcat v7.0 Server at localhost was unable to start within 45 seconds. If the server requires more time, try increasing the timeout in the server editor.经过一番分...原创 2020-04-17 21:43:58 · 2392 阅读 · 0 评论 -
Java中对象与实例的关系
在《Thinking in Java》一书里提到:“每个对象都是某个类(class)的一个实例,这里类就是类型的意思”。通俗地说,实例表示的是对象和类的关系比如:Person b=new Person(); new Person()新建了一个Person对象,而b则是一个指向Person对象的引用,这个Person对象就是Person类的一个实例。此时,可以认为实例和...原创 2020-04-01 13:51:48 · 5043 阅读 · 1 评论