• log4j详细介绍
  • log4j是什么* Apache的开源项目log4j是一个功能强大的日志组件(框架),提供方便的日志记录。日志的作用1. 第一用途:编写程序的时候,进行调试。    类似于:大家使用System.out.print()来调试代码2. 第二用途:项目上线(商业运行),查看系统的运行状态3. 日志是用来记录信息的,比如服务器的日志主要是用来记录一些访问信息,以便出现状况时,可以根据日志来判断原因。聊聊System.out.print()的缺陷1. 过于简单,只...
  •  2020-07-17  |    程成  |    237  |    0  |    Java  |   log4j  slf4j  门面  日志  
  • java类路径中的classpath到底是什么
  • java项目中的classpath到底是什么在java项目中,你一定碰到过classpath,通常情况下,我们是用它来指定配置/资源文件的路径。在刚开始学习的时候,自己也糊里糊涂,但是现在,是时候弄清楚它到底是指什么了。顾名思义,classpath就是class的path,也就是类文件(*.class的路径)。一谈到文件的路径,我们就很有必要了解一个java项目(通常也是web项目)它在真正运行时候,这个项目内部的目录、文件的结构;这样,我们才好分析、理解classpath。开发时期的web项目...
  •  2020-07-17  |    程成  |    244  |    0  |    Java  |   类路径  classpath  java  
  • Java中堆内存和栈内存详解
  • Java把内存分成两种,一种叫做栈内存,一种叫做堆内存在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配。当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间,该内存空间可以立刻被另作他用。堆内存用于存放由new创建的对象和数组。在堆中分配的内存,由java虚拟机自动垃圾回收器来管理。在堆中产生了一个数组或者对象后,还可以在栈中定义一个特殊的变量,这个变量的取值等于数组或者对象在堆内存中的首...
  •  2020-06-13  |    程成  |    285  |    0  |    Java  |   Java  堆内存  栈内存  
  • Java并发编程:volatile关键字解析
  • volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。  volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我们先来了解一下与内存模型相关的概念和知识,然后分析了volatile关键字的实现原理,最后给出了几个使用vol...
  •  2020-06-12  |    程成  |    315  |    0  |    Java  |   并发  volatile  Java  
  • Java为什么匿名内部类参数引用需要用final进行修饰
  • 1)  从程序设计语言的理论上:局部内部类(即:定义在方法中的内部类),由于本身就是在方法内部(可出现在形式参数定义处或者方法体处),因而访问方法中的局部变量(形式参数或局部变量)是天经地义的.是很自然的2)  为什么JAVA中要加上一条限制:只能访问final型的局部变量?3)  JAVA语言的编译程序的设计者当然全实现:局部内部类能访问方法中的所有的局部变量(因为:从理论上这是很自然的要求),但是:编译技术是无法实现的或代价极高.4)  困难在何处?到...
  •  2020-06-04  |    程成  |    221  |    0  |    Java  |   final  内部类  匿名  Java