java
自律则自由
这个作者很懒,什么都没留下…
展开
-
java基础面试题(Servlet生命周期)
Servlet运行在Servlet容器中,其生命周期由容器来管理。Servlet的生命周期通过javax.servlet.Servlet接口中的init()、service()和destroy()方法来表示Servlet的生命周期包含了下面4个阶段:1.加载和实例化2.初始化3.请求处理4.服务终止 Web服务器在与客户端交互时Servlet的工作过程是:...转载 2018-12-19 11:21:17 · 416 阅读 · 0 评论 -
IntelliJ IDEA上创建Maven Spring MVC项目
转自:https://www.cnblogs.com/Sinte-Beuve/p/5730553.html IntelliJ IDEA上创建Maven Spring MVC项目各软件版本 利用maven骨架建立一个webapp 建立相应的目录 配置Maven和SpringMVC 配置Maven的pom.xml 配置web.xml 配置contextConfigLoc...转载 2018-11-28 15:20:53 · 165 阅读 · 0 评论 -
java线程池详解
关于线程和线程池的学习,我们可以从以下几个方面入手:第一,什么是线程,线程和进程的区别是什么第二,线程中的基本概念,线程的生命周期第三,单线程和多线程第四,为什么要使用线程池第五,线程池的原理解析第六,常见的几种线程池的特点以及各自的应用场景 第一,什么是线程,线程和进程的区别是什么?线程,程序执行流的最小执行单位,是行程中的实际运作单位,经常容易和进程这个概念...转载 2018-11-14 11:24:08 · 974 阅读 · 0 评论 -
Maven 三种archetype说明
新建Maven project项目时,需要选择archetype。那么,什么是archetype?archetype的意思就是模板原型的意思,原型是一个Maven项目模板工具包。一个原型被定义为从其中相同类型的所有其它事情是由一个原始图案或模型。名称配合,因为我们正在努力提供一种系统,该系统提供了一种生成Maven项目的一致的手段。原型将帮助作者为用户创建Maven项目模板,并为用户提供了...转载 2018-11-08 21:28:52 · 512 阅读 · 0 评论 -
史上最全web.xml配置文件元素详解
<web-app> 2 3 <!--定义了WEB应用的名字--> 4 <display-name></display-name> 5 6 <!--声明WEB应用的描述信息--> 7 <description></description> 8 9转载 2018-11-06 21:46:53 · 151 阅读 · 0 评论 -
深入理解JAVA I/O:对象序列化
序列化对象序列化的目标是将对象保存到磁盘中,或者允许在网络中直接传输对象。对象序列化机制允许把内存中的JAVA对象转换成跟平台无关的二进制流,从而允许将这种二进制流持久地保存在磁盘上,通过网络将这种二进制流传输到另一个网络节点,其他程序一旦获得了这种二进制流,都可以讲二进制流恢复成原来的JAVA对象。序列化为何存在我们知道当虚拟机停止运行之后,内存中的对象就会消失;另外一种情况就是JA...转载 2018-11-06 09:43:44 · 221 阅读 · 0 评论 -
spring AOP编程
一.前言 在以前的项目中,很少去关注spring aop的具体实现与理论,只是简单了解了一下什么是aop具体怎么用,看到了一篇博文写得还不错,就转载来学习一下,博文地址:http://www.cnblogs.com/xrq730/p/4919025.htmlAOPAOP(Aspect Oriented Programming),即面向切面编程,可以说是OOP(Object ...转载 2018-10-30 15:40:36 · 144 阅读 · 0 评论 -
Java动态代理之JDK实现和CGlib实现
Java动态代理之JDK实现和CGlib实现(简单易懂) 转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6542259.html 一:代理模式(静态代理) 代理模式是常用设计模式的一种,我们在软件设计时常用的代理一般是指静态代理,也就是在代码中显式指定的代理。 静态代理由 业务实现类、业务...转载 2019-01-11 20:39:03 · 141 阅读 · 0 评论 -
windows 10 x64系统 jdk1.7、jdk1.8 切换(jdk为exe安装版本)
电脑先安装的1.7,后来安装1.8,改JAVA_HOME为1.8后cmd->java、javac、java -version可用1.8后想改为1.7,更改环境变量(步骤1)后cmd->java、javac、java -version,java -version仍为1.8最终步骤总结:1.修改环境变量 1.7 JAVA_HOME=D:\LM\Java\jdk1.7.0_...转载 2019-02-25 13:20:53 · 306 阅读 · 0 评论 -
eclipse安装JAVA反编译插件
前言:在实际的开发中几乎都会使用到一些框架来辅助项目的开发工作,对于一些框架的代码我们总怀有一些好奇之心,想一探究竟,有源码当然更好了,对于有些JAR包中的代码我们就需要利用反编译工具来看一下了,下面是我常使用的一种安装JAVA反编译工具的方法,操作比较简单,不过时间长了也容易忘记,还是在此小记一笔吧!毕竟好记性不如烂笔头(插件市场中有好多好玩的,自己可以尝试玩玩看!)1:Eclipse的版...转载 2019-03-03 23:23:44 · 235 阅读 · 0 评论 -
java注解解析
阅读目录一、概念 二、Java中的常见注解 三、注解的分类 四、自定义注解 五、注解的项目实战 六、注解总结为什么学习注解?学习注解有什么好处?学完能做什么?答:1. 能够读懂别人写的代码,特别是框架相关的代码; 2. 让编程更加简洁,代码更加清晰; 3. 让别人高看一眼。spring、mybatis使用了大量的注解,会用注解不是目的,会使用自定义注解才...转载 2019-03-17 21:00:42 · 318 阅读 · 0 评论 -
线程池学习总结
转https://www.cnblogs.com/aspirant/p/6920418.html1、什么是线程池: java.util.concurrent.Executors提供了一个 java.util.concurrent.Executor接口的实现用于创建线程池多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力。...转载 2019-03-19 19:24:15 · 251 阅读 · 0 评论 -
浅谈java 中 hashcode方法
一,hashCode介绍:在Java的Object类中有一个方法:public int hashCode()a,在 Java 应用程序执行期间,在对同一对象多次调用hashCode方法时,必须一致地返回相同的整数b,如果根据equals(Object)方法,两个对象是相等的,那么对这两个对象中的每个对象调用hashCode方法都必须生成相同的整数结果。c,如果根...转载 2019-03-10 18:21:00 · 342 阅读 · 0 评论 -
java中一个汉字转成byte的过程
1 char转bytebyte是字节数据类型,是有符号型的,占1个字节;大小范围为-128—127 。char是字符数据类型,是无符号型的,占2字节(Unicode码);大小范围是0—65535;char是一个16位二进制的Unicode字符,JAVA用char来表示一个字符。以下面的例子讲一下:char c = '刘';byte b = (byte)c;S...原创 2019-03-09 10:45:53 · 3340 阅读 · 1 评论 -
IDEA编译报错“程序包XXX不存在”
pchat-center子模块要导入 pchat-user 的jar包pchat-center的pom文件如下:pchat-center子模块包依赖了pchat-user子模块包代码如下:代码没显示任务异常,没有标红显示。maven编译结果如下:明明引入了pchat-user包,而且显示成功引入了,maven本地库也有这个jar包错误原因是pchat...原创 2018-09-28 14:39:50 · 7029 阅读 · 4 评论 -
zookeeper启动报错
cd /var/liuyx/zookeeper-3.4.12/bin./zkServer.sh start 查看状态./zkServer.sh status 报错原因:conf目录下的文件是否有zoo.cfg和zoo_sample.cfg,(原本解压后只有zoo_sample.cfg,但是需要将其改名为zoo.cfg),不能两个文件同时存在。 把 zoo_...原创 2018-09-28 14:33:56 · 333 阅读 · 0 评论 -
win7下dubbo-admin安装和配置
(环境 tomcat8.0.5 + jdk1.8 + win7)1,生成或下载一个dubbo-admin-2.5.4.war2,将解压获得dubbo-admin-2.5.4.war放入到tomcat中的webapps文件夹中,你最好是复制一个tomcat,并改变tomcat中server.xml文件中所有的端口号,启动tomcat,我的端口号是80603,启动tomcat后会自动解压d...原创 2018-09-28 14:32:39 · 307 阅读 · 0 评论 -
centos6.8 安装zookeeper3.4.12
1,下载Cd /var/liuyx/wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.12/zookeeper-3.4.12.tar.gz2,解压Cd /var/liuyx/tar -zxvf zookeeper-3.4.12.tar.gzcd zookeeper-3.4.12/conf3,拷贝zo...原创 2018-09-28 14:18:54 · 520 阅读 · 0 评论 -
设计模式-静态代理
静态代理介绍:代理模式这种设计模式是一种使用代理对象来执行目标对象的方法并在代理对象中增强目标对象方法的一种设计模式。代理对象代为执行目标对象的方法,并在此基础上进行相应的扩展。看起来是有点拗口,首先介绍一个原则:开闭原则(对扩展开放,对修改关闭)。元素: 共同接口、代理对象、目标对象代码如下:接口:public interface Boss { public void ...原创 2018-09-26 15:58:50 · 119 阅读 · 0 评论 -
idea新建子模块maven项是灰色的
在子项目上点右键看不到maven选项右边maven工程列表里显示为灰色 解决方案:把这个选项去掉就行了。原创 2018-09-26 13:51:55 · 4380 阅读 · 5 评论 -
设计模式-抽象工厂
抽象工厂介绍:抽象工厂为不同产品族的对象创建提供接口。 使用场景:系统需要在不同产品族进行切换 在以下情况下可以考虑使用抽象工厂模式: (1) 一个系统不应当依赖于产品类实例如何被创建、组合和表达的细节,这对于所有类型的工厂模式都是很重要的,用户无须关心对象的创建过程,将对象的创建和使用解耦。 (2) 系统中有多于一个的产品族,而每次只使用其中某一产品族。...原创 2018-09-26 13:47:32 · 172 阅读 · 0 评论 -
设计模式-工厂方法模式
工厂方法模式简介:一个抽象产品类,可以派生出多个具体产品类。 一个抽象工厂类,可以派生出多个具体工厂类。 每个具体工厂类只能创建一个具体产品类的实例。下面以car为实例写一个简单的测试程序:1,创建Car的抽象类:public abstract class Car { private String name; public String getN...原创 2018-09-26 09:26:46 · 473 阅读 · 0 评论 -
设计模式-动态代理
动态代理模式主要由四个元素共同构成: 1. 接口,接口中的方法是要真正去实现的 2. 被代理类,实现上述接口,这是真正去执行接口中方法的类 3. 代理类,实现InvocationHandler,帮助被代理类去实现方法测试用例:接口:public interface Person { public void findWork();}被代理类:pu...原创 2018-09-30 10:53:49 · 128 阅读 · 0 评论 -
深入理解Java虚拟机-内存模型介绍
一,JVM内存模型描述:(1)程序计数器:严格来说是一个数据结构,用于保存当前正在执行的程序的内存地址,为了线程切换后能恢复到正确的执行位置,每个线程都需要有一个独立的程序计数器,各个线程之间计数器互不影响,独立存储,我们称这类内存区域为“线程私有”的内存,这在某种程度上有点类似于“ThreadLocal”,是线程安全的。(2)JVM java StackJava栈总是与线程关联在一起的...原创 2018-10-08 23:04:19 · 257 阅读 · 0 评论 -
深入理解Java虚拟机-GC(垃圾回收)
一,哪些内存需要回收程序 计数器,虚拟机栈,本地方法栈这几个区域都是随线程生而创建,随线程灭而灭。栈区的数据都是临时性的数据,随着数据第生命周期的结束,相应栈中的数据会自动清除。所以这几个区域的内存就不需过多考虑垃圾回收的问题。java的方法区和堆区则不一样,一个接口的多个实现类需要的内存都不一样,一个方法中多个分支需要的内存也可能不一样,我们要在运行时才知道要创建哪些对象,这部分内存是动...原创 2018-10-12 09:40:04 · 448 阅读 · 0 评论 -
关于JAVA NIO是同步非阻塞I/O的解释
转自 :https://www.zhihu.com/question/27991975 同步IO 异步IOIO基本概念Linux的内核将所有外部设备都可以看做一个文件来操作。那么我们对与外部设备的操作都可以看做对文件进行操作。我们对一个文件的读写,都通过调用内核提供的系统调用;内核给我们返回一个file descriptor(fd,文件描述符)。对一个socket的读写也会有相应的描...转载 2018-10-23 11:32:39 · 263 阅读 · 0 评论 -
java强制类型转换
在 Java 中强制类型转换分为基本数据类型和引用数据类型两种,这里我们讨论的后者,也就是引用数据类型的强制类型转换。在 Java 中由于继承和向上转型,子类可以非常自然地转换成父类,但是父类转换成子类则需要强制转换。因为子类拥有比父类更多的属性、更强的功能,所以父类转换为子类需要强制。那么,是不是只要是父类转换为子类就会成功呢?其实不然,他们之间的强制类型转换是有条件的。当我们用一个类型...转载 2018-10-28 11:54:48 · 1883 阅读 · 0 评论 -
用内部类实现多重继承
上面使用接口实现多重继承是一种比较可行和普遍的方式,在介绍内部类的时候谈到内部类使的多继承的实现变得更加完美了,同时也明确了如果父类为抽象类或者具体类,那么我就仅能通过内部类来实现多重继承了。如何利用内部类实现多重继承,请看下面实例:儿子是如何利用多重继承来继承父亲和母亲的优良基因。首先是父亲 Father 和母亲 Mother: public class Father { ...原创 2018-10-28 11:34:18 · 799 阅读 · 0 评论 -
深入理解java虚拟机-加载器
一,每一个加载器都有一个独立的类名字空间,两个类来源于同一个class文件,如果不是被同一个加载器加载,那么这两个加载的类是不相等的。二,加载器的类型:1,启动类加载器,c++实现是JVM的一部分,一般加载JAVA_HOME/lib下面JVM识别的类。启动类加载器无法被java程序直接引用。2,扩展类加载器,一般加载JAVA_HOME/lib/ext下面JVM识别的类,程序可引用。...原创 2018-10-17 15:43:35 · 139 阅读 · 0 评论 -
springMVC中的注解@RequestParam与@PathVariable的区别
@PathVariable是用来获得请求url中的动态参数的,注解绑定它传过来的值到方法的参数上@PathVariable用于将请求URL中的模板变量映射到功能处理方法的参数上。//配置url和方法的一个关系@RequestMapping("item/{itemId}")如:@RequestMapping(value="/testPathVariable/{id}") publ...原创 2018-10-10 21:29:53 · 282 阅读 · 0 评论 -
Spring @Required 注释
文章来源:http://wiki.jikexueyuan.com/project/spring/annotation-based-configuration/spring-required-annotation.html Spring @Required 注释@Required 注释应用于 bean 属性的 setter 方法,它表明受影响的 bean 属性在配置时必须放在 XML 配...转载 2018-09-29 22:00:58 · 436 阅读 · 0 评论 -
Spring @Autowired 注释
文章来源:http://wiki.jikexueyuan.com/project/spring/annotation-based-configuration/spring-autowired-annotation.html Spring @Autowired 注释@Autowired 注释对在哪里和如何完成自动连接提供了更多的细微的控制。@Autowired 注释可以在 sette...转载 2018-09-29 21:57:26 · 213 阅读 · 0 评论 -
设计模式-简单工厂模式
(1)简单工厂模式:下面以车为例写一个简单工厂模式:public abstract class BaseCar { private String name; public String getName() { return name; } public void setName(String name) { this.n...原创 2018-09-25 15:34:26 · 132 阅读 · 0 评论