java筆記1-5

第一章:初識(shí)java

1.1在eclipse建立一個(gè)class:

1.new->java project


在這里插入圖片描述

2.new->class


在這里插入圖片描述

1.2 打印hello word!

package Exp;                      //Exp為包名
public class Na {                 //Na為庫(kù)名
public static void main(String[] args) {
    System.out.println("hello word");  //String與System都是庫(kù)
}
}

ps:
1.部分窗口調(diào)出:window->show view->console(控制臺(tái))
2.先保存,再運(yùn)行

第三章

3.7運(yùn)算符與表達(dá)式:

在這里插入圖片描述

1)算術(shù)運(yùn)算符:

+、-、*、/、%、++、--

  1. /:
    3.0/2 = 1.5(除法運(yùn)算)
    3 / 2 =1 (整除運(yùn)算)
  2. ++:
    print(i++) 輸出5 i++為表達(dá)式的值
    print(++i) 輸出6
    表達(dá)式的值和變量的值
    口訣:先賦值再相加
    例題
    1.輸出整數(shù)各個(gè)位置上的數(shù)字
    2.水仙花數(shù)
for(int i = 100;i<1000;i++)
{
    int a = i%10;
    int b = (i/10)%10;
    int c = i/100;
    if(a*a*a+b*b*b+c*c*c == i)
    {
        System.out.println(i);
    }
}

2)關(guān)系運(yùn)算符

<、>、>=、<=、==、!=

3)邏輯運(yùn)算符

&、|、!、^、&&、||

  1. &為邏輯運(yùn)算符時(shí),前后為布爾型;為位運(yùn)算時(shí),前后為整型。
  2. &與&&:邏輯與和簡(jiǎn)潔與。
  3. |與||:邏輯或和簡(jiǎn)潔或
  4. <font face="微軟雅黑" color=#0066FF size=3> 簡(jiǎn)潔與邏輯的區(qū)別:欠著可能之極端左邊的表達(dá)式而不計(jì)算右邊的表達(dá)式,而后者必須計(jì)算完左右兩個(gè)表達(dá)式。 </font>
    例題:ppt51頁(yè)

4)位運(yùn)算符

~ 按位非(not)(一元運(yùn)算)
& 按位與(AND)
| 按位或(OR)
^ 按位異或(XOR)
>> 右移
>>>0填充右移,左邊空出的0填充(二進(jìn)制100->1000)
<<左移

位運(yùn)算的某些運(yùn)算技巧

  1. 異或運(yùn)算:
    作用一:簡(jiǎn)單數(shù)據(jù)加密(窮舉法可證)
    如果a^b=c,那么c^b=a以及c^a=b(類似乘法和除法)將b做秘鑰,a為原文,c為密文
    作用二:交換兩個(gè)變量(窮舉法可證)
int a = 5,b = 7;
a = a^ b;b = b^ a;a = a^b;
  1. <<左移運(yùn)算符
    a<<b
    將a各二進(jìn)制位全部左移b位后得到的值,左移越界丟棄,低位補(bǔ)0。a的值不因運(yùn)算而改變
    作用:左移一位等于乘以2;可以用來(lái)開2的n次方

5)賦值運(yùn)算符

+=、-=、*=、/=、%=、&=、|=、^=、>>=、<<=、>>>=(a=a>>>b)

  1. 賦值運(yùn)算符
    格式: 變量或?qū)ο?= 表達(dá)式
    右邊可以連續(xù)賦值: a = b = c =8;
  2. 擴(kuò)展賦值運(yùn)算符
    在賦值符“=”前加上其他運(yùn)算符,即構(gòu)成擴(kuò)展賦值運(yùn)算符
    例如:a+=3等價(jià)于a=a+3
    例題
    a = 3; a *= 3+5
    24

6)條件運(yùn)算符(三目運(yùn)算符)

