JAVA基礎學習DAY01筆記
標簽: JAVA
JAVA基礎
Java三大版本
- Java的可移植性:JVM
- JavaSE :標準版(桌面程序,控制臺開發…)
- JavaME :嵌入式開發(沒人用了)
- JavaEE:企業級開發(web、服務器開發)
JDK、JRE、JVM
- JDK:Java Development Kit
- JRE:Java Runtime Environment
- JVM:JAVA Virtual Machine
開發環境(JDK)包含運行環境(JRE)包含虛擬機(JVM),跨平臺的核心是JVM
Hello,world!
在編寫第一個hello world時,我遇到了一些情況,我使用visual code配置java環境進行編程。
- 文件名和class名必須一致,不然編譯不通過,并且首字母盡量大寫
- 盡量不要使用中文,某些控制臺會亂碼
- JAVA大小寫敏感!
在cmd使用javac Test.java進行編譯,編譯完成后生成Test.class文件,執行java Test即可執行程序。
vc搭配好環境之后可以直接運行
Java程序運行機制
Java是結合了編譯型和解釋型的語言,先通過Java編譯器編譯成.class文件,再通過解釋器在操作系統中運行
注釋規范
- 單行注釋
// 我是單行注釋
- 多行注釋
/*
我是多行注釋
*/
- 文檔注釋(JavaDoc)
/**
* @Description HelloWorld
* @Author 10_Addtiply
* 大公司經常要求
*/
標識符和關鍵字
- 唯一Amazing我的一點:可以用中文定義變量!
數據類型
-
強類型語言:要求變量的使用要嚴格符合規定,所有變量必須先定義后使用。安全性高,速度慢
-
弱類型語言:相反(JS)
-
Java的數據類型分為兩大類
-
基本類型
- char:2 Bytes
- byte:1 Byte
- short:2 Bytes
- int:4 Bytes
- long:8 Bytes
- bool:1 bit
int num1 = 10; byte num2 = 200;//報錯,只能表示-128~127 short num3 = 30; long num4 = 30L;//Long類型要在數字后加L float num5 = 50.1F;//Float同上 double num6 = 3.1415926; char name = 'A';//只能是一個字符 // 字符串,不是關鍵字,是類 String namea = "Bill";
-
引用類型
-
常見問題
各種進制的整數表示
int i = 10;
int i2 = 010; //8進制
int i3 = 0x10; //16進制
int i4 = 0b10; //2進制
浮點數比較
浮點數直接比較會有舍入等問題,得到的結果有問題
使用 BigDecimal 數學工具類
類型轉換
Java是強類型語言,類型不同的變量運算需要類型轉換:
byte,short,char→int→long→float→double
int i = 128;
byte b = i; //報錯
byte b = (byte) i; //強制轉換,報錯,內存溢出
long l = i; //自動轉換,OK
-
強制轉換 (類型)變量名 高–低
-
自動轉換 低–高
-
注意點:
- 不能對bool進行轉換
- 不能把對象類型轉換為不相干的類型
- 把高容量轉低容量,強制轉換
- 轉換的時候可能存在內存溢出,或者精度問題
- JDK7新特性,數字內可以用下劃線分割
int money = 10_000_000; System.out.println(money); //10000000
常量和變量
變量默認值
實例變量:如果不自行初始化,默認值都是0,0.0
布爾值:默認false
除了基本類型,其余的默認值都是null
常量
關鍵詞final
// 修飾符不存在先后順序
static final double PI = 3.14;
final static double PI = 3.14;
運算符
與C++差不多
數學類Math,經常使用
Math.pow(2,3); //2^3,2的3次方
包機制
**包的本質就是文件夾。**Java提供包機制用于區別類名的命名空間。
調用包語句的語法為:
import package pkg1[. pkg2[. pkg3...]];
小技巧,如果你使用了一個其他包里的東西,如Date
,但是你不知道他在哪個包,你可以按Alt+Enter,這樣IDE自動幫你加上import這句話。
JavaDoc
JavaDoc命令用于生成自己的API文檔
/**
* @author 10_Addtiply
* @version 1.0
* @since 1.8
*/
public class Helloworld {
/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception{
int money = 1999_999;
System.out.println(money);
}
}
使用IDEA的Tools→Generate JavaDoc生成JavaDoc,注意Locale填zh_CN則doc是中文的,命令行參數-encoding UTF-8 -charset UTF-8 -link http://docs.Oracle.com/javase/7/docs/api
生成的JavaDoc
智能推薦
JAVA基礎day01
一、JAVA的概念 1.名字的由來 java的名字起源于印度尼西亞的爪哇島,是程序員開會時喝著產自爪哇島的咖啡,靈機一動取名java,所以我們也可以看到java的圖標是一杯咖啡。 2.java之父 詹姆斯·高斯林 (James Gosling),加拿大人 ,是SUN公司的職工。Java編程語言的共同創始人之一,一般公認他為“Java之父” 3.java的分類 ...
java基礎day01
一、關鍵字的概述和特點 概述:被Java語言賦予特定含義的單詞 特點: 組成關鍵字的字母全部小寫 常用的代碼編輯器,針對關鍵字有特殊的顏色標記,不用去可以的記 關鍵字不能作為類名 方法名 變量名等 二、常量的概述和分類 概述:在程序執行的過程中,其值不可以發生改變的量 分類: 字符串常量 用雙引號括起來的內容(“HelloWorld”) 整數常量 所有整數(12,-23) ...
freemarker + ItextRender 根據模板生成PDF文件
1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...
猜你喜歡
電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!
Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...
requests實現全自動PPT模板
http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...
Linux C系統編程-線程互斥鎖(四)
互斥鎖 互斥鎖也是屬于線程之間處理同步互斥方式,有上鎖/解鎖兩種狀態。 互斥鎖函數接口 1)初始化互斥鎖 pthread_mutex_init() man 3 pthread_mutex_init (找不到的情況下首先 sudo apt-get install glibc-doc sudo apt-get install manpages-posix-dev) 動態初始化 int pthread_...
統計學習方法 - 樸素貝葉斯
引入問題:一機器在良好狀態生產合格產品幾率是 90%,在故障狀態生產合格產品幾率是 30%,機器良好的概率是 75%。若一日第一件產品是合格品,那么此日機器良好的概率是多少。 貝葉斯模型 生成模型與判別模型 判別模型,即要判斷這個東西到底是哪一類,也就是要求y,那就用給定的x去預測。 生成模型,是要生成一個模型,那就是誰根據什么生成了模型,誰就是類別y,根據的內容就是x 以上述例子,判斷一個生產出...