Skip to content

Commit 51813e9

Browse files
committed
修复markdown格式错误,导致显示异常。
1 parent db68803 commit 51813e9

File tree

41 files changed

+136
-129
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+136
-129
lines changed

contents/android-sdk-installation-doesnt-find-jdk.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
##安装Android SDK的时候找不到JDK
1+
## 安装Android SDK的时候找不到JDK
22

3-
###问题
3+
### 问题
44
我在我的win7 64位的系统上安装Android SDK时,jdk-6u23-windows-x64.exe已经安装上了,但是Android SDK的安装程序却因为找不到已安装的JDK无法继续下去。
55
这个问题出现过吗?有没有办法解决呢?
66

77
![](http://ww2.sinaimg.cn/large/0060lm7Tgw1f72ny3m6oaj30ds0a0gmi.jpg)
88

9-
###回答1:
9+
### 回答1:
1010
当你看到这个提示(找不到jdk)的时候按Back(返回),然后再点Next(下一步)。这个时候,它将会去寻找JDK
1111

12-
###回答2:
12+
### 回答2:
1313
实际安装:
1414

1515
- 系统:windows 8.1

contents/avoiding-null-statements-in-java.md

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
##去掉烦人的“!=null"(判空语句)
1+
## 去掉烦人的“!=null"(判空语句)
22

3-
###问题
3+
### 问题
44
为了避免空指针调用,我们经常会看到这样的语句
55
```java
66
if (someobject != null) {
@@ -9,7 +9,7 @@ if (someobject != null) {
99
```
1010
最终,项目中会存在大量判空代码,多么丑陋繁冗!如何避免这种情况?我们是否滥用了判空呢?
1111

12-
###回答
12+
### 回答
1313

1414
这是初、中级程序猿经常会遇到的问题。他们总喜欢在方法中返回null,因此,在调用这些方法时,也不得不去判空。另外,也许受此习惯影响,他们总潜意识地认为,所有的返回都是不可信任的,为了保护自己程序,就加了大量的判空。
1515

@@ -20,15 +20,15 @@ if (someobject != null) {
2020

2121
你可能还不明白这两句话的意思,不急,继续往下看,接下来将详细讨论这两种情况
2222

23-
####先说第2种情况
23+
#### 先说第2种情况
2424
null就是一个不合理的参数,就应该明确地中断程序,往外抛错误。这种情况常见于api方法。例如你开发了一个接口,id是一个必选的参数,如果调用方没传这个参数给你,当然不行。你要感知到这个情况,告诉调用方“嘿,哥们,你传个null给我做甚"。
2525

2626
相对于判空语句,更好的检查方式有两个
2727

2828
1. assert语句,你可以把错误原因放到assert的参数中,这样不仅能保护你的程序不往下走,而且还能把错误原因返回给调用方,岂不是一举两得。(原文介绍了assert的使用,这里省略)
2929
2. 也可以直接抛出空指针异常。上面说了,此时null是个不合理的参数,有问题就是有问题,就应该大大方方往外抛。
3030

31-
####第1种情况会更复杂一些。
31+
#### 第1种情况会更复杂一些。
3232
这种情况下,null是个”看上去“合理的值,例如,我查询数据库,某个查询条件下,就是没有对应值,此时null算是表达了“空”的概念。
3333

3434
这里给一些实践建议:
@@ -88,7 +88,7 @@ ParserFactory.getParser().findAction(someInput).doSomething();
8888

8989

9090

91-
####其他回答精选:
91+
#### 其他回答精选:
9292
- 如果要用equal方法,请用object<不可能为空>.equal(object<可能为空>))
9393
例如:
9494
使用

contents/breaking-out-of-nested-loops-in-java.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
##从一个多层嵌套循环中直接跳出
1+
## 从一个多层嵌套循环中直接跳出
22

3-
###问题
3+
### 问题
44
Java中如何从一个多层嵌套循环中退出,例如下面,有两个循环,break只能退出一个for循环,不能直接跳过第二个for循环
55
```java
66
for (Type type : types) {
@@ -12,7 +12,7 @@ for (Type type : types) {
1212
}}
1313
```
1414

15-
###回答
15+
### 回答
1616

1717
可以用break+label的语法,例子如下
1818
```java

contents/check-if-at-least-two-out-of-three-booleans-are-true.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
##给3个布尔变量,当其中有2个或者2个以上为true才返回true
1+
## 给3个布尔变量,当其中有2个或者2个以上为true才返回true
22

3-
###问题
3+
### 问题
44
给3个boolean变量,a,b,c,当其中有2个或2个以上为true时才返回true?
55
* 最笨的方法:
66
```java

contents/convert-a-string-to-an-enum-in-java.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
##如何将String转换为enum
1+
## 如何将String转换为enum
22

33
### 问题
44
假设定义了如下的enum(枚举):

contents/converting-string-to-int-in-java.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
##如何将String转换为Int
1+
## 如何将String转换为Int
22

33
有两种方式
44

contents/create-arraylist-from-array.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
##将数组转换为List
1+
## 将数组转换为List
22

3-
###问题
3+
### 问题
44
假设有数组
55
```java
66
Element[] array = {new Element(1),new Element(2),new Element(3)};
77
```
88
如何将其转换为ArrayList`<Element>` arraylist = ???
99

10-
### 回答1 ###
10+
### 回答1
1111

1212
`new ArrayList<Element>(Arrays.asList(array))`
1313

14-
###回答2
14+
### 回答2
1515

1616
Arrays.asList(array)或者Arrays.asList(new Element(1),new Element(2),new Element(3))
1717

contents/dealing-with-java-lang-outofmemoryerror-permgen-space-error.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
1-
##如何处理 java.lang.outOfMemoryError PermGen space error
1+
## 如何处理 java.lang.outOfMemoryError PermGen space error
22

3-
###问题
3+
### 问题
44

55
最近,我在过运行我的web应用时得到:java.lang.OutOfMemoryError: PermGen space。
66
我的应用是一个典型的 Hibernate/JPA + IceFaces/JSF的应用.运行于Tomcat6.0和jdk1.6.我发布了多次以后,产生了这个错误。
77

88
是什么原因造成的,我如何避免?我怎样修复?
99

1010

11-
#回答
11+
### 回答
1212

1313

1414
解决的方案是当TomeCat启时,在jvm的的命令行添加参数

contents/declare-array-in-java.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
##在java中声明数组
1+
## 在java中声明数组
22

3-
###问题描述:
3+
### 问题描述:
44
你是如何在Java中声明数组的。
55

6-
###回答:
6+
### 回答:
77
你可以直接用数组声明,或者通过数组的字面常量(array literal )声明
88

99
对于原始类型(primitive types):

contents/does-finally-always-execute-in-java.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
##问题
1+
## 问题
22

33
有一个 try/catch 代码块,其中包含一个打印语句。finally代码块总会被执行么?
44

@@ -17,7 +17,7 @@ finally {
1717
}
1818
```
1919

20-
##回答
20+
## 回答
2121

2222
1. ```finally``` 将会被调用。
2323
只有以下情况 ```finally``` 不会被调用:

contents/get-current-stack-trace-in-java.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
##获取完整的堆栈信息
1+
## 获取完整的堆栈信息
22

3-
###问题
3+
### 问题
44
捕获了异常后,如何获取完整的堆栈轨迹(stack trace)
55

6-
###回答
6+
### 回答
77
```java
88
String fullStackTrace = org.apache.commons.lang.exception.ExceptionUtils.getFullStackTrace(e)
99
```

contents/how-can-i-convert-a-stack-trace-to-a-string.md

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
#怎样将堆栈追踪信息转换为字符串
2-
##问题
1+
# 怎样将堆栈追踪信息转换为字符串
2+
## 问题
33
`Throwable.getStackTrace()`的结果转换为一个字符串来来描述堆栈信息的最简单的方法是什么
44

55

6-
###最佳答案
6+
### 最佳答案
77
可以用下面的方法将异常堆栈信息转换为字符串类型。该类在Apache commons-lang-2.2.jar中可以找到:
88
[`org.apache.commons.lang.exception.ExceptionUtils.getStackTrace(Throwable)`](org.apache.commons.lang.exception.ExceptionUtils.getStackTrace\(Throwable\))
99

10-
###答案二
10+
### 答案二
1111
[`Throwable.printStackTrace(PrintWriter pw)`](https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html#printStackTrace-java.io.PrintWriter-)可以输出堆栈信息:
1212
````java
1313
StringWriter sw = new StringWriter();
@@ -16,14 +16,14 @@ t.printStackTrace(pw);
1616
sw.toString(); // stack trace as a string
1717
````
1818

19-
###答案三
19+
### 答案三
2020
````java
2121
StringWriter sw = new StringWriter();
2222
e.printStackTrace(new PrintWriter(sw));
2323
String exceptionAsString = sw.toString();
2424
````
2525

26-
###答案四
26+
### 答案四
2727
````java
2828
public String stackTraceToString(Throwable e) {
2929
StringBuilder sb = new StringBuilder();

contents/how-can-i-generate-an-md5-hash.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
##如何计算MD5值
1+
## 如何计算MD5值
22

3-
###问题
3+
### 问题
44
Java中有没有方法可以计算一个String的MD5值?
55

66

7-
###回答
7+
### 回答
88
你可以用 ```MessageDigest``` 的MD5实例来计算String的MD5值。
99

1010
使用 ```MessageDigest``` 和 String 时,一定要显式声明你的数据编码类型。如果你使用无参的 ```String.getBytes()``` , 它会以当前平台的默认编码来转换数据。不同平台的默认编码可能是不同的,这可能会导致你的数据不一致。

contents/how-do-i-call-one-constructor-from-another-in-java.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
##能否在一个构造器中调用另一个构造器
1+
## 能否在一个构造器中调用另一个构造器
22

3-
###问题
3+
### 问题
44
能否在一个构造器中调用另一个构造器(在同一个类中,不是子类)?如果可以,怎么做?
55
调用另一个构造器的最好方法是什么(如果有几种方法可以选择的话)?
66

77

8-
###回答
8+
### 回答
99
可以这样做:
1010
```java
1111
public class Foo

contents/how-do-i-compare-strings-in-java.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
##在java中如何对比(compare)string
1+
## 在java中如何对比(compare)string
22

33
- `==`对应的是指针相等,也就是他们是否为同一个对象
44
- `.equals()`对应的是值相等,也就是逻辑相等
@@ -39,6 +39,6 @@ new String("test") == new String("test") // --> false
3939
}
4040
```
4141

42-
###其他
42+
### 其他
4343
- 如果你重写了equal方法,记得相对应地修改hashcode方法,否则将会违反这两个方法的对等关系,如果两个对象是相等(equal)的,那么两个对象调用hashCode必须产生相同的整数结果,即:equal为true,hashCode必须为true,equal为false,hashCode也必须为false
4444
- 如果要忽略大小写进行对比,可以用equalsIgnoreCase()方法

contents/how-do-i-create-a-java-string-from-the-contents-of-a-file.md

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
##如何从文件里读取字符串
1+
## 如何从文件里读取字符串
22

3-
###从文件里读取所有文本:
3+
### 从文件里读取所有文本:
44

55
代码:
66
```java
@@ -13,14 +13,14 @@ static String readFile(String path, Charset encoding)
1313

