1. 程式人生 > >JAVA 從入門到Just met java

JAVA 從入門到Just met java

編程語言 參數 program middle 包括 goto 環境變量的配置 運行機制 integer

學開發主要搞懂三個問題,是什麽,為什麽學,能做什麽 什麽是計算機程序:計算機按照某種順序而完成的一系列有序指令的集合。
什麽是開發語言:人類與計算機溝通的語言
什麽是java:一門優秀的開發語言, 為什麽學java:這就問你自己了,可能吃飽了撐的。不想早死就別學。
/** 計算機如何解決問題 * 例如:給我一杯水 轉身到廚房 找到一個杯子 找到水壺 在杯子中倒入一些水 拿著杯子走回桌子 * 程序是用特殊的編程語言寫出來表達如何解決我問題的 * 程序=算法+數據結構 * 算法:1.我們要讓計算機做計算,就需要像這樣找出計算步驟,如何用編程語言寫出來
* 2.計算機做的所有事情都叫算法 * 3.計算機的步驟就是算法 * 計算機的思維 * 2x+6=20 * 解方程 * 枚舉 * 二分搜索 * 枚舉求最大公約數 * 程序的執行步驟:解釋 翻譯 執行 */
java的作用:什麽桌面程序,web程序,安卓程序等等都可以做
Java技術平臺: 1.java SE是java的核心,能完成桌面應用程序的開發,是其它兩者的基礎; 2.java EE主要用於網絡程序和企業應用開發。 3.java ME這個基本上沒人用可以忽略
java語言的特點:
簡單,跨平臺,面向對象,可移植性,分布式,解釋通用性,穩健,安全,多線程和同步機制。
開發java程序,先下個jdk,再下一個ide(理解成開發工具就行),或者可以直接下個MyEclipse,安裝都是傻瓜式操作。 jdk和jre的解釋:

1,JDK:Java Development Kit,java的開發和運行環境,java的開發工具和jre。

2,JRE:Java Runtime Environment,java程序的運行環境,java運行的所需的類庫+JVM(java虛擬機)。

3,配置環境變量:

讓java jdk\bin目錄下的工具,可以在任意目錄下運行,原因是,將該工具所在目錄告訴了系統,當使用該工具時,由系統幫我們去找指定的目錄。

環境變量的配置:

1.安裝完成後,右擊"我的電腦",點擊"屬性",選擇"高級系統設置"

2.選擇"高級"選項卡,點擊"環境變量";

1):永久配置方式:JAVA_HOME=%安裝路徑%\Java\jdk path=%JAVA_HOME%\bin

2):臨時配置方式:set path=%path%;C:\Program Files\Java\jdk\bin

特點:系統默認先去當前路徑下找要執行的程序,如果沒有,再去path中設置的路徑下找。

classpath的配置:

1):永久配置方式:classpath=.;c:\;e:\

2):臨時配置方式:set classpath=.;c:\;e:\

java的運行機制:

舉個栗子: package com.alphabet.entry; public class HelloWorld { public static void main(String[] args) { System.out.println("helloworld"); }
}
編譯之後, 我們得到了HelloWorld.class,
在HelloWorld裏面, 我們調用了 JAVA API中的 java.lang.System這個類的靜態成員對象 out, out 的靜態方法: public static void println(String string); 然後我們讓虛擬機器來執行這個HelloWorld。
1. jvm會在classpath中找到HelloWorld.class。
2. jvm中的解釋器(interpret)會把HelloWorld.class解釋成字節碼。
3. 把解釋後的字節碼交由execution engin執行。
4. execution engin會調用native method(即平臺相關的字節碼)來在host system的stdout(顯示器)的指定部分打印出指定的字符串。
5. 這樣, 我們就看到"helloworld"字樣了。

javac命令和java命令做什麽事情呢?

要知道java是分兩部分的:一個是編譯,一個是運行。

javac:負責的是編譯的部分,當執行javac時,會啟動java的編譯器程序。對指定擴展名的.java文件進行編譯。 生成了jvm可以識別的字節碼文件。也就是class文件,也就是java的運行程序。

java:負責運行的部分.會啟動jvm.加載運行時所需的類庫,並對class文件進行執行.

一個文件要被執行,必須要有一個執行的起始點,這個起始點就是main函數.

