
2015年9月9日
摘要: 一個(gè)stmt多個(gè)rs進(jìn)行操作.那么從stmt得到的rs1,必須馬上操作此rs1后,才能去得到另外的rs2,再對(duì)rs2操作.不能互相交替使用,會(huì)引起rs已經(jīng)關(guān)閉錯(cuò)誤——Operation not allowed after ResultSet closed.錯(cuò)誤的代碼如下: stmt=conn.createStatement(); rs=stm...
閱讀全文
在 JDK1.5 引入自動(dòng)裝箱和拆箱的機(jī)制后,包裝類和基本類型之間的轉(zhuǎn)換就更加輕松便利了。
裝箱:把基本類型轉(zhuǎn)換成包裝類,使其具有對(duì)象的性質(zhì),又可分為手動(dòng)裝箱和自動(dòng)裝箱
int i= 10; //定義一個(gè)int基本類型值
Integer x = new Integer(i); //手動(dòng)裝箱
Integer y = i; //自動(dòng)裝箱
功能:將一個(gè)由英文字母組成的字符串轉(zhuǎn)換成指定格式---從右邊開始每三個(gè)字母用逗號(hào)分隔的形式。
請(qǐng)?jiān)诰庉嬈髦械牡?/span> 4、10 行將代碼填寫完整
運(yùn)行效果: j,aew,kjl,dfx,mop,zdmpublic static void main(String[] args) {
// Java文件名
String fileName = "HelloWorld.jav";
// 郵箱
String email = "laurenyang@imooc.com";
// 判斷.java文件名是否正確:合法的文件名應(yīng)該以.java結(jié)尾
/*
參考步驟:
1、獲取文件名中最后一次出現(xiàn)"."號(hào)的位置
2、根據(jù)"."號(hào)的位置,獲取文件的后綴
3、判斷"."號(hào)位置及文件后綴名
*/
//獲取文件名中最后一次出現(xiàn)"."號(hào)的位置
int index = fileName.lastIndexOf('.');
// 獲取文件的后綴
String prefix = fileName.substring(index);
// 判斷必須包含"."號(hào),且不能出現(xiàn)在首位,同時(shí)后綴名為"java"
if (index !=0 && index != -1 && prefix.equals("java")) {
System.out.println("Java文件名正確");
} else {
System.out.println("Java文件名無效");
}
// 判斷郵箱格式是否正確:合法的郵箱名中至少要包含"@", 并且"@"是在"."之前
/*
參考步驟:
1、獲取文件名中"@"符號(hào)的位置
2、獲取郵箱中"."號(hào)的位置
3、判斷必須包含"@"符號(hào),且"@"必須在"."之前
*/
// 獲取郵箱中"@"符號(hào)的位置
int index2 = email.indexOf("@");
// 獲取郵箱中"."號(hào)的位置
int index3 = email.indexOf('.');
// 判斷必須包含"@"符號(hào),且"@"必須在"."之前
if (index2 != -1 && index3 > index2) {
System.out.println("郵箱格式正確");
} else {
System.out.println("郵箱格式無效");
}
}
字節(jié)是計(jì)算機(jī)存儲(chǔ)信息的基本單位,1 個(gè)字節(jié)等于 8 位, gbk 編碼中 1 個(gè)漢字字符存儲(chǔ)需要 2 個(gè)字節(jié),1 個(gè)英文字符存儲(chǔ)需要 1 個(gè)字節(jié)。所以我們看到上面的程序運(yùn)行結(jié)果中,每個(gè)漢字對(duì)應(yīng)兩個(gè)字節(jié)值,如“學(xué)”對(duì)應(yīng) “-47 -89” ,而英文字母 “J” 對(duì)應(yīng) “74” 。同時(shí),我們還發(fā)現(xiàn)漢字對(duì)應(yīng)的字節(jié)值為負(fù)數(shù),原因在于每個(gè)字節(jié)是 8 位,最大值不能超過 127,而漢字轉(zhuǎn)換為字節(jié)后超過 127,如果超過就會(huì)溢出,以負(fù)數(shù)的形式顯示。
public static void main(String[] args) {
// 定義一個(gè)字符串
String s = "aljlkdsflkjsadjfklhasdkjlflkajdflwoiudsafhaasdasd";
// 出現(xiàn)次數(shù)
int num = 0;
// 循環(huán)遍歷每個(gè)字符,判斷是否是字符 a ,如果是,累加次數(shù)
for ( int i=0;i<s.length()-1;i++)
{
// 獲取每個(gè)字符,判斷是否是字符a
if ( 'a'==s.charAt(i) ) {
// 累加統(tǒng)計(jì)次數(shù)
num++;
}
}
System.out.println("字符a出現(xiàn)的次數(shù):" + num);
}
功能:將一個(gè)由英文字母組成的字符串轉(zhuǎn)換成指定格式---從右邊開始每三個(gè)字母用逗號(hào)分隔的形式。
請(qǐng)?jiān)诰庉嬈髦械牡?/span> 4、10 行將代碼填寫完整
運(yùn)行效果: j,aew,kjl,dfx,mop,zdm
public static void main(String[] args) {
// 創(chuàng)建一個(gè)空的StringBuilder對(duì)象
StringBuilder str = new StringBuilder();
// 追加字符串
str.append("jaewkjldfxmopzdm");
// 從后往前每隔三位插入逗號(hào)
for(int i = str.length()-3; i>0 ; i=i-3){
str.insert(i,",");
}
// 將StringBuilder對(duì)象轉(zhuǎn)換為String對(duì)象并輸出
System.out.print(str.toString());
}
結(jié)果: j,aew,kjl,dfx,mop,zdm
String s1 = "imooc";
String s2 = "imooc";
//定義字符串s3,保存“I love”和s1拼接后的內(nèi)容
String s3 = "I love" + s1;
// 比較字符串s1和s2
// imooc為常量字符串,多次出現(xiàn)時(shí)會(huì)被編譯器優(yōu)化,只創(chuàng)建一個(gè)對(duì)象
System.out.println("s1和s2內(nèi)存地址相同嗎?" + (s1 == s2));
//比較字符串s1和s3
System.out.println("s1和s3內(nèi)存地址相同嗎?" + (s1==s3));
String s4 = "I love " + s1;
//比較字符串s4和s3
// s1是變量,s4在運(yùn)行時(shí)才知道具體值,所以s3和s4是不同的對(duì)象
System.out.println("s3和s4內(nèi)存地址相同嗎?" + (s4 == s3));
//外部類HelloWorld
public class HelloWorld {
// 內(nèi)部類Inner,類Inner在類HelloWorld的內(nèi)部
public class Inner {
// 內(nèi)部類的方法
public void show() {
System.out.println("welcome to imooc!");
}
}
public static void main(String[] args) {
// 創(chuàng)建外部類對(duì)象
HelloWorld hello = new HelloWorld();
// 創(chuàng)建內(nèi)部類對(duì)象
Inner i = hello.new Inner();
// 調(diào)用內(nèi)部類對(duì)象的方法
i.show();
}
}



