Linux下安裝Apache
技術標籤:java
註釋
-
平時編寫程式碼比較少的時候,還是可以看懂自己寫的,但是專案結構一旦複雜就需要用到註釋。
-
註釋並不會被執行,是給寫程式碼的人看的
-
書寫註釋是一個非常好的習慣 BAT(百度阿里騰訊)
-
Java中的註釋有三種:
-
單行註釋://
-
多行註釋:/ * 註釋內容 * /
-
文件註釋:/ * * 註釋內容* / 可以設定一些引數,例如:@Description(描述)@Author(作者)
-
-
平時寫程式碼要注意註釋規範
-
有趣程式碼註釋:百度
識別符號
- 關鍵字
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 |
- Java所有的組成部分都需要名字。類名、變數名以及方法名都被稱為識別符號。
識別符號注意點
-
所有的識別符號都只能以字母(A-Z或者a-z),美元符($)、或者下劃線(_)開始
-
首字元之後可以是字母A-Z或者a-z),美元符($)、或者下劃線(_)、或者任何字元組合
-
不能使用關鍵字作為變數名或方法名
-
識別符號是大小寫敏感的
-
合法識別符號舉例:age、$salary、_value、__1_value
-
非法識別符號舉例:123abc、-salary、#abc
-
可以使用中文命名,但是一般不建議這樣去使用,也不建議拼音
資料型別
-
強型別語言
要求變數的使用要嚴格符合規定,所有變數都必須先定義後才能使用
-
弱型別語言
-
Java的資料型別分為兩大類
-
基本型別(primitive type)
基本資料型別: a.數值型別:1. 整數型別:①byte佔1個字元範圍:-128-127
②short佔2個字元範圍:-32768-32767
③int佔4個字元範圍:-2147483648-2147483647(最常用)
④long佔8個位元組範圍:-9223372036854775808-9223372036854775807( 寫long會在字數後面加L)
2. 浮點型別:①float佔4個位元組(float後面要加F)——float不是連續的,他不能表示範圍內的所有數,float是有限、離散、舍入誤差、大約、接近但不等於的
②double佔8個位元組
③浮點就是小數的意思,浮點數不能表示精確的數值,不能用於比較和表示貨幣,像銀行這些一般用BigDecimal數學工具類表示,最好完全避免使用浮點數進行比較
3.字元型別char佔2個位元組(字元用單引號,字串用雙引號,String不是關鍵字是類)
b. boolean型別(布林值):佔1位其值只有true(正確)和false(錯誤)兩個
-
引用型別(reference type):①類②介面③陣列
-
什麼是位元組
-
位(bit):是計算機內部資料儲存的最小單位,11001100是一個八位二進位制數
-
位元組(byte):是計算機中資料處理的基本單位,習慣上用大寫B來表示
-
1B(byte,位元組)=8bit
-
字元:是指計算機中使用的字母,數字,字和符號
-
1bit表示1位
-
1Byte表示一個位元組1B=8b
-
1024B=1KB
-
1024KB=1M
-
1024M=1G
-
1024G=1TB
資料型別擴充套件
-
整數擴充套件、進位制、二進位制0b、十進位制、八進位制0、十六進位制0x
-
所有的字元本質還是數字
-
編碼Unicode :表 、 2個位元組(65536)、是從U0000到UFFFF
-
轉義字元:\t製表符,\n換行
-
輸出裡用號可以比較兩個是否相等,只用一堆==可以當分割線
-
布林值擴充套件:if 可以用與if (xx=true正確的)
boolean flag = true;
if (flag==true){} //新手
if (flag){} //老手
//Less is More! 程式碼要精簡易讀
型別轉換
- 由於Java是強型別語言,所以要進行有些運算的時候,需要用到型別轉換
低-------------------------------------------------------------------高
byte,short,char—>int—>long—>float—>double
public class Demo01{
public static Void main(String[]args){
int i = 128;
byte b = (byte)i;
System.out.println(i);
System.out.println(b);
}
}
//執行結果i=128,b=-128,因為byte對應的類:Byte(大寫B)裡最大值127.這叫記憶體溢位
-
運算中,不同型別的資料先轉化為同一型別,然後進行運算。小數的優先順序大於整數。
-
強制型別轉換
強制轉換:(型別)變數名。強制轉化是從高到低
-
自動型別轉換
從低到高
-
注意點:
- 不能對布林值進行轉換
- 不能把物件型別轉換為不相干的型別
- 在把高容量轉換到低容量的時候,強制轉換,反之自動轉換
- 轉換的時候可能存在記憶體溢位,或者精度問題
public class Demo02{
public static Void main(String[]args){
System.out.println((int)23.7);
System.out.println((int)45.89f);
}
}
//執行結果23和45會丟失小數點部分
-
JDK7新特性
數字可以用下劃線分割
原本:int money = 1000000000;
分割:int money = 10_0000_0000;
-
問題展示
public class Demo03{ public static void main(String[]args){ //操作比較大的數的時候,注意溢位問題 //JDK新特性,數字可以用下劃線分割 int money = 10_0000_0000L; int years = 20; int total = money*years;//這樣執行出來的是負數(-1474836480),計算的時候溢位了 long tata12 = money*years;//這樣執行出來的也是負數,因為預設是int,轉換之前已經存在問題了 long tata123 =money*((long)years);//先把一個數轉換為long } }
變數
-
變數是什麼:就是可以變換的量!(可以理解為一個空間,一個固定的空間,裡面還不知道放了什麼,例如你有個衣櫃,有三個櫃子,你給每個櫃子起了一個名字)
-
Java是一種強型別語言,每個變數都必須宣告其型別。
-
Java變數是程式中最基本的儲存單元,其要素包括變數名,變數型別和作用域。
type varName [=value] [{,varName[=value]}];
int a=1,b=2,c=3; //基本型別
String name = “hello” //引用型別
char X = ‘X’;
double pi = 3.14;
//變數型別 名字 = 值 ;
//資料型別 變數名=值;可以使用逗號隔開來宣告多個同類型變數。
//不建議在一行裡定義多個值,程式可讀性。
-
注意事項:
- 每個變數都有型別,型別可以是基本型別,也可以是引用型別。
- 變數名必須是合法的識別符號。
- 變數宣告是一條完整的語句,因此每一個宣告必須以分好結束
變數作用域
public class Demo{
static int allClicks=0; //類變數(需要加靜態static關鍵詞)
string str = "hello world"; //例項變數(寫在類中間)
public void method(){
int i = 0; //區域性變數(寫在方法裡面的)
}
}
- 類變數
- 例項變數
- 區域性變數
public class Demo04{ //類
//類變數:static
static double salary = 2500;//salary是工資的意思
//屬性:變數
//例項變數:從屬於物件(從屬於這個類);如果不自行初始化,會變成這個型別的預設值(所有預設初始值基本都是0貨0.0);
//布林值:預設是false;
//除了基本型別。其餘的預設值都是null(空的);
//main方法
public ststic void main(String[]args){
//區域性變數;必須宣告和初始化值,而且只在它的上下{}裡有用
int i;//這樣不能輸入要設定值
int i = 10;
//例項變數:變數型別 變數名字 = new Demo04();
new Demo04 = new Demo04();
//類變數:static
}
}
//其他方法
public void add(){
}
常量
-
常量(Constant):初始化(initialize)後不能再改變值!不會變動的值。
-
所謂常量可以理解成一種特殊的變數,它的值被設定後,在程式執行過程中不允許被改變。
final 常量名 = 值;
final double PI = 3.14;
-
常量名一般使用大寫字元。
public class Demo05{
static final double PT = 3.14;//static final修飾符,不存在先後順序
public static void main(String[]arge){
}
}
變數的命名規範
- 所有變數、方法、類名:見名知意
- 類成員變數:首字母小寫和駝峰原則:monthSalary(除了第一個單詞以外,後面的單詞首字母大寫)
- 區域性變數:首字母小寫和駝峰原則
- 常量:大寫字母和下劃線:MAX_VALUE
- 型別:首字母大寫和駝峰原則:Man,GoodMan
- 方法名:首字母小寫和駝峰原則:run(),runRun()
運算子
- java語言支援如下運算子: 優先順序()
- 算數運算子:+,-,*,/,%,++,–
- 賦值運算子=:例如 int a = 10就是把10賦值給a
- 關係運算符:>,<,>=,<=,==,!=,instanceof(==就是等於的意思,!=就是不等於)
- 邏輯運算子:&&,||,!(與或非)
- 位運算子:&,|,^,~,>>,<<,>>>(瞭解!!!)
- 條件運算子: ? , :
- 擴充套件賦值運算子:+=,-=,*=,/=
新建包:在idea裡點選New—package(包的意思就是資料夾)
- 算數運算子(不包括++、–)
package operator; //不能刪掉,就是表示是個包
public class Dmeo06 {
public static void main(String[]arge){
//二元運算子
//Ctrl+D:複製當前行到下一行(idea快捷鍵)
int a = 10;
int a = 20;
int a = 25;
int a = 25;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/b);//執行結果是0,實際0.5,被四捨五入了,所以需要強制轉換,轉其中一個為double
System.out.println(a/(double)b);//執行結果正常
}
}
- 賦值運算子
package operator;
public class Dmeo07 {
public static viod main(String[]args) {
long a = 12312312312313L;
int b = 123;
short c =10;
byte d =8;
System.out.println(a+b+c+d);//執行結果是long型別
System.out.println(b+c+d);//執行結果是int型別
System.out.println(c+d);//執行結果是int型別
//如果兩個操作或多個操作中有一個數為long,那麼結果型別也為long
//如果沒有long,結果都為int型別,不論是不是有int型別
}
}
- 關係運算符
package operator;
public class Dmeo08 {
public static viod main(String[]args) {
//關係運算符返回的結果:正確,錯誤 用布林值表示,所以結果一定是個布林值
int a = 10;
int b = 20;
int c = 21;
System.out.println(a>b);//執行結果:false(錯誤),這結果是對的
System.out.println(a<b);//執行結果:true(正確),這結果是對的
System.out.println(a==b);
System.out.println(a!=b);
System.out.println(c%a);//取餘,模運算;計算過程:c/a 21/10=2.....1
}
}
- 算數運算子(裡的++、–)
package operator;
public class Dmeo09 {
public static viod main(String[]args) {
//++ -- 自增,自減,一元運算子
int a = 3;
int b = a++;//執行完這行程式碼後,先給b賦值,再自增
//a++ a=a+1;
System.out.println(a);
int c = ++a;//執行完這行程式碼後,先自增,再給c賦值
//冪運算 2^3 2*2*2=8 很多運算會使用一些工具來操作!
doule pow = Math.pow(3,2);
System.out.println(pow);
}
}
- 邏輯運算子
package operator;
public class Dmeo10 {
public static viod main(String[]args) {
//&&:與(and)就是兩個都要我、你
//||:或(or)選擇其中一個,我或者你
//!:非(取反)非你即我,不是你就是我
boolean a = true;
boolean b = false;
System.out.println("a && b:"+(a&&b));//邏輯與運算:兩個變數都為真,結果才為真(true)
System.out.println("a || b:"+(a||b));//邏輯與運算:兩個變數有一個為真,則結果才為真(true)
System.out.println("! (a && b) :"+!(a&&b));//如果是真,則變為假,如果是假則變為真
//短路運算
int c = 5 ;
boolean d = (c<4)&&(c++<4);//執行結果為5,c<4沒有被執行是錯的,所以後面的也不會執行
}
}
- 位運算子
package operator;
public class Dmeo11 {
public static viod main(String[]args) {
/*
和與或非的運算是一樣的,但是它是單個的,所以叫位運算
A = 0011 1100
B = 0000 1101
A&B :A與B 就是A與B每一位比較,例如上面的就是A的0011 1100和B的0000 1101每位對比,如果都是1就是1如果有一個是0都是0(結果0000 1100)
A/B :A或B 也是對照比較,不同的是如果有一個是1就是1(0011 1101)
A^B :A非B 對照比較,相同的就是0,不相同就是1(0011 0001)
~B :取反(1111 0010)
2*8 = 16 2*2*2*2
效率極高!!!
<<左移 *2
>>右移 /2
二進位制裡
0000 0000 表示0
0000 0001 表示1
0000 0010 表示2
0000 0011 表示3
0000 0100 表示4
0000 1000 表示8
0001 0000 表示16
*/
System.out.println(2<<3);//執行結果16
}
}
- 條件運算子
package operator;
public class Dmeo13 {
public static viod main(String[]args) {
//三元運算
//X? y:z
//如果x=true,則結果為y,否則結果為z
//必須掌握
int score = 80;
String type = score <60 ?"不及格":"及格";
System.out.println(type);//執行結果:及格
int score = 50;
String type = score <60 ?"不及格":"及格";
System.out.println(type);//執行結果:不及格
}
}
- 擴充套件賦值運算子
package operator;
public class Dmeo13 {
public static viod main(String[]args) {
int a = 10;
int b = 20;
a+=b;//a=a+b
a-=b;//a=a-b
System.out.println(a);
//字串連線符 + String
System.out.println(a+b);//執行結果:30
System.out.println(""a+b);//執行結果:1020,沒有加起來只是連起來了。""是空的字串的意思
System.out.println(""a+b);//執行結果:30
//+號運算子兩側出現字串型別,就會把另外的或其他的都轉化為字串型別
//注意字串在運算的前面才會產生連起來,如果在後面,那麼前面的依然會進行運算
}
}
包機制
-
為了更好的組織類,Java提供了包機制,用於區別類名的名稱空間
-
包語句的語法格式為:
package pkg1[. pkg2[. pkg3…]];
package com.baidu.wwww;
-
一般利用公司域名倒置作為包名:例如百度:com.baidu.www
-
為了能夠使用某一個包的成員,我們需要在Java程式中明確匯入該包。使用"import"語句可完成此功能
import package1[.package2…].(classname|*);
import com.baidu.wwww.Dema01;
import com.baidu.wwww.*; //加個星可以匯入該包下面所有類
直接輸入想匯入的包名,idea會自動生成路徑
這類包要在package包的下面才可以用
-
包的本質就是資料夾
-
百度阿里巴巴開發手冊,裡面都是基礎,可以多去看看
JavaDoc
- javadoc命令是用來生成自己API文件的
- 引數資訊
- @author作者名
- @version版本號
- @since指明需要最早使用的jdk版本
- @param引數名
- @return返回值情況
- @throws異常丟擲情況
- 百度JDK幫助文件,然後進入Oracle官方網站下載
package com.hehe.wwww;
/**
*@author lala
*@version 1.0
*@since 1.8
*/
public class Doc{
String name; //是一個屬性
public String test(String name){
return name; //是一個方法
}
}
筆記視訊連線
https://www.kuangstudy.com/course/play/1317504142650658818#1336560647022665729#1336560811632320514