java基礎1之java語言基礎1

一、常量的概述和使用

A:什么是常量

* 在程序執行的過程中其值不可以發生改變 

B:Java中常量的分類

* 字面值常量
* 自定義常量(面向對象部分講) 

C:字面值常量的分類

* 字符串常量 用雙引號括起來的內容
* 整數常量      所有整數
* 小數常量      所有小數
* 字符常量      用單引號括起來的內容,里面只能放單個數字,單個字母或單個符號
* 布爾常量      較為特殊,只有true和false
* 空常量           null(數組部分講解)

二、不同進制數據的表現形式

A:二進制的數據表現形式

* 由0,1組成。以0b(b可以大寫也可以小寫)開頭(JDK1.7版本可以表示二進制了)

B:八進制的數據表現形式

* 由0,1,…7組成。以0開頭

C:十進制的數據表現形式

* 由0,1,…9組成。整數默認是十進制的 

D:十六進制的數據表現形式

* 由0,1,…9,a,b,c,d,e,f(大小寫均可)。以0x開頭 

三、變量的概述及格式

A:什么是變量

* 在程序執行的過程中,在某個范圍內其值可以發生改變的量

B:變量的定義格式

* 數據類型 變量名 = 變量值;

C:為什么要定義變量

* 用來不斷的存放同一類型的常量,并可以重復使用 

四、數據類型的概述和分類

A:為什么有數據類型

* Java語言是強類型語言,對于每一種數據都定義了明確的具體數據類型,在內存中分配了不同大小的內存空間

B:Java中數據類型的分類

* 基本數據類型
* 引用數據類型 
* 面向對象部分講解 

C:基本數據類型分類(4類8種)

* 整數型* byte    占一個字節     -128到127* short   占兩個字       -2^15~2^15-1* int     占四個字節     -2^31~2^31-1* long    占八個字節     -2^63~2^63-1
* 浮點型* float   占四個字節    -3.403E38~3.403E38    單精度* double  占八個字節    -1.798E308~1.798E308  雙精度
* 字符型* char    占兩個字節    0~65535
* 布爾型* boolean   * boolean理論上是占八分之一個字節,因為一個開關就可以決定是true和false了,但是java中boolean類型沒有明確指定他的大小    

五、定義不同數據類型的變量

        //整數類型byte b = 10;            //占一個字節,-128 到 127short s = 20;           //占兩個字節int i = 30;             //占四個字節         整數默認的數據類型就是int類型long x = 8888888888L;   //占八個字節 如果long類型后面加L進行標識最好加大L,因為小l太像一了//浮點類型float f = 12.3F;        //占四個字節double d = 33.4;        //占八個字節 小數默認的數據類型是double,double類型后面也可以用D或d標識,但是一般不加//字符類型char c = 'a';           //占兩個字節System.out.println(c);//布爾類型boolean b1 = true;boolean b2 = false;

六、使用變量的注意事項

* a:作用域問題* 同一個區域不能使用相同的變量名 
* b:初始化值問題* 局部變量在使用之前必須賦值 
* c:一條語句可以定義幾個變量* int a,b,c...; 

七、數據類型轉換

a:隱式轉換

int x = 3;
byte b = 4;
x = x + b;
System.out.println(x);   //輸出為int類型的值7
Java中的默認轉換規則
   * 取值范圍小的數據類型與取值范圍大的數據類型進行運算,會先將小的數據類型提升為大的,再運算

b:強制轉換

int x = 3;
byte b = 4;
b = (byte)(a + b); 
System.out.println(b);  //輸出為byte類型的值7
強制轉換的注意事項
* 如果超出了被賦值的數據類型的取值范圍得到的結果會與你期望的結果不同 

