1. 聲明long類型的變量 須要在數值的末尾+l/L。(不加L的話,貌似默認就是int型了。當給long賦值一個超過int範圍的值的時候,會出問題。)java
2. package java_study;
public class 你好{
public static void main(String [] args){
/*
1.以字母,數字,下劃線_,$
2.不能以數字開頭
3.嚴格區分大小寫
4.長度無限制
5.不能是java中的關鍵字
*/
System.out.println("漢字也能當類名");
}
}數組
3. eclipse
/*oop
跳轉到對應的周幾測試
技能:認識switch對象
switch(){索引
case 常量:ip
邏輯字符串
break;get
case 常量:
邏輯
break;
。。。。
default:
邏輯;
break;
總結:1.switch(表達式)byte short int char String enum(枚舉)
2.case 後面必須是常量 固定的值
3.case 常量不能重複 錯誤: case 標籤重複
4.default是可選的(無關緊要的)
5.防止語句塊之間的穿透
}
*/
4. /*
邏輯運算符:
&:兩邊的表達式都爲true,結果纔是true
&&:兩邊的表達式都爲true,結果纔是true,若是前面的表達式爲false再也不計算後面的表達式
|:兩邊的表達式一個爲true,結果就是true
||:兩邊的表達式一個爲true,結果就是true;
若是前面的表達式爲true,再也不計算後面的表達式
*/
class Home1{
public static void main(String []args){
//定義boolean類型的變量
int x = 3;
int y = 4;
boolean b1 = y > x | ++x >--y;
System.out.println(b1+" "+ x+" "+y);
x = 3;
y = 4;
b1 = y > x || ++x > --y;
System.out.println(b1+" "+ x+" "+y);
}
}
5.
//使用三目運算符,寫出3個數內的最大數
import java.util.*;
class Home2{
public static void main(String []args){
//建立對象
Scanner input = new Scanner(System.in);
//建立3個數用於比較
System.out.println("請輸入第1個數");
int num1 = input.nextInt();
System.out.println("請輸入第2個數");
int num2 = input.nextInt();
System.out.println("請輸入第3個數");
int num3 = input.nextInt();
//比較
//int d = num1>num2?num1:num2;
//int maxNum = d>num3?d:num3;
// X ? Y Z
int maxNum = num1 > num2 ?(num1 > num3 ? num1 : num3):(num2 > num3 ? num2 : num3);
//輸出結果
System.out.println("最大值是\t"+maxNum);
}
}
6. /*
交換兩個數的位置
5 = 2 + 3;
2 = 5 - 3;
3 = 5 - 2;
*/
class Home3{
public static void main(String []args){
//定義兩個數
int a = 10;
int b = 20;
//輸出交換前的結果
System.out.println("a的值爲\t"+a+",b的值爲\t"+b);
//交換
a = a + b;
b = a - b;//30 - 20;
a = a - b;
//交換後的結果
System.out.println("a的值爲\t"+a+",b的值爲\t"+b);
}
}
7. 一,如何拿到char類型的數據
字符串.charAt(index);下標0開始
String s ="我是中國人";
char c = s.charAt(2);
二,循環
1.求偶數的和
2.每行輸出5個
1.初始化條件:執行一次而且不能省略
2.循環條件:while ,do{}while();是否能夠省略; boolean類型
3.循環體
4.迭代條件:死循環
1
while(2){
3
4
}
1
do{
3
4
即便初始化條件不知足循環條件,也會執行一次循環體
}while(2);
for(1;2;4){
3
}
流程控制語句:
break:結束循環
continue:結束本次循環並繼續執行下一次循環
return:結束一個方法
三,嵌套循環:將一個循環做爲另外一個循環的循環體
*******
*******
*******
外層控制行數
內層控制列數
8. /*
do{}while;
輸出1~100內的偶數,每行輸出5個
2,4,6,8,10
12,14,16,18,20
1.判斷是不不是偶數
2.統計偶數的個數
*/
class DoWhileTest2{
public static void main(String [] args){
//定義一個變量,初始化條件
int i = 1;
//定義變量統計個數
int count = 0;
do{
//循環體
if(i%2==0){
//print不換行
System.out.print(i+"\t");
//統計偶數個數
count++;
//每行輸出5個 偶數個數==5時換行
if(count%5==0){
System.out.println();
}
}
//迭代條件
i++;
}while(i<=100);
//輸出結果
System.out.println("1~100內偶數的個數是\t"+count);
}
}
9. /*
流程控制語句
break:結束循環 END
continue:結束本次循環,繼續循環 END
return:結束一個方法
注意:流程控制語句下不能寫邏輯
沒法訪問的語句
*/
class LoopTest{
public static void main(String [] args){
for(int i = 1;i<=10;i++){
if(i==5){
//break;
continue;
//return;
System.out.println("若是能輸出,給你一百萬!!");
}
System.out.println(i);
}
System.out.println("END");
}
}
10.eclipse裏 main Alt +/ 快捷輸入 Sysout
F3 查看源碼 Alt+←返回
11.
1.加強for循環和iterator遍歷的效果是同樣的,也就說
加強for循環的內部也就是調用iteratoer實現的(能夠查看編譯後的文件),可是加強for循環 有些缺點,例如不能在加強循環裏動態的刪除集合內容。不能獲取下標等。
2.ArrayList因爲使用數組實現,所以下標明確,最好使用普通循環。
3.而對於 LinkedList 因爲獲取一個元素,要從頭開始向後找,所以建議使用 加強for循環,也就是iterator。
/*
數組的遍歷
數組的有序指的是索引的順序
兩種循環對比:
1.加強for循環
for(數據類型標識符:數組名){
System.out.println(標識符);
}
簡單
2.普通循環 可以操做下標
*/
class Arrays2{
public static void main(String [] args){
//定義一個數組
int [] arr = {12,45,23,10,98,78,100};
//arr[0],arr[1],
//遍歷方式一
for(int i = 0;i<arr.length;i++){//0~6
System.out.println(arr[i]);
}
//第二種方式加強for循環
for(int num:arr){
System.out.println(num);
}
}
}
12. class ValueTest1{
public static void main(String [] args){
int num = 10;
System.out.println("方法調用前num的值\t"+num);//10
changeValue(num);
System.out.println("方法調用後num的值\t"+num);//10
}
public static void changeValue(int num){//int num = num
num = 20;
System.out.println("方法調用中num的值\t"+num);//20
}
}
13.
class ValueTest2{
public static void main(String [] args){
String []student = new String[3];
for(int i = 0;i<student.length;i++){
student[i] = "范冰冰";
}
int num = 10;
for(String s:student){
System.out.println(s);
}
System.out.println("方法調用前\t"+student[0]);//范冰冰
changeValue(student);
System.out.println("方法調用後\t"+student[0]);//周杰倫
}
//聲明方法
public static void changeValue(String[] student){
student[0] = "周杰倫";
student[1] = "周杰";
System.out.println("方法調用中\t"+student[0]);//周杰倫
}
}
總結:
1、對於基本類型參數,在方法體內對參數進行從新賦值,並不會改變原有變量的值。
2、對於引用類型參數,在方法體內對參數進行從新賦予引用,並不會改變原有變量所持有的引用。
3、方法體內對參數進行運算,不影響原有變量的值。
4、方法體內對參數所指向對象的屬性進行操做,將改變原有變量所指向對象的屬性值。
也就是說,對於基本數據類型,實現的是傳值,只是個形參,不會改變原有值。對於引用數據類型,對這個引用進行操做,其實也是至關於對形參的操做,不會改變原來的引用。可是,當對這個引用的屬性進行操做的時候,至關於CPP中的傳址調用,能夠改變這個引用的屬性的值。
Eg:
public class Main {
private static void getMiddleOne(boolean b, Boolean boo, Boolean[] arr){
b = true; //形參,不會改變原有值
boo = new Boolean(true); //引用變量的直接操做至關於值傳遞,不會改變原來的引用變量
arr[0] = true; //引用變量的屬性的操做,會改變原有引用的屬性,至關於傳址調用
}
//測試
public static void main(String[] args) {
boolean b = false;
Boolean boo = new Boolean(false);
Boolean[] arr = new Boolean[]{false};
getMiddleOne(b, boo, arr);
System.out.println(b);
System.out.println(boo.toString());
System.out.println(arr[0]);
/**
* output:
* false
* false
* true
*/
}
}
14.
/*
流程控制語句深刻
在循環外側+label(能夠自定義)
break label:label在哪裏就結束哪層循環
continue:結束內層循環,繼續外層循環
1234 1234 1234 1234 1234 1234 1234 1234 1234 1234
*/
class BreakTest{
public static void main(String [] args){
label:for(int i = 1;i<=10;i++){
for(int j = 1;j<=10;j++){
if(j==5){
//break ;
continue label;
}
System.out.print(j);
}
System.out.println();
}
}
}
15.
class JinZhi{
/*
將一個10進制的數轉爲二進制數
1.定義一個10進制數
2.除以2取餘數 取商
3.將商做爲被除數繼續 取餘數,取商
4.當商爲0時終止
5.注意:result類型爲String
*/
public static void main(String [] args){
//定義一個數
int num = 6;//110
String result = "";
//處理邏輯
while(num!=0){
//取餘數
int yuShu = num%2;//0 , 1, 1
//讓最後輸出(最新的數據)的位於字符串的最前面
result = yuShu+result;//0+
System.out.println(result);
//取商
int shang = num/2;
//將商做爲被除數
num = shang;
}
//輸出解果
}
}