1,The project cannot be built until build path errors are resolved。。。。
当项目导入后出现这样的问题,那么可能是JDK没导入正确。
2,try…catch 后面得代码依旧会执行。
- 情况1
public static void main(String[] args) {
try {
while (true){
try{
System.out.println("正常执行");
int i = 1/0;
}catch (Exception e){
System.out.println("异常捕获了");
//return; (1)
throw new RuntimeException();//(2)
}
/**
当(1)或者(2)执行的时候,下面的语句都不会执行,只有(1),(2)都不执行的时候才有下面的打印
*/
System.out.print("第一部分结尾部分");
}
}catch (Exception e){
System.out.println("上层异常捕获了");
}
finally {
System.out.print("结束了");
}
/**
当(1)执行的时候,下面的语句不会执行,当(2)执行的时候,下面的语句会走
*/
System.out.print("第二部分结尾部分");
}
}
-情况2
public static void main(String[] args) {
try {
while (true){
try{
System.out.println("正常执行");
int i = 1/0;
}catch (Exception e){
System.out.println("异常捕获了");
}
}
}catch (Exception e){
System.out.println("上层异常捕获了");
}
finally {
System.out.print("结束了");
}
}
执行结果:
正常执行
异常捕获了
正常执行
异常捕获了
3,idea项目转eclipse项目的时候会有资源目录的指向的不同。
如:WebContent —》webapp的转换。
解决方法:
1,找到项目所在路径,在settings目录中找到org.eclipse.wst.common.component 这个文件,然后修改该行代码处source-path的值就行了。
<wb-module deploy-name="TopCcms">
<wb-resource deploy-path="/" source-path="/webapp" tag="defaultRootSource"/>
.........
4, 修改项目的web访问根目录的方式有:
方式一:直接通过开发工具修改,这里以Eclipse为例。在Eclipse中选择项目,然后点击“project”,选择properties选项,在配置窗口选择”Web Project Settings“选项,最后修改想要的名称即可。
方式二:通过Tomcat设置,这里比较局限,因为本人还没有用过其他容器。在tomcat根目录下打开conf文件夹,然后编辑server.xml. 找到
<Context path="/webrootName" docBase="realPath" ></Context>
这里只用到path,docBase两个属性。分表表示web应用根目录和项目所在文件路径。
修改完成后,重启tomcat服务,直接访问http://localhost:8080/webrootName 即能访问部署的项目。
注:这里http://localhost:8080/只是测试案例,需要按照各自环境变化。
5, 替换字符串中转移字符的方法
方式一:
String str = "ssss\r\ndddd\tdddd\n\r";
String field = EntityUtils.toString(str,"UTF-8");//获取数据
field=field.replaceAll("[\\t\\n\\r]", "");//将内容区域的回车换行制表符去除
说明:String类的replaceAll就有正则替换功能,即参数一可以是正则表达式。 \t为制表符 \n为换行 \r为回车
方式二:
String str = "ssss\r\ndddd\tdddd\n\r";
Pattern p = Pattern.compile("\\s*|\t|\r|\n"); //空格,制表符,回车,换行
Matcher m = p.matcher(str);
str = m.replaceAll("");
方式三:(笨方法)
String str = "ssss\r\ndddd\tdddd\n\r";
1.去除空格:s = s.replace(”\\s“,“”); //单字符,
2.去除回车:s = s.replace(“\n”,“”);
这样也可以把空格和回车去掉,其他也可以照这样做。
注:\n 回车(\u000a)
\t 水平制表符(\u0009)
\s 空格(\u0008)
PS:这里replace方法中必须用字符串的方式,而不是字符的方式。
6.时间戳:
时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的“总秒数”。
7,对于String类型的变量,方法中对应值传递
public static void main(String[] args) {
String str = "abc";
changeStr(str);
System.out.println("main: "+str);
}
public static void changeStr(String str){
str +="123";
System.out.println(str);
}
结果:
abc123
main: abc
8,
public static void main(String[] args) {
String a = "Programming";
String b = new String("Programming");
String c = "Program" + "ming";
System.out.println(a == b);
System.out.println(a == c);
System.out.println(a.equals(b));
System.out.println(a.equals(c));
System.out.println(a.intern() == b.intern());
}
结果:
false
true
true
true
true
class A{
static{
System.out.print("1");
}
public A(){
System.out.print("2");
}
}
class B extends A{
static{
System.out.print("a");
}
public B(){
System.out.print("b");
}
}
//何问起 hovertree.com
public class Hello{
public static void main(String[] args){
A ab = new B();
ab = new B();
}
}
结果:
1a2b2b
因为:
创建对象时构造器的调用顺序是:先初始化父类的静态成员然后初始化当前类的静态成员(包括静态代码块,调用一次),然后初始化父类的成员,然后调用父类构造器,最后初始化自身的成员,然后再调用自身构造器。