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