java基礎100題
⑴ java基礎知識
1. PATH環境變數。
作用是指定命令搜索路徑,在命令行下面執行命令如javac編譯java程序時,它會到PATH變數所指定的路徑中查找看是否能找到相應的命令程序。我們需要把jdk安裝目錄下的bin目錄增加到現有的PATH變數中,bin目錄中包含經常要用到的可執行文件如javac/java/javadoc等待,設置好PATH變數後,就可以在任何目錄下執行javac/java等工具了。
CLASSPATH環境變數。
作用是指定類搜索路徑,要使用已經編寫好的類,前提當然是能夠找到它們了,JVM就是通過CLASSPATH來尋找類的。我們需要把jdk安裝目錄下的lib子目錄中的dt.jar和tools.jar設置到CLASSPATH中,當然,當前目錄「.」也必須加入到該變數中。
2、public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int sum=0;//設定一個變數,求和的值
for(int i=1;i<=100;i++){
sum=sum+i;
}
System.out.println("1+2+3+....+100的和:"+sum);
}
}
3、import java.util.Arrays;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int str[]={1,3,9,5,4,8,2};
Arrays.sort(str);
System.out.println("數組中最大數:"+str[str.length-1]);
}
}
4、public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String str="abc.java.txt";//定義一個變數設置文件名稱
System.out.println(str.substring(str.lastIndexOf(".")+1));
}
}
5、public class Student {
private String name;//姓名
private int age;//年齡
private double score;//成績
public Student(String name,int age,double score){
this.name=name;
this.age=age;
this.score=score;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public double getScore() {
return score;
}
public void setScore(double score) {
this.score = score;
}
}
6、我就不貼代碼了。你自己創建借個對象。然後把五個對象的成績放在一個數組中,直接調用Arrays.sort(數組名) 這個方法排序輸出就ok了。
7、方法:可以使用文件流來讀寫。樓主可根據文件的類型選擇是位元組流還是字元流來實現。如果樓主還需要,可以把代碼寫出來
8、TCP(Transmission Control Protocol,傳輸控制協議)是基於連接的協議,也就是說,在正式收發數據前,必須和對方建立可靠的連接。一個TCP連接必須要經過三次「對話」才能建立起來,其中的過程非常復雜,我們這里只做簡單、形象的介紹,你只要做到能夠理解這個過程即可。我們來看看這三次對話的簡單過程:主機A向主機B發出連接請求數據包:「我想給你發數據,可以嗎?」,這是第一次對話;主機B向主機A發送同意連接和要求同步(同步就是兩台主機一個在發送,一個在接收,協調工作)的數據包:「可以,你什麼時候發?」,這是第二次對話;主機A再發出一個數據包確認主機B的要求同步:「我現在就發,你接著吧!」,這是第三次對話。三次「對話」的目的是使數據包的發送和接收同步,經過三次「對話」之後,主機A才向主機B正式發送數據。
TCP協議能為應用程序提供可靠的通信連接,使一台計算機發出的位元組流無差錯地發往網路上的其他計算機,對可靠性要求高的數據通信系統往往使用TCP協議傳輸數據。
面向非連接的UDP協議
「面向非連接」就是在正式通信前不必與對方先建立連接,不管對方狀態就直接發送。這與現在風行的手機簡訊非常相似:你在發簡訊的時候,只需要輸入對方手機號就OK了。
UDP(User Data Protocol,用戶數據報協議)是與TCP相對應的協議。它是面向非連接的協議,它不與對方建立連接,而是直接就把數據包發送過去!
UDP適用於一次只傳送少量數據、對可靠性要求不高的應用環境。比如,我們經常使用「ping」命令來測試兩台主機之間TCP/IP通信是否正常,其實「ping」命令的原理就是向對方主機發送UDP數據包,然後對方主機確認收到數據包,如果數據包是否到達的消息及時反饋回來,那麼網路就是通的。例如,在默認狀態下,一次「ping」操作發送4個數據包(如圖2所示)。大家可以看到,發送的數據包數量是4包,收到的也是4包(因為對方主機收到後會發回一個確認收到的數據包)。這充分說明了UDP協議是面向非連接的協議,沒有建立連接的過程。正因為UDP協議沒有連接的過程,所以它的通信效果高;但也正因為如此,它的可靠性不如TCP協議高。QQ就使用UDP發消息,因此有時會出現收不到消息的情況。
TCP協議和UDP協議各有所長、各有所短,適用於不同要求的通信環境。
9、<form id="register" name="register" method="post" action="">
<table width="380" border="0">
<tr>
<td width="93" height="37">用戶名:</td>
<td width="271">
<input type="text" name="username" id="username" />
</td>
</tr>
<tr>
<td height="30">密碼:</td>
<td><input type="password" name="pwd" id="pwd" /></td>
</tr>
<tr>
<td height="26">確認密碼:</td>
<td><input type="password" name="confirmpwd" id="confirmpwd" /></td>
</tr>
<tr>
<td height="33">性別:</td>
<td>
<input type="radio" name="sex" value="女" />
男
<input type="radio" name="sex" value="男" />
女</td>
</tr>
<tr>
<td>城市:</td>
<td>
<select name="city" id="city">
<option value="" selected="selected"></option>
<option value="深圳市">深圳市</option>
<option value="上海市">上海市</option>
</select>
</td>
</tr>
<tr>
<td>興趣愛好:</td>
<td><label>
<input type="checkbox" name="hobby" id="mountain" value="mountain" />
爬山
<input type="checkbox" name="hobby" id="basketball" value="basketball" />
籃球
<input type="checkbox" name="hobby" id="swimming" value="swimming" />
游泳</label></td>
</tr>
<tr>
<td>簡介:</td>
<td>
<textarea name="introce" cols="30" id="introce" rows="3"></textarea>
</td>
</tr>
<tr>
<td></td>
<td><label>
<input type="button" name="Submit" value="提交" onclick="check()"/>
</label></td>
</tr>
</table>
</form>
10、我給你寫個js,你在代碼中調用這個方法
<script language="javascript" type="text/javascript">
function check(){
//判斷用戶名
var username=document.getElementById("username").value;
//定義正則表達式,用戶名必須是字母數字或下劃線, 不能以數字開頭
var regex1=/^[A-Za-z_][0-9A-Za-z_]$/
var s=document.getElementById("username").value;
alert(regex1.test(s));
return;
if(regex1.test(username)){
alert("用戶名必須是字母數字或下劃線, 不能以數字開頭");
return;
}
//判斷密碼
//定義正則表達式,密碼必須6-16位字母數字下劃線
var regex2=/^[0-9A-Za-z_]{6,16}$/
var pwd=document.getElementById("pwd").value;
if(regex2.test(pwd)==false){
alert("密碼必須6-16位字母數字下劃線");
return;
}
//判斷確認密碼
var confirmpwd=document.getElementById("confirmpwd");
if(pwd.value!=confirmpwd.value){
alert("兩次密碼輸入不一致,請重新輸入!");
return;
}
//判斷性別、城市、愛好、簡介
var sex=document.getElementsByName("sex");
var city=document.getElementById("city");
var hobby=document.getElementsByName("hobby");
var introce=document.getElementById("introce");
var t=0;
for(var i=0;i<sex.length;i++){
if(sex[i].checked==true){
t++;
}
}
if(t==0){
alert("請選擇性別!");
return;
}
t=0;
for(var i=0;i<hobby.length;i++){
if(hobby[i].checked==true){
t++;
}
}
if(t==0){
alert("請選擇愛好!");
return;
}
if(city.value==""){
alert("城市不能為空,請選擇城市");
return;
}
if(introce.value==""||introce.value.length==0){
alert("個人簡介不能為空");
return;
}
}
</script>
以上有不對的地方盡請指出,謝謝