随笔分类 -  java面试题分析

java面试题分析
摘要:这个文件是Tomcat工程中最基础也是最重要的配置文件,Tomcat启动项目的时候会加载并读取这个文件,所以很有必要弄懂这个文件。 XML声明和根元素 第一行是XML声明,它定义了XML的版本(1.0)和所使用的编码(UTF-8) 第二行的<web-app></web-app>标签就是此文件的根元素 阅读全文
posted @ 2018-07-23 11:41 冷漠不是我的本意 阅读(378) 评论(0) 推荐(0)
摘要:Spring的监听器是基于观察者模式 如何利用ApplicationContextAware,ApplicationListener,ApplicationEvent等接口实现自定义事件以及事件监听 https://blog.csdn.net/blueboz/article/details/4994 阅读全文
posted @ 2018-07-22 19:49 冷漠不是我的本意 阅读(433) 评论(0) 推荐(0)
摘要:方法一:基于XML的bean定义(私有属性需要提供setter方法) 方法二:基于注解的bean定义 Spring为此提供了四个注解,这些注解的作用与上面的XML定义bean效果一致,在于将组件交给Spring容器管理。组件的名称默认是类名(首字母变小写),也可以自己修改: @Component:当 阅读全文
posted @ 2018-07-20 00:54 冷漠不是我的本意 阅读(585) 评论(0) 推荐(0)
摘要:首先看这段tomcat配置 其中docBase和workDir分别指的是什么意思呢? workDir workDir jsp运行时都需要先转换成servlet,用tomcat时会在tomcat安装目录下的work生成一系列的文件夹和.java文件和.class文件,如果想更改默认的work目录为其他 阅读全文
posted @ 2018-07-19 14:12 冷漠不是我的本意 阅读(7184) 评论(0) 推荐(0)
摘要:摘录自: https://www.cnblogs.com/allanli/p/git_commands.html https://blog.csdn.net/u012152619/article/details/51473410 maven: Maven 参数 -D 传入属性参数 -P 使用pom中 阅读全文
posted @ 2018-07-19 00:35 冷漠不是我的本意 阅读(943) 评论(0) 推荐(0)
摘要:AOP简介 AOP为Aspect Oriented Programming的缩写,意为:面向切面编程(也叫面向方面),可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。 AOP应用范围 日志记录,跟踪,优化和监控,事务的处理,持久化,如数据库连接池的管理, 阅读全文
posted @ 2018-07-18 22:46 冷漠不是我的本意 阅读(1947) 评论(0) 推荐(0)
摘要:答案:不会 可以说Java中只有值传递。 具体分析 Java内存模型简介: Java内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量这样底层细节。此处的变量与Java编程时所说的变量不一样,指包括了实例字段、静态字段和构成数组对象的元素,但是不包括局部 阅读全文
posted @ 2018-07-18 01:01 冷漠不是我的本意 阅读(1799) 评论(0) 推荐(0)
摘要:Java内存模型 Java内存模型结构分为: JVM主要管理两种类型内存:堆和非堆。 堆是运行时数据区域,所有类实例和数组的内存均从此处分配。 非堆是JVM留给自己用的,包含方法区、JVM内部处理或优化所需的内存(如JIT Compiler,Just-in-time Compiler, 即时编译后的 阅读全文
posted @ 2018-07-17 15:23 冷漠不是我的本意 阅读(1097) 评论(0) 推荐(0)
摘要:存储接口-字段 HashMap的数据结构是数组+链表+红黑树(JDK1.8增加了红黑树部分)实现的,如下图所示: HashMap类有一个非常重要的字段Node[] table,即哈希桶数组,是一个Node数组 /** * The table, initialized on first use, an 阅读全文
posted @ 2018-07-16 21:37 冷漠不是我的本意 阅读(550) 评论(0) 推荐(0)
摘要:Java中线程的状态分为6种 初始状态 线程的实现有三种方式,一是继承Thread类,二是实现Runnable接口,三是实现Callable接口,但是不管如何,当我们new了这个对象之后,线程就进入了初始化状态。 就绪状态 线程被new出来,调用start()方法,此线程进入就绪状态 当前线程sle 阅读全文
posted @ 2018-07-13 23:28 冷漠不是我的本意 阅读(3818) 评论(1) 推荐(0)
摘要:sleep() 方法是线程类(Thread)的静态方法 调用该方法会让调用线程进入睡眠状态,让出执行机会给其他线程,等到休眠时间结束后,线程进入就绪状态和其他线程一起竞争cpu的执行时间。 因为sleep() 是static静态的方法,他不能改变对象的机锁,当一个synchronized块中调用了s 阅读全文
posted @ 2018-07-13 18:31 冷漠不是我的本意 阅读(421) 评论(0) 推荐(0)
摘要:1、容量的问题 hashMap有最大容量限制 2、多线程并发的问题 hashMap不是线程安全的 延展: hashMap的并发问题 多线程同时调用hashMap的resize方法后,后续调用get方法时,可能进入死循环 阅读全文
posted @ 2018-07-12 15:42 冷漠不是我的本意 阅读(905) 评论(0) 推荐(0)
摘要:nginx支持的负载均衡调度算法方式如下: 轮询(默认算法):每个请求按时间顺序分配到不同后端服务器,如果某个后端服务器宕机,能自动剔除掉。 weight轮询:nginx反向代理接收到客户端收到的请求后,可以给不同的后端服务器设置一个权重值(weight),用于调整不同的服务器上请求的分配率;权重数 阅读全文
posted @ 2018-07-12 14:19 冷漠不是我的本意 阅读(5403) 评论(0) 推荐(0)
摘要:分布式锁的应用场景 分布式情况下(多JVM),线程A和线程B很可能不是在同一JVM中,这样线程锁就无法起到作用了,这时候就要用到分布式锁来解决 分布式锁应该具备的特点 可以保证在分布式部署的应用集群中,同一个方法在同一时间只能被一台机器上的一个线程执行。 这把锁要是一把可重入锁(避免死锁) 这把锁最 阅读全文
posted @ 2018-07-11 22:48 冷漠不是我的本意 阅读(458) 评论(0) 推荐(0)
摘要:一个JUnit4的单元测试用例执行顺序为: @BeforeClass -> @Before -> @Test -> @After -> @AfterClass; 每一个测试方法的调用顺序为: @Before -> @Test -> @After; 代码示例: 执行结果: BeforeClassBef 阅读全文
posted @ 2018-07-11 20:54 冷漠不是我的本意 阅读(7538) 评论(2) 推荐(0)