目錄
前言
Java語言是面向對象編程語言,編寫的軟件與平臺無關。具有語法簡單、面向對象、穩定、與平臺無關、多線程、動態等特點。
Java的誕生:1990年Sun公司由James Gosling(Java之父)領導的開發小組精心研究和努力促進了Java的誕生。
提示:java的基礎語法與C語言大部分相同。
例如:c語言的運算符在java中完全一樣。
一、Java入門
1.主體框架
c語言:引入一個頭文件,main函數
#include <stdio.h>
int main()
{
printf("hello world");
return 0;
}
java:一個public的類(類名必須與文件名一致),main方法
public class Main{
public static void main(String[] args){
System.out.println("hello, world");
}
}
注:java里面說的方法和c語言中的函數是一個意思。
2、 輸入輸出數據
c語言:
#include <stdio.h>//頭文件
int main()
{
int n;//聲明一個變量
scanf("%d",&n);//輸入
printf("n = %d\n",n);//輸出
return 0;
}
java:
import java.util.Scanner;//引入一個Scanner的包
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);//創建一個Scanner對象
int n=scanner.nextInt();//輸入
System.out.println("n = "+n);//輸出
}
}
輸入基本型數據
scanner對象調用不同方法讀取用戶輸入的各種基本數據類型:
nextBoolean()、nextByte()、nextShort()、nextInt()、nextLong()、nextFloat()、nextDouble()
上述方法執行時都會阻塞,程序等待用戶在命令行中輸入數據并回車確定。
輸出型數據
System.out.println()或 System.out.print()可輸出串值、表達式的值,區別在于前者輸出數據后換行,后者不換行。在Java中允許使用并置符號“+”將變量、表達式或一個常數值與一個字符串并置一起輸出。
System.out.printf()【類似于C語言的printf()函數】輸出數據。
3、注釋:(與C相同)單行注釋使用“//”,多行注釋用“/**/”
4、編碼風格:
Allmans風格(獨行風格):即左、右大括號各自獨占一行。
Kernighan風格(行尾風格):即左大括號在上一行的行尾,右大括號獨占一格。
二、基本數據類型與數組
1.標識符與關鍵字
1、數字不可以開頭,不可以使用關鍵字(delete/new等)、保留字(operator、const等),區分大小寫,不能包含空格
2、包名:均大寫;
類名、接口名:單詞首字母大寫;
3、變量名、方法名:第一個單詞首字母小寫,其他單詞首字母大寫
4、常量名:所有字母都大寫,多單詞用“_"
2. 基本數據類型
Java中有八種基本數據類型:
邏輯類型:boolean(常量:true、false)
整數類型:byte(1個字節)、short(2個字節)、int(4個字節)、long(以后綴L表示,8個字節)
字符類型:char(char型變量的取值范圍是0~65535,2個字節)
浮點類型:float(單精度浮點型、以后綴F或f表示,4個字節)、double(雙精度,以后綴D或d表示,8個字節)
3. 類型轉換運算
基本數據類型的級別(從低到高):byte 、char、short(平級)=> int => long =>float =>double
1. 把級別低的變量賦給級別高的變量時,系統自動完成數據類型的轉換。(自動類型轉換)
1)表達式的結構的類型自動提升為操作數中最大的類型
2)boolean不參與轉換
3)byte/short/char三者可以計算,但是有先轉換為int類型,不會自動轉換
例如:float x = 100;//100是int整型,賦給浮點型float
2. 把級別高的變量的值賦給級別低的變量時,必須使用類型轉換運算。格式:(類型名)要轉換的值;(強制類型轉換)
例如:int x = (int)34.89;//34.89是float整型,賦給整型int
4. 運算符
算術運算符(+-*/%)、關系運算符(>.<.>=.<=.==)、邏輯運算符【短路與&&,短路或||,取反!;邏輯與&,邏輯或|,邏輯異或^】、賦值運算符【從右往左,左邊只能是變量,復合賦值a+=b->a=a+b、三元運算符[條件表達式?表達式1:表達式2] 【與c語言用法相同】
算術混合運算的精度(從低到高的排序):byte -> short -> char -> int -> long -> float -> double
instanceof運算符:二目運算符,左面的操作元是一個對象,右面是一個類。當左面的對象是右面的類或子類創建的對象時,該運算符運算的結果是true,否則是false。
位運算
原碼、反碼、補碼;
負數:補碼=反碼+1;反碼=原碼符號位不變,其他位取反;
正數和0原、反、補都一樣
- 位運算符
- 按位與&:有0則0
- 按位或 |:有1則1
- 按位異或^:相同為0
- 按位取反~:0為1,1為0
- 算術右移>>:低位溢出,符號位不變,符號位補溢出位(即 /2)
- 算術左移<<:符號位不變,低位補0(即*2)
- 邏輯右移>>>:無符號右移:低位溢出,高位補0
-
進制轉換
二進制:以0b或0B開頭
八進制:以0開頭
十六進制:以0x或0X開頭
進制轉換
二、八、十六進制轉換成十進制
從最低位(右邊),將每個位上的數提取出來,乘以2的(位數-1)次,然后求和,
十進制轉換成二、八、十六進制
將該數不斷除以2/8/16,直到商為0為止,然后將每步得到的余數倒過來,將是對應的二、八、十六進制。
二進制轉成八(十六)進制
從最低位開始,將二進制數每三(四)位一組,轉成對應的八(十六)進制即可
八(十六)進制轉成二進制
5. 數組
一種數據類型(引用類型)
1、動態初始化:數據類型[] 數組名=new 數據類型[大小];int[] a=new int[10];
數組的引用:數組名[下標/索引]
2、動態初始化:
先聲明數組:語法:數據類型 數組名[];int a[]; 或數據類型[] 數組名;int[] b;
再創建數組:語法:數組名=new 數據類型[大小];a=new int[10];
3、靜態初始化:數據類型 數組名[]={元素值,元素值,元素值……};int a={1,2,3…};
-
數組細節
1、數組是多個相同類型數據的組合,實現對這些數據的統一管理 2、數組中的元素可以是任何數據類型,包括基本類型和引用類型,但是不能混用 3、數組創建后,如果沒有賦值,默認int 0,short 0,byte 0,long 0,float 0.0,char\u0000,boolean false,String null 4、使用數組的步驟:1、聲明數組并開辟空間,2、給數組各個元素賦值3、使用數組 5、數組的下標是從0開始的 6、數組下標必須在指定范圍內使用,否則報:下標越界異常,比如:int []arr=new int[5];則有效下標在0-4 7、數組屬引用類型,數組型數據是對象(object)
8、數組擴容或者縮減都需要創建一個臨時數組,復制原數組的內容,再將原數組的數組名指向臨時數組
-
二維數組
1、動態初始化:
1)int arr[][]=new int[2][3];
2)聲明二維數組:int arr2[][];再開空間:arr2=new int [2][3];
3)int[][]str=new int[3][];
for(int i=0;i<str.length;i++){
str[i]=new int[i+1];//給每個一維數組開空間
for(int j=0;j<str[i].length;j++){
str[i][j]=i+1;//賦值
}
}
2、靜態初始化:類型 數組名[][]={{值1……},{值2……},……};
3、二維數組的聲明方式:int[][]y或者int[]y[];或者int y[][];
int[]x,y[]; x是int類型的一維數組,y是int類型的二維數組
6.控制結構(與c使用一致)
- if條件分支語句
/*if語句*/ if(語句){//語句的表達式必須是boolean類型 若干語句; } /*if-else 語句*/ if(表達式){ 若干語句; }else{ 若干語句; } /*if-else if-else語句*/ if(表達式){ 若干語句; }else if{ 若干語句; } …… else{ 若干語句; }
- 分支控制
switch(表達式) { case 常量值1: 若干語句; break; case 常量值2: 若干語句; break; …… case 常量值n: 若干語句; break; default: 若干語句; }
switch語句中,“表達式”的值可以為byte、short、int、char和String類型
- 循環控制
/*for循環語句*/ for(表達式1;表達式2;表達式3){ 若干語句 } /*while循環語句*/ while(表達式){ 若干語句 } /*do-while循環語句*/ do{ 若干語句 }while();
- break與continue:break結束整個循環語句;continue結束本次循環,不再執行本次循環中continue后面的語句,而轉入下一次循環。
-
for語句與數組
for(聲明循環變量:數組的名字){ …… }
注:1)聲明的循環變量的類型必須和數組的類型相同。2)for(聲明循環變量:數組的名字)中的“聲明循環變量”必須是變量聲明,不可以使用以聲明過的變量。
總結
以上就是今天要講的內容,本文僅僅介紹了Java的入門必備的知識,包含了數據類型、運算符、數組和語句結構