格式 :<表達(dá)式1>?<表達(dá)式2:<表達(dá)式3>
其中“表達(dá)式1”是一個(gè)結(jié)果為邏輯值的布爾表達(dá)式
功能:先計(jì)算<表達(dá)式1>的值,當(dāng)<表達(dá)式1>的值為true時(shí),則將<表達(dá)式2>的值作為整個(gè)表達(dá)式的值;當(dāng)<表達(dá)式1>的值為 false時(shí),則將<表達(dá)式3>的值作為整個(gè)表達(dá)式的值。
例題:

int a=1,b = 2,max;
max = a>b ? a : b;
System.out.println("max=" + max);

7) 字符串運(yùn)算符

字符串運(yùn)算符“+”完成字符串連接操作

8)運(yùn)算符的優(yōu)先級(jí)

  1. . [] ()
  2. ++ - ! ~ +(正號(hào)) -(負(fù)號(hào))
  3. new(類型)
  4. / % *
  5. +-(二元)
  6. << >> >>>
  7. < > <= >=
  8. == !=
  9. &
  10. ^
  11. |
  12. &&
  13. ||
  14. ? :
  15. = += -= *= /= %= <<= >>= >>>= &= ^= |=

第四章 流程控制

順序,分支,循環(huán)

4.1語(yǔ)句與復(fù)合語(yǔ)句

  1. JAVA不允許在兩個(gè)嵌套的復(fù)合語(yǔ)句內(nèi)聲明兩個(gè)同名的變量
    public Static void main(String args[])
    {
    int a;
    ......
    int a//錯(cuò)誤
    }
  2. 注釋
    單行 //
    多行 / * */
    文件/ ** */

4.2 順序結(jié)構(gòu)

一行一行執(zhí)行,沒有判斷和跳轉(zhuǎn),直到程序結(jié)束

4.3 分支結(jié)構(gòu)

1) if條件語(yǔ)句

  1. 兩個(gè)
int a=1,b=2,c=3,max,min;
if(a>b)
  max=a;
else
  max=b;
  if(c>max) max=c;
System.out.println("Max="+max);
min=a<b ? a : b;
min=c<min ? c : min;
System.out.println("Min="+min);
MAX = 3
MIN = 1
  1. 多個(gè)
    if(條件表達(dá)式1)
    {
    語(yǔ)句序列 1
    }
    else if(條件表達(dá)式 2)
    {
    語(yǔ)句序列 2
    }
    ……
    else
    { }
Scanner sin = new Scanner(System.in);
int sorse = sin.nextInt();
String grade = "A";
        
if(sorse<60) {
    grade = "D";
}
else if (sorse<70)
    grade = "C";
else 
    grade = "B";
System.out.println(grade);

2) switch選擇語(yǔ)句

switch (表達(dá)式):
{
case 常量表達(dá)式1:
語(yǔ)句序列1;
break;
case 常量表達(dá)式1:
語(yǔ)句序列1;
break;
}

switch(sorse/10) {
    case 9:   //后面沒有任何值,無(wú)break。往后執(zhí)行,直到遇到break
    case 10:grade = "A";
        break;
    case 8:
        if (sorse<85)
            grade = "B";
        else 
            grade = "A";
        break;
    case 7:grade = "C";
        break;
    default:
        grade = "D";
}
System.out.println(grade);

注意

  1. 每個(gè)case后面一般都帶有break語(yǔ)句。
  2. 圓括號(hào)中的“表達(dá)式”,是整數(shù)型或字符型的量,同時(shí)應(yīng)與各個(gè)case后面的常量表達(dá)式值得類型相一致。

4.4 循環(huán)結(jié)構(gòu)

1)for

for(表達(dá)式1;條件表達(dá)式;表達(dá)式2)
{
循環(huán)體
}

for(int i = 1;i <= 10;i++)
{
    sum += i;
}

變形

int i = 1;
for(;;)
{
    if(i>10) break;
    sum += i;
    i++;
}
System.out.println(sum);

2)while循環(huán)

