•   本文件是以學習筆記的概念為基礎,用於自我的複習紀錄,不過也開放各位的概念指證.畢竟學習過程中難免會出現觀念錯誤的問題.也感謝各位的觀念指證.
  • 安裝JDK

    1. 在Oracle網站中找自己系統的JDK下載位置
    2. 設定 PATH windows10 =>本機=>右鍵內容=>進階系統設定=>進階=>環境變數 設定
  • 第一個程式Hello World

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public class {
    /**
    程式的預設的進入點,
    必須是public static,
    另外這是Java的多行註解方式.
    */
    public static void main(String args[]){
    // 在console輸出Hello World
    System.out.println("Hello World");
    }//main-end
    }//HelloWorld class-end
  • 基本型別與變數宣告

型別類別 資料型態 位元組數(byte) 資料範圍(range) 初始值(非預設值)
字元 char(Unicode) 2 ‘u0000’~’uFFFF’ 0~65535 ‘u0000’
整數 byte 1 -128 ~ 127 0
short 2 -32768 ~ 32767 0
int 4 $-2^{31}$ ~ $2^{31}$-1 0
long 8 $-2^{63}$ ~ $2^{63}$-1 0L
浮點數 float 4 -3.4E+38 ~ 1.4E-45 0.0F
double 8 -1.7E+308 ~ 4.9E-324 0.0D
布林 boolean 1 true or false false
1
2
3
4
5
6
7
8
9
10
11
// 數值資料範圍
public class DataRange{
public static void main(String[]args){
System.out.println("byte range: " + Byte.MIN_VALUE + " ~ " + Byte.MAX_VALUE);
System.out.println("short range: " + Short.MIN_VALUE + " ~ " + Short.MAX_VALUE);
System.out.println("int range: " + Integer.MIN_VALUE + " ~ " + Integer.MAX_VALUE);
System.out.println("long range: " + Long.MIN_VALUE + " ~ " + Long.MAX_VALUE);
System.out.println("float range: " + Float.MIN_VALUE + " ~ " + Float.MAX_VALUE);
System.out.println("double range: " + Double.MIN_VALUE + " ~ " + Double.MAX_VALUE);
}//main-end
}//class-end
  • 存取修飾字元(Modifier)存取權限

存取修飾字元 同一class中 同一Package中 子類別 不同Package
private yes no no no
default yes yes no no
protected yes yes yes (yes) 繼承才能使用
public yes yes yes yes

除了內部類別(Inner class)外,一般外部類別只能使用default 或 public 的存取權限

  • 變數宣告

    規則:變數名稱的第一個字元必須是英文字母,底線[_]或[$]其中之一

    1
    2
    3
    4
    5
    /**
    [存取修飾字元] [型別] [變數名稱];
    [存取修飾字元] [型別] [變數名稱] = [值]; */
    public int test;
    public int num = 10;
  • final

    規則:同變數宣告一樣,不過在中間加了final關鍵字,指的是這個變數只能設定一次,起始值即是最終值.

    1
    2
    3
    /**
    [存取修飾字元] final [型別] [變數名稱] = [值]; */
    public final int num = 10;
  • 靜態[static]

    對於一些類別中的物件裡,目的在於”分享該物件”,而這時候就可以使用static修飾字了

    1
    2
    3
    4
    5
    6
    7
    public static int sum = 0;
    //使用final static 時變數名稱第一個字元必須為大寫
    public final static int PI = 3.1416;
    //此System的console靜態方法不需要實體化System就可以使用.
    Console console = System.console();
    //全程式裡面共享唯一一個的PI值.
    double PI = Math.PI;

靜態的部分牽扯到跨類別問題,這裡只簡單講解一下.詳細請參考良葛格Java學習筆記"關於靜態"

  • 運算子

    • 算術運算子

運算子 名稱 運算子種類 大专栏  Java學習筆記(基本語法)t">備註
+ 正號 單元
加法 雙元
- 負號 單元
減法 雙元
* 乘法 雙元
/ 除法 雙元
% 餘數 雙元 浮點數也可使用
++ 遞增 雙元
- - 遞減 雙元

