Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 60eba7d

Browse files
committed
update j2ee java and vim
1 parent a89f800 commit 60eba7d

File tree

3 files changed

+23
-91
lines changed

3 files changed

+23
-91
lines changed

J2EE学习之路.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1003,6 +1003,7 @@ JavaDoc: https://storm.apache.org/javadoc/apidocs/index.html
10031003

10041004
## Apache Flume
10051005

1006+
* <del>https://github.com/cloudera/flume</del>
10061007
* http://flume.apache.org/
10071008

10081009

Java学习之路.md

Lines changed: 18 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,6 @@ OpenIDK只包含最精简的JDK:OpenJDK不包含其他的软件包,比如Rhi
4949

5050
总之,在Java体系中,还是有很多不自由的成分,源代码的开发不够彻底,希望Oracle能够让JCP更自由开放一些,这也是所有Java社区所希望的。
5151

52-
53-
5452
## 怎样在Linux系统中下载和安装OpenJDK包
5553

5654
Debian, Ubuntu等系统:在命令行中,键入:
@@ -259,8 +257,7 @@ test/Test.class
259257

260258
jar cvfM test.zip test
261259

262-
263-
# javadoc注意点(原创)
260+
## javadoc注意点(原创)
264261

265262
javadoc生成文档时总是报java.lang.IllegalArgumentException错
266263

@@ -271,7 +268,6 @@ javadoc生成文档时总是报java.lang.IllegalArgumentException错误,是class
271268
见官方参考文档 http://maven.apache.org/plugins/maven-javadoc-plugin/faq.html
272269

273270

274-
275271
javadoc生成时出错:编码GBK的不可映射字符
276272

277273
由于java源代码是用的UTF-8编码,Eclipse中默认编码是GB18030,因此,在生成javadoc的时候,需要手工指定一下编码和字符集。
@@ -326,38 +322,6 @@ byte[] bytes = str.getBytes(); //我想不明白,为什么这里要占用3个b
326322

327323
首先,要搞清楚 code point 和 encoding 的区别。Java 是遵循 unicode 4.0 标准的,而内部的 character 以 utf-16 作为 encoding。unicode 4.0 标准包含从 U+0000-U+FFFF 的基本多语言平面和 U+10000-U+10FFFF 的扩展平面的文字,这是 code point。Java 的 char 类型是 16 bit 的,所以单个 char 只支持基本平面内的文字,而扩展平面的文字是由一对 char 来表示的。 而 String.getBytes() 这个方法是按照指定的 encoding 返回字符串,一般中文系统的默认编码是 utf-8 (linux, mac) 或者 gbk/gb18030 (windows)。只要是基本平面内的文字,utf-8码的中文都是3字节的,而 gbk/gbk18030 是2字节的。
328324

329-
# 常用Java API
330-
331-
## 计算Java程序运行时间
332-
333-
第一种是以毫秒为单位计算的。
334-
335-
  //伪代码
336-
337-
  long startTime=System.currentTimeMillis(); //获取开始时间
338-
339-
  doSomeThing(); //测试的代码段
340-
341-
  long endTime=System.currentTimeMillis(); //获取结束时间
342-
343-
  System.out.println("程序运行时间: "+(end-start)+"ms");
344-
345-
第二种是以纳秒为单位计算的。
346-
347-
//伪代码
348-
349-
  long startTime=System.nanoTime(); //获取开始时间
350-
351-
  doSomeThing(); //测试的代码段
352-
353-
  long endTime=System.nanoTime(); //获取结束时间
354-
355-
System.out.println("程序运行时间: "+(end-start)+"ns");
356-
357-
## 获得系统换行符
358-
359-
System.getProperty("line.separator");
360-
361325
## Java获取当前路径
362326

363327
利用System.getProperty()函数获取当前路径:
@@ -401,13 +365,6 @@ directory.getCanonicalPath(); //得到的是C:\
401365
directory.getAbsolutePath(); //得到的是C:\test\..
402366
direcotry.getPath(); //得到的是..
403367

404-
405-
## System.getenv()
406-
407-
getenv是获取系统的环境变更,对于windows对在系统属性-->高级-->环境变量中设置的变量将显示在此(对于linux,通过export设置的变量将显示在此)
408-
409-
System.out.println(System.getenv());
410-
411368
## java中的URL类
412369