1414
```
1515

16-
###一行一行读入文本:
16+
### 一行一行读入文本:
1717

1818
Java 7 提供了一个方便的方法可以直接将文件中的文本一行一行读入,存放在一个List容器里。
1919
```JAVA
2020
List<String> lines = Files.readAllLines(Paths.get(path), encoding);
2121
```
2222

23-
###内存使用率
23+
### 内存使用率
2424

2525
第一个方法,一次读取所有文本的方法,占用内存较多,因为它一次性保留了文件的所有原始信息,包括换行符之类的“无用”字符。
2626

@@ -30,7 +30,7 @@ List<String> lines = Files.readAllLines(Paths.get(path), encoding);
3030

3131
这里的“很大”是相对于计算机性能的。一般来说,几十个G的文件应当算是大文件。
3232

33-
###字符编码
33+
### 字符编码
3434

3535
还有一件事需要注意,就是字符编码。不同的平台有自己的默认编码,所以有时候你的程序需要指定编码,来保持平台无关/跨平台。
3636

contents/how-do-servlets-work-instantiation-shared-variables-and-multithreading.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ servletcontainer 是附属于webserver的,而这个webserver会持续监听一
1414
在有filter的情况下,```doFilter()```方法会被触发。当代码调用```chain.doFilter(request, response)```时候,请求会经过下一个过滤器filter,如果没有了过滤器,会到达servlet。在servlets的情况下,```service()```触发,然后根据```request.getMethod()```确定执行doGet()还是```doPost()```,如果当前servlet找不到请求的方法,返回405error。
1515

1616
request对象提供了HTTP请求所有的信息,比如request headers和request body,response对象提供了控制和发送HTTP响应的的能力,并且以你想要的方式,比如设置headers和body。当HTTP响应结束,请求和响应对象会被销毁(实际上,大多数container将会清洗到这些对象的状态然后回收这些事例以重新利用)
17-
####httpSession
17+
#### httpSession
1818
当客户端第一次访问webapp或者通过```request.getSession()```方法第一次获取httpSession
1919
,servletcontainer 将会创建一个新的HttpSession 对象,产生一个长的唯一的ID标记session(可以通过session.getId()),并且将这个session存储在server内存中。servletcontainer 同时会在HTTP response的Header中设置```Set-Cookie```cookie值,其中cookie name为JSESSIONID,cookie value为唯一的长ID值。
2020

contents/how-to-avoid-java-code-in-jsp-files.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
##如何避免在JSP文件中使用Java代码
1+
## 如何避免在JSP文件中使用Java代码
22

3-
###问题
3+
### 问题
44
如何避免在JSP文件中使用Java代码?
55

66
我对Java EE不是很熟悉,我知道类似如下的三行代码
@@ -11,7 +11,7 @@
1111
```
1212
这三行代码是学校教的老式代码。在JSP 2,存在一些方法可以避免在JSP文件中使用Java代码。有人可以告诉我在JSP 2中如何避免使用Java代码吗,这些方法该如何使用?
1313