遞增(++)與遞減(–)的範例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
int a = 0;
int b = 0;
b = a++ - a++ + ++a ;
System.out.println("a = "+ a +" b = " + b);
/** 解法
=>b = a(++) - a(++) + (++)a
=>b = a(0+1) - a(1+1) + (2+1)a ,a=3
=>b = 0 - 1 + 3
=> a = 3, b=2
**/
int c = 0;
int d = 0;
d = c-- - c-- + --c ;
System.out.println("c = " + c + " d = "+ d );
/** 解法
=>d = c(--) - c(--) + (--)c
=>d = c(-1) - c(-2) + (-3)c , c =-3
=>d = 0 - -1 + -3
=>c = -3 , d = -2;
**/
int e = 0;
int f = 0;
f = --e - e-- + --e ;
System.out.println("e = " + e + " f = "+ f );
/** 解法
=>f = (--)e - e(--) + (--)e
=>f = (-1)e - e(-2) + (-3)e ,e=-3
=>f = -1-(-1) + -3 ,f=-3 **/
  • 關係運算子

運算子 說明 範例
== 等於 a==b
!= 不等於 a!=b
> 大於 a>b
< 小於 a>b
>= 大於等於 a>=b
<= 小於等於 a>=b
  • 邏輯運算子

    運算子 說明 範例
    & AND a&b
    | OR a|b
    ! NOT !a
    (短路)Short-circuit Operator
    && AND a&&b
    || OR a||b

    & and && 與 | and ||的分別
    程式小技巧,這點十分重要,因為在程式中邏輯判斷十分常見到,如果在邏輯運算中需要執行算數運算時,保險一點建議使用非short-circuit的邏輯運算子

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int x = 0,y=1;
System.out.println("(x>y)&(++x>y)=>"+Boolean.toString((x>y)&(++x>y)));
System.out.println("before x = 0,y = 1,after x = "+x+", y = "+y);
x=0;
y=1;
System.out.println("(x>y)&(++x>y)=>"+Boolean.toString((x>y)&&(++x>y)));
System.out.println("before x = 0,y = 1,after x = "+x+", y = "+y);
x=0;
y=1;
System.out.println("(x<y)|(++x==y)=>"+Boolean.toString((x<y)|(++x==y)));
System.out.println("before x = 0,y = 1,after x = "+x+", y = "+y);
x=0;
y=1;
System.out.println("(x<y)||(++x==y)=>"+Boolean.toString((x<y)||(++x==y)));
System.out.println("before x = 0,y = 1,after x = "+x+", y = "+y);
  • 位元運算子,位移運算子

    //先記錄,晚點再看,20190217

    運算子 說明 範例
    & AND a&b
    | OR a|b
    ^ XOR a^b
    ~ 補數 a ~ b
    >> 位元右移 a>>b
    << 位元左移 a<<b
    >>> 邏輯右移 a>>>b

    //先記錄,晚點再看,20190217

  • 指定運算子

    運算子 說明 範例
    = 基本指定 a=b
    += 加法指定 a+=b => a=a+b
    -= 減法指定 a+=b => a=a-b
    = 乘法指定 a=b => a=a * b
    /= 除法指定 a/=b => a=a / b
    %= 餘數指定 a%=b => a=a % b
    &= AND指定 a&=b => a=a & b
    |= OR指定 a|=b => a=a | b
    ^= XOR指定 a^=b => a=a ^ b
    >>= 位元右移指定 a>>=b => a=a>>b
    <<= 位元左移指定 a<<=b => a=a<<b
    >>>= 邏輯右移指定 a>>>=b => a=a>>>b
  • 三元運算子

    三元基本上可以說是if-else條件的簡化版
    變數 = (boolean exp) ? true-value : false-value

    1
    2
    3
    4
    5
    6
    7
    8
    int x=0;
    if (x==0){
    x+=1;
    }else{
    x-=1;
    }
    //等同於
    x = (x==0) ? x+1 : x-1 ;

