java基础知识
文章平均质量分 61
YD_1989
这个作者很懒,什么都没留下…
展开
-
List<Map<String,List>>集合结构的遍历处理
1、List<Map<String,List>>的json数据表示形式如下所示,Json数据整体是一个json数组的形式,数组内的每一个元素是Map数据形式,map数据形式中,key是字符串,value同时又是一个数组的形式"fxjg": [ { "reter": [ "/1/1.jpg", "/1/2.jpg",原创 2022-04-29 13:43:28 · 2176 阅读 · 0 评论 -
java多线程学习笔记
多线程,就是说一个应用程序有多条执行路径,每当我们打开一个应用程序的时候,就相当于打开了一个进程,而进程中执行的操作,就是线程。以优酷为例,打开优酷就相当于打开一个进程,下载视频的操作就是线程,多线程就是同时下载多个视频。在Java中有两种方式实现多线程分别是继承Thread类和实现Runnable接口。一、继承Thread类Thread类中有一个run方法,但是这个run方法需要我们重写,故我们需要自定义一个类来继承Thread类,然后在自定义的类中重写这个run方法,重写完了就可以创建一个对象了原创 2022-05-16 13:21:58 · 139 阅读 · 0 评论 -
java类内部的方法名称可以相同吗?
答:java类内部的方法名称可以相同。原因:java的一个特性是“多态性”。多态性包括两种:①类内部多态(重载)。②继承中多态(覆写)。类内部的多态:在一个类的内部如果有多个方法的方法名相同参数列表不同。由类内部多态的定义可知,同一个类中,可以出现相同名称的方法,但是参数列表一定要不同。其中最典型的就是有参和无参的构造方法。实体类中有参和无参的构造方法: //无参构造方法 public Animal() { } //无参构造方法 public Animal原创 2022-05-07 19:20:05 · 3040 阅读 · 0 评论 -
算法面试题
1、1-100的数字,如果是3的倍数,输出字符串3ZZ,如果是5的倍数,输出字符串5ZZ,如果既是3的倍数又是5的倍数,输出字符串3&5ZZ,其余情况正常输出数字/** * 1-100的数字,如果是3的倍数,输出字符串3ZZ; * 如果是5的倍数,输出字符串5ZZ; * 如果既是3的倍数又是5的倍数,输出字符串3&5ZZ,其余情况正常输出数字 */ private static void print() { for (int原创 2022-05-16 16:40:29 · 79 阅读 · 0 评论 -
算法小案例
1.给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。提示:可以假设 nums 中的所有元素是不重复的。n 将在 [1, 10000]之间。nums 的每个元素都将在 [-9999, 9999]之间。 public static int search(int[] nums,int target){ int index = -1; for(in原创 2021-12-19 16:52:58 · 76 阅读 · 0 评论 -
servlet
Servlet技术-控制层(一)项目分层结构3层前台后台底层浏览器web服务器数据库服务器谷歌浏览器Tomcat服务器Mysql服务器Java语言Mysql(SQL)JDBC技术Mysql(SQL)(二)项目分层结构4层前台控制层数据层底层web前台web后台视图层控制层数据层底层Java语言Java语言Java语言Mysql(SQL)JSP技术Servlet技术JDBC技术原创 2021-08-18 15:24:40 · 61 阅读 · 0 评论 -
java字符串拼接
1、字符串末尾添加方法一: String str = "中国"; str += "我爱你"; System.out.println(str);打印结果:方法二: StringBuilder str = new StringBuilder("中国"); str.append("我爱你"); System.out.println(str);打印结果:2、在任意位置添加字符串官方给我们提供了insert()方法,该方法是原创 2022-04-25 12:35:12 · 570 阅读 · 0 评论 -
日期工具类
package com.mf.util;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Calendar;import java.util.Date;import java.util.List;/** * 日期工具类 * @author Administrator * */public class DateUtil { /** * 获取当年年月日字符串 * @re原创 2021-08-19 21:30:11 · 59 阅读 · 0 评论 -
@Transactional事务注解
一、事务注解使用的位置1、用于类的上方表示这个类中的所有方法都进行事务处理当类中的某个方法不需要事务处理时,可以在这个方法上添加: @Transactional(propagation =Propagation.NOT_SUPPORTED)例如:@Transactional public class AServiceImplements AService { public void m1() { } @Transactional(pr原创 2022-04-26 14:37:43 · 4677 阅读 · 0 评论 -
java8的Optional 详解
1、Optional 介绍传统的写代码方式经常会遇到NullPointerException,这就需要我们在代码中经常判空。而判空的写法又会显得很累赘,这里就可以用到Optional来简化代码。Optional是在java.util包下的一个用于代替null的一个工具类。import java.util.Optional;Optional 是个容器:它可以保存类型T的值,或者仅仅保存null。Optional提供很多有用的方法,这样我们就不用显式进行空值检测。Optional 类是一个可以为n原创 2022-04-30 10:26:05 · 14319 阅读 · 0 评论 -
Java的接口
java接口原创 2021-12-27 18:29:44 · 369 阅读 · 0 评论 -
Java常用的工具类
IOUtilsIOUtils: Apache Commons IO用来处理输入-输出流详情介绍: https://blog.csdn.net/l2580258/article/details/89227761添加的依赖:<dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.4</v原创 2021-08-19 22:24:08 · 614 阅读 · 1 评论 -
java如何自定义注解
一、什么是注解?注解是一种能被添加到java源代码中的元数据,方法、类、参数和包都可以用注解来修饰。注解可以看作是一种特殊的标记,可以用在方法、类、参数和包上,程序在编译或者运行时可以检测到这些标记而进行一些特殊的处理。二、自定义注解需要的基本元素自定义注解需要用到的东西:修饰符:访问修饰符必须为public,不写默认为pubic;关键字:关键字为@interface;注解名称: 注解名称为自定义注解的名称,使用时还会用到;注解类型元素: 注解类型元素是注解中内容,可以理解成自定义接口的原创 2022-05-30 10:38:24 · 4315 阅读 · 1 评论 -
== 和 equals 的区别是什么?
== 和 equals 的区别是什么? String str1 = "hello"; String str2 = new String("hello"); String str3 = str2; System.out.println(str1 == str2); System.out.println(str3 == str2); System.out.println(str1 == str3);打印结果:falset原创 2022-05-08 18:11:55 · 263 阅读 · 0 评论 -
Java Map 中获取最大值 Value 和对应的 Key
Java Map 中获取最大值 Value 和对应的 Key:import java.util.HashMap;import java.util.Map;import java.util.TreeMap;public class e { public static void main(String[] args) { Map<String, Object> map = new HashMap(); map.put("张三", 28);原创 2022-05-26 22:42:03 · 3484 阅读 · 0 评论 -
java正则表达式
正则表达式是做什么的?正则表达式,又称规则表达式,通常被用来检索、替换那些符合某个模式(规则)的文本。正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合, 组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式的编译原理:java.util.regex 包使用正则表达式需要引入java.util.regex 包:import java.util.regex.*;如上图所示,regex包下共有三个实体类:Patt原创 2022-05-27 14:12:12 · 151 阅读 · 0 评论 -
druid连接池的使用
1、数据库连接池理解连接池基本的思想是在系统初始化的时候,将数据库连接作为对象存储在内存中,当用户需要访问数据库时,并非建立一个新的连接,而是从连接池中取出一个已建立的空闲连接对象。使用完毕后,用户也并非将连接关闭,而是将连接放回连接池中,以供下一个请求访问使用。2、druid连接池 maven配置及配置文件使用(1)druid连接池的maven依赖添加添加druid连接池的依赖、数据库驱动<!-- https://mvnrepository.com/artifact/mysql/mysql原创 2022-04-28 23:35:36 · 2083 阅读 · 0 评论 -
java遍历字符串打印每一个字符
String str = "james"; //方法一 char[] charArray = str.toCharArray(); for (char i:charArray){ System.out.println(i); } /*for (int i = 0; i < charArray.length; i++) { System.out.println(c[i]); ..原创 2022-05-12 10:05:51 · 1686 阅读 · 0 评论 -
java的this关键字和super关键字
this关键字解析this 关键字用来表示当前对象本身,或当前类的一个实例,通过 this 可以调用本对象的所有方法和属性。public class ThisDemo { private static final int x = 10; private static final int y = 10; private void sum() { // 通过 this 点取成员变量 int z = this.x + this.y;原创 2022-05-28 15:46:20 · 249 阅读 · 0 评论 -
String转成double等类型注意非空判断
字符串转换非空判断原创 2022-08-04 22:50:51 · 1349 阅读 · 0 评论 -
Java的static关键字
1、基本概念:通常情况下成员变量隶属于对象层级,每创建一个对象就需要申请独立的内存空间来存放该对象独立的成员变量信息,若**所有对象的某个成员变量数值完全一样**(比如某个学校的学生信息,所有学生的学校是完全一样的)却又单独存放会造成内存空间的浪费。为了解决上述问题,使用static关键字修饰成员变量表达静态的含义,此时该成员变量由对象层级提升为类层级被所有对象共享,该成员变量随着类加载准备就绪,与是否创建对象无关。static关键字也可以修饰成员方法,推荐使用 类名. 的方式访问。原创 2021-12-27 12:34:04 · 260 阅读 · 0 评论 -
@ConfigurationProperties注解
@ConfigurationProperties注解@ConfigurationProperties是springboot提供读取配置文件的一个注解。其对应的bean的后置处理器为**ConfigurationPropertiesBindingPostProcessor**Spring源码中大量使用了ConfigurationProperties注解,比如server.port就是由该注解获取到的,通过与其他注解配合使用,能够实现Bean的按需配置。该注解有一个**prefix**属性,通过指定的前缀原创 2021-12-16 10:51:28 · 696 阅读 · 0 评论 -
Java获得文件夹下的所有文件名称
import org.apache.commons.compress.utils.Lists;import java.io.File;import java.util.List;/** * 文件存储路径返回 */public class FileUrlUtil { //遍历打印目录和文件通用的方法 //图片存储路径返回 public static List printDir(File dir) { List<String> stringL原创 2022-03-08 14:56:40 · 510 阅读 · 0 评论 -
Java分支语句、循环语句
(1)分支语句:if分支、switch分支(2)循环语句:for循环、while循环、do while循环(3)关键字:continue、break // 背:句式背、执行流程背 // TODO (1)if分支语句 // 注意:根据判断布尔值来执行不同分支的。 // 单分支if语句:true执行、false不执行 if (true) { System.out.println(1); } // 两分支if语句:true执行第一个、false执行第二个 if (false)原创 2021-08-07 16:52:42 · 215 阅读 · 0 评论 -
equals方法和hashcode方法
一、Object都有哪些方法?1.clone方法保护方法,实现对象的浅复制,只有实现了Cloneable接口才可以调用该方法,否则抛出CloneNotSupportedException异常。主要是JAVA里除了8种基本类型传参数是值传递,其他的类对象传参数都是引用传递,我们有时候不希望在方法里将参数改变,这是就需要在类中复写clone方法。2.getClass方法final方法,获得运行时类型。3.toString方法该方法用得比较多,一般子类都有覆盖。4.finalize方法该方法用于原创 2022-05-18 16:35:53 · 725 阅读 · 0 评论 -
java.lang.String字符串类
Java默认自动导入java.lang.中的类(但是不包括子包)字符串的两种创建方式// 方式一:字面值(推荐、简单、效率高) String s1 = "你好"; System.out.println(s1); // 方式二:new关键字创建(new就表示“创建”) String s2 = new String("你好"); System.out.println(s2); // 字面值每次都会先检查内存中是否有此字符串//如果有则不创建字符串对象直接返回。// new关键字原创 2021-08-17 00:03:35 · 141 阅读 · 0 评论 -
java instanceof关键字
instanceof 是 Java 的保留关键字,它的作用是测试它左边的对象是否是它右边的类的实例,返回 boolean 的数据类型。代码中可能遇到的情况:1、基本数据类型如上图,这种情况会报错。将右边的类型改为引用类型:依旧报错,改成特殊的null:依旧报错,由此得出:基本类型不能用于 instanceof 判断。为了验证这一点,换一个基本数据类型double进行测试:依旧报错,可以验证结论正确。2、引用类型创建如下关系的类和接口:测试一:public static vo原创 2022-05-29 23:13:53 · 664 阅读 · 0 评论 -
java单例模式学习笔记
1、单例模式定义确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。比如:线程池、缓存、日志对象。2、单例模式的特点①单例类只能有一个实例。②单例类必须自己创建自己的唯一实例。③单例类必须给所有其他对象提供这一实例。3、单例模式的种类(1)懒汉式——线程不安全(2)饿汉式——天生线程安全懒汉式单例——线程不安全,需要我们改造成线程安全/** * 懒汉式单例类——线程不安全 * 在第一次调用的时候实例化自己 */public class DanLi { //通过原创 2022-04-25 16:06:05 · 339 阅读 · 0 评论 -
java 遍历对象中的所有属性(字段)和类型案例
业务场景:一个房产交易系统中的业务需求,查询房屋交易状态接口,调用第三方接口返回一个vo对象,该对象的属性主要是描述该房屋的交易情况,比如是否抵押,是否被查封等,现在需要利用该对象的值决定返回给调用方的返回值。(现在一个对象中有很多个属性,大部分属性的值影响返回结果)代码:vo对象:@Datapublic class BDCQZTXX { private String fwbm;//房屋编码 private String bdcdyh;//不动产单元号 private St转载 2022-04-28 23:08:05 · 4920 阅读 · 0 评论 -
异常+反射+线程
异常API+线程API1、常见异常①算数异常:java.lang.ArithmeticExceptionSystem.out.println(2 / 0);②数组下标越界异常:java.lang.ArrayIndexOutOfBoundsException int[] arr = {1,2,3}; System.out.println(arr[3]);③数字转换异常:java.lang.NumberFormatException int i = Integer.parseInt("你")原创 2021-08-20 14:16:45 · 68 阅读 · 0 评论 -
java可以在C、E盘创建文件夹,但无法在D盘创建文件夹。
java可以在C盘创建文件夹,但无法在D盘创建文件夹。总显示找不到文件路径原因:D盘所开放的权限不足,把权限设置了一下就可以了原创 2022-02-22 11:16:29 · 2031 阅读 · 0 评论 -
java静态代码块,构造方法,构造代码块的执行先后顺序
1、执行顺序静态代码块>构造代码块>构造方法原因:静态代码块(static{})在类加载的时候执行一次,是最早被执行的。构造代码块({}内的部分)在每一次创建对象时执行,始终在构造方法前执行。构造方法在新建对象时调用( 就是new的时候 )。注意:静态代码块在类加载的时候就执行,所以它的优先级高于入口main()方法。当三种形式不止一次出现,同优先级是按照先后顺序执行。程序代码示例:public class StaticTest { public stati原创 2022-05-24 23:59:52 · 12211 阅读 · 2 评论 -
IDEA自定义JavaDOC注释模板
IDEA自定义javadoc模板注释原创 2022-12-19 21:20:07 · 3624 阅读 · 0 评论 -
HttpServletRequest详解
HttpServletRequest 详解HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象提供的方法,可以获得客户端请求的所有信息。HttpServletRequest 接口继承自 ServletRequest 接口,其主要作用是封装 HTTP 请求消息。由于 HTTP 请求消息分为请求行、请求消息头和请求消息体三部分。因此,在 HttpServletRequest 接口中定义了获取请求行、请求头和原创 2022-05-31 16:55:42 · 4817 阅读 · 0 评论 -
删除字符串某一指定子字符串
删除字符串某一特定字符原创 2022-12-19 22:24:25 · 3055 阅读 · 0 评论 -
接口json参数形式
1、 接口json参数形式:{ "code": "200", "data": { "bz": "", "fxjg": [ { "abcd": [ "/1/1.mp4", "/1/2.mp4", "/1/3.mp4", "/1/4.mp4",原创 2022-04-22 17:15:50 · 5485 阅读 · 0 评论 -
自动拆箱和装箱
自动装箱和拆箱的原理自动装箱定义:就是将基本数据类型自动转换成Integer、Character、Long、Double、Boolean这些包装器类型。代码示例: public static void main(String[] args) throws IOException { Integer a = 8; Integer b = 8; Integer c = 201; Integer d = 201;原创 2022-05-08 18:24:07 · 141 阅读 · 0 评论 -
i++,++i与i--,--i
i++:先使用i的值,再加一赋值给i++i:先加一赋值给i,再使用i的值i++示例代码: int i = 1; System.out.println(i++); System.out.println(i);打印结果:解释:i的初始化值是1,第一次打印i++的时候,此时先使用i的值,所以打印出来的是i的初始值1;第二次打印i时,已经完成加一并赋值给i,此时打印的结果是2。注意:如下代码,打印出来的两个值都是2,因为i++已经完成加一并且赋值给i.原创 2022-05-23 10:52:34 · 631 阅读 · 0 评论 -
java.util.Date日期类
java.util.Date日期类java.text.SimpleDateFormat日期转换类String <-> SimpleDateFormat <-> Datepublic static void main(String[] args) throws ParseException { // 创建日期对象 Date date = new Date(); System.out.println(date); // 日期类型转换为字符串类型 SimpleD原创 2021-08-16 23:37:43 · 105 阅读 · 0 评论 -
java8种数据类型
(一)Java的八种基本数据类型// 整数:byte、short、int、long// 以上4个数据类型的相同点是都可以存储整数// 不同点是存储区间范围由小到大// int是默认的整数类型、也是开发中最常用的类型// 浮点数:float、double// 以上2个数据类型的相同点是都可以存储浮点数// 不同点是存储区间范围由小到大// double是默认的整数类型、也是开发中最常用的类型// 特殊:char、boolean// (1)byte字节(8位)byte b = 1;原创 2021-08-20 21:50:37 · 77 阅读 · 0 评论