14-
###回答
14+
### 回答
1515
在大约十年前,taglibs(比如JSTL)和EL(EL表达式,`${}`)诞生的时候,在JSP中使用scriptlets(类似`<% %>`)这种做法,就确实已经是不被鼓励使用的做法了。
1616

1717
scriptlets 主要的缺点有:

contents/how-to-concatenate-two-arrays-in-java.md

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
1-
##如何便捷地将两个数组合到一起
1+
## 如何便捷地将两个数组合到一起
22

3-
###一行代码搞定
3+
### 一行代码搞定
44
Apache Commons Lang library [`ArrayUtils.addAll(T[], T...)`](http://commons.apache.org/proper/commons-lang/javadocs/api-3.1/org/apache/commons/lang3/ArrayUtils.html#addAll%28T%5B%5D,%20T...%29)就是专门干这事的
55

66
代码:
77
```java
88
String[] both = ArrayUtils.addAll(first, second);
99
```
1010

11-
###不借助依赖包
11+
### 不借助依赖包
1212

13-
####非泛型
13+
#### 非泛型
1414
把下面的`Foo`替换成你自己的类名
1515
```java
1616
public Foo[] concat(Foo[] a, Foo[] b) {
@@ -23,7 +23,7 @@ public Foo[] concat(Foo[] a, Foo[] b) {
2323
}
2424
```
2525

26-
####泛型
26+
#### 泛型
2727
```java
2828
public <T> T[] concatenate (T[] a, T[] b) {
2929
int aLen = a.length;

contents/how-to-split-a-string-in-java.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
##如何分割(split)string字符串
1+
## 如何分割(split)string字符串
22
使用[`String#split()`](http://docs.oracle.com/javase/8/docs/api/java/lang/String.html#split-java.lang.String-)方法
33

44
如下所示:

contents/in-java-whats-the-difference-between-public-default-protected-and-private.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
##Java修饰符:public,protected,private,不加修饰符。有什么区别呢?
1+
## Java修饰符:public,protected,private,不加修饰符。有什么区别呢?
22

33

44
如下表所示,Y表示能访问(可见性),N表示不能访问,例如第一行的第3个Y,表示类的变量/方法如果是用public修饰,它的子类能访问这个变量/方法

0 commit comments

Comments
 (0)