- 浏览: 9719 次
- 性别:
- 来自: 北京
最新评论
文章列表
jsp:
jsp里面既可以写html也可以写java代码,它也是运行在后端的程序,开发动态资源的以一种技术
当我们访问jsp页面的时候他会在tomcat 服务器的work目录下生成一个java类对象,这个java类其实就是一个sevlet, 因为它继承
org.apache.jasper.runtime.HttpJspBase,而org.apache.jasper.runtime.HttpJspBase 又继承javax.servlet.http.HttpServlet
然后将这个类编译运行;
所以可以说jsp就是一个sevlet对象
这么一来Jsp的生命周期也就清楚了jsp生成java对象+ ...
servelet 资源加载过程:
启动tomcat服务器的时候,服务器将会加载所有webapps 目录下所有项目的配置文件,即web.xml;
web.xml里面配置了动态资源到网络url访问地址的mapping,即当我们在浏览器输入url地址以后,tomcat怎么定位到对应的资源
如
<servlet>
<servlet-name>className</servlet-name>
<servlet-class>fullClassPath</servlet-class>
</servlet>
<servlet-ma ...
Log4j 包括三个核心对象:
Logger对象: 负责获取日志信息
Layout对象: 用指定形式格式化日志信息对象
Appender对象: 负责将日志信息发布到不同的目的地,如文件,控制台,网络套接字等
Logger对象收集到日志信息后,传递给Appender对象,Appender对象根据Layout对象对日志信息进行格式化,然后写入Appender对象指定的目的地。
Log4j 使用log4j.properties作为它的配置文件
log4j.properties 的语法如下:
#定义appender为appenderName, 如果想定义多个appender,可以在后面继续追加,用 ...
JStack用于产生虚拟机当前时刻的线程快照;
即所有线程当前的堆栈状态,通过分析当前堆栈的状态我们可以知道当前线程在等待什么资源,占有什么资源.
通过分析各个线程占有的资源和等待的资源发现死锁问题等等。
我这里写了一个饥饿版哲学家思考问题,来产生死锁问题,代码可在https://github.com/Jaler/JavaAnalystTools下面的DiningPhilosophersHungryVersion.java获取大家可以参考
我将jstack主要信息列出,如下:
daisydeMacBook-Air:~ daisy$ jps
1099 DiningPhilosophers
dais ...
this question is come from leetcode:
Write an algorithm to determine if a number is "happy".
A happy number is a number defined by the following process: Starting with any positive integer, replace the number by the sum of the squares of its digits, and repeat the process until the number ...
find the majority element
- 博客分类:
- 算法
this is a question from leetcode:
Given an array of size n, find the majority element. The majority element is the element that appears more than ⌊ n/2 ⌋ times.
You may assume that the array is non-empty and the majority element always exist in the array.
If you want to get the best solution, then ...
给定待粉刷的n个墙砖(排成一行),每个墙砖可以粉刷的颜色种类为:红、蓝、绿、黄,问粉刷完毕后,红色墙砖和蓝色墙砖都是偶数的粉刷方式有多少种(结果对10007取余).
题目解析:
首先题目问红色和蓝色都是偶数的粉刷方式, ...
相信好多人都对java的io类感到抓狂,一个简单的输入输出都要创建n多个对象,完全搞不懂为什么要一层套一层。
如果你也有上面的困惑,那么不妨和我一起究一究为什么Java IO长这样。
我猜Java IO的创建过程是这样的:
先参考一下其它已有编程语言都是怎么创建IO类的。IO输入/输出源各种各样,有键盘输入,有文件输入,有网络输入,有内存输入等等。为了屏蔽这些不同,编程语言都引入了“流"的概念,说白了所有这些IO操作就是字节流流来流去。
这些流又可以分为两大类,输入流和输出流。
于是乎Java 1.0 便也照猫画虎提供了两大类IO类库, InputStream, OutputStr ...
I find that in my oracle database there have some non-printable character, so I try to use regexp_replace to remove the non-printable characters as below:
`select common_name before_value,
regexp_replace(common_name, '[^[:print:]]', '?') after_reg_value
from my_data;`
result as below:
bef ...
很不错的一篇文章,share给大家:
http://fuzz-box.blogspot.com/2012/09/how-to-generate-uml-diagrams-from-java.html
Register the JDBC drivers:
there have two ways:
Class.forName("oracle.jdbc.OracleDriver");//this method is only valid for JDK-compliant Java virtual machines.
//It is not valid for Microsoft Java virtual machines
DriverManager.registerDriver(new oracle.jdbc.OracleDriver() ...
写了一个个位数的四则运算跟大家交流,如果大家对多位数的四则运算感兴趣可以交流学习
import java.util.LinkedList;
class Stack<T>{
private LinkedList<T> memory = new LinkedList<T>();
public void push(T arg){
memory.addFirst(arg);
}
public T peek(){
return memory.peek();
}
public T pop(){
return memory. ...
HBase compaction come in two varieties: minor and major.
for the minor:
将最新的几个小文件合成一个大文件。
何时合并行为发生?
当文件满足下面所有条件时,合并行为将发生:
1> 参与合并的文件个数 >= hbase.hstore.compaction.min (default is 3), 但最多不超过hbase.hstore.compaction.max(default is 10)
2> 参与合并的文件需满足的条件:
文件大小 < hbase.hstore.compaction. ...
随着数据量的增大,想要在可接受的时间内完成一定量的计算,不断地更新硬件系统已经成为很多企业的负担。但同时通过成百上千的普通pc 机实现并行计算,又有很多难点,如如何处理大量机子的并行计算问题,如何发布数据,如何处理错误等等问题,仅仅搭建这个框架就另很多企业望而生畏。
就在这样的大环境下MapReduce 的诞生可谓是历史的必然。它是这样一个抽象模型:利用一个输入key/value pair集合来产生一个输出的key/value pair集合。
MapReduce库的用户用两个函数表达这个计算:Map和Reduce。用户自定义的Map函数接受一个输入的key/value pair值, ...
There have 3 common usages to import data to HBase:
1>Use ImportTsv
ImportTsv is a utility that will load data in TSV format into HBase.
There have two usages about it:
a.Loading data from TSV format in HDFS into HBase via Puts.
This kind of load is non-bulk loading
Eg:
Bin/hbase org.apac ...