基础
文章平均质量分 87
基础
时光留夏
观棋不语,落子无悔
展开
-
拦截器(Interceptor)和过滤器(Filter)的执行顺序和区别
近期使用自定义注解+切面+拦截器对系统进行特殊权限控制,用最少的代码实现功能。想到解决这个问题用到Interceptor,但想到了Interceptor,就想到了Filter,于是就想说一下它们的执行顺序和区别。一、过滤器Filter我们在配置web.xml时,总会配置下面一段设置字符编码,不然会导致乱码问题,配置目的是让所有请求都需要进行字符编码设置:<filter> <filter-name>encoding</filter-name>原创 2022-03-29 16:48:41 · 2460 阅读 · 0 评论 -
线程池的基本使用
一、线程池的好处在项目迭代开发的过程中,多线程开发为了快速高效的解决业务需求,大多使用创建线程的方式去异步执行,创建线程固然方便,但是不规范的创建线程,可能会导致资源浪费或者资源超出主机上线,导致服务器宕机的情况。线程池便应运而生,瞥一眼使用线程池有啥好处: 第一:降低资源消耗。通过重复利用已经创建的线程,来降低线程创建和销毁释放造成的消耗时间和资源。 第二:提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行,可以使用线程池闲置的线程直接执行 第三:提高线转载 2022-03-18 11:44:28 · 143 阅读 · 0 评论 -
CountDownLatch说明
https://www.jianshu.com/p/e233bb37d2e6转载 2020-03-03 00:13:19 · 129 阅读 · 0 评论 -
常用深拷贝与浅拷贝及性能比较
目录1.浅拷贝和深拷贝2.常用深浅拷贝举例与比较2.1利用序列化实现深拷贝2.2利用Dozer拷贝对象2.3利用Commons-BeanUtils复制对象2.4利用cglib复制对象(浅拷贝)2.5Orika复制对象2.6Spring BeanUtils复制对象(浅拷贝)3.深拷贝性能对比4.深拷贝总结Java赋值是赋值对象的引用,如果我们想要得到一个对...原创 2019-11-05 17:21:51 · 1819 阅读 · 0 评论 -
*关键字retry:很像goto语句,跳到标记处
在看源码时,出现了retry: ,这个是什么意思?之前没有接触过,那先来一个简单的例子。package com.example.demo1.test;public class test { public static void main(String[] args) { int i = 0; retry: //① while (...原创 2019-03-25 14:50:28 · 562 阅读 · 0 评论 -
*初识Java中的关键字transient——反序列化
看HashMap底层看到个这玩意儿,没见过,展开来看看它有多短暂:1.初识transient关键字其实这个关键字的作用很好理解,就简单的一句话:将不需要序列化的属性前添加关键transient,反序列化的时候,这个属性不会被序列化。概念也很好理解,下面用代码验证一下:然后在Test中去验证一下:运行结果:从上面可以看出,在序列化SerializeUser方法中,首先创建一个序列化user类,然后将其写入到G://Test/template路径中。在反序列化DeSeri转载 2021-02-06 17:00:44 · 755 阅读 · 0 评论 -
Java 到底是值传递还是引用传递?
先说下答案:Java中其实还是值传递的,只不过对于对象参数,值的内容是对象的引用。如果参数是基本类型,传递的是基本类型的字面量值的拷贝。如果参数是引用类型,传递的是该参量所引用的对象在内存中地址值的拷贝。一句话概括值传递和引用传递的区别:值传递是传递实参副本,函数修改不会影响实参;引用传递是传递实参地址,函数修改会影响实参。下面一个简单的面试题解释下:面试官:你好,你能说出下面个程序的执行结果吗?public class Test { public static原创 2022-02-15 14:24:04 · 2217 阅读 · 0 评论 -
*JSP相关总结
1. JSP简介JSP(Java ServerPages)是JavaWeb服务器端的动态资源,它与html页面的作用是相同的,显示数据和获取数据,运行在服务器端(底层是servlet)。jsp: 作为请求发起页面,例如显示表单、超链接;作为请求结束页面,例如显示数据。Servlet:作为请求中处理数据的环节。jsp的组成 jsp = html +java脚本 + jsp标签(指令)jsp中可直接使...原创 2018-06-17 19:13:01 · 177 阅读 · 0 评论 -
cookie机制和session机制
1. cookie机制cookie存放在客户端(HTTP响应头),可以弥补HTTP协议无状态的不足。如果cookie的生存时间是整个会话期间的话,那么浏览器会将cookie保存在内存中,浏览器关闭时就会自动清除这个cookie。另外一种情况就是保存在客户端的硬盘中,浏览器关闭的话,该cookie也不会被清除,下次打开浏览器访问对应网站时,这个cookie就会自动再次发送到服务器端。 查看某...原创 2018-06-17 21:22:04 · 198 阅读 · 0 评论 -
get和post区别
get参数通过url传递,post放在post是放在请求头的包体(request body)中。get请求在url中传递的参数是有长度限制的,get提交的数据最大是2k;而post没有。get比post更不安全,因为参数直接暴露在url中,所以不能用来传递敏感信息。get请求只能进行url编码,而post支持多种编码方式get只接受ASCII字符的参数的数据类型,而post没有限制get请求会浏览...原创 2018-06-24 11:19:19 · 1021 阅读 · 0 评论 -
深入理解Java的Future模式
先上一个场景:假如你突然想做饭,但是没有厨具,也没有食材。网上购买厨具比较方便,食材去超市买更放心。实现分析:在快递员送厨具的期间,我们肯定不会闲着,可以去超市买食材。所以,在主线程里面另起一个子线程去网购厨具。但是,子线程执行的结果是要返回出具的,而run方法是没有返回的。所以,这才是难点,需要好好考虑一下。demo1:package com.example.demo1.tes...原创 2019-03-25 16:18:11 · 227 阅读 · 0 评论 -
Servlet相关总结
https://www.cnblogs.com/whgk/p/6399262.html强势安利!!!1.Servlet是为了解决实现动态页面而衍生的东西。用于处理请求和发送响应。2.tomcat和servlet的关系Tomcat 是Web应用服务器,是一个Servlet/JSP容器. Tomcat 作为Servlet容器,负责处理客户请求,把请求传送给Servlet,并将Servlet的响应传送回...原创 2018-06-24 11:52:07 · 195 阅读 · 0 评论 -
浅谈线程dump
安利1、什么是java线程dump?线程dump是非常有用的诊断java应用问题的工具,每一个java虚拟机都有及时生成显示所有线程在某一点状态的线程dump能力。虽然每个java虚拟机线程dump打印输出格式上略微有一些不同,但是线程dump的信息包含线程基本信息、线程的运行状态、标识、调用的堆栈;调用的堆栈包含完整的类名,所执行的方法,如果可能的话还有源代码的行数。其中:1....转载 2019-04-02 10:00:13 · 7135 阅读 · 0 评论 -
Java锁?分布式锁?乐观锁?行锁?
身边的大佬已经混成面试官儿了,闲来没事让他面面我,我好找个口子钻进去~提问:分布式下,遇到线程安全问题,应该如何加锁?上来就提个可以从头聊到尾还聊不出真理的问题,我的内心毫无波澜,简单粗暴加synchronized,然后就凉凉(* ̄︶ ̄)所以看了点相关的博文Java锁?分布式锁?乐观锁?行锁?什么是ZooKeeper?分布式锁的几种使用方式(redis、zookeeper、...转载 2019-04-19 16:06:13 · 235 阅读 · 2 评论 -
转发和重定向区别
最近直接被安排前后端,前端jsp。。。必须要知道实现页面跳转的两种方式的区别和联系:即转发和重定向的区别。1.重定向访问过程结束后,浏览器地址栏中显示的URL会发生变化;转发过程结束后,浏览器地址栏保持初始的URL地址不变。这个栗子简直不要太形象:HttpServletResponse.sendRedirect重定向过程,就好比“浏览器”写信找张三借钱,张三回信说没钱,让他找李四借,并告诉了李四的地址,浏览器又写信找李四借钱,李四收到信后把钱汇给了“浏览器”。由此可见,重定向的时候,“浏转载 2020-05-21 11:06:59 · 235 阅读 · 0 评论 -
状态码301和302的区别
定义如下:301-Moved Permanently(永久重定向)被请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个URI之一。(若可能,拥有链接编辑功能的客户端应当自动把请求的地址修改为从服务器返回的地址。除非额外指定,否则这个响应也是可以缓存的。)302-Found(临时重定向)请求的资源现在临时从不同的URI响应请求。由于这样的重定向是临时...原创 2020-04-06 22:26:07 · 297 阅读 · 0 评论 -
String相关--多的是你不知道的事
https://blog.csdn.net/soonfly/article/details/70147205https://www.cnblogs.com/flyingrun/p/12781257.htmlhttps://blog.csdn.net/qq_34115899/article/details/86583262https://blog.csdn.net/seu_calvin/article/details/52291082https://blog.csdn.net/qq_34115转载 2021-02-19 15:40:46 · 167 阅读 · 0 评论 -
自动装箱与自动拆箱
什么是自动装箱拆箱基本数据类型的自动装箱(autoboxing)、拆箱(unboxing)是自J2SE 5.0开始提供的功能。自动装箱是java编译器在java原生类型和对应的对象包装类型上做的自动转换。例如,把int 装换成 Integer double转换成Double等等。如果是反过来转换,那么叫做自动拆箱,也是编译器为我们做的事情。一般我们要创建一个类的对象实例的时候,我...原创 2018-06-22 23:41:00 · 2232 阅读 · 0 评论 -
try catch那点事儿
1.try-catch-finally 程序块:如果try块中所有语句正常执行完毕,那么finally块就会被执行。 如果try语句在执行过程中碰到异常,无论这种异常能否被catch块捕获到,都将执行finally块中的代码。try-catch-finally结构中try块是必须有的,catch和finally块为可选,但两者至少必须出现其中之一。2.try—catch-catch-f...原创 2020-04-05 23:03:02 · 177 阅读 · 0 评论 -
泛型再理解
突然发现对泛型一知半解,又看了看1.概述泛型在java中有很重要的地位,在面向对象编程及设计模式中有非常广泛的应用,1.1 什么是泛型?泛型:即参数化类型。(一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?)顾名思义,就是将类型由原来的具体的类型参数化(类型形参),在使用/调用时传入具体的类型(类型实参)。1.2 为什么要使用泛型?泛型的本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型)。转载 2021-01-19 11:56:13 · 107 阅读 · 0 评论 -
线程相关简介
1.学习线程首先要理清楚三个概念:1.进程:进程是一个静态的概念2.线程:一个进程里面有一个主线程叫main()方法,是一个程序里面的,一个进程里面不同的执行路径。3.在同一个时间点上,一个CPU只能支持一个线程在执行。因为CPU运行的速度很快,因此我们看起来的感觉就像是多线程一样。 什么才是真正的多线程?如果你的机器是双CPU,或者是双核,这确确实实是多线程。2.线程:依赖与进程的执...原创 2018-06-16 19:47:46 · 245 阅读 · 0 评论 -
反射
1.反射概述(反射是框架设计的灵魂)Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。要想解剖一个类,必须先获取该类的字节码文件对象,而解剖使用的就是Class类中的方法,所以要先获取到每一个字节码文件对应的Class类型的对象。2.获取字节...原创 2018-06-17 17:20:41 · 207 阅读 · 0 评论 -
集合的默认初始容量、加载因子、扩充容量
刚开始面试自己挖过坑,提到加载因子,被问,简单说下自己的理解,加载因子干嘛的?今天有空,总结下集合的默认初始容量、加载因子、扩充容量的一些常识性东西,也方便自己查阅。1、常用集合的默认初始容量和扩容的原因当底层实现涉及到扩容时,容器会重新分配一段更大的连续内存(如果是离散分配原则,不需要重新分配,离散分配都是插入元素时动态分配内存),要将容量原来的数据全部复制到新的内存上,无疑会使效率...原创 2019-04-18 15:40:49 · 957 阅读 · 0 评论 -
集合基础介绍
1.集合与数组java中集合:jdk提供一系列的容器类库,称为集合框架,java.util包集合:变长,无序,只能存储对象的容器,对象类型可以不一样数组:定长,有序,可以引用可以基本,数组中元素类型必须统一因为数组长度固定,不适合在对象数量为未知的情况下使用,因此2.层次关系单列集合:Collection接口是集合类的根接口,java中没有提供此接口的直接实现类,但是却让其被继承,产生了两个接口...原创 2018-05-03 23:57:41 · 211 阅读 · 0 评论 -
JDBC相关
一、相关概念1.什么是JDBC JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。2.数据库驱动 我们安装好数据库之后,我们的应用程序也是不能直...原创 2018-05-10 22:45:24 · 242 阅读 · 0 评论 -
java常用IO流操作详解
https://blog.csdn.net/MAGIC_JSS/article/details/51475923#t3,这篇博客IO流总结挺全的,都是一些方法,感觉自己不用总结啦,嘻嘻原创 2018-05-08 21:38:13 · 213 阅读 · 0 评论 -
构造方法、方法重写与方法重载
1.构造方法作用:创建对象后,对对象成员变量进行初始化,有参赋参数值,无参赋默认值格式:方法名与类名一致,无返回类型(连void都没有),无返回值构造方法与new之间的关系: new在堆空间内开辟空间,由无参构造方法给成员赋默认值特点: a.若类中不提供构造方法,系统会提供一个; b.若类中提供了构造方法,则系统不提供!!!注意:只要在类中有有参构造方法,...原创 2018-05-07 22:15:33 · 1406 阅读 · 0 评论 -
异常Exception
1.简介异常:程序运行过程中发生的错误,即不正常的事,异常会中止程序运行 Throwable是所有异常类的父类;异常类分为Error和Exception两大类Error:描述的是java运行系统内部错误和底层资源耗尽的错误,一般就是JVM错误,比较严重,仅仅靠应用层通过代码进行修改也不能恢复正常执行,致命性异常Exception:非致命性异常,可以通过捕获处理后继续正常执行运行时异常:程序运行时发...原创 2018-05-07 23:11:07 · 2968 阅读 · 0 评论 -
抽象类与接口
学习抽象类之前,可以预习,学习,复习下abstract关键字--》https://blog.csdn.net/hjing123/article/details/80173325一、抽象类1.抽象类定义格式:abstract class 类名{}2.抽象类方法的格式:修饰符 abstract 烦会之类行 方法名();//没有方法体,以分号结束3.抽象类...原创 2018-05-07 22:54:52 · 188 阅读 · 0 评论 -
数组的声明与初始化
数组中元素支持的数据类型:基本数据类型(四类八种)和引用数据类型(类,接口,枚举,注解,数组)1.一维数组数组的声明:数据类型[] 数组名; String [] args;数据类型 数组名[];初始化数组:A.动态初始化 : 只限定数组的大小,由系统分配默认值;格式 : 数据类型[] 数组名 = new 数据类型[数组长度];例如:...原创 2018-05-02 22:39:35 · 2147 阅读 · 0 评论 -
访问控制修饰符、abstract关键字、final关键字、static关键字
1.访问控制修饰符 其实看太多的文字定义完全是浪费时间,一张图就能将访问控制修饰符解释清楚访问权限publicprotecteddefaultprivate本类√√√√本包√√√×子类√√××不同包√×××public:都可以访问;protected:本类、本包以及所有子类中可以访问;defalut:本类、本包中访问;private:只能在本类中访问。私有化成员:用private关键...原创 2018-05-02 22:56:29 · 1533 阅读 · 1 评论 -
java内存中的成员分布以及成员变量与局部变量的对比
1.java内存中的成员分布方法区:存放class文件;静态地址-->class文件中和堆内存中保存的都是静态标记(地址),该静态成员变量真正的值在静态区;堆:存放new出来的东西(在堆中开辟一块空间,将类中的东西[成员变量及其赋值,静态地址等]复制一份给新对象);栈:局部变量、对象名(指向new的地址);2.成员变量与局部变量的对比类中位置内存中位置生命周期...原创 2018-05-02 22:03:16 · 361 阅读 · 1 评论 -
java三大基础特征-封装、继承、多态
还是一张图轻松搞定基本特征 定义具体实现方式优势封装隐藏实现细节,将属性私有化,对外提供公共的访问接口属性私有化、添加公有的setter、getter方法增加了数据访问权限,增强代码的可维护性继承从一个已有的类派生出新的类,子类具有父类的一般特性,以及自身特殊的特性继承需要符合的关系:is-a 1、实现抽...原创 2018-05-02 23:09:20 · 346 阅读 · 0 评论