Java學習筆記(基本語法)的更多相关文章

  1. [Python學習筆記] 使用xlwings 插入註解 (forked 版本)

    到今天為止 xlwings 還沒有插入註解的功能 去原始開發者的 Github Pull Requests 他說之前有人有建議要加入這個功能 但他還沒更新~ 如果需要使用 Python 來插入註解的話 ...

  2. FPGA學習筆記(肆)--- Star Test Bench Template Writer

    上一篇testbench我自己也沒怎麽搞懂,再來一篇學習特權同學的方法. 課程:Lesson 7 BJ EPM240学习板实验1——分频计数实验 鏈接:https://www.youtube.com/ ...

  3. [DDD]學習筆記 第15章 精煉(Distillation)

    核心領域(Core-Domain) 為了使領域模型成為企業真正的資產, 模型中的關鍵核心部份需要足夠靈活和充分利用來創建應用程序的功能; 簡而言之, 核心領域是系統中最有價值的部份. 濃縮模型, 將最 ...

  4. [Python學習筆記] 抓出msg信件檔裡的附件檔案

    想要把msg信件檔案的附件抓出來做處理,找到了這個Python 模組 msg-extractor 使用十分容易,但是這個模組是要在terminal裡執行,無法直接打在IDLE的編輯器上 所以稍微做了修 ...

  5. C# partial 學習筆記

    局部類的講解參考:http://blog.csdn.net/susan19890313/article/details/7575204 感謝作者~

  6. ORACLE 學習筆記

    proc 里的 commit等于提交就是你做了insert或者update后,commit后才是真正修改或者插入了数据库中 如果不提交的话,那么这个表就被锁了 CURSOR MYCURSOR is   ...

  7. FPGA學習筆記(貳)--- 流水燈

    平臺:FPGA黑金开发板 AX301 開發環境:Quartus Prime Version 17.0.0 Build 595 04/25/2017 Standard Edition 引脚配置:鼠標托拉 ...

  8. [Python學習筆記] 使用 selenium 抓取網頁並且雙擊滑鼠 (double click)

    一開始使用的時候 看官方文件 以為使用 double_click()即可 但後來出現錯誤 AttributeError: 'WebElement' object has no attribute 'd ...

  9. [Python學習筆記] 利用 Python在Excel 插入註解

    用Python 來處理excel 檔 用過了 openpyxl 還有 pyexcel目前覺得除了讀寫如果還要使用另外的功能 (像是讀取格子裡的公式)可以用 xlwings  他的首頁標題 " ...

随机推荐

  1. 洛谷 P3371 【模板】单源最短路径(弱化版)(dijkstra邻接链表)

    题目传送门 解题思路: 传送门 AC代码: #include<iostream> #include<cstdio> #include<cstring> using ...

  2. Linux之程序的开始和结束

    1.main函数由谁来调用 (1).编译链接时的引导代码. 操作系统下的应用程序其实是在main函数执行前也需要先执行一段引导代码才能去执行main函数,我们写应用程序时不用考虑引导代码的问题,编译链 ...

  3. spring mvc + ajax上传文件,页面局部刷新

    1.点击上传按钮进行如下操作,通过表单名称以及input名称获取相应的值,对于上传的文件,使用.files来获取, 因为包含文件的上传,所以采用FormData的形式来进行数据交互,通过append将 ...

  4. Mac 终端实现快速定位命令 自动补全目录

    基于macOS oh-my-zsh 切换终端主题 incr.zsh 实现快速定位命令 自动补全目录 效果预览 步骤 1.安装 oh-my-zsh sh -c "$(curl -fsSL ht ...

  5. Long型转ZonedDateTime型

    /** * 将Long类型转化成0 * @author yk * @param time * @return */public static ZonedDateTime toZonedDateTime ...

  6. Collection接口介绍

    Collection接口介绍 一个Collection代表一组对象,是集合体系中的根接口.一些允许有重复的元素一些不允许,一些有顺序一些没有顺序.JDK不提供此接口具体类的直接实现,只会有子接口和抽象 ...

  7. Python文件基本操作及上下文管理

    文件基本操作 打开文件:f = open(fole_name,mode = 'r'),传入表示文件路径的字符串,会返回一个文件对象,mode是文件打开模式. 关闭文件:f.close(),调用给定文件 ...

  8. Opencv笔记(十一)——图像模糊(平滑)

    学习目标: 使用自定义的滤波器对图像进行卷积(2D 卷积) 学习使用不同的低通滤波器对图像进行模糊 一.2D卷积 卷积不是很了解的可以看我上一篇博客,与语音信号一样,我们也可以对 2D 图像实施低通滤 ...

  9. Qt HWND的句柄与QWidget的转换

    QT中用到HWND的句柄在编程中遇到了问题,第三方API用了hwnd类型做形参,但是QT中又没有该类型,可以做如下操作来解决问题. 在.h中先声明: HWND m_hWnd; 再声明 public: ...

  10. python3下scrapy爬虫(第十二卷:解决scrapy数据存储大量数据时阻塞问题)

    之前我们使用scrapy爬取数据,用的存储方式是直接引入PYMYSQL,或者MYSQLDB,案例中数据量并不大,这种数据存储方式属于同步过程,也就是上一条语句执行完才能执行下一条语句,当数据量变大时, ...