413370
创建URL对象:
@@ -1359,57 +1316,31 @@ static{}(即static块),会在类被加载的时候执行且仅会被执行一
13591316
看下面的示例:
13601317

13611318
class Test{
1362-
13631319
public static int X=100;
1364-
13651320
public final static int Y;=200
1366-
13671321
public Test(){
1368-
13691322
System.out.println("Test构造函数执行");
1370-
13711323
}
1372-
13731324
static{
1374-
13751325
System.out.println("static语句块执行");
1376-
13771326
}
1378-
13791327
public static void display(){
1380-
13811328
System.out.println("静态方法被执行");
1382-
13831329
}
1384-
13851330
public void display_1(){
1386-
13871331
System.out.println("实例方法被执行");
1388-
13891332
}
1390-
13911333
}
13921334

13931335
public class StaticBlockTest{
1394-
13951336
public static void main(String args[]){
1396-
13971337
try{
1398-
13991338
Class.forName("Test");
1400-
14011339
Class.forName("Test");
1402-
14031340
} catch(ClassNotFoundException e) {
1404-
14051341
e.printStackTrace();
1406-
14071342
}
1408-
1409-
1410-
14111343
}
1412-
14131344
}
14141345

14151346
结果:你会发现虽然执行了两条Class.forName("Test")语句,但是,只输出了一条"静态方法被执行"语句;其实第二条Class.forName()语句已经无效了,因为在虚拟机的生命周期中一个类只被加载一次;又因为static{}是伴随类加载执行的,所以,不管你new多少次对象实例,static{}都只执行一次。
@@ -5787,7 +5718,7 @@ true only if the specified object is also a comparator and it imposes the same o
57875718

57885719
comparator.compare(person1,person2);。
57895720

5790-
# 在多线程中创建单例模式的双重锁定(Double-Check Locking )
5721+
## 在多线程中创建单例模式的双重锁定(Double-Check Locking )
57915722

57925723
```java
57935724
public class SingleTon {
@@ -5825,25 +5756,25 @@ comparator.compare(person1,person2);。
58255756
}
58265757
```
58275758

5828-
# Class类
5759+
## Class类
58295760

58305761
Class类是为了保存JAVA虚拟机运行时(RTTI)对所有对象进行类型识别的信息而设立的。当然Class也是继承自Object类的,每个类都有Class对象,想得到一个类的Class对象共有三种方法.
58315762

5832-
1:调用getClass()
5763+
```java
58335764

5765+
//调用getClass()
58345766
Employee emp;
58355767
Class cls=emp.getClass();
58365768

5837-
2:静态方法forName(String clsName)
5838-
5769+
//静态方法forName(String clsName)
58395770
String className="Employee";
58405771
Class cls=Class.forName(className);
58415772

5842-
3:class成员变量法
5843-
5773+
//class成员变量法
58445774
Class cls=Employee.class;
5775+
```
58455776

5846-
# myeclipse工程结构问题
5777+
## myeclipse工程结构问题
58475778

58485779
.myeclipse目录总体是安装了myeclipse插件的目录,而且这个大的myeclipse插件实际是由很多小的插件组成的,比如tomacat插件,spring插件等等。
58495780

@@ -5862,11 +5793,11 @@ Class类是为了保存JAVA虚拟机运行时(RTTI)对所有对象进行类型
58625793

58635794
这句话应该是来设置项目的根目录的
58645795

5865-
# MyEclipse删除对Struts、Hibernate、Spring的支持
5796+
## MyEclipse删除对Struts、Hibernate、Spring的支持
58665797

58675798
最近碰到添加了SSH的支持,但又发现有些包或配置文件不正确,想重新添加,但MyEclipse没有自动重新加载功能,于是到网上搜索了相关内容,总结如下:
58685799

5869-
## 撤消MyEclipse对Struts的支持
5800+
### 撤消MyEclipse对Struts的支持
58705801

58715802
第一步删除struts-config.xml文件。删除config文件是主要的,否则重新部署struts时MyEclipse会瘫痪。其他由MyEclipse自动生成的struts相关文件可以不去理会,等重新部署的时候如有重名他们将会被自动覆盖。
58725803

@@ -5876,7 +5807,7 @@ Class类是为了保存JAVA虚拟机运行时(RTTI)对所有对象进行类型
58765807

58775808
保存退出。右键单击项目,选择Refresh让新改的.project文件生效。这时候struts功能又可以使用了,再重新部署struts功能即可。
58785809

