![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java基础
文章平均质量分 91
DK_9527
这个作者很懒,什么都没留下…
展开
-
synchronized锁升级
这个话题我打算从零散的几部分说一下synchronized加锁,是对什么加锁synchronized很重要的特性:互斥和可重入synchronized 锁升级synchronized加锁,是对什么加锁对象!这个概念很重要,比如synchronized最常用的用法,用来修饰一个方法,那有些人会随口说出,对这个方法加锁,这个说法其实是错误的。一个类中可能有很多方法,而我们去访问某些 非静态 方法时,往往是通过这个类的实例对象去操作的,比如:Dog dog1 = new Dog();Dog1.eat(原创 2021-07-24 21:37:12 · 177 阅读 · 0 评论 -
TOMCAT报错【Failed to start component [StandardEngine[Catalina].StandardHost[localhost]】
TOMCAT报错【Failed to start component [StandardEngine[Catalina].StandardHost[localhost]】tomcat启动时报错:java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].S原创 2020-10-27 16:37:51 · 27837 阅读 · 0 评论 -
java反射创建类的几种方式总结
一 反射中获取字节码文件的三种形式:(以一个Category为例)1.类: 类.class---Class clazz=Category.class2.对象: 对象.getClass()---Class clazz=cte.getClass()3.Class静态方法: Class.forName("全包名")---Class clazz=Class.forName("service...原创 2019-03-02 22:35:49 · 1503 阅读 · 0 评论 -
对于AOP(面相切面)的一些个人理解
面向切面编程(AOP是Aspect Oriented Program的首字母缩写) ,我们知道,面向对象的特点是继承、多态和封装。而封装就要求将功能分散到不同的对象中去,这在软件设计中往往称为职责分配。实际上也就是说,让不同的类设计不同的方法。这样代码就分散到一个个的类中去了。这样做的好处是降低了代码的复杂程度,使类可重用。但是我们也发现,在分散代码的同时,也增加了代码的重复性。什么意思呢?...原创 2019-03-02 22:39:12 · 847 阅读 · 0 评论 -
为什么StringBuilder拼接字符串比String要高效
要想搞明白为什么StringBuilder 比 String 高效,那首先要先知道java内存分配。java内存分配嘛…网上一搜一大堆,当然你如果不想搜的话点击这里好,我们主要用到 java的栈和堆这两块内存区了解了Java内存分配了以后,我们知道,基本数据类型都是存放在栈中。所以我们比较两个基本数据类型的时候,可以用“= =“ 符号来操作;比如int a = 2;int b= 2...原创 2019-03-02 22:40:16 · 2376 阅读 · 1 评论 -
关于servlet、springmvc、struts2执行原理的一些想法
关于servlet、springmvc、struts2执行原理的一些想法最近一直困扰在 servlet、springmvc、strus2 他们的区别与联系,这一类的问题中,今天做一下思路的梳理servlet是个什么东西springmvc又是个什么东西再来看Struts2是个什么东西最近一直困扰在 servlet、springmvc、strus2 他们的区别与联系,这一类的问题中,今天做一下思路的...原创 2019-03-02 22:40:53 · 455 阅读 · 0 评论