java
文章平均质量分 61
bigbigChopper
这个作者很懒,什么都没留下…
展开
-
Cookie总结
Cookie是什么饼干其实就是一份小数据,是服务器给客户端的,并且存储在客户端上比如,自动登录功能、浏览历史记录功能等等,都用了Cookie为什么要有CookieHttp的请求是无状态的,即客户端与服务器在通讯的时候是无状态的,客户端在第二次来访的时候服务器根本就不知道这个客户端是第几次来访,为了更好的用户体验,更好地交互(自动登录),从公司层面讲,就是为了更好地手机用户习惯(大...原创 2018-12-02 11:05:56 · 194 阅读 · 2 评论 -
Java垃圾回收
java垃圾回收机制java中,垃圾回收(GC,Garbage Collection)是对程序中不再使用的内存就进行回收。什么是不再使用的内存?public class testGC { public static void main(String[] args) { Integer i1 = new Integer(1); Integer i2 = new Integer(2...原创 2019-03-06 19:05:03 · 159 阅读 · 0 评论 -
秒杀项目ssm总结(个人理解)
项目描述所谓的秒杀就是类似双11的商品抢购操作,秒杀项目是一种高并发项目,它要求能处理很多人对一个商品的秒杀操作,这就要求你的打码需要有一定的优化和改进,在这个项目中我们利用了三点优化来提高并发性。1、通过redis缓存商品信息。在项目中需要多次进行数据库商品信息的查询,例如取得商品id,开始时间和结束时间等等,这个时候如果都去访问数据库无疑会给数据库增加很大的压力,我们在这里做的一个优化就是...原创 2019-04-08 09:59:09 · 911 阅读 · 0 评论 -
为什么重写equals方法还必须重写hashcode方法
感谢原作者的博文为什么重写equals方法必须重写hashcode首先我们来顺一顺equals和hashcode的关系(1)equals相等,hashcode值必然相等(2)hashocode值相等,equals不一定相等为什么要实现hashcode方法呢,只要有equals方法进行比较不就可以了吗?确实是这样,但是hashcode方法的出现能大大提高效率,先进行hashcode的比较,...原创 2019-04-12 13:23:56 · 191 阅读 · 0 评论 -
后端接收前端传过来的图片并保存到本地
依赖 <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.2.1</version> </dependency...原创 2019-04-20 22:30:47 · 12826 阅读 · 2 评论 -
小白从内存去理解多态
多态是java的三大特性之一,表面去理解就是一个引用的多种状态,指的是通过一个指向父类的指针,去调用不同子类的方法。我们可以先来看看怎样才叫多态Class Parent{ Parent(){ System.out.println("我是父类"); } public void useMe(){ System.out.println("调用父类方法"); }}Class Ch...原创 2019-05-05 00:25:30 · 232 阅读 · 0 评论 -
jdk动态代理和cglib
参考大神作品jdk动态代理和cglib的区别动态代理只能针对实现了接口的类进行方法的增强,而cglib可以针对实现了接口的类或者是没有实现接口的类。对于没有实现接口的类,cglib对指定的类生成一个子类,然后在子类中重写方法并实现增强的代码。所以!!!对于用final进行声明的类,用cglib是无法对其进行代理的1)使用CGLib实现动态代理,CGLib底层采用ASM字节码生成框架,使用...原创 2019-05-05 21:19:58 · 155 阅读 · 0 评论 -
java线程
参考大神作品:https://www.cnblogs.com/3s540/p/7172146.htmljava线程创建的四种方式1、继承Thread类,重写Thread类中的run()方法public class TestThread extends Thread{ public void run(){ System.out.println("线程运行"); }}class T...原创 2019-05-06 09:53:21 · 122 阅读 · 0 评论 -
自定义线程池
参考大神作品:https://blog.csdn.net/z55887/article/details/79060070import java.util.ArrayList;import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.locks.ReentrantLock;public class ...原创 2019-05-06 10:42:50 · 111 阅读 · 0 评论 -
设计模式初学—单例模式
单例模式所谓单例模式就是确保一个类只有一个实例,并提供全局访问点单例模式又分懒汉单例和饿汉单例饿汉单例饿汉单例是即时加载的模式,在创建一个单例类的时候就初始化一个实例,并通过方法去返回这个实例public class Singleton{ private static Singleton a = new Singleton(); private Singleton(){ } ...原创 2019-05-21 19:45:03 · 118 阅读 · 0 评论 -
讲讲泛型
http://www.importnew.com/24029.htmlhttps://cloud.tencent.com/developer/article/1033693这篇文章主要借鉴了这两篇作品,这里做一个总结方便自己学习泛型先来看个泛型的例子吧public class Box{ private String myBox; public void setMyBox(String...原创 2019-06-05 11:14:20 · 282 阅读 · 0 评论 -
java8新特性
http://www.importnew.com/19345.html本文总结自这篇神作,用来供自己复习学习java8的新特性1、lambda表达式和函数接口(1)lambda表达式允许一个函数作为方法的参数Array.asList("a","b","c").forEach(e->System.out.println(e));编译器会根据上下文来推断参数的类型(2)或者我们可...转载 2019-06-05 20:24:43 · 238 阅读 · 0 评论 -
ArrayList源码分析
ArrayListArrayList是基于动态数组实现的,支持随机访问,它继承自AbstractiList,RandomAccess标识着它支持随机访问public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, j...原创 2019-06-06 16:45:50 · 225 阅读 · 0 评论 -
LinkedList源码分析
LinkedList概述linkedlist的底层数据结构是双向链表,public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java.io.SerializableLinkedList 是一个继...原创 2019-06-18 17:22:11 · 226 阅读 · 0 评论 -
java容器
容器分类LIst的比较ArrayList、Vector、LinkedList都是在java.util包中,都是动态的数组,即可以改变长度ArrayList、Vector:都支持用序号(下标、索引)来访问元素,同时索引数据的速度比较快,但插入元素的时候需要进行数据移动,效率比较低。它们都有一个初始容量,当里面存储的元素大于这个初始容量的时候,需要进行扩容扩容的时候,Vector扩...原创 2019-03-05 19:27:34 · 149 阅读 · 0 评论 -
HashMap
哈希表要理解HashMap,首先得知道什么是哈希表哈希表是用来存储数据的一种数据结构,其表现形式如下哈希表的主干是数组,如果我们需要存储某个元素,那么我们需要通过一个哈希函数确定此元素在哈希表(数组)中的位置,再将此元素存进去也就是说哈希表的存储过程如下x → f(hash) → 地址 → 存放那么这就难免出现通过哈希函数f所求到的地址一样的情况,这种情况称为哈希冲突,或者哈希碰...原创 2019-03-05 13:06:29 · 168 阅读 · 0 评论 -
springMVC框架
组件:1、前端控制器 DispatcherServlet作用:接收请求,响应结果,相当于转发器有了DispatcherServlet,减少了其他组件之间的耦合性2、处理器映射器 HandlerMapping作用:根据请求的url查找Handler3、处理器适配器 HandlerAdapter作用:按照特定规则(HandlerAdapter要求的规则)去执行 Handler4、视图...原创 2019-01-14 22:25:50 · 154 阅读 · 0 评论 -
内部类小总结
内部类内部类基础成员内部类局部内部类匿名内部类静态内部类内部类的好处内部类基础成员内部类public class demo{ int sign = 0; class A{ }}例如,demo和A这两个类,A称为demo的成员内部类,demo为A的外部类在成员内部类中,可以无条件访问外部类的所有成员属性和成员方法(包括private成员和静态成员)。如果成员内部类拥有...原创 2018-11-26 15:26:57 · 163 阅读 · 0 评论 -
servletContext
Httprequest和HttpresponseServlet配置方式Servlet配置方式1.全路径匹配以 / 开始,例如 /a 、/aa/bb、/aalocalhost:8080/项目名称/aa/bb2.路径匹配,前半段匹配以 / 开始,但是以*结束,例如/a/* /*其实是一个通配符,匹配任意文字localhost:8080/项目名称/aa/bb3.以扩展...原创 2018-11-30 10:42:26 · 244 阅读 · 0 评论 -
事务、数据库连接池
事务指的是一组操作,里面包含许多个单一的逻辑,如果都成功了,就执行提交(commit)只要有一个逻辑没有执行成功,那么都算失败,所有的数据都回归到最初的状态(回滚rollback)为什么要有事务为了确保逻辑的成功使用代码方式演示事务代码里面的事务,主要是针对连接来的,通过conn,setAutoCommit(false)来关闭自动提交的设置public void te...原创 2018-12-04 18:32:01 · 686 阅读 · 1 评论 -
java中的访问修饰符
四种访问修饰符分别是:private、default、protected、public作用范围由大到小:public-protected-default-private1.私有权限(private):private可以修饰数据成员、构造方法、和方法成员,不可以修饰类(外部类,不考虑内部类)。被private修饰的成员只能在定义它们的类中使用,在其他类中不能调用2.默认权限(defau...原创 2018-11-27 17:38:44 · 1333 阅读 · 0 评论 -
XML小笔记
XML内容XML解析其实就是获取元素里面的字符数据或者属性数据解析方式有很多种,但是常用的有两种DOMSAXDOM:document object model 把整个xml全部读到内存中,形成树状结构,整个文档称之为documet对象,属性对应attribute对象,所有的元素节点对应element对象,文本称之为text 对象,以上所有对象都可以称之为Node节点。如果...原创 2018-11-27 20:41:23 · 173 阅读 · 0 评论 -
HttpServletRequest和HttpServletResponse
HttpServletRequest这个对象封装了客户端提交过来的一切数据1.可以获取客户端请求头Enumeration&lt;String&gt; headerNames = request.getHeaderNames();while(headerNames.hasMoreElements()){ String name = (String)headerNames.nextEle...原创 2018-11-30 20:38:10 · 211 阅读 · 0 评论 -
servlet中的重定向和请求转发
重定向重定向即重新定位方向,它的参数是跳转的位置response.sendRedirect("xxx.html");请求转发参数也是跳转的位置request.getRequestDispatcher("xxx.html").forward(request,response);区别重定向地址上显示的是最后的那个资源的路径地址,而请求转发地址上显示的是servlet的地址...原创 2018-12-01 12:54:45 · 248 阅读 · 0 评论 -
抽象类和接口有什么区别
两者的共同点1.都不能被实例化2.接口的实现类或抽象类的子类都只有实现了接口或抽象类中的方法后才能被实例化两者的不同点1.接口只有定义,不能有方法实现,而抽象类可以有定义与实现,即其方法可以在抽象类中实现,前提是此方法不是abstract的2.实现接口的关键字为implements,继承抽象类的关键字为extends。一个类可以实现多个接口,但是一个类只能继承一个抽象类,因此,使用接口...原创 2018-12-01 19:28:18 · 215 阅读 · 0 评论 -
servlet基础
servletservlet是什么tomcat和servlet的联系servlet配置servlet的执行过程servlet的通用写法servlet的生命周期让Servlet创建实例的时机提前servlet是什么其实就是一个java程序,运行在我们的web服务器上,用于接受和响应客户端的http请求,更多是配合动态资源来做tomcat和servlet的联系tomcat其实是servl...原创 2018-11-28 20:41:03 · 152 阅读 · 0 评论 -
web监听器Listener
监听器能做什么事监听某一个事件的发生,状态的改变它的内部机制其实就是接口回调接口回调当有一个需求:A在执行循环,执行到5的时候,通知B事先先把一个对象传递给A,当A执行到5的时候,通过这个对象来调用B中的方法,但是注意,不是直接传递一个接口的实例过去,而是传递一个接口的实例过去先写一个接口public interface PrintListener{ //一旦出现了某一种事...原创 2018-12-06 17:32:23 · 140 阅读 · 0 评论 -
web过滤器Filter
Filter过滤器,其实就是对客户端发送过来的请求进行过滤。浏览器发出,然后服务器派servlet处理,在中间就可以过滤,起到拦截的作用作用:1.对一些敏感词汇进行过滤2.统一设置编码3.自动登录…如何使用Filter1.定义一个类,实现Fileterpublic class FilterDemo implements Filter{ public void destroy...原创 2018-12-07 12:26:55 · 179 阅读 · 0 评论 -
动态代理
动态代理作用:不改变原码的基础上,对已有方法增强(它是spring AOP思想的实现技术)分类:1.基于接口的动态代理要求:被代理类最少实现一个接口提供者:JDK官方涉及的类:Proxy创建代理对象的方法:newProxyInstance(ClassLoader,Class[],InvocationHandle)参数的含义:ClassLoader:类加载器,和被代理对象使用相...原创 2018-12-26 19:07:29 · 156 阅读 · 0 评论 -
Spring的依赖注入
spring的依赖注入注入的方式有3种:第一种:使用构造函数注入第二种:使用set方法注入第三种:使用注解注入注入的数据类型有3类:第一类:基本类型和string类型第二类:其他bean类型(必须是spring的配置文件中出现过的bean)第三类:复杂类型(复合类型)构造函数注入涉及的标签:type:指定参数的类型index:指定参数的索引位置,从0开始name:指定参...原创 2018-12-23 10:47:58 · 235 阅读 · 0 评论 -
spring中bean的三种实例化方式
Bean的三种创建方式:xml配置<!-- 配置资源:把对象的创建交给spring来管理 --> <bean id="customerService" class="com.service.impl.CustomerServiceImpl"></bean> <!-- 配置使用静态工厂创建bean对象 --> <b原创 2018-12-18 18:31:15 · 286 阅读 · 0 评论 -
spring aop
aop术语AOP的实现其实是利用了动态代理,在不改变原码的情况下对代码进行增强Joinpoint 连接点:业务层接口的所有方法都是连接点Pointcut 切入点:被增强的方法Advice 通知:增强的代码在哪,哪个类就是通知前置通知:写在被切入点方法前的是前置通知后置通知:写在被切入点方法后的是后置通知异常通知:写在catch中的是异常通知最终通知:写在finally中的是最...原创 2019-01-14 12:08:03 · 132 阅读 · 0 评论 -
synchronized重量级锁底层原理
synchronized底层原理对象头要搞清楚Synchronize的底层原理,先了解一下对象头每个对象都会有一个对象头如果这个对象是是数组类型,那么jvm会用3个字宽(32位虚拟机中,1个字宽4个字节)存储对象头,如果是非数组类型,jvm会用2个字宽存储对象头对象头的存储结构如上其中Mark Word中的状态变化又如上图synchronized的宏观实现我们主要来说重量级锁...原创 2019-08-27 13:35:18 · 1728 阅读 · 0 评论