八、字符和字符串參與運算

        System.out.println('a' + 1);            //98,因為有ASCII碼表,a字符對應的是int類型的97System.out.println((char)('a' + 1));  //bSystem.out.println("hello"+'a'+1);      //任何數據類型用+與字符串相連接都會產生新的字符串System.out.println('a'+1+"hello"); //98helloSystem.out.println(" 5 + 5 = " + (5 + 5));//5+5=10

九、算術運算符的基本用法

  • A:什么是運算符
    • 就是對常量和變量進行操作的符號。
  • B:運算符的分類
    • 算術運算符,賦值運算符,比較(關系或條件)運算符,邏輯運算符,位運算符,三目(元)運算符
  • C:算數運算符有哪些
    • +,-,*,/,%,++,–
  • D:注意事項:
    • a:+號在java中有三種作用,代表正號,做加法運算,字符串的連接符
    • b:整數相除只能得到整數。如果想得到小數,必須把數據變化為浮點數類型
    • c:/獲取的是除法操作的商,%獲取的是除法操作的余數
    • %運算符
      • 當左邊的絕對值小于右邊絕對值時,結果是左邊
      • 當左邊的絕對值等于右邊或是右邊的倍數時,結果是0
      • 當左邊的絕對值大于右邊絕對值時,結果是余數
      • %運算符結果的符號只和左邊有關系,與右邊無關
      • 任何一個正整數%2結果不是0就是1可以用來當作切換條件

十、算術運算符++和–的用法

  • A:++,–運算符的作用
    • 自加(++)自減(–)運算
    • ++:自加。對原有的數據進行+1
    • –:自減。對原有的數據進行-1
  • B:案例演示
    • a:單獨使用:
      • 放在操作數的前面和后面效果一樣。(這種用法是我們比較常見的)
    • b:參與運算使用:
      • 放在操作數的前面,先自增或者自減,然后再參與運算。
      • 放在操作數的后面,先參與運算,再自增或者自減。
//單獨使用
int a = 3;
a++;                        //a = a + 1;
++a;                        //a = a + 1;
//參與運算使用
int a = 3;
int b;b = a++;                    //當++在變量后面的時候,會先將變量中的值取出做賦值操作,然后再自身加1
b = ++a;                    //當++在變量前面的時候,會先自身加1,然后在將結果賦值

十一、賦值運算符的基本用法

  • A:賦值運算符有哪些

    • a:基本的賦值運算符:=

      • 把=右邊的數據賦值給左邊。
    • b:擴展的賦值運算符:+=,-=,*=,/=,%=

      • += 把左邊和右邊做加法,然后賦值給左邊。

十二、關系運算符的基本用法及其注意事項

  • A:關系運算符有哪些(比較運算符,條件運算符)
    • ==,!=,>,>=,<,<=
  • 注意事項:
    • 無論你的操作是簡單還是復雜,結果是boolean類型。
    • “==”不能寫成”=”。

附:java語言基礎面試題

1.看下面的程序是否有問題,如果有問題,請指出并說明理由。

byte b1 = 3;  //①
byte b2 = 4;  //②
byte b3 = b1 + b2;  //③
byte b4 = 3 + 4;  //④
第③句會報錯
* 從兩方面去回答這個題* b1和b2是兩個變量,變量里面存儲的值都是變化的,所以在程序運行中JVM是無法判斷里面具體的值* byte類型的變量在進行運算的時候,會自動類型提升為int類型 
第④句中:3和4都是常量,java有常量優化機制,就是在編譯的的時候直接把3和4的結果賦值給b4了

2.問哪句會報錯,為什么

byte b = 10;//①
b++;//②  相當于b = (byte)(b + 1)
b = b + 1;//③  當byte與int進行混合運算的時候,會提升為int類型,兩個int相加的結果還是int,賦值給byte會損失精度

3.看下面的程序是否有問題,如果有問題,請指出并說明理由。

short s=1;s = s+1;  //當short與int進行運算的時候,會提升為int類型,兩個int類型相加的結果也是int類型
short s=1;s+=1;  //s = (short)(s + 1);

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/249699.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/249699.shtml
英文地址,請注明出處:http://en.pswp.cn/news/249699.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