5879-
## 撤消MyEclipse对Hibernate的支持
5810+
### 撤消MyEclipse对Hibernate的支持
58805811

58815812
我是通过菜单MyEclipse->Project Capabilities添加了对Hibernate的支持,添加容易,删除难,菜单里好像没有删除对Hibernate支持的功能,只能手工删除了:
58825813

@@ -5894,33 +5825,29 @@ Class类是为了保存JAVA虚拟机运行时(RTTI)对所有对象进行类型
58945825

58955826
第三步删除Hibernate对应的mapping file,class
58965827

5897-
## 撤消MyEclipse对Spring的支持
5828+
### 撤消MyEclipse对Spring的支持
58985829

58995830
1. 从build path中删除spring libs
59005831
2. 手工修改工程目录下的.project文件中相关的内容
59015832
3. 删除工程目录下的.springBean文件
59025833

59035834
刷新工程,在工程右键菜单的myeclipse下面add spring capacity项就又回来了
59045835

5905-
# 异常:created a ThreadLocal with key of type
5836+
## 异常:created a ThreadLocal with key of type
59065837

59075838
异常信息:
59085839

59095840
created a ThreadLocal with key of type [com.opensymphony.xwork2.inject.ContainerImpl$10] (value [com.opensymphony.xwork2.inject.ContainerImpl$10@12c74b9]) and a value of type [java.lang.Object[]] (value [[Ljava.lang.Object;@1a34544]) but failed to remove it.
59105841

5911-
原因大概是说tomcat 6.025之后引入了一种内存泄露的检查机制,会把不能垃圾收集的对像做日志。
5912-
5913-
第一种解决办法:使用低于6版本的tomcat。
5914-
5915-
第二种解决办法:在tomcat的server.xml文件(在tomcat的安装路径下的conf文件夹里)中把监听关掉:就是把下面三句话括起来就可以啦。
5842+
原因大概是说tomcat 6.025之后引入了一种内存泄露的检查机制,会把不能垃圾收集的对像做日志。第一种解决办法:使用低于6版本的tomcat。第二种解决办法:在tomcat的server.xml文件(在tomcat的安装路径下的conf文件夹里)中把监听关掉:就是把下面三句话括起来就可以啦。
59165843

59175844
```xml
59185845
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
59195846
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
59205847
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
59215848
```
59225849

5923-
# 服务器的瞬时 Diffie-Hellman 公共密钥过弱
5850+
## 服务器的瞬时 Diffie-Hellman 公共密钥过弱
59245851

59255852
最新版本的chrome(45.0.2454.85 m)在访问证书时,会报“服务器的瞬时 Diffie-Hellman 公共密钥过弱”。最开始以为是证书制作的问题,百度时看到一个解决方法是通过设置tomcat的机密级别:在<connector>中加入
59265853

@@ -5930,7 +5857,7 @@ Class类是为了保存JAVA虚拟机运行时(RTTI)对所有对象进行类型
59305857

59315858
补充:tomcat最好也换也tomcat7
59325859

5933-
# Tomcat启动报Error listenerStart错误
5860+
## Tomcat启动报Error listenerStart错误
59345861

59355862
今天启动Tomcat启动不了,报以下错:
59365863

@@ -5960,7 +5887,7 @@ Tomcat报的错太含糊了,什么错都没报出来,只提示了Error liste
59605887

59615888
这样,我们再启动tomcat时,就会在logs目录下生成一个更详细的日志error-debug.2012-05-31.log。我碰到的错误是FileNotFoundException.大家碰到的错应该各式各样都有,所以就要具体问题具体分析了。 tomcat的logging文档具体可参考http://tomcat.apache.org/tomcat-7.0-doc/logging.html
59625889

5963-
# 比较好的文章
5890+
## 比较好的文章
59645891

59655892
* 浅析Web工程目录和tomcat目录: http://blog.csdn.net/ystyaoshengting/article/details/6204886
59665893
* web.xml配置详解: http://twb.iteye.com/blog/196733

vim学习之路.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -314,6 +314,10 @@ G 跳到最后一行
314314

315315
J 合并行
316316

317+
## VIM 如何查看动态增长的log文件
318+
319+
:set autoread
320+
317321

318322
# Emacs
319323

0 commit comments

Comments
 (0)