- 博客(38)
- 收藏
- 关注
原创 synchronized重量级锁底层原理
synchronized底层原理对象头要搞清楚Synchronize的底层原理,先了解一下对象头每个对象都会有一个对象头如果这个对象是是数组类型,那么jvm会用3个字宽(32位虚拟机中,1个字宽4个字节)存储对象头,如果是非数组类型,jvm会用2个字宽存储对象头对象头的存储结构如上其中Mark Word中的状态变化又如上图synchronized的宏观实现我们主要来说重量级锁...
2019-08-27 13:35:18
1711
原创 linux下的redis伪集群配置
linux下的redis伪集群配置1、下载并安装redis这个时候要注意,解压之后的make命令会有两个坑第一、此linux系统中必须装有gcc,若没有gcc会报错解决:在能够上网的前提下,输入命令 yum install gcc-c++安装gcc第二、装好了gcc之后,再次使用make命令仍然会报错,原因是第一次make报错之后产生了多余的文件解决:输入make distclean...
2019-07-22 21:21:01
369
原创 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
205
原创 ArrayList源码分析
ArrayListArrayList是基于动态数组实现的,支持随机访问,它继承自AbstractiList,RandomAccess标识着它支持随机访问public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, j...
2019-06-06 16:45:50
204
转载 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
220
原创 讲讲泛型
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
261
原创 设计模式初学—单例模式
单例模式所谓单例模式就是确保一个类只有一个实例,并提供全局访问点单例模式又分懒汉单例和饿汉单例饿汉单例饿汉单例是即时加载的模式,在创建一个单例类的时候就初始化一个实例,并通过方法去返回这个实例public class Singleton{ private static Singleton a = new Singleton(); private Singleton(){ } ...
2019-05-21 19:45:03
112
原创 自定义线程池
参考大神作品: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
102
原创 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
112
原创 jdk动态代理和cglib
参考大神作品jdk动态代理和cglib的区别动态代理只能针对实现了接口的类进行方法的增强,而cglib可以针对实现了接口的类或者是没有实现接口的类。对于没有实现接口的类,cglib对指定的类生成一个子类,然后在子类中重写方法并实现增强的代码。所以!!!对于用final进行声明的类,用cglib是无法对其进行代理的1)使用CGLib实现动态代理,CGLib底层采用ASM字节码生成框架,使用...
2019-05-05 21:19:58
141
原创 小白从内存去理解多态
多态是java的三大特性之一,表面去理解就是一个引用的多种状态,指的是通过一个指向父类的指针,去调用不同子类的方法。我们可以先来看看怎样才叫多态Class Parent{ Parent(){ System.out.println("我是父类"); } public void useMe(){ System.out.println("调用父类方法"); }}Class Ch...
2019-05-05 00:25:30
217
原创 后端接收前端传过来的图片并保存到本地
依赖 <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.2.1</version> </dependency...
2019-04-20 22:30:47
12784
2
原创 为什么重写equals方法还必须重写hashcode方法
感谢原作者的博文为什么重写equals方法必须重写hashcode首先我们来顺一顺equals和hashcode的关系(1)equals相等,hashcode值必然相等(2)hashocode值相等,equals不一定相等为什么要实现hashcode方法呢,只要有equals方法进行比较不就可以了吗?确实是这样,但是hashcode方法的出现能大大提高效率,先进行hashcode的比较,...
2019-04-12 13:23:56
177
原创 秒杀项目ssm总结(个人理解)
项目描述所谓的秒杀就是类似双11的商品抢购操作,秒杀项目是一种高并发项目,它要求能处理很多人对一个商品的秒杀操作,这就要求你的打码需要有一定的优化和改进,在这个项目中我们利用了三点优化来提高并发性。1、通过redis缓存商品信息。在项目中需要多次进行数据库商品信息的查询,例如取得商品id,开始时间和结束时间等等,这个时候如果都去访问数据库无疑会给数据库增加很大的压力,我们在这里做的一个优化就是...
2019-04-08 09:59:09
885
原创 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
149
原创 java容器
容器分类LIst的比较ArrayList、Vector、LinkedList都是在java.util包中,都是动态的数组,即可以改变长度ArrayList、Vector:都支持用序号(下标、索引)来访问元素,同时索引数据的速度比较快,但插入元素的时候需要进行数据移动,效率比较低。它们都有一个初始容量,当里面存储的元素大于这个初始容量的时候,需要进行扩容扩容的时候,Vector扩...
2019-03-05 19:27:34
140
原创 HashMap
哈希表要理解HashMap,首先得知道什么是哈希表哈希表是用来存储数据的一种数据结构,其表现形式如下哈希表的主干是数组,如果我们需要存储某个元素,那么我们需要通过一个哈希函数确定此元素在哈希表(数组)中的位置,再将此元素存进去也就是说哈希表的存储过程如下x → f(hash) → 地址 → 存放那么这就难免出现通过哈希函数f所求到的地址一样的情况,这种情况称为哈希冲突,或者哈希碰...
2019-03-05 13:06:29
153
原创 springMVC框架
组件:1、前端控制器 DispatcherServlet作用:接收请求,响应结果,相当于转发器有了DispatcherServlet,减少了其他组件之间的耦合性2、处理器映射器 HandlerMapping作用:根据请求的url查找Handler3、处理器适配器 HandlerAdapter作用:按照特定规则(HandlerAdapter要求的规则)去执行 Handler4、视图...
2019-01-14 22:25:50
144
原创 spring aop
aop术语AOP的实现其实是利用了动态代理,在不改变原码的情况下对代码进行增强Joinpoint 连接点:业务层接口的所有方法都是连接点Pointcut 切入点:被增强的方法Advice 通知:增强的代码在哪,哪个类就是通知前置通知:写在被切入点方法前的是前置通知后置通知:写在被切入点方法后的是后置通知异常通知:写在catch中的是异常通知最终通知:写在finally中的是最...
2019-01-14 12:08:03
116
原创 动态代理
动态代理作用:不改变原码的基础上,对已有方法增强(它是spring AOP思想的实现技术)分类:1.基于接口的动态代理要求:被代理类最少实现一个接口提供者:JDK官方涉及的类:Proxy创建代理对象的方法:newProxyInstance(ClassLoader,Class[],InvocationHandle)参数的含义:ClassLoader:类加载器,和被代理对象使用相...
2018-12-26 19:07:29
144
原创 Spring的依赖注入
spring的依赖注入注入的方式有3种:第一种:使用构造函数注入第二种:使用set方法注入第三种:使用注解注入注入的数据类型有3类:第一类:基本类型和string类型第二类:其他bean类型(必须是spring的配置文件中出现过的bean)第三类:复杂类型(复合类型)构造函数注入涉及的标签:type:指定参数的类型index:指定参数的索引位置,从0开始name:指定参...
2018-12-23 10:47:58
218
原创 spring中bean的三种实例化方式
Bean的三种创建方式:xml配置<!-- 配置资源:把对象的创建交给spring来管理 --> <bean id="customerService" class="com.service.impl.CustomerServiceImpl"></bean> <!-- 配置使用静态工厂创建bean对象 --> <b
2018-12-18 18:31:15
272
原创 web过滤器Filter
Filter过滤器,其实就是对客户端发送过来的请求进行过滤。浏览器发出,然后服务器派servlet处理,在中间就可以过滤,起到拦截的作用作用:1.对一些敏感词汇进行过滤2.统一设置编码3.自动登录…如何使用Filter1.定义一个类,实现Fileterpublic class FilterDemo implements Filter{ public void destroy...
2018-12-07 12:26:55
170
原创 web监听器Listener
监听器能做什么事监听某一个事件的发生,状态的改变它的内部机制其实就是接口回调接口回调当有一个需求:A在执行循环,执行到5的时候,通知B事先先把一个对象传递给A,当A执行到5的时候,通过这个对象来调用B中的方法,但是注意,不是直接传递一个接口的实例过去,而是传递一个接口的实例过去先写一个接口public interface PrintListener{ //一旦出现了某一种事...
2018-12-06 17:32:23
124
原创 事务、数据库连接池
事务指的是一组操作,里面包含许多个单一的逻辑,如果都成功了,就执行提交(commit)只要有一个逻辑没有执行成功,那么都算失败,所有的数据都回归到最初的状态(回滚rollback)为什么要有事务为了确保逻辑的成功使用代码方式演示事务代码里面的事务,主要是针对连接来的,通过conn,setAutoCommit(false)来关闭自动提交的设置public void te...
2018-12-04 18:32:01
655
1
原创 Cookie总结
Cookie是什么饼干其实就是一份小数据,是服务器给客户端的,并且存储在客户端上比如,自动登录功能、浏览历史记录功能等等,都用了Cookie为什么要有CookieHttp的请求是无状态的,即客户端与服务器在通讯的时候是无状态的,客户端在第二次来访的时候服务器根本就不知道这个客户端是第几次来访,为了更好的用户体验,更好地交互(自动登录),从公司层面讲,就是为了更好地手机用户习惯(大...
2018-12-02 11:05:56
186
2
原创 抽象类和接口有什么区别
两者的共同点1.都不能被实例化2.接口的实现类或抽象类的子类都只有实现了接口或抽象类中的方法后才能被实例化两者的不同点1.接口只有定义,不能有方法实现,而抽象类可以有定义与实现,即其方法可以在抽象类中实现,前提是此方法不是abstract的2.实现接口的关键字为implements,继承抽象类的关键字为extends。一个类可以实现多个接口,但是一个类只能继承一个抽象类,因此,使用接口...
2018-12-01 19:28:18
202
原创 servlet中的重定向和请求转发
重定向重定向即重新定位方向,它的参数是跳转的位置response.sendRedirect("xxx.html");请求转发参数也是跳转的位置request.getRequestDispatcher("xxx.html").forward(request,response);区别重定向地址上显示的是最后的那个资源的路径地址,而请求转发地址上显示的是servlet的地址...
2018-12-01 12:54:45
233
原创 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
197
原创 servletContext
Httprequest和HttpresponseServlet配置方式Servlet配置方式1.全路径匹配以 / 开始,例如 /a 、/aa/bb、/aalocalhost:8080/项目名称/aa/bb2.路径匹配,前半段匹配以 / 开始,但是以*结束,例如/a/* /*其实是一个通配符,匹配任意文字localhost:8080/项目名称/aa/bb3.以扩展...
2018-11-30 10:42:26
216
原创 servlet基础
servletservlet是什么tomcat和servlet的联系servlet配置servlet的执行过程servlet的通用写法servlet的生命周期让Servlet创建实例的时机提前servlet是什么其实就是一个java程序,运行在我们的web服务器上,用于接受和响应客户端的http请求,更多是配合动态资源来做tomcat和servlet的联系tomcat其实是servl...
2018-11-28 20:41:03
142
原创 XML小笔记
XML内容XML解析其实就是获取元素里面的字符数据或者属性数据解析方式有很多种,但是常用的有两种DOMSAXDOM:document object model 把整个xml全部读到内存中,形成树状结构,整个文档称之为documet对象,属性对应attribute对象,所有的元素节点对应element对象,文本称之为text 对象,以上所有对象都可以称之为Node节点。如果...
2018-11-27 20:41:23
164
原创 java中的访问修饰符
四种访问修饰符分别是:private、default、protected、public作用范围由大到小:public-protected-default-private1.私有权限(private):private可以修饰数据成员、构造方法、和方法成员,不可以修饰类(外部类,不考虑内部类)。被private修饰的成员只能在定义它们的类中使用,在其他类中不能调用2.默认权限(defau...
2018-11-27 17:38:44
1264
原创 内部类小总结
内部类内部类基础成员内部类局部内部类匿名内部类静态内部类内部类的好处内部类基础成员内部类public class demo{ int sign = 0; class A{ }}例如,demo和A这两个类,A称为demo的成员内部类,demo为A的外部类在成员内部类中,可以无条件访问外部类的所有成员属性和成员方法(包括private成员和静态成员)。如果成员内部类拥有...
2018-11-26 15:26:57
155
原创 JAVA面试问题回答个人总结
JAVA面试问题回答个人总结在此先感谢博客上的各位大佬,基本上都是看了他们的博文提炼出来的答案,下面也有跳转到他们博文的路径,这里做一个总结如有侵权,请联系我,必定删除问题列表JAVA面试问题回答个人总结1.数据库的优化方法2.数据库的三种引擎3.数据库设计的原则:4.数据库索引原理5.TCP粘包与拆包6.Hashmap7.类加载过程8.JVM1.数据库的优化方法1.选取最适用的字段属性...
2018-11-23 18:54:06
474
原创 微信小程序前端传到服务器后端中文乱码问题(附AES)
微信小程序前端传到服务器后端中文乱码问题问题描述微信小程序通过wx.request接口连接服务器并传送data的json格式时,中文会出现乱码现象解决办法这里给出我研究出来的解决办法。先将你要传送的数据进行AES加密,在后台进行AES解密即可。虽然办法稍微有点复杂,但是对于处理乱码现象和增强数据的保密性安全性都有很大的帮助这里简单说一下AES加解密的步骤:1.前端运用到util.js和...
2018-11-13 22:57:33
3449
原创 Exception in thread "main" java.lang.NullPointerException的问题
[TOC]问题叙述出现Exception in thread &quot;main&quot; java.lang.NullPointerException一般是因为指针为空,也就是说这个时候你要注意你的对象是否已经初始化(new)了例如![例子Path类](https://img-blog.csdn.net/20180909120307226?watermark/2/text/aHR0cHM6Ly9ibG...
2018-11-13 19:50:56
48340
2
原创 微信小程序图片按钮在不同机型的自适应问题解决办法
微信小程序图片按钮在不同机型的自适应问题解决办法问题描述解决方法js代码wxml代码问题描述当你在微信小程序端添加图片时,总是会遇到不同机型图片位置发生偏差等等机型自适应问题,这里提供一种解决办法解决方法在js中运用百分比来计算出图片位置距离顶部或者底部多少像素来进行设置,进行数据绑定,并在wxml中使用js代码//获取屏幕高宽,并对pingmu:function(option){...
2018-11-13 19:49:03
5204
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人