w3c 跨域請求規范

w3c 官方跨域請求規范地址&#xff1a;https://www.w3.org/TR/cors/ 前段時間開發的一個api在IE8/9瀏覽器不能正常響應跨域請求&#xff0c;以下是解決問題中對跨域請求新的認識 1.復雜跨域 post請求在發送請求之前&#xff0c;會先發送options 請求&#xff0c;有的服務器拒絕…

python爬取豆瓣前25個影片內容的正則表達式練習

通過python正則表達式獲取豆瓣top250的第一頁的25個影片排名,影片名字,影片連接,導演,主演,上映日期,國家,劇情,評分,評價人數的內容 網頁html內容: 1 <ol class"grid_view">2 <li>3 <div class"item">4 …

JavaScript 面向對象的程序設計1

一、理解對象 1.創建一個對象&#xff0c;然后給這個對象新建屬性和方法。 ①常見的創建方式 var person new Object(); //創建一個Object 對象person.name XIE; //創建一個name 屬性并賦值person.age 20; //創建一個age 屬性并賦值person.sayName function () { //創建…

Zookeeper 使用

安裝和配置詳解 本文介紹的 Zookeeper 是以 3.2.2 這個穩定版本為基礎&#xff0c;最新的版本可以通過官網 http://hadoop.apache.org/zookeeper/來獲取&#xff0c;Zookeeper 的安裝非常簡單&#xff0c;下面將從單機模式和集群模式兩個方面介紹 Zookeeper 的安裝和配置。 單…

Asp.Net Core 工作單元 UnitOfWork UOW

Asp.Net Core 工作單元示例 來自 ABP UOW 去除所有無用特性 代碼下載 &#xff1a; 去除所有無用特性版本&#xff0c;原生AspNetCore實現 差不多 2278 行代碼&#xff1a; 鏈接&#xff1a;https://pan.baidu.com/s/1NoEIDSAPNr46xNHYEx9KCA 提取碼&#xff1a;570i 包含C…

網站性能優化--CRP

網站性能優化–CRP 為了把HTML、CSS和JavaScript轉化成活靈活現、絢麗多彩的網頁&#xff0c;瀏覽器需要處理一系列的中間過程&#xff0c;優化性能其實就是了解這個過程中發生了什么-即CRP(Critical Rendering Path&#xff0c;關鍵渲染路徑)。首先&#xff0c;我們從頭開始快…

Dubbo+zookeeper基礎講解

一、dubbo是什么&#xff1f; 1&#xff09;本質&#xff1a;一個Jar包,一個分布式框架,&#xff0c;一個遠程服務調用的分布式框架。 既然是新手教學&#xff0c;肯定很多同學不明白什么是分布式和遠程服務調用&#xff0c;為什么要分布式&#xff0c;為什么要遠程調用。我簡…

What Are You Talking About HDU1075

一開始我也想用map 但是處理不好其他字符。。 看了題解 多多學習&#xff01; 很巧妙 就是粗暴的一個字符一個字符的來 分為小寫字母和非小寫字母兩個部分 一但單詞結束的時候就開始判斷。 #include<bits/stdc.h> using namespace std;int main() {string a,b;map&l…

開通博客第一天

今天是開通博客第一天&#xff0c; 第一次寫博客&#xff0c;也不知道寫什么&#xff0c; 以后寫點技術文&#xff0c;把我的經驗分享給大家&#xff0c; 不對的地方請大家指正&#xff0c;一起進步。我要把我每遇到的難題以及學到的知識和技術為大家踩坑&#xff0c; 做研究。…

學習File API用于前端讀取文件

