黑马程序员_Java基础(环境搭建、进制转换、运算符)
------- android培訓(xùn)、java培訓(xùn)、期待與您交流! ----------
?
————————Java環(huán)境搭建?常量和變量?運算符
Java概述:
Java 是SUN公司推出的一種面向Internet的編程語言,
現(xiàn)在已經(jīng)成為WEB應(yīng)用程序的首選開發(fā)語言
特點:完全面向?qū)ο?#xff0c;安全可靠,與平臺完全無關(guān)(跨平臺性,只需安裝JVM(Java VirtualMachine)---Java虛擬機)
Java環(huán)境搭建:
JRE(Java Runtime Environment)java運行環(huán)境
JDK(Java Development Kit)Java開發(fā)工具包----其中包含了JRE
1、從http://www.oracle.com或者java.sun.com下載JDK開發(fā)工具包,安裝
????? 2、Path變量:將JDK中bin目錄告訴系統(tǒng)?
計算機----屬性----高級系統(tǒng)設(shè)置----環(huán)境變量----系統(tǒng)變量----path: D:\glassfish3\jdk7\bin;(我自己電腦上的)
????? 技巧:新建%JAVAHOME% = D:\glassfish3???????? Path = %JAVAHOME%\jdk7\bin;?這樣可以減少或者避免JDK更換目錄時更改Path變量(更改Path容易誤操作其他系統(tǒng)變量)
????? 臨時變量設(shè)置:(dos命令行中)set path = D:\glassfish3\jdk7\bin -局限性:只在當(dāng)前窗口下有用
環(huán)境變量設(shè)置好之后,打開dos命令行,輸入javac回車驗證是否設(shè)置成功
HelloWorld小程序:
新建一個txt文件,將代碼寫好后保存,命名為Demo.java
將文件保存到E:\java\day01 目錄下
打開命令提示符(開始----運行----cmd)輸入E:回車----cdjava\day01?---- javac Demo.java(編譯)----java Demo(運行)
ClassPath環(huán)境變量配置
允許在其他目錄下運行Classpath 目錄下的程序
Dos命令行下set classpath = E:\java\day01回車就可以在其他地方運行Classpath目錄下的.java文件
注意:JVM先查找Classpath目錄,沒找到再找當(dāng)前目錄
注釋:
單行注釋: //注釋內(nèi)容???? ??(不被解析)
多行注釋:/*注釋內(nèi)容*/??????????(不被解析)
文檔注釋:/**注釋內(nèi)容*/
寫程序先下注釋:需求----思路----步驟----程序注釋
標(biāo)識符:
程序中的自定義的名稱,由數(shù)字0-9、52個英文字母和_$組成
數(shù)字不可以開頭
不可以使用關(guān)鍵字
規(guī)范:包名----全部小寫、類名接口名----首字母大寫、常量名----全部大寫
常量和變量:
常量:
整數(shù)(常見三種表現(xiàn)形式十進(jìn)制、八進(jìn)制、十六進(jìn)制)、小數(shù)、Boolean型常量、字符常量、字符串常量、null常量
變量:
在內(nèi)存中開辟一片空間用于存儲不確定的數(shù)據(jù)
格式:數(shù)據(jù)類型變量名 = 初始化值
變量分為
基本數(shù)據(jù)類型:字符型(char)數(shù)值型(整數(shù)類型(byte^1個八位short^2int^4 long^8)浮點類型(float^4double^8))
引用數(shù)據(jù)類型:class(類)interface(接口) [](數(shù)組)
進(jìn)制:
二進(jìn)制與十進(jìn)制之間的互相轉(zhuǎn)換
十轉(zhuǎn)二:對十進(jìn)制數(shù)不斷除2取余數(shù)
方法:Integer.toBinaryString(6) //將6轉(zhuǎn)換成二進(jìn)制
代碼:
1、StringBuffer的方法
??? publicstatic void toBin(int x)
??? {
??????? StringBuffersb = new StringBuffer();//這個是一個容器,
??????? while(x>0)//當(dāng)x>0時,重復(fù)執(zhí)行除以2模以2的過程
??????? {
??????????? sb.append(x%2);//添加x模以2的值
??????????? x= x>>1;//模以2之后再除以2
??????? }
??????? System.out.println(sb.reverse());//reverse()方法的作用是倒置
??? }
2、數(shù)組的方法(查表法)
??? publicstatic void toBinArray(int x)
??? {
??????? char[] chs = {'0','1'};//表
??????? char[] arr =newchar[32];//自定義數(shù)組
??????? int pos = arr.length;//定義指針
??????? while(x!=0)
??????? {
??????????? int temp = x&1;//模以1
??????????? arr[--pos]= chs[temp];//查表
??????????? x= x >>>1;//除以2
??????? }
??????? for(int i=pos;i<arr.length;i++)//從指針pos位置開始遍歷打印
??????? {
??????????? System.out.print(arr[i]);
??????? }
??? }
二轉(zhuǎn)十:二進(jìn)制乘以2的過程
其他進(jìn)制轉(zhuǎn)換:
先轉(zhuǎn)換成二進(jìn)制 ?如:
01011010 轉(zhuǎn)換成十六進(jìn)制則四個為一組0101? 1010?---- 0x5A
01011010 轉(zhuǎn)換成八進(jìn)制則三個為一組001 011 010?---- 132
二進(jìn)制轉(zhuǎn)換成十六進(jìn)制
1、用StringBuffer的方法
??? publicstatic void toHex(int x)
??? {
??????? StringBuffer sb = new StringBuffer();//定義一個容器
??????? while(x>0)//x>0時,循環(huán)模以15除以16
??????? {
??????????? int temp = x&15;//定義一個容器用以臨時存儲模以15所得的結(jié)果
??????????? if(temp>9)//temp大于9,則轉(zhuǎn)換成字母再添加
??????????????? sb.append((char)(temp-10+'A'));
??????????? else//temp小于9,則直接添加
??????????? {
??????????????? sb.append(temp);
??????????? }
??????????? x= x>>>4;//除以16
??????? }
??????? sb.reverse();//反轉(zhuǎn)
??????? System.out.println(sb);
? }
用數(shù)組的方法(查表法):
??? publicstatic void toHexArray(int x)
??? {
??????? char[] chs = {'0','1','2','3',??//定義一個數(shù)組,此數(shù)組為表
??????????????????? '4','5','6','7',
??????????????????? '8','9','A','B',
??????????????????? 'C','D','E','F'};
???????
??????? char[] arr =newchar[8];//定義一個數(shù)組容器
??????? int pos = arr.length;//定義一個指針等于數(shù)組的長度
??????? while(x>0)//循環(huán)模以15除以16
??????? {
??????????? int temp = x&15;//模以15存儲于臨時變量中
??????????? arr[--pos]= chs[temp];//將所得數(shù)作為指針賦值給我們自己定義好的數(shù)組高位
??????????? x= x >>> 4;//除以16
??????? }
??????? for(int i=pos;i<arr.length;i++)//遍歷打印,從指針的位置開始打印,就不會打印出空格
??????? {
??????????? System.out.print(arr[i]);
??????? }
??? }???
負(fù)數(shù)的二進(jìn)制
?????????? 為該數(shù)的正數(shù)二進(jìn)制取反(1變成0,0變成1)加1如:
???????????????? 6:0000 0000 0000 0000 0000 0000 0000 0110
取反:1111 1111 1111 1111 1111 1111 1111 1001
加1:1111 1111 11111111 1111 1111 1111 1010?à -6
類型換轉(zhuǎn):
代碼: byte b = 3;
?????????? ?b = b + 2; /*這里2為int類型占4個八位,和b作運算b被強制提升為int類型,所得結(jié)果也是int類型。此時不能將給過賦值給只占一個八位的b,程序報錯*/
應(yīng)該改為 b = (byte) (b + 2);//強制類型轉(zhuǎn)換
????? 注意:System.out.println(’a’+1);//打印98,a為char類型,占2個八位,1位int類型,占4個八位。它們運算時’a’被提升
運算符:
1、?????????算數(shù)運算符:
+ - * / %(取余數(shù)) ++ --
????? %(取余數(shù)):10%4 = 2;5%1 = 0;1%5 = 1;1%-5 = 1;-2%6= -2左邊小于右邊結(jié)果是左邊,左右相等結(jié)果是0,右邊等于1結(jié)果為0
++ --:自增自減運算符?
注意:System.out.println(“5+5=”+5+5) //打印5+5=55這里后面的5被提升為字符串類型
2、轉(zhuǎn)義字符:通過 \來轉(zhuǎn)換后面字母或者符號的含義
System.out.println(“HelloWorld”)//打印后自動加上換行,相當(dāng)于后面加了一個\n(linux)\r\n(windows)
System.out.print(“HelloWorld ”)//則不換行
另外:\b退格? ?\r按下回車 ??\t制表符
注意:打印雙引號:System.out.println(“\“HelloWorld \” ”)//打印結(jié)果為“HelloWorld”
3、賦值和比較運算符
????? 賦值運算符:
=? +=? *=? /=? %=
?? ????? 注意:short s = 4;
????????????? s+=5;//只進(jìn)行賦值運算
????? 比較運算符:
==? !=?<? >? <=?>=? instanceof
?????????? 返回Boolean型變量值
4、邏輯運算符
與&?或|?異或^?非!?短路&&?短路||???用于連接Boolean類型的表達(dá)式
false&&true= false //這里左邊為false則不判斷右邊提高運算效率
true || false =true//這里左邊為true則不判斷右邊提高運算效率
位運算:
<<左移? >>右移? >>>無符號右移?? $與運算? |或運算? ^異或運算? ~反碼
a<</>>b:a相當(dāng)于乘以/除以2的b次方如:3<<2=3*22=12
有符號右移>>,在右移過程中,最高位由原有數(shù)據(jù)而定
無符號右移>>>,在右移過程中,最高位補0。
位運算的計算效率最高
三元運算符
A > B ? C:D; 為true則C為false則D //運算完一定有一個結(jié)果,這個是三元運算符的局限性
?
------- android培訓(xùn)、java培訓(xùn)、期待與您交流! ----------
?????
?
總結(jié)
以上是生活随笔為你收集整理的黑马程序员_Java基础(环境搭建、进制转换、运算符)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java怎么运行_java怎么运行
- 下一篇: 开发信模板之失联跟进样品篇