![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 54
Step to Step_001
这个作者很懒,什么都没留下…
展开
-
用jackson完成json和Java对象的转换
1、导包<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId>.原创 2021-08-19 16:51:53 · 476 阅读 · 0 评论 -
string和stringbuffer和stringbuilder的区别
stringstring类底层是一个finalchar[]的数组指针,有字符串不可变性,所以拼接字符串时候会产生很多无用的中间对象,不适合频繁的字符串拼接StringBuffer为了解决大量拼接字符串时产生很多中间对象问题 而提供的一个类,提供append和add方法,可以将字符串添加到已有序列的末 尾或指定位置,它的本质是一个线程安全的可修改的字符序列,把所有修改数据 的方法都加上了synchronized。但是保证了线程安全是需要性能的代价的。StringBuilder...原创 2021-08-11 22:28:05 · 74 阅读 · 0 评论 -
在Java中使用日志框架log4j
日志就是记录程序的运行轨迹,方便快速定位问题如果用System.out.println(),信息是打印在控制台。等到产品上线后没有控制台,如果有报错信息,根本不知道去哪里看,就不知道是哪里出错。而且开发的时候希望打印输出的内容多。方便排查,上线后只希望打印容易出错的部分。System.out.println()满足不了这个需求而日志框架可以让错误信息输出到多个指定文件,不同的文件有不同的输出内容。方便排错,定位错误一、log4j介绍Log4j有三个主要的组件/对象:Loggers..原创 2021-07-30 22:13:12 · 5606 阅读 · 4 评论 -
MyBatis的使用
新建一个maven工程一、导包在pom.xml里输入依赖数据库连接驱动<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.47</version></dependency><!--Mybatis--><dep原创 2021-07-29 19:43:54 · 5712 阅读 · 0 评论 -
DBUtils的使用
1、导包2、使用提供以下类org.apache.commons.dbutils.QueryRunner、ResultSetHandler、DbUtilsDbUtils类提供如关闭连接、装载JDBC驱动程序等常规工作的工具类,里面的所有方法都是静态的。主要方法如下:•public static void close(…) throws java.sql.SQLException: DbUtils类提供了三个重载的关闭方法。这些方法检查所提供的参数是不是NULL,如果不...原创 2021-07-25 18:48:32 · 166 阅读 · 0 评论 -
第三方数据连接池使用
DBCP第一步:导包Commons-dbcp.jar:连接池的实现Commons-pool.jar:连接池实现的依赖库<dependency> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> <version>1.4</version></dependency><depen...原创 2021-07-25 00:37:48 · 254 阅读 · 0 评论 -
测试工具Junit
Junit是一个测试工具包,在企业中广泛应用。为了方便我们去测试我们写好的接口和方法而生的。以前测试代码是把要测试的代码封装成一个个方法,再逐个调用测试结果,用了Junit后,就可以在每个方法上出现和main函数一样的标记使用方法1、导包不需要自己下载第三方jar包,输入@Test,IDEA会自动识别选择Junit4导包完成2、写测试类1. 我们去写的测试类,类名需要写成xxxTest这种格式2. 建议我们写的方法名称,命名风格是:testXXX@Test...原创 2021-07-21 23:56:37 · 667 阅读 · 0 评论 -
TreeMap和TreeSet特有的API
因为TreeMap能比较大小,新增的方法一般和大小比较有关Map.Entry<K,V> ceilingEntry(K key):返回大于等于并最接近key的一个键值对,不存在返回 nullK ceilingKey(K key):返回大于等于并最接近key的键值,不存在返回 null,相当于ceilingEntry的结果调用getKey()Comparator<? super K> comparator(): 返回比较器,如果map用自然顺序比较返回nullNa.原创 2021-07-08 15:12:04 · 201 阅读 · 0 评论 -
接入支付宝
1、获取支付二维码使用统一收单线下交易预创建接口本来要自己封装请求报文,经过一系列的校验,向支付宝后台发起请求,现在用支付宝的sdk就可以简单实现sdk下载路径:https://opendocs.alipay.com/open/54/104506把压缩包解压a、导入项目所需依赖在maven项目里导入依赖<dependency> <groupId>com.alipay.sdk</groupId> .原创 2021-05-27 08:53:06 · 449 阅读 · 1 评论 -
Pipeline设计模式案例
订单原创 2021-05-24 14:52:19 · 1373 阅读 · 2 评论 -
MapStruct
1、导包 <!--mapstrcut依赖--> <dependency> <groupId>org.mapstruct</groupId> <artifactId>mapstruct-jdk8</artifactId> <version>1.3.0.Final</version&g原创 2021-05-23 10:39:40 · 361 阅读 · 0 评论 -
tkMybatis使用
1、导包 <!--TkMybatis--> <!--Mysql连接--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.17</version>原创 2021-05-22 22:58:10 · 278 阅读 · 0 评论 -
新建一个SpringBoot项目
方式一:通过官网https://start.spring.io/在官网做好项目设置(设置不同,最后生成的pom.xml、包目录就不同),就会生成一个SB项目的压缩包启动类就是带main()的类PS:以后容器的扫描包目录就是从启动类所在包目录开始因为要实现web项目,先引入SpringWeb依赖,通常引入依赖都是带starter的(带starter一般会把一个框架所需的全部依赖引入)项目信息描述的group和artifact就是maven项目的<groupId>c原创 2021-05-21 23:24:20 · 202 阅读 · 0 评论 -
SpringBoot和Dubbo整合
明天补原创 2021-05-21 13:58:19 · 828 阅读 · 0 评论 -
war和jar包的区别
1、war是一个web模块,其中需要包括WEB-INF/web.xml,静态资源等,包中的文件按一定目录结构来组织,一般依赖外部的EE容器运行;jar一般只是包括一些class文件(是类的归档文件),在声明了Main_class之后是可以用java命令运行的war包是一个Web应用程序 一个web程序进行打包便于部署的压缩包,里面包含我们web程序需要的一些东西,其中包括web.xml的配置文件,前端的页面文件,以及依赖的jar。便于我们部署工程,直接放到tomcat的webapps目录下,直接启动to转载 2021-05-20 08:39:32 · 413 阅读 · 0 评论 -
Dubbo和Spring整合
微服务(英语:Micservices)是一种软件实现风格它的代码与两个特点:代码专注于单一功能;能独立部署到服务器上对外提供服务微服务的功能使用与语言无关(微服务会把实现功能后的结果封装到某个公用协议报文里,这样只要接收方能解析这个协议就能使用微服务的功能),例如微服务A(部署在a主机)是用Java编写功能代码,微服务B(部署在b主机)是用GoLang编写功能代码,B要调用A的函数,可以通过Http发请求,响应结果再封装在Http报文中,这样只要双方语言有解析Http报文的功能就能使用这个微服务原创 2021-05-19 17:44:36 · 688 阅读 · 2 评论 -
RESTful风格的请求
RESTful风格就是一种书写URL的要求https://blog.csdn.net/qq_34218628/article/details/80696649PS:面试问你会不会RESTful风格的API(其实就是问会不会用Json做数据交互,会不会用@RequestBody和@ResponseBody)现在很多网站都用RESTful风格的URL,为了应对这种URL形式,SpringMVC里有一些注解可以方便获得URL里的值A、请求参数换成key/value例如请求URL都这样.原创 2021-05-08 19:02:06 · 2932 阅读 · 1 评论 -
SpringMVC的Handler参数
在Handler方法的形参中可以写一些其他类型的值1、request和response@RestControllerpublic class OtherController { @RequestMapping("other") public RespVo other(HttpServletRequest request, HttpServletResponse response) { //request和response和之前在servlet中doGet和doP.原创 2021-05-08 16:56:52 · 144 阅读 · 0 评论 -
Lombok包的功能
@SneakyThrows是Lombok下的注解,加在方法上可以避免写try-catch@Data注解写在类上,会隐式增加set/get方法原创 2021-05-07 15:43:41 · 533 阅读 · 0 评论 -
Spring阶段常见异常
ApplicationContext springContext = new ClassPathXmlApplicationContext("application.xml");Person p4 = (Person) springContext.getBean(Person.class);1、Exception in thread "main" org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualify.原创 2021-05-02 11:51:07 · 88 阅读 · 0 评论 -
Deque接口
Deque继承Queue后扩展的方法 void addFirst(Ee) 将指定元素插入此双端队列的开头(如果可以直接这样做而不违反容量限制)。 void addLast(Ee) 将指定元素插入此双端队列的末尾(如果可以直接这样做而不违反容量限制)。 Iterator<E> descendingIterator() ...转载 2021-04-25 23:43:11 · 74 阅读 · 0 评论 -
LinkedList类
1、构造方法 LinkedList()构造一个空列表。 LinkedList(Collection<? extends E>c)构造一个包含指定 collection 中的元素的列表 2、APIvoid addLast(E e) 将指定元素添加到此列表的结尾。void clear() 从此列表中移除所有元素。boolean contains(Objec...转载 2021-04-25 12:58:31 · 60 阅读 · 0 评论 -
EE项目的常见错误
1、Debug时,在idea里出现这个,说明现在写的.java代码和jvm正在运行的.class长得不一样,重新编译生成.class文件即可解决2、修改了前端页面,在浏览器上没显示效果,右键查看元素,看看html有没有更新ps:如果html变了,浏览器页面一定要刷新3、以下问题原因,运行main的JVM没发现对应jar包...原创 2021-04-17 09:03:51 · 148 阅读 · 0 评论 -
Class类的API
虽然获取了私有成员,但是用它时,要先暴力破解对象.etAccessible(true);有declared代表获取所有的构造方法(包括私有)有s代表获取多个构造方法通过反射获取所有构造方法Constructor[] getConstructors():只会返回当前Class对象所表示的类中,访问权限是public的构造方法Constructor[] getDeclaredConstructors():返回当前Class对象所表示的类中,所有构造方法获取指定构造方法Cons.原创 2021-03-03 22:22:45 · 1015 阅读 · 1 评论 -
InetAddress类的使用
没有构造方法,用静态方法得到InetAddress类对象,从而调用普通成员方法静态方法1、static InetAddress getByName(String host):在形参是主机名(或IP地址)的情况下确定主机的 IP 地址,并返回一个InetAddress对象2、static InetAddress | getLocalHost(): 返回本地主机的InetAddress对象成员方法3、String getHostAddress() :返回 IP 地址字符串(以文本表现形式)原创 2021-02-28 11:20:34 · 224 阅读 · 0 评论 -
Thread类里的API
1、public final String getName():返回该线程的名称。如果线程没名字,默认Thread-0/1/2/3...2、public final void setName(String name):给线程设置名字3、Thread.currentThread().getName():返回对当前正在执行的线程对象的名字,可以用在想获取main线程/未继承Thread线程的名字上3、public final int getPriority():返回线程的优先级4、public.原创 2021-02-22 22:51:42 · 89 阅读 · 1 评论 -
File类的方法
1、创建功能下面这些方法都是File对象调用的。操作失败不会报错,只会返回false//file对象告诉这个方法创建什么文件//只负责创建文件,目录路径如果不存在,会报错而不是帮你创建 File f = new File("E:\\1\\1.txt");public boolean createNewFile() f.createNewFile();//会在E:\1下创建一个1.txt文件,用这个方法时会有编译时异常,直接在main抛出//只负责创建目录,但只能创建单层目录,如果有多级目录原创 2021-02-13 21:00:24 · 234 阅读 · 0 评论 -
File类的静态成员变量
了解即可,现在不会再用了//与系统有关的多个路径名的分隔符 “;” static String pathSeparator //与系统有关的单个路径层级的分隔符 “\” static String separatorSystem.out.println(File.pathSeparator);// ;System.out.println(File.separator);// \早期Java不智能,还需要用这种适应平台的api去写分隔符现在Java早已经成熟了 会自动根据平台转分隔符的原创 2021-02-13 16:01:44 · 268 阅读 · 0 评论 -
获取捕获到的异常对象中的异常信息
使用捕获的异常对象,能够调用的常用API有//获取异常信息,返回字符串。打印的实际上是异常产生的原因 (不使用)String getMessage() //获取异常类名和异常信息,返回字符串。 打印的是异常产生的原因和所在类 (不使用)String toString() //获取异常类名和异常信息,以及异常出现在程序中的位置 (推荐使用)void printStackTrace() //使用IO流,将异常内容保存在日志文件中,以便查阅,早已过时,了解即可 (过时的日志处理方式)prin原创 2021-02-12 21:17:47 · 593 阅读 · 0 评论 -
String类的API
String能用的功能1、判断功能2、获取功能3、转换功能4、替换功能5、去掉空格功能6、比较功能1、判断功能//用来比较字符串的内容,注意区分大小写 boolean equals(Object obj) //忽略字符串大小写比较字符串内容,常见用于比较网址URL(以免用户网址大小写输错,找不到网页) boolean equalsIgnoreCase(String str) //判断当前字符串对象是否包含目标字符串的字符序列,常见用于确定是否有盗链行为(判断这个链接来源)boo原创 2021-02-12 20:39:57 · 100 阅读 · 1 评论 -
局部内部类对象的有可能比局部变量存活更久
public class Test { //外部类 public static void main(String[] args) { EnclosedClazz enclosedClazz = new EnclosedClazz(); //这里返回的实际是一个InnerSon对象 Father f = enclosedClazz.test(); //定义在test()里的内部类对象is,存活到现在 //父类引用指向原创 2021-02-10 19:46:25 · 74 阅读 · 0 评论 -
Java中的异常触发都是通过throw主动抛出
问:自定义运行时异常,怎么样才能像API中那些运行时异常那样,自动抛出,我写自定义运行时异常时,总是要自己主动throw,才会抛出。例如:运行下面代码时,控制会自动显示异常信息答:API中那些异常也是API的作者自己主动抛出,跟自己写的自定义异常一样。如果别人用你写的代码当API调用,他也会觉得你定义的异常是自动抛出的。Java中的任何异常都是throw主动抛出的。实现运行时异常抛出步骤1、自己定义一个异常类2、当你想要在控制台显示对应异常信息时,就throw new 异常.原创 2021-02-09 18:48:35 · 761 阅读 · 0 评论 -
用Scanner遇到的问题
Scanner sc1 = new Scanner(System.in);int i = sc1.nextInt();String s=sc1.nextLine();nextLine()不能放在nextInt()后面,因为nextInt()在输入数字后回车,会在缓冲区留下“\n”的换行符,当nextLint()进行时会读取并自动输入null。解决方案:1、在nextInt()后面加一行 nextLint(),自动读走“\n”2、用两个Scanner 对象,第二个对象会忽略之前多余的“\n”Sc原创 2021-01-31 21:11:07 · 719 阅读 · 0 评论 -
Java里可以直接调用的方法
Math.random():生成大于等于0到小于1的double型随机数原创 2021-01-30 14:24:51 · 475 阅读 · 0 评论