while(條件表達(dá)式)
{
循環(huán)體
}

例題
1 + 2 +……+n
n!

int i = 11;
int sum = 0;
        //直到循環(huán)變量的結(jié)束值時(shí),一般用for,不知道,一般用while
while(i<=10)
{
    sum += i;
    i++;
}

3)do-while語(yǔ)句

do
{
循環(huán)體
}while(條件表達(dá)式);
例題:

do 
{
    sum += i;
    i++;
}while(i<=10);//(i>=10)會(huì)輸出1;(i<=10)會(huì)輸出55;do-while先做后判斷。
System.out.println(sum);

4)foreach語(yǔ)句與數(shù)組和集合

int a[] = {1,2,3,4,5,6,7,8};
for(int i:a) 
{    //a中的值給i
    System.out.println(i);
}

5)多重循環(huán)

例題:1!+2!+……+n!

int n,sum=0,jc;
Scanner in =new Scanner(System.in);
n=in.nextInt();
for(int i=1;i<=n;i++)
{   
    jc=1;
    for(int j=1;j<=i;j++)
        jc=jc*j;
    sum=sum+jc;
}
System.out.println(sum);

4.5循環(huán)語(yǔ)句中的跳轉(zhuǎn)語(yǔ)句

return、break、continue

break:循環(huán),switch
continue:循環(huán)

第五章 數(shù)組與字符串

java的棧內(nèi)存和堆內(nèi)存

  1. 基本類型的變量和對(duì)象的引用變量都是在函數(shù)的棧內(nèi)存中分配
  2. 堆內(nèi)存用于存放有new創(chuàng)建的對(duì)象和數(shù)組

5.1數(shù)組

1)一維數(shù)組的聲明

格式
類型表示福 數(shù)組名[ ]
類型標(biāo)識(shí)符[ ] 數(shù)組名

int a[];
int[] a;

注意:[ ]可放在變量名后,也可放在類型名后

2)用new初始化

聲明數(shù)組時(shí),沒有給數(shù)組元素分配內(nèi)存

  1. 先聲明數(shù)組再初始化
    格式
    數(shù)組名 = new 類型標(biāo)識(shí)符[元素個(gè)數(shù)] (元素個(gè)數(shù)用整型變量)
int sorce[];
sorce = new int[10];  //分配10個(gè)內(nèi)存
  1. 聲明的同時(shí)進(jìn)行初始化
    格式
    類型標(biāo)識(shí)符 數(shù)組名[ ] new 類型表舒服[元素個(gè)數(shù)]
    或者
    類型標(biāo)識(shí)符[ ] 數(shù)組名 new 類型表舒服[元素個(gè)數(shù)]
int scorce[] = new int[10];

2)靜態(tài)初始化:賦初值初始化數(shù)組

在聲明數(shù)組的同時(shí),給數(shù)組元素賦初值
格式:類型標(biāo)識(shí)符 數(shù)組名[ ]={初值表}

int scoce[]={65,34,78,81,56,92,56,87,90,77}
在這里插入圖片描述

3)數(shù)組的長(zhǎng)度和下標(biāo)

  1. 數(shù)組的長(zhǎng)度
    length
  2. 元素的下標(biāo):
    0~數(shù)組名 length-1

4)數(shù)組的輸入及輸出

  1. 輸入用for循環(huán);遍歷輸出用foreach
    例題:
    1)
Scanner sin = new Scanner(System.in);
int[] a1;
a1 = new int[5];
for(int i = 0;i<a1.length;i++)//輸入用for循環(huán)
{
    a1[i] = sin.nextInt();
}
for (int item:a1)//用foreach遍歷
{
    System.out.println(item);
}
for(int i = 5;i>=0;i--)
{
    System.out.println(a1[i]);
}

2)對(duì)數(shù)組進(jìn)行統(tǒng)計(jì):輸入10個(gè)非0整數(shù),求他們的平均值,并分別統(tǒng)計(jì)這些數(shù)中正數(shù)和負(fù)數(shù)的個(gè)數(shù)

