spring整合struts2

1、创建web项目webtest 2、pom.xml中添加spring和Struts2依赖包 <?xml version="1.0" encoding="UTF-8"?> <project xmlns=&quo...

2019-06-29 16:23:43

阅读数 33

评论数 0

log4j实现日志记录

1、创建web项目webtest 2、配置文件web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www...

2019-06-29 11:17:20

阅读数 29

评论数 0

Spring IOC深度解析

1、创建maven项目spring20,模拟实现Spring的IOC容器 2、各个配置文件: web.xml:用于servlet的启动配置 <?xml version="1.0" encoding="UTF-8"?> &a...

2019-06-24 00:46:46

阅读数 7

评论数 0

spring IOC 简易实现

1、自己实现一个ioc容器,在idea中创建maven-web项目spring10 2、配置文件文件如下: pom.xml <?xml version="1.0" encoding="UTF-8"?> <pr...

2019-06-23 13:07:21

阅读数 16

评论数 0

用maven profile 实现环境配置切换

1、创建一个maven 项目webtest,pom文件如下。resources文件加下创建三个配置文件的目录,prod(生产环境),test(测试环境),dev(开发环境)。分别在这三个目录下添加配置文件 <?xml version="1.0" encodin...

2019-06-22 13:22:51

阅读数 5

评论数 0

自己完成一个jdk动态代理

1、自定义类加载器 package proxy.custom; import java.io.*; public class GPClassLoader extends ClassLoader { private File classPathFile; public G...

2019-04-10 10:10:05

阅读数 12

评论数 0

java cglib动态代理

cglib 动态代理 1、引入字节码操作框架相关jar包,创建被代理类: package proxy.cglib; public class Tom { public void findLove(){ System.out.println("寻找灵魂伴侣&...

2019-04-09 12:14:57

阅读数 19

评论数 0

java JDK动态代理

JDK动态代理 1、创建接口 package proxy; public interface Person { public void findLove(); public void findJob(); } 2、创建实现类 package proxy.j...

2019-04-09 12:01:48

阅读数 13

评论数 0

mysql搜索引擎innodb和myisam的区别

上次面试中被问到mysql的搜索引擎innoDB和myisam的区别,一脸懵逼。面试后赶紧查了一下,其主要区别如下: 1、存储文件: Innodb存储的文件有.frm格式的表定义文件和.ibd格式的数据文件;而Myisam存储的文件包含.frm格式的表定义文件、.myd的数据文件、.myi的索引文...

2019-03-13 20:22:50

阅读数 55

评论数 0

springboot启动类注解

话说上次面试遭遇非常之尴尬,洗刷耻辱就从springboot启动类注解开始吧。 面试时还被问到一个问题,@RestController是不是springboot的注解?我只能说不知道。下来查了一下,@RestController不是springboot提供的,在springmvc4.0中就已经...

2019-03-12 22:34:09

阅读数 188

评论数 0

最尴尬的一次面试

昨天面试时,面试官问到我一个问题,你最精通的java技术是什么?脑海里回想出工作以来遇到的很多技术:spring,springmvc,spring-boot,mybatis,redis,solr,oracle,sqlserver,mysql.....,好像没有什么是我特别精通的,甚至java基础也...

2019-03-12 06:16:40

阅读数 21

评论数 0

程序员之迷茫

坐标洛阳,程序员一枚,曾游荡于郑州上海之间。年近不惑,回到洛阳,突然感觉自己一事成,家未成,业未立,驾照也没考,失败。洛阳的工资还完房贷也就勉强维持生存,父母年龄越来越大,加上尚未成家,程序员这个职业在外飘泼更难找到自己的伴侣,迷茫。不知道多少人跟我一样,家乡容纳不了肉体,他乡容纳不了灵魂。 ...

2019-03-08 21:57:40

阅读数 18

评论数 0

jdk版本切换

下载安装在E:\jdk1.3.1\jdk,改变环境变量中的JAVA_HOME,在cmd下输入java -version后还是显示为1.8版本,说明没有切换成功   查了查,发现个博客是解决这个问题的,地址。   可是我的问题依然没有解决,版本还是没有切换   然后仔细看了看系统变量path,...

2019-02-25 00:30:21

阅读数 31

评论数 0

volatile

        package com.example.demo.morethread; import java.util.concurrent.atomic.AtomicInteger; public class AtomicTest { private static At...

2019-02-22 21:05:19

阅读数 29

评论数 0

原子操作

当在多线程情况下,同时更新一个共享变量,由于我们前面讲过的原子性问题,可能得不到预期的结果。如果要达 到期望的结果,可以通过synchronized来加锁解决,因为synchronized会保证多线程对共享变量的访问进行排 队。 在Java5以后,提供了原子操作类,这些原子操作类提供了一种简单、...

2019-02-20 23:24:12

阅读数 27

评论数 0

Semaphore

semaphore也就是我们常说的信号灯,semaphore可以控制同时访问的线程个数,通过acquire获取一个许可,如 果没有就等待,通过release释放一个许可。有点类似限流的作用。叫信号灯的原因也和他的用处有关,比如某商 场就5个停车位,每个停车位只能停一辆车,如果这个时候来了10辆车,...

2019-02-20 22:49:13

阅读数 26

评论数 0

线程池

Java中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序都可以使用线程池。线程池 就像数据库连接池的作用类似,只是线程池是用来重复管理线程避免创建大量线程增加开销。所以合理的使用线程 池可以 \1. 降低创建线程和销毁线程的性能开销 \2. 合理的设置线程池大小可以避免...

2019-02-19 23:23:46

阅读数 20

评论数 0

CountDownLatch

countdownlatch是一个同步工具类,它允许一个或多个线程一直等待,直到其他线程的操作执行完毕再执行。从 命名可以解读到countdown是倒数的意思,类似于我们倒计时的概念。 countdownlatch提供了两个方法,一个是countDown,一个是await, countdownl...

2019-02-19 22:23:34

阅读数 28

评论数 0

读写锁

我们以前理解的锁,基本都是排他锁,也就是这些锁在同一时刻只允许一个线程进行访问,而读写所在同一时刻可 以允许多个线程访问,但是在写线程访问时,所有的读线程和其他写线程都会被阻塞。读写锁维护了一对锁,一个 读锁、一个写锁; 一般情况下,读写锁的性能都会比排它锁好,因为大多数场景读是多于写的。在读多于...

2019-02-18 23:04:30

阅读数 27

评论数 0

重入锁

同步锁 锁是用来控制多个线程访问共享资源的方式,一般来说,一个锁能够防止多个线程同时访问共享资源, 在Lock接口出现之前,Java应用程序只能依靠synchronized关键字来实现同步锁的功能,在java5以后,增加了JUC 的并发包且提供了Lock接口用来实现锁的功能,它提供了与synch...

2019-02-17 12:39:48

阅读数 34

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