1. File API簡介 File API對于某些專門的網站的不可或缺的。現在常用它實現對文件的預覽等功能。 File API規定怎么從硬盤上提取文件&#xff0c;直接交給在網頁中運行中的Javascript代碼。然后代碼可以打開文件探究數據&#xff0c;無論是本地文件還是其他文件。注意&#x…

kafka筆記1

Kafka是一款基于發布和訂閱的消息系統。一般被稱為分布式提交日志或分布式流平臺。 Kafka系統是按照一定的順序持久化保存的&#xff0c;可以按需讀取。 Kafka的數據單元被稱為消息。類似于數據庫中表的一行記錄&#xff0c;消息由字節組成&#xff0c;所以沒有特別的格式和含義…

Dubbo入門教程

服務端&#xff08;dubbo-server&#xff09; 1. pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaL…

NSAssert和NSParameterAssert

2016.05.05 18:34* 字數 861 閱讀 5127評論 0喜歡 17https://www.jianshu.com/p/3072e174554fNSAssert和NSParameterAssert在開發環境中經常被使用&#xff0c;調試和驗證代碼參數的完整性&#xff0c;斷言為真&#xff0c;則表明程序運行正常&#xff0c;而斷言為假&#xff0…

【PAT】B1070 結繩(25 分)

此題太給其他25分的題丟人了&#xff0c;只值15分 注意要求最終結果最長&#xff0c;而且向下取整 #include<stdio.h> #include<algorithm> using namespace std; float arr[10005]; int main(){int N;scanf("%d",&N);for(int i0;i<N;i)//輸入數據…

Java代碼實現負載均衡五種算法

前言&#xff1a; 負載均衡是為了解決并發情況下&#xff0c;多個請求訪問&#xff0c;把請求通過提前約定好的規則轉發給各個server。其中有好幾個種經典的算法。在用java代碼編寫這幾種算法之前&#xff0c;先來了解一下負載均衡這個概念。 1.概念 負載&#xff0c;從字面…

使用Nodejs發送郵件

嘗試用了Nodemailer來發送郵件&#xff0c;結果成功了&#xff0c;雖然是相對比較簡單的&#xff0c;但還是記錄一下吧。 Nodemailer 是 Node.js 應用程序的一個模塊&#xff0c;可以方便地發送電子郵件。 使用 # 初始化 pageage.json 文件 $ npm init # 安裝依賴 $ npm ins…

HTTP同源策略

同源策略是web安全策略中的一種&#xff0c;非常重要。 同源策略明確規定&#xff1a;不同域的客戶端在沒有明確授權的情況下&#xff0c;不能讀寫對方的資源。 簡單說來就是web瀏覽器允許第一個頁面的腳本訪問訪問第二個頁面的數據&#xff0c;但是也只有在兩個頁面有相同的…

Spring Cloud 微服務架構

一、分布式服務框架的發展 1.1 第一代服務框架   代表&#xff1a;Dubbo(Java)、Orleans(.Net)等 特點&#xff1a;和語言綁定緊密 1.2 第二代服務框架   代表&#xff1a;Spring Cloud等 現狀&#xff1a;適合混合式開發&#xff08;例如借助Steeltoe OSS可以讓ASP.Ne…

JZOJ 4421. aplusb

4421. aplusb Time Limits: 1000 ms Memory Limits: 524288 KB Detailed Limits Goto ProblemSetDescription SillyHook要給小朋友出題了&#xff0c;他想&#xff0c;對于初學者&#xff0c;第一題肯定是ab 啊&#xff0c;但當他出完數據后神奇地發現.in不見了&#xff0c…

跨域資源共享CORS詳解

最近深入了解了CORS的相關東西&#xff0c;覺得阮一峰老師的文章寫得最詳細易懂了&#xff0c;所有轉載作為學習筆記。 原文地址&#xff1a;跨域資源共享 CORS 詳解 CORS是W3C的一個標準&#xff0c;全稱是跨域資源共享&#xff08;Cross-origin resource sharing&#xff0…