![](https://img-blog.csdnimg.cn/20190918140037908.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java
文章平均质量分 53
Java
上海市市花
这个作者很懒,什么都没留下…
展开
-
@Autowired 对构造函数使用
spring配置默认的bean的scope是singleton,也就是启动后一直有。@Autowired本身就是单例模式,只会在程序启动时执行一次,即使不定义final也不会初始化第二次,为了防止,在程序运行的时候,又执行了一遍构造函数。Spring在实例化对象的时候一旦找到一个它认为合适的构造方法,就会直接实例化对象,不会继续寻找其他构造方法。更容易让人理解的意思,加上final只会在程序启动的时候初始化一次,并且在程序运行的时候不会再改变。原创 2022-10-09 16:19:26 · 1748 阅读 · 0 评论 -
mysql查询结果不包含NULL的值
mysql查询结果不包含null原创 2022-08-11 13:58:49 · 1888 阅读 · 0 评论 -
spring一次注入接口所有实现类
spring一次注入一个接口的所有实现原创 2022-07-21 17:14:53 · 295 阅读 · 0 评论 -
JAVA线程池
线程池1. 什么是线程池2. JAVA中线程池种类2.1 newSingleThreadExecutor 单线程的线程池2.2 newFixedThreadPool 固定数量的线程池2.3 newCachedThreadPool 可缓存的线程池2.4 newScheduledThreadPool 支持定时的线程池2.5 newWorkStealingPool 具有抢占式操作的线程池(1.8之后)3. 线程拒绝策略3.1 AbortPolicy策略3.2 CallerRunsPolicy策略3.3 Disca原创 2022-04-07 14:34:32 · 424 阅读 · 0 评论 -
多线程的实现方式
多线程的实现方式1. 继承Thread类,重写run方法,调用start2. 实现Runnable接口,用新的类创建Thread实例,调用start3. 实现Callable接口,用新的类创建Thread实例,调用start4. 线程池1. 继承Thread类,重写run方法,调用startclass MyThread extends Thread { @Override public void run() { //此处为thread执行的任务内容 System.out.println(Th原创 2022-04-07 12:32:01 · 90 阅读 · 0 评论 -
IDEA使用Alibaba Cloud Toolkit部署应用到服务器
IDEA使用Alibaba Cloud Toolkit部署应用到服务器一、安装插件二、使用步骤1.配置服务器2.配置部署信息3.配置完成4.注意一、安装插件市场安装Alibaba Cloud Toolkit插件:二、使用步骤1.配置服务器打开Host控制台:配置服务器信息:2.配置部署信息打开控制面板:打开控制面板:3.配置完成配置完成,后续可以在菜单栏操作4.注意配置是跟着项目走的,如果切换了项目需要重新配置~...原创 2022-01-25 18:07:25 · 275 阅读 · 0 评论 -
JDK1.8 stream中sorted排序概要
JDK1.8 stream中sorted排序概要// 代表某集合List<类> list = new ArrayList(); // 按照属性一升序list.stream().sorted(Comparator.comparing(类::属性一));// 按照属性一降序// 方法一 先升序后降序list.stream().sorted(Comparator.comparing(类::属性一).reversed());// 方法二 直接降序list.stream().sort原创 2021-11-29 13:54:21 · 1519 阅读 · 0 评论 -
设计模式的分类和六大原则
设计模式的分类和六大原则设计模式的分类1. 创建型模式(5种)2. 结构型模式(7种)3. 行为型模式(11种)六大原则总原则:开闭原则定义:一个软件实体应该对扩展开放,对修改关闭。1. 单一职责原则定义:有且仅有一个原因引起类的变更优点:临界点:2. 里氏代换原则定义:所有引用基类的地方必须能透明地使用其子类的对象优点:缺点:四层含义:3. 依赖倒转原则定义:处理:4. 依赖倒转原则定义:客户端不应该依赖不需要的接口,类之间的依赖关系应该建立在最小的接口上四层含义:处理:5. 迪米特法则(最少知道原则)定原创 2021-11-15 17:29:21 · 244 阅读 · 0 评论 -
java将图片缩放
最近项目里使用算法将图片进行切割,但是获取到的图片太小,无法使用算法接口。突然发现了神器!hutool简介https://www.hutool.cn/docs/Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。Hutool中的工具方法来自每个用户的精雕细琢,它涵盖了Java开发底层代码中的方方面面,它既是大型项目开发中解决小问题的利器,也是小型项目中的效率担当;Hutool是项目原创 2021-07-02 16:13:03 · 974 阅读 · 0 评论 -
Springboot里@autowired和@resource注解
@autowired和@resource注解区别提供方注入方式@Resource属性nametype装配顺序区别提供方@Autowired是Spring提供的@Resource是J2EE提供的注入方式@Autowired是默认按照byType注入,也就是按bean的类型来传入。如果需要指定名字,那么需要使@Qualifier(“bean的名字”),在使用的地方加入@Qualifier(“bean的名字”)@Resource默认按 byName自动注入@Resource属性nameSpri原创 2021-04-05 16:51:30 · 1650 阅读 · 0 评论 -
Java的抽象类
什么是抽象类包含抽象方法的类称为抽象类,但抽象类中不仅仅只能有抽象方法,它和普通类一样,都可以拥有成员变量和普通的成员方法。抽象类和普通类的区别1)抽象方法必须为public或者protected(因为private,不能被子类继承,子类便无法实现该方法),默认为public。2)抽象类不能被实例化,只能用来继承;3)如果一个类继承于一个抽象类,则子类必须实现父类的所有抽象方法。如果子类没有实现父类的抽象方法,则必须将子类也定义为为abstract(抽象)类。在其他方面,抽象类和普通的类并没有区原创 2021-04-04 16:39:45 · 116 阅读 · 0 评论 -
java中Collections.sort()排序详解
java中Collections.sort排序详解概括数据对象使用对数据排序对对象排序总结概括数据对数据排序直接使用这个方法就行,但是要保证集合中的对象是 可比较的。对象对对象排序需要该对象实现 Comparator接口,然后重写里面的compare()方法。使用对数据排序public static void main(String[] args) { Integer[] testNum = {4, 2, 6, 1, 7, 9, 3, 3, 5}; List<Integ原创 2021-04-02 16:39:43 · 761 阅读 · 0 评论 -
Java中静态代码块、代码块和构造函数执行顺序
Java中静态代码块、代码块和构造函数执行顺序概念静态代码块代码块执行顺序与继承共用时的执行顺序父类子类运行结果概念静态代码块特点:随着类的加载而执行,而且只执行一次。执行优先级高于非静态的初始化块,它会在类初始化的时候执行一次,执行完成便销毁,它仅能初始化类变量,即static修饰的数据成员。代码块特点:随着类的加载而执行,而且只执行一次。执行的时候如果有静态初始化块,先执行静态初始化块再执行非静态初始化块,在每个对象生成时都会被执行一次,它可以初始化类的实例变量。非静态初始化块会在构造原创 2021-04-02 15:14:44 · 270 阅读 · 0 评论 -
SpringMvc执行流程
点击跳转Process On SpringMVC执行流程1、用户发送请求至前端控制器DispatcherServlet2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。3、处理器映射器找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成) 一并返回给DispatcherServlet。4、DispatcherServlet调用HandlerAdapter处理器适配器5、HandlerAdapter经过适配调用具体的处理器(Controller,也叫原创 2021-04-01 16:58:37 · 59 阅读 · 0 评论 -
JAVA中过滤器(Filter)与拦截器(Interceptor)
JAVA中过滤器(Filter)与拦截器(Interceptor)概述过滤器(Filter)拦截器(Interceptor)区别与联系区别联系总结FilterInterceptor概述过滤器(Filter)过滤器实际上就是对web资源进行拦截,做一些处理后再交给下一个过滤器或servlet处理通常都是用来拦截request进行处理的,也可以对返回的response进行拦截处理。拦截器(Interceptor)拦截器是动态拦截Action调用的对象,它提供了一种机制可以使开发者在一个Action执原创 2021-04-01 14:31:35 · 482 阅读 · 0 评论 -
设计模式七大原则
设计模式七大原则设计模式的目的设计模式七大原则概述1.单一职责原则2.接口隔离原则3.依赖倒转原则4.里氏替换原5.开闭原则(ocp)6.迪米特法则7.合成复用原则设计模式的目的代码重用性(相同的代码,不用多次编写)可读性(编程规范,便于其他人阅读)可扩展性(需要增加新功能时,方便扩展,称为可维护)可靠性(增加新功能后,对原来的功能没有影响)是程序呈现高内聚,低耦合设计模式七大原则概述1.单一职责原则注意事项和细节降低类的复杂度,一个类只负责一项职责提高类的可读性,可维护性降低原创 2020-11-29 17:09:10 · 92 阅读 · 0 评论 -
CentOS7安装MySQL5.7
一、安装YUM Repo1、由于CentOS 的yum源中没有mysql,需要到mysql的官网下载yum repo配置文件。下载命令:wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm2、然后进行repo的安装:rpm -ivh mysql57-community-release-el7-9.noarch.rpm执行完成后会在/etc/yum.repos.d/目录下生成两个repo文件m原创 2020-08-09 22:53:44 · 72 阅读 · 0 评论 -
Linux CentOS CentOS7 安装JDK
第一步:卸载系统自带的JDK1.终端输入命令(最好用root用户登录):java -version可以看到系统自带的是Open JDK2.终端输入查询命令rpm -qa|grep java命令说明:rpm: 管理套件 -qa: 使用询问模式,查询所有套件grep: 查找文件里符合条件的字符串java: 查找包含java字符串的文件可以将open jdk这几个文件删除java-1.8.0-openjdk-headless-1.8.0.242.b08-原创 2020-08-08 19:44:11 · 210 阅读 · 0 评论 -
JDK和Open JDK的区别
历史上的原因是,openjdk是jdk的开放原始码版本,以GPL协议的形式放出。在JDK7的时候,openjdk已经成为jdk7的主干开 发,sun jdk7是在openjdk7的基础上发布的,其大部分原始码都相同,只有少部分原始码被替换掉。使用JRL(JavaResearch License,Java研究授权协议)发布。至于openjdk6则更是有其复杂的一面,首先是openjdk6是jdk7的一个分支,并且尽量去除Java SE7的新特性,使其尽量的符合Java6的标准。关于JDK和OpenJDK的原创 2020-08-08 18:47:16 · 529 阅读 · 0 评论 -
序列化和反序列化
一 基本概念1.什么是序列化:Java序列化就是指把Java对象转换为字节序列的过程。2.什么是反序列化:Java反序列化就是指把字节序列恢复为Java对象的过程。3.序列化的作用:在传递和保存对象时.保证对象的完整性和可传递性。对象转换为有序字节流,以便在网络上传输或者保存在本地文件中。4.反序列化的最重要的作用:根据字节流中保存的对象状态及描述信息,通过反序列化重建对象。总结:核心作用就是对象状态的保存和重建。(整个过程核心点就是字节流中所保存的对象状态及描述信息)二 什么情况下原创 2020-05-24 18:11:22 · 145 阅读 · 0 评论 -
springboot异步调用@Async
1.使用场景在项目中,当访问其他人的接口较慢或者做耗时任务时,不想程序一直卡在耗时任务上,想程序能够并行执行,我们可以使用多线程来并行的处理任务,也可以使用spring提供的异步处理方式@Async。2.异步处理方式调用之后,不返回任何数据。 调用之后,返回数据,通过Future来获取返回数据3.@Async不返回数据使用@EnableAsync启用异步注解@Config...原创 2020-04-12 14:05:14 · 364 阅读 · 0 评论 -
多线程与线程池
一、进程与线程线程都是在进程基础上并发执行。如果现在运行多个任务,则说有的资源被所有线程共用。二、Java的多线程实现继承thread类 (1)thread类在java.lang包中,一个类继承了这个类,就叫做多线程操作类,并且必须明确的覆写run()方法。(2)调用start()方法才是真正的启动线程。(3)java允许java程序访问操作系统的函数,...原创 2020-03-30 22:29:49 · 226 阅读 · 0 评论 -
Java反射机制,暴力反射
定义Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。反射是框架设计的灵魂 *框架 : 半成品软件,可以在框架的基础上进行软件开发,简化代码。 *反射 : 将类的各个组成部分封装为其他对象。 *好处 : ...原创 2020-03-13 14:20:06 · 252 阅读 · 0 评论 -
HTTP和HTTPS的区别
超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。 为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS,为了数据传输的安...原创 2019-05-23 15:55:34 · 1385 阅读 · 0 评论 -
HashMap
一、其他数据结构在新增,查找等基础操作执行性能数组:采用一段连续的存储单元来存储数据。对于指定下标的查找,时间复杂度为O(1);通过给定值进行查找,需要遍历数组,逐一比对给定关键字和数组元素,时间复杂度为O(n),当然,对于有序数组,则可采用二分查找,插值查找,斐波那契查找等方式,可将查找复杂度提高为O(logn);对于一般的插入删除操作,涉及到数组元素的移动,其平均复杂度也为O(...原创 2020-01-12 19:07:19 · 101 阅读 · 0 评论 -
类的加载机制以及双亲委托机制
一、类的加载概述1:当程序要使用某个类时,类未被加载到内存中,系统会通过三步实现类的初始化(加载-连接-初始化)2:得到类加载器:Class#getClassLoader()3:类加载器(class loader)用来加载 Java 类到 Java 虚拟机中。一般来说,Java 虚拟机使用 Java 类的方式如下:Java 源程序(.java 文件)在经过 Java 编译器编译之后...原创 2019-06-10 10:35:59 · 370 阅读 · 0 评论 -
高并发到底要怎么算才是高并发?
什么是并发:并发,在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行。什么是高并发:高并发(High Concurrency)是使用技术手段使系统可以并行处理很多请求。高并发指标:响应时间 (Response Time) 吞吐量 (Throughput) 每秒查询率...转载 2019-06-03 10:44:22 · 1507 阅读 · 0 评论 -
List、Set、Map的区别与联系
List 1.可以允许重复的对象。 2.可以插入多个null元素。 3.是一个有序容器,保持了每个元素的插入顺序,输出的顺序就是插入的顺序。 4.常用的实现类有ArrayList、LinkedList 和 Vector。ArrayList 最为流行,它提供了使用索引的随意访问,而 LinkedList 则对于经常需要从 List 中添加或删除元素的场合更为合...原创 2019-08-22 18:20:02 · 110 阅读 · 0 评论