Java基础知识
文章平均质量分 76
关于java
keep one's resolveY
保持清醒!
展开
-
Java Properties类使用详解
Java Properties类使用详解概述Properties 继承于 Hashtable。表示一个持久的属性集,属性列表以key-value的形式存在,key和value都是字符串。Properties 类被许多Java类使用。例如,在获取环境变量时它就作为System.getProperties()方法的返回值。我们在很多需要避免硬编码的应用场景下需要使用properties文件来加载程序需要的配置信息,比如JDBC、MyBatis框架等。Properties类则是properties文件转载 2020-08-11 23:49:14 · 298 阅读 · 0 评论 -
各种读取resources目录下文件的方法
我们写使用java写web项目时,有时需要将某些文件存放到resources目录下,之后我们需要在程序中去获取文件。如果是文件路径的话getFile和getPath效果是一样的,如果是URL路径的话getFile是带有参数的路径。这个命令去获取resource的路径,下面我打断点,可以看到resource的内容,里面有file,path。注意:有的可以在web项目中使用,有的则不可以在web项目中使用。现在主流的部署方式是将项目打成jar包部署。所以我们就要通过流的方式去获取文件。转载 2024-01-24 15:44:57 · 600 阅读 · 0 评论 -
StopWatch—— 优雅的程序计时器
StopWatch在Spring,Apache,hutool的工具包中都有,里边的实现原理都差不多,只不过有一些API的调用和使用不太一样。我们先来看一下StopWatch的使用:相信看过SpringBoot源码// 声明一个StopWatch实例//任务启动……// 任务停止看SpringBoot的例子可以知道,StopWatch的使用基本分为三步:创建实例,启动,停止。但是作为spring的工具类,StopWatch会这么简单吗?当然不会。转载 2023-10-18 11:34:42 · 534 阅读 · 0 评论 -
Logger.error方法之打印错误异常的详细堆栈信息
当使用两个参数error(String message, Throwable t),且第二个参数为Throwable时,才会将完整的异常堆栈打印出来。特性,当只输入一个参数时,此对象会被当做Object进行打印输出,如果是Exception e的话,这里直接就toString()。Logger类下有多个不同的error方法,根据传入参数的个数及类型的不同,自动选择不同的重载方法。根据方法重载特性,当第二个参数为Throwable时,会打印出异常信息,并且包含异常堆栈信息。使用Logger.erro。转载 2023-10-11 10:32:23 · 2465 阅读 · 0 评论 -
正则表达式
30分钟内让你明白正则表达式是什么,并对它有一些基本的了解,让你可以在自己的程序或网页里使用它。别被下面那些复杂的表达式吓倒,只要跟着我一步一步来,你会发现正则表达式其实并没有想像中的那么困难。当然,如果你看完了这篇教程之后,发现自己明白了很多,却又几乎什么都记不得,那也是很正常的——我认为,没接触过正则表达式的人在看完这篇教程后,能把提到过的语法记住80%以上的可能性为零。这里只是让你明白基本的原理,以后你还需要多练习,多使用,才能熟练掌握正则表达式。除了作为入门教程之外,本文还试图成为可以在日常工作中使转载 2023-03-15 13:57:26 · 93 阅读 · 0 评论 -
HttpClient和HttpURLConnection的区别和案例
在一般情况下,如果只是需要向Web站点的某个简单页面提交请求并获取服务器响应,HttpURLConnection完全可以胜任。但在绝大部分情况下,Web站点的网页可能没这么简单,这些页面并不是通过一个简单的URL就可访问的,可能需要用户登录而且具有相应的权限才可访问该页面。在这种情况下,就需要涉及Session、Cookie的处理了,如果打算使用HttpURLConnection来处理这些细节,当然也是可能实现的,只是处理起来难度就大了。原创 2023-01-29 10:02:28 · 631 阅读 · 0 评论 -
LocalDate方法使用总结
*** localDate 设值自定义日期* 根据指定日期/时间创建对象*/@TestSystem.out.println("自定义的年月日: " + yyyyMMdd);System.out.println("自定义时分秒毫秒: " + HHmmssSSS);System.out.println("自定义年月日时分秒毫秒: " + yyyyMMddHHmmssSSS);//输出:// 自定义的年月日: 2020-10-15// 自定义时分秒毫秒: 10:10:10。原创 2023-01-16 10:20:48 · 6966 阅读 · 1 评论 -
List分组的两种方式
假设有个student类,有id、name、score属性,list集合中存放所有学生信息,现在要根据学生姓名进行分组。转载 2022-11-29 16:39:50 · 1200 阅读 · 0 评论 -
Websocket客户端
webSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。本次介绍的是websocket客户端的编写,至于websocket服务端的编写可以看我之前写的。转载 2022-11-17 14:05:17 · 1197 阅读 · 0 评论 -
Java-同步调用-异步调用-回调
从软件模块之间的调用方式看,分为三类:同步调用、异步调用和。1️⃣同步调用同步调用是最基本并且最简单的一种调用方式,类 A 的 a() 调用类 B 的 b(),一直等待 b() 执行完毕,a() 继续往下走。,因为 b() 执行时间过长或者直接阻塞的话,a() 的余下代码是无法执行下去的,这样会造成整个流程的阻塞。2️⃣异步调用异步调用是为了解决同步调用可能出现阻塞,导致整个流程卡住而产生的一种调用方式。,这样无论 b() 执行时间多久,都不会阻塞住 a() 的执行。转载 2022-10-28 17:56:21 · 1317 阅读 · 0 评论 -
Java中的Math函数常用方法
在Math函数中,还有许多关于数字的基本运算,但是基本上常用的一些方法都在上文有详细的列举,对于这些常用的方法还是需要熟练运用,避免在开发过程中或平时做任务遇到时,不知所措。转载 2022-10-25 10:46:40 · 1478 阅读 · 0 评论 -
Java中创建对象的四种方式
Person zhangsan = new Person(101, "张三", 18, "男");Person lisi = new Person(102, "李四", 18, "男");User user = new User(101,"张三",18,"男");user1 User{id=101, name=‘张三’, age=18, sex=‘男’}user User{id=101, name=‘张三’, age=18, sex=‘男’}转载 2022-10-22 17:04:41 · 3082 阅读 · 0 评论 -
Java如何实现Pdf的导出?
Java如何实现Pdf的导出?_执笔画红颜丶的博客-CSDN博客_java导出pdf文件转载 2022-09-09 11:19:57 · 505 阅读 · 0 评论 -
JAVA基础:注解与反射的使用方法与场景
Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制。Java 语言中的类、方法、变量、参数和包等都可以被标注。和注释不同,Java 标注可以通过反射获取标注内容。在编译器生成类文件时,标注可以被嵌入到字节码中。Java 虚拟机可以保留标注内容,在运行 时可以获取到标注内容。当然它也支持自定义 Java 标注。注解与注释的区别:注解是给机器看的注释,而注释是给程序员看的提示,编译时自动忽略注释。转载 2022-08-21 19:21:23 · 238 阅读 · 0 评论 -
JDK1.8 API 中文文档
链接:提取码: ng8r。转载 2022-08-12 10:18:02 · 869 阅读 · 0 评论 -
Java处理List集合数据进行分页展示
System.out.println("总页数"+((list.size()/pageSize)+1));System.out.println("每页个数"+queryPageInfo.getPageSize());System.out.println("当前页"+queryPageInfo.getPageNum());System.out.println("总条数"+list.size());System.out.println("每页个数"+pageSize);...转载 2022-07-25 17:10:17 · 1705 阅读 · 2 评论 -
【Java基础】前端传一个数组或者集合后台怎么接受(案例详解)
解答前端除了传一个集合外,还要传一个字符串或者数字等属性,我们创建一个VO对象来接受即可解决如上的问题。前后端传参,最重要的还是统一好对应的参数属性名称,传参方式等,提前确认好,开发效率会大幅提高。业务场景传入的集合代表要操作的数据,传入的字符串,字符串/数字不同走不同的业务逻辑等。你是否遇到过这样的问题,就是前端除了传一个集合外,还要传一个字符串或者数字等属性?我们可以debug查看一下入参,很清晰的可以看到前端传入的参数。业务场景一前端传对象的集合后端就用对应的list接受即可。...转载 2022-07-20 09:44:07 · 21705 阅读 · 4 评论 -
Java导出Word文档的实现
这就是用Java语言实现,结合XDocReport和FreeMarker模板引擎生成Word文档的方法。希望能给致力于开发的小伙伴带来一丝丝帮助。httpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttps。转载 2022-07-19 16:27:40 · 17449 阅读 · 38 评论 -
为什么重写equals方法时必须重写hashCode方法
所有对于需要大量并且快速的对比的话如果都用equals去做显然效率太低,解决方式是,每当需要对比的时候,hashCode去对比,这就用到了哈希表,能够快速的地位到对象的存储位置,如果hashCode不一样,则表示这两个对象肯定不相等(也就是不必再用equals去再对比了),如果hashCode相同,此时再对比它们的equals,如果equals也相同,则表示这两个对象是真的相同了。哈希表在一定程度上也可以起到判重的作用,但也可能存储哈希冲突,即使是两个不同的对象,它们的哈希值也可能是相同的。...转载 2022-07-18 21:48:34 · 2831 阅读 · 0 评论 -
Java Bean和Map进行互转的方式有如下几种:
beanToMapMapToBean....等方法。转载 2022-07-18 16:44:53 · 3760 阅读 · 0 评论 -
Java 位运算(移位、位与、或、异或、非)
Java提供的位运算符有:左移( > ) 、无符号右移( >>> ) 、位与( & ) 、位或( | )、位非( ~ )、位异或( ^ ),除了位非( ~ )是一元操作符外,其它的都是二元操作符。1、左移(转载 2022-07-11 15:18:31 · 573 阅读 · 0 评论 -
Double和Float精度损失及BigDecimal运用
Java使用double和float精度损失问题:java的double和float为什么会丢失精度 为什么BigDecimal精度不会丢失_恬毅的博客-CSDN博客_为什么bigdecimal不会精度丢失Java中的BigDecimal运算:Java中的BigDecimal运算,如何解决精度丢失问题?_Java笔记虾的博客-CSDN博客...原创 2022-06-29 14:00:32 · 160 阅读 · 0 评论 -
Java代码实现备份与恢复数据库
Java代码备份与恢复数据库恢复SQL执行备份上面的方法中有个backup(file, command)方法,第一个参数为生成SQL后,文件的全路径,第二个参数是生成SQL语句时,返回的备份语句,接下来看看backup(file, command)方法中的代码:执行backup(file, command)方法时,创建了一个实现Callable接口的对象,这个对象用于处理执行数据库备份时产生的信息,如果备份失败,会把失败的文件删除掉,代码如下:删除备份失败的文件调用转载 2022-06-20 11:00:07 · 1645 阅读 · 2 评论 -
Java Process详解
Process简介我们在实际Java开发工作中可能会遇到调用操作系统命令的场景,比如查看下文件夹,执行下sh/exe文件等等,那么我们就要用到Process了!首先,打开API来认识下Process :Java代码 我们看到,Process是个抽象类,继承自“全民祖先”Object,有两种方式可以创建Process子类的实例,以及一系列进程交互方法:Java代码 Process实战操练学了那么多理论,还不如来个demo,我们来一个用“ping 百度网址”的例子吧,请看:Java代码 顺利运转载 2022-06-17 09:39:38 · 2261 阅读 · 0 评论 -
时间转换@DateTimeFormat和@JsonFormat
作用:将前端传过来的String类型转为Date类型。作用:1:前端传的String日期类型转为Date类型,(要配合@RequestBody)2:后端的Date类型,json格式化响应给前端时转为String类型。需要注意的是,该注解还需额外指定时区(5条消息) @DateTimeFormat 和 @JsonFormat 注解_月下泛舟的博客-CSDN博客_datetimeformat......原创 2022-06-11 15:32:49 · 957 阅读 · 1 评论 -
Java_复杂Excel导入导出和转换
Java导出复杂数据到Excel:https://blog.csdn.net/hjf_1291030386/article/details/75288220Java实现Excel转PDF的两种方法:https://blog.csdn.net/weixin_44985880/article/details/124293130?ops_request_misc=&request_id=&biz_id=102&utm_term=java%20excel%E8%BD%AC%E6%原创 2022-05-27 16:06:35 · 4193 阅读 · 0 评论 -
FastJson详解
FastJson学习之转换:使用介绍:Fastjson的最主要的使用入口是com.alibaba.fastjson.JSONimport com.alibaba.fastjson.JSON;public static final Object parse(String text); // 把JSON文本parse为JSONObject或者JSONArraypublic static final JSONObject parseObject(String text); // 把JSON文本.转载 2022-03-30 23:50:10 · 5329 阅读 · 0 评论 -
JAVA中队列Queue和栈Stack的理解
什么是队列? 队列是一种特殊的线性表,遵循先入先出、后入后出的基本原则,一般来说,它只允许在表的前端进行删除操作,而在表的后端进行插入操作,但是java的某些队列运行在任何地方插入删除;比如我们常用的 LinkedList 集合,它实现了Queue 接口,因此,我们可以理解为LinkedList 就是一个队列;java队列特性队列主要分为阻塞和非阻塞,有界和无界、单向链表和双向链表之分;阻塞和非阻塞阻塞队列 入列(删除元素............转载 2022-03-25 23:03:55 · 6736 阅读 · 3 评论 -
创建对象时,=null 和new的区别
例子:UserInfo userInfo = new UserInfo();UserInfo userInfo = null;区别在于:前者声明了一个对象的引用以后,在jvm中将一块新开辟的没有任何有效值的空间赋给了它,后者只是声明了一个对象的引用,jvm并没有开辟空间。在使用的时候,如果类创建以后需要自己读写对象,就必须初始化,如果声明的对象是从其他地方接收引用可以写为=null的形式声明一个类(对象)需要用到类中的方法的时候,需要new。另外,UserInfo userInfo =转载 2022-02-28 14:14:27 · 1054 阅读 · 0 评论 -
循环中break和continue用法
无论是while循环还是for循环,有两个特别的语句可以使用,就是break语句和continue语句。break在循环过程中,可以使用break语句跳出当前循环。break语句通常都是配合if语句使用。要特别注意,break语句总是跳出自己所在的那一层循环。public class Main { public static void main(String[] args) { for (int i=1; i<=10; i++) { Sys转载 2022-02-08 19:46:20 · 4982 阅读 · 0 评论 -
Java基础类型详解及字节与编码关系
bit --位:位是计算机中存储数据的最小单位,指二进制数中的一个位数,其值为“0”或“1”。byte --字节:字节是计算机存储容量的基本单位,一个字节由8位二进制数组成。在计算机内部,一个字节可以表示一个数据,也可以表示一个英文字母,两个字节可以表示一个汉字。1Byte=8bit (1B=8bit)1KB=1024Byte(字节)=8*1024bit1MB=1024KB1GB=1024MB1TB=1024GB只有8种基本类型可以算.其他引用类型都是由java虚拟机决定的自己原创 2022-01-15 17:58:51 · 1292 阅读 · 0 评论 -
最常用的slf4j+logback日志框架介绍
1 基本介绍每一个Java程序员都知道日志对于任何一个Java应用程序尤其是服务端程序是至关重要的,而很多程序员也已经熟悉各种不同的日志库,如java.util.logging、Apachelog4j、logback。但如果你还不知道SLF4J(Simple logging facade for Java)的话,那么是时候在你的项目中学习使用SLF4J了。SLF4J不同于其他日志类库,与其它日志类库有很大的不同。SLF4J(Simple logging Facade for Java)不是一个真正.原创 2022-01-13 16:22:40 · 8517 阅读 · 0 评论 -
Java中各种类型判断是否为空
Java八种基本类型都有默认值,所以不存在判断为空。常用的需要判断的类型:---------------------------------------------------------------------------------------Java中,判断List集合是否为空与是否为null并不相同,新建List对象,默认是为空(list.isEmpty()为true,list.size()为0)而不是null,即没有数据,list也可以理解是个容器,有杯子但是没有水。如果没有水杯原创 2021-12-31 12:16:27 · 4809 阅读 · 0 评论 -
HashMap底层实现原理解析
HashMap底层实现原理解析_苟且偷生的程序员的博客-CSDN博客_hashmap底层实现原理转载 2021-12-30 23:53:26 · 82 阅读 · 0 评论 -
java内部类详解
Java内部类详解 - Matrix海子 - 博客园1.成员内部类2.局部内部类3.匿名内部类(使用最多)4.静态内部类转载 2021-12-26 11:21:02 · 79 阅读 · 0 评论 -
生成id + 编码 + 常见的加密算法及 Java 实现
概要:主要对加密算法做个概况性的介绍,然后给出几种简单的加密算法 Java 实现。1. 算法种类单向加密 对称加密 非对称加密1.1 单向加密即加密之后不能解密,一般用于数据验证1) Base64(可以解密)Base64 编码是从二进制到字符的过程,用 64 个字符来表示任意的二进制数据,常用于在 HTTP 加密,图片编码传输等。可打印字符:在ASCII码中规定,0~31、128 这33个字符属于控制字符,32~127这95个字符属于可打印字符转换方式:在 HT..转载 2021-12-16 01:16:35 · 2379 阅读 · 0 评论 -
Java8新特性详解(重点)
JUC博客中也有讲java8新特性:JUC并发编程学习笔记(狂神)_逮虾户<的博客-CSDN博客------------------------------------------------------------------------------------------------------转载(重要):Java8新特性1:Java8新特性一:Lambda Expressions(Lambda 表达式)_Angus博客-CSDN博客Java8新特性2:Java8新特转载 2021-12-02 01:24:32 · 292 阅读 · 0 评论 -
Jackson详解
Spring Boot框架中使用Jackson的处理总结_八一菜刀的专栏-CSDN博客Spring Boot框架中使用Jackson的处理总结1.前言通常我们在使用Spring Boot框架时,如果没有特别指定接口的序列化类型,则会使用Spring Boot框架默认集成的Jackson框架进行处理,通过Jackson框架将服务端响应的数据序列化成JSON格式的数据。本文主要针对在Spring Boot框架中使用Jackson进行处理的经验进行总结,同时也结合在实际开发场景中碰到的问题以及解决转载 2021-11-21 22:58:49 · 2954 阅读 · 0 评论 -
Java中的转义字符
一.常见的转义字符转义字符对应的英文是escape character , 转义字符串(Escape Sequence)字母前面加上捺斜线""来表示常见的那些不能显示的ASCII字符.称为转义字符.如\0,\t,\n等,就称为转义字符,因为后面的字符,都不是它本来的ASCII字符意思了。所有的转义字符和所对应的意义:注意:区分,斜杠:"/" 与 反斜杠:"" ,此处不可互换二./斜线与\反斜线① / 斜线, slash或又称为forward slash (前斜线), 原本是标点符号转载 2021-09-14 23:53:42 · 12778 阅读 · 0 评论 -
Java项目获取路径方法
首先,项目中文件分布情况如下,innerFile.txt位于test.test包下,innerInnerFile.txt位于test.test.inner包下,outterFile.txt位于包的根目录下,那么,在App类里,如何根据相对路径、绝对路径获取innerFile.txt、innerInnerFile.txt和outterFile.txt呢?class.getResource(name)先来看一下Class.getResource(name)方法,该方法接收一个表示文件路径的参数,转载 2021-09-09 23:12:45 · 6884 阅读 · 0 评论