java的基礎語法:
1.Unicode字符集:java語言使用的Unicode標準字符集。在Unicode字符集中,前128個字符剛好是ASCII碼,但大部分國家的“字母表”中的字母都是Unicode字符集中的字母,因此java所使用的字母不僅包括通常的拉丁字母,還包括漢子、希臘字母等等。 java關鍵字
abstract assert boolean break byte
case catch char class const
continue default do double else
enum extends final finally float
for goto if implements import
instanceof int interface long native
new package private protected public
return strictfp short static super
switch synchronized this throw throws
transient try void volatile while
true false null
標識符:

1),數字不可以開頭。

2),不可以使用關鍵字。

變量的作用域和生存期:

變量的作用域:

作用域從變量定義的位置開始,到該變量所在的那對大括號結束;

生命周期:

變量從定義的位置開始就在內存中活了;

變量到達它所在的作用域的時候就在內存中消失了;

數據類型:java數據類型是一切編程的基礎。
java絕大部分的操作是基於內存的,如果沒有內存一切都無法說起,而數據類型就是跟內存息息相關的事物,他會讓我們合理的使用內存。只有基礎越牢固,才能越往上。

變量就是申請內存來存儲值。也就是說,當創建變量的時候,需要在內存中申請空間。

內存管理系統根據變量的類型為變量分配存儲空間,分配的空間只能用來儲存該類型數據。

常用數據類型:byte、short、int、long、float、double、char、boolean

簡單類型

boolean

byte

char

short

int

long

float

double

void

二進制位數

1

8

16

16

32

64

32

64

--

封裝器類

Boolean

Byte

Character

Short

Integer

Long

Float

Double

Void