int a[] = new int[10];
Scanner sin = new Scanner(System.in);
int sum = 0,z = 0,f = 0;
for(int i = 0;i<10;i++) {
    a[i] = sin.nextInt();
    sum = sum +a[i];
    if(a[i]>0) z++;
    else  f++;
}
System.out.println(sum);
System.out.println(z);
System.out.println(f);

3)求最大值和第二大值

int max = a[0];
int min = a[1];
if(min>max)
{
    max = a[1];min = a[0];
}
for(int i = 2;i<n;i++)
{
    if(a[i]>max) {
        min = max;
        max = a[i];
    }
    else if(a[i]>min)//a[i]<max
    {
        min =a[i];
    }
System.out.println(max);//最大值
System.out.println(min);//第二大
}

4)輸入n個(gè)整數(shù),找出最大數(shù)

if(a[i]>max) max = a[i];

5)找出最大值下標(biāo)

if(a[index]<a[i]) index = i;

5.2二維數(shù)組

格式:類型標(biāo)識(shí)符 數(shù)組名[ ][ ] 或者類型名[ ] [ ] 數(shù)組名
例如:int a[ ] [ ];或者int [ ] [ ] a;

1)二維數(shù)組的初始化

  1. 用new初始化
    1)先聲明再初始化
    數(shù)組名 = new 類型標(biāo)識(shí)符 [行數(shù)] [列數(shù)]
    例如:int a[ ][ ];或者a = new int [3][4];
    2)生命的同時(shí)進(jìn)行初始化
    類型標(biāo)識(shí)符 數(shù)組名[ ] [ ] = new 類型標(biāo)識(shí)符 [行數(shù)] [列數(shù)]
    類型標(biāo)識(shí)符[ ] [ ] 數(shù)組名 = new 類型標(biāo)識(shí)符 [行數(shù)] [列數(shù)]
    例如:int a [ ] [ ] = new int [3][4]

2)二維數(shù)組的行數(shù)和列數(shù)

int a[ ][ ] = new int [3][4];
行數(shù):a.length 3
列數(shù):
第 i 行:a[i].length 4

Scanner sin = new Scanner(System.in);
int a[][] = new int[3][];   //輸入9個(gè)
//a[0],a[1],a[2]
a[0] = new int[2];
a[1] = new int[4];
a[2] = new int[3];
        
for(int i = 0;i<a.length;i++) //輸入數(shù)組
{
    for(int j=0;j<a[i].length;j++)
    {
        a[i][j]=sin.nextInt();
    }
}
        
for(int[] a1:a)  //輸出數(shù)組
{
    for(int item:a1)
    {
        System.out.print(item+" ");
    }
    System.out.println();
}
在這里插入圖片描述

3)賦初值初始化二維數(shù)組

類型標(biāo)識(shí)符 數(shù)組名 [ ] [ ] ={{初值表},{初值表}……,{初值表}};
例如:
int a [ ] [ ] = {{1,2,3},{4,5,6},{7,8,9},{10,11,12}};

4)二維數(shù)組的輸入和輸出

輸入:

Scanner sin = new Scanner(System.in);
int a[][] = new int [2][3],i,j;
for(i=0;i<2;i++)    //i<a.length
{
    for(j=0;j<3;j++)  //j<a[i].length
    {
        a[i][j]=sin.nextInt();
    }
}

輸出

for(i=0;i<2;i++)
    for(j=0;j<3;j++)
        System.out.print(a[i][j]);
    System.out.println;

5.3 字符串

1)字符串變量的創(chuàng)建

  1. String<變量名>;
    <變量名>=new String("字符串");
    例如:
String s;
s = new String("Hello");
  1. String <變量名>=new String("字符串");
  2. String<變量名> = " 字符串 "

2) String類的常用方法

調(diào)用java定義的格式
<字符串變量名>.<方法名>


在這里插入圖片描述
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容