package com.alphabet.entry; import java.lang.annotation.Native;
public class DataType { /** * byte 數據類型是8位、有符號的,以二進制補碼表示的整數; * 源碼: public static final byte MIN_VALUE = -128; * 最小值是 -128(-2^7); * 源碼:public static final byte MAX_VALUE = 127; * 最大值是 127(2^7-1); * 默認值是 0; * byte 類型用在大型數組中節約空間,主要代替整數,因為 byte 變量占用的空間只有 int 類型的四分之一; * by1是基本數據類型,by2是封裝類 */ public static void byteType() { // TODO Auto-generated method stub byte by1=6; System.out.println(by1); Byte by2=8; String test=by2.toString(); System.out.println(test); System.out.println(test.getClass()); } /** * short 數據類型是 16 位、有符號的以二進制補碼表示的整數 * 最小值是 -32768(-2^15); * 最大值是 32767(2^15 - 1); * Short 數據類型也可以像 byte 那樣節省空間。一個short變量是int型變量所占空間的二分之一; * 默認值是 0; * */ public static void shortType() { // TODO Auto-generated method stub short sh=8; System.out.println(sh); Short sh2=8; System.out.println(sh2); } /** * int 數據類型是32位、有符號的以二進制補碼表示的整數; * 最小值是 -2,147,483,648(-2^31); * 最大值是 2,147,483,647(2^31 - 1); * 一般地整型變量默認為 int 類型 * 默認是0 * 也是最常用的類型 * @Native public static final int MIN_VALUE = 0x80000000; * @Native public static final int MAX_VALUE = 0x7fffffff; * */ public static void intType() { // TODO Auto-generated method stub int int1=6; Integer int2=8; int int3=int2.intValue(); System.out.println(int1); System.out.println(int2); System.out.println(int3); System.out.println(int2.MAX_VALUE); System.out.println(int2.MIN_VALUE); } /** * long:長整型 * long 數據類型是 64 位、有符號的以二進制補碼表示的整數; * 最小值是 -9,223,372,036,854,775,808(-2^63); * 最大值是 9,223,372,036,854,775,807(2^63 -1); * 這種類型主要使用在需要比較大整數的系統上; * */ public static void longType() { // TODO Auto-generated method stub long long1=6; Long long2=8L; long long3=long2.SIZE; System.out.println(long1); System.out.println(long2); System.out.println(long3); System.out.println(long2.MAX_VALUE); System.out.println(long2.MIN_VALUE); System.out.println(long2.max(100, 999999999)); } /** * float 數據類型是單精度、32位、符合IEEE 754標準的浮點數; * float 在儲存大型浮點數組的時候可節省內存空間; * 默認值是 0.0f; * 浮點數不能用來表示精確的值,如貨幣; * */ public static void floatType() { // TODO Auto-generated method stub float f1=6; Float f2=8f; float f3=f2.SIZE; System.out.println(f1); System.out.println(f2); System.out.println(f3); System.out.println(f2.MAX_VALUE); System.out.println(f2.MIN_VALUE); } /** * char類型是一個單一的 16 位 Unicode 字符; * 最小值是 \u0000(即為0); * 最大值是 \uffff(即為65,535); * char 數據類型可以儲存任何字符; * char可以輸入任何東西,但是只唯一 */ public static void charType() { char c1=‘f‘; System.out.println(c1); Character c2=‘f‘; System.out.println(c2); /** * 為什麽char和character不能來草字符串呢 * 首先String不屬於8種基本數據類型,String是一個引用類型的對象.他是專門用來處理字符串的 * 因為char采用的是Unicode編碼,所以基本上可以容納所有的字符. * 而String是用來操作字符串的,String其實也就是一個char類型的數組 */ char[] c= {‘1‘,‘2‘,‘a‘,‘b‘,‘c‘,‘d‘,‘e‘}; String d="12abcde"; if (c.equals(d)) { System.out.println("一樣的"); } } /** * double 數據類型是雙精度、64 位、符合IEEE 754標準的浮點數; * 浮點數的默認類型為double類型; * double類型同樣不能表示精確的值 * //浮點計算是有誤差的 例如 * System.out.println(1.2-1.1); * double和float表示精確的數有問題 */ public void doubleType() { // TODO Auto-generated method stub double d1=6; Double d2=8d; double d3=d2.SIZE; System.out.println(d1); System.out.println(d2); System.out.println(d3); System.out.println(d2.MAX_VALUE); System.out.println(d2.MIN_VALUE); } /** * boolean數據類型表示一位的信息; * 只有兩個取值:true 和 false; * 這種類型只作為一種標誌來記錄 true/false 情況; * 默認值是 false; * */ public static void booleanType() { // TODO Auto-generated method stub boolean b1=true; Boolean b2=false; boolean b3=b2.booleanValue(); System.out.println(b1); System.out.println(b2); System.out.println(b3); System.out.println(b2.hashCode()); System.out.println(b2.getClass()); } public static void main(String[] args) { System.out.println("Hello"); } }
  1. 運算符號:

4)、邏輯運算符。

& | ^ ! && ||

邏輯運算符除了 ! 外都是用於連接兩個boolean類型表達式。

&: 只有兩邊都為true結果是true。否則就是false。

|:只要兩邊都為false結果是false,否則就是true

^:異或:和或有點不一樣。

兩邊結果一樣,就為false。

兩邊結果不一樣,就為true.

& 和 &&區別: & :無論左邊結果是什麽,右邊都參與運算。

&&:短路與,如果左邊為false,那麽右邊不參數與運算。

| 和|| 區別:|:兩邊都運算。

||:短路或,如果左邊為true,那麽右邊不參與運算。

5)、位運算符:用於操作二進制位的運算符。

& | ^

<< >> >>>(無符號右移)

練習:對兩個變量的數據進行互換。不需要第三方變量。

int a = 3,b = 5;-->b = 3,a = 5;

方法一:

a = a + b; a = 8;

b = a - b; b = 3;

a = a - b; a = 5;

方法二:

a = a ^ b;//

b = a ^ b;//b = a ^ b ^ b = a

a = a ^ b;//a = a ^ b ^ a = b;

練習:高效的算出 2*8 = 2<<3;

數據類型轉換

自動類型轉換

數據類型要兼容

目標類型大於類型

強制類型轉換

目標類型小於源類型

運算符的優先級:

最高的優先級:()

最低的優先級:賦值運算符(=)

優先級順序:算數運算符>關系運算符>邏輯運算符

Scanner sc=new Scanner(System.in);//在Consolo控制輸出

// Scanner out=new Scanner((Readable) System.out);

條件語句:if(條件){語句序列} 如果什麽什麽就什麽什麽

switch (key) { case value: break;
default: break; }

JAVA 從入門到Just met java