欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java基本數(shù)據(jù)類型和運(yùn)算符詳解

 更新時(shí)間:2020年02月13日 12:08:11   作者:扎心了,老鐵  
這篇文章主要介紹了Java基本數(shù)據(jù)類型和運(yùn)算符,結(jié)合實(shí)例形式詳細(xì)分析了java基本數(shù)據(jù)類型、數(shù)據(jù)類型轉(zhuǎn)換、算術(shù)運(yùn)算符、邏輯運(yùn)算符等相關(guān)原理與操作技巧,需要的朋友可以參考下

本文實(shí)例講述了Java基本數(shù)據(jù)類型和運(yùn)算符。分享給大家供大家參考,具體如下:

基本數(shù)據(jù)類型

Java 是一種強(qiáng)類型的語(yǔ)言,聲明變量時(shí)必須指明數(shù)據(jù)類型。變量(variable)的值占據(jù)一定的內(nèi)存空間。不同類型的變量占據(jù)不同的大小。
Java中共有8種基本數(shù)據(jù)類型,包括4 種整型、2 種浮點(diǎn)型、1 種字符型、1 種布爾型,請(qǐng)見下表。

Java基本數(shù)據(jù)類型

數(shù)據(jù)類型 說明 所占內(nèi)存 舉例 備注
byte 字節(jié)型 1 byte 3,127  
short 短整型 2 bytes 3,32767  
int 整型 4 bytes 3,21474836  
long 長(zhǎng)整型 8 bytes 3L,92233720368L long最后要有一個(gè)L字母(大小寫無所謂)
float 單精度浮點(diǎn)型 4 bytes 1.2F, 223.56F float最后最好有一個(gè)F字母(大小寫無所謂)。
double 雙精度浮點(diǎn)型 8 bytes 1.2,
1.2D, 223.56, 223.56D
double最后最好有一個(gè)D字母(大小寫無所謂)。
char 字符型 2 bytes 'a','A' 字符型數(shù)據(jù)只能是一個(gè)字符,由單引號(hào)包圍。
boolean 布爾型 1 bit true, false  

Java中的數(shù)值類型不存在無符號(hào)的,它們的取值范圍是固定的,不會(huì)隨著機(jī)器硬件環(huán)境或者操作系統(tǒng)的改變而改變。實(shí)際上, Java中還存在另外一種基本類型void,它也有對(duì)應(yīng)的包裝類 java.lang.Void,不過我們無法直接對(duì)它們進(jìn)行操作。對(duì)于數(shù)值類型的基本類型的取值范圍,我們無需強(qiáng)制去記憶,因?yàn)樗鼈兊闹刀家呀?jīng)以常量的形式定義在對(duì)應(yīng)的包裝類中了。請(qǐng)看下面的例子:

public class PrimitiveTypeTest { 
 public static void main(String[] args) { 
  // byte 
  System.out.println("基本類型:byte 二進(jìn)制位數(shù):" + Byte.SIZE); 
  System.out.println("包裝類:java.lang.Byte"); 
  System.out.println("最小值:Byte.MIN_VALUE=" + Byte.MIN_VALUE); 
  System.out.println("最大值:Byte.MAX_VALUE=" + Byte.MAX_VALUE); 
  System.out.println(); 
 
  // short 
  System.out.println("基本類型:short 二進(jìn)制位數(shù):" + Short.SIZE); 
  System.out.println("包裝類:java.lang.Short"); 
  System.out.println("最小值:Short.MIN_VALUE=" + Short.MIN_VALUE); 
  System.out.println("最大值:Short.MAX_VALUE=" + Short.MAX_VALUE); 
  System.out.println(); 
 
  // int 
  System.out.println("基本類型:int 二進(jìn)制位數(shù):" + Integer.SIZE); 
  System.out.println("包裝類:java.lang.Integer"); 
  System.out.println("最小值:Integer.MIN_VALUE=" + Integer.MIN_VALUE); 
  System.out.println("最大值:Integer.MAX_VALUE=" + Integer.MAX_VALUE); 
  System.out.println(); 
 
  // long 
  System.out.println("基本類型:long 二進(jìn)制位數(shù):" + Long.SIZE); 
  System.out.println("包裝類:java.lang.Long"); 
  System.out.println("最小值:Long.MIN_VALUE=" + Long.MIN_VALUE); 
  System.out.println("最大值:Long.MAX_VALUE=" + Long.MAX_VALUE); 
  System.out.println(); 
 
  // float 
  System.out.println("基本類型:float 二進(jìn)制位數(shù):" + Float.SIZE); 
  System.out.println("包裝類:java.lang.Float"); 
  System.out.println("最小值:Float.MIN_VALUE=" + Float.MIN_VALUE); 
  System.out.println("最大值:Float.MAX_VALUE=" + Float.MAX_VALUE); 
  System.out.println(); 
 
  // double 
  System.out.println("基本類型:double 二進(jìn)制位數(shù):" + Double.SIZE); 
  System.out.println("包裝類:java.lang.Double"); 
  System.out.println("最小值:Double.MIN_VALUE=" + Double.MIN_VALUE); 
  System.out.println("最大值:Double.MAX_VALUE=" + Double.MAX_VALUE); 
  System.out.println(); 
 
  // char 
  System.out.println("基本類型:char 二進(jìn)制位數(shù):" + Character.SIZE); 
  System.out.println("包裝類:java.lang.Character"); 
  // 以數(shù)值形式而不是字符形式將Character.MIN_VALUE輸出到控制臺(tái) 
  System.out.println("最小值:Character.MIN_VALUE=" 
    + (int) Character.MIN_VALUE); 
  // 以數(shù)值形式而不是字符形式將Character.MAX_VALUE輸出到控制臺(tái) 
  System.out.println("最大值:Character.MAX_VALUE=" 
    + (int) Character.MAX_VALUE); 
 } 
}  

整數(shù)型

整數(shù)型包括byte、short、int和long。

public class Demo1 {
	public static void main(String[] args) {
		//字面值 默認(rèn)是int類型
		byte n1 = 12;
		short n2 = 45;
		int n3 = 456;
		long n4 = 67L;// L 或 l
  }
} 

二進(jìn)制太長(zhǎng)可以使用下劃線來進(jìn)行區(qū)分

public class Demo1 {
	public static void main(String[] args) {
        int n5 = 0B1010_1111_0011_1100;//二進(jìn)制用0B或0b表示		        int n6 = 017;//八進(jìn)制用0表示
		        int n7 = 0xffff;//十六進(jìn)制用0x或0X表示
		        long n8 = 12345678987654321L;

  }
} 

浮點(diǎn)型

浮點(diǎn)型包括double和float。

注意:1.不要在數(shù)量級(jí)相差很大的浮點(diǎn)類型之間進(jìn)行運(yùn)算。2.避免進(jìn)行等量的判斷

import java.math.*;
public class Demo1 {
	public static void main(String[] args) {
		float f1 = 34.5f;//f 或 F 默認(rèn)為 double類型
		double d1 = 456.78d;//后綴 d 或 D 
		double d2 = 2.4e20;// e或 E 以 10為底 
		//浮點(diǎn)型可以表示十六進(jìn)制,但是必須以科學(xué)
		//計(jì)數(shù)法表示,而且 以 p為底
		double d3 = 0x3.4p20;// p或 P以2 
		double d4 = 2.4e20;
		double d5 = d4 + 1;
		double num1 = 0.1;
		double num2 = 0.2;
		double num3 = num1 + num2;//0.3
		//java.lang
		System.out.println(num3 == 0.3);//不一樣 輸出結(jié)果false
		System.out.println(num3);//輸出結(jié)果 0.30000000000000004
		//處理 java.math包
		BigDecimal number1 = new BigDecimal("0.1");
		BigDecimal number2 = new BigDecimal("0.2");
		System.out.println(number1.add(number2));//輸出結(jié)果 0.3
	}
}

字符型

char類型

  • char類型是一個(gè)單一的 16 位 Unicode 字符;
  • 最小值是 \u0000(即為0);
  • 最大值是 \uffff(即為65,535);
  • char 數(shù)據(jù)類型可以儲(chǔ)存任何字符;
  • 例子:char letter = 'A';。

只能存儲(chǔ)一個(gè)字符,只能使用單引號(hào)

布爾型

布爾(boolean)型包括true和false

引用數(shù)據(jù)類型

String

public class Demo2 {
	public static void main(String[] args) {
		String name = "郭靖";
		String address = "北京";
		//+ 連接字符串
		System.out.println(name+address);
		int n1 = 1;
		int n2 = 1;
		System.out.println(n1 + n2);//輸出結(jié)果:2
		// 2 +"郭靖"-》 “2郭靖”
		System.out.println(n1+n2+name);//輸出結(jié)果:2郭靖
		//"郭靖1"+n2 ->"郭靖11“
		System.out.println(name+n1+n2);//輸出結(jié)果:郭靖11


	}
} 

基本數(shù)據(jù)類型轉(zhuǎn)換

自動(dòng)類型轉(zhuǎn)換

小-》 大
低-》 高

強(qiáng)制類型轉(zhuǎn)換

大-》小
高-》低

語(yǔ)法格式為:(強(qiáng)制轉(zhuǎn)換的數(shù)據(jù)類型)操作數(shù)

int num = (int)45.67;

類型提升原則

前提:運(yùn)算
結(jié)果:采取高類型(范圍大的數(shù)據(jù)類型作為結(jié)果)

運(yùn)算符

分類:根據(jù)操作數(shù)的個(gè)數(shù)

一元

二元

三元

算數(shù)運(yùn)算符

public class Demo5 {
	public static void main(String[] args) {
		
		System.out.println(5 + 2);//輸出結(jié)果:7
		System.out.println(5 - 2);//輸出結(jié)果:3
		System.out.println(5 * 2);//輸出結(jié)果:10
		//------------除法--------------------------
		//除數(shù)和被除數(shù)都是整數(shù)結(jié)果會(huì)取整數(shù)部分
		System.out.println(5 / 2);////輸出結(jié)果:2

		System.out.println(5.0 / 2);//輸出結(jié)果:2.5
		System.out.println(5 / 2.0);//輸出結(jié)果:2.5
		System.out.println(5.0 / 2.0);//輸出結(jié)果:2.5
		//除數(shù)為0 拋出異常
		//System.out.println(5 / 0);
		System.out.println(5.0 / 0);//正無窮大 輸出結(jié)果:Infinity
		System.out.println(-5.0 / 0);//負(fù)無窮大 輸出結(jié)果:-Infinity
		//非數(shù)字NaN
		System.out.println(0.0 / 0);//輸出結(jié)果:NaN
		//-----------------取余數(shù),取模----------------------------
		System.out.println( 5 % 2);//輸出結(jié)果:1
		System.out.println(5.0 % 2);//輸出結(jié)果:1.0
		System.out.println(5 % -2);//輸出結(jié)果: 1
		System.out.println(-5 % 2);//輸出結(jié)果:-1,符號(hào)看被除數(shù)
	 //---------------習(xí)題講解--------------------------------
		/*根據(jù)天數(shù)(46)計(jì)算周數(shù)和剩余的天數(shù)*/
		int days = 46;
		int week = days / 7;//周
		int day = days % 7;//余數(shù)天
		System.out.println(week+"周,余數(shù)"+day+"天");

		//----------------------------------------------
		/*
		對(duì)于隨意輸入的一個(gè)3位數(shù),
		反轉(zhuǎn);例如:234反轉(zhuǎn)后
		(將每一個(gè)數(shù)字反轉(zhuǎn)輸出即可):432
		*/
		int num = 234;
		int n1,n2,n3;
		n1 = num % 10;//個(gè)位
		n2 = num / 10 % 10;//十位
		n3 = num / 100;//百位
		System.out.println(n1+""+n2+""+n3);//"432"
		System.out.println(n1*100+n2*10+n3);//432


	}
}

 關(guān)系運(yùn)算符

邏輯運(yùn)算符

&& || 短路與和短路或

位運(yùn)算符 

 

& | 非短路與和非短路或

5 二進(jìn)制 00000000-00000000-00000000-00000101  

2 二進(jìn)制 00000000-00000000-00000000-00000010

//&如果相對(duì)應(yīng)位都是1,則結(jié)果為1,否則為0
5&2 二進(jìn)制 00000000-00000000-00000000-00000000

//|如果相對(duì)應(yīng)位都是0,則結(jié)果為0,否則為1
5|2 二進(jìn)制 00000000-00000000-00000000-00000111

//^如果相對(duì)應(yīng)位值相同,則結(jié)果為0,否則為1
5^2 二進(jìn)制 00000000-00000000-00000000-00000000

//~按位補(bǔ)運(yùn)算符翻轉(zhuǎn)操作數(shù)的每一位,即0變成1,1變成0。
~5 二進(jìn)制 11111111-11111111-11111111-11111010
  減一 11111111-11111111-11111111-11111001
	 取反 00000000-00000000-00000000-00000110
	 
//<<向左移動(dòng)幾位,右邊低端位用0補(bǔ)全 
5<<2 二進(jìn)制 00000000-00000000-00000000-00010100

//>>向右移動(dòng)幾位,左邊高位是什么用什么補(bǔ)位,是1用1,是0用0
5>>2 二進(jìn)制 00000000-00000000-00000000-00000001

//>>>無符號(hào)右移,左邊高位全部用0進(jìn)行補(bǔ)位
5>>>2二進(jìn)制 00000000-00000000-00000000-00000001

-6>>>2二進(jìn)制 00111111-11111111-11111111-11111110

擴(kuò)展賦值運(yùn)算符

條件運(yùn)算符

語(yǔ)法:

比較運(yùn)算||Boolean?表達(dá)式1:表達(dá)式2

如果?前的結(jié)果是true返回表達(dá)式1,如果?前返回false返回表達(dá)式2

 運(yùn)算符的優(yōu)先級(jí)

更多java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java面向?qū)ο蟪绦蛟O(shè)計(jì)入門與進(jìn)階教程》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總

希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • java數(shù)組的初始化及操作詳解

    java數(shù)組的初始化及操作詳解

    在本文中小編給大家整理了關(guān)于java數(shù)組的初始化及操作的相關(guān)知識(shí)點(diǎn)內(nèi)容,需要的讀者們參考下。
    2019-07-07
  • Spring七大事務(wù)傳遞機(jī)制深入分析實(shí)現(xiàn)原理

    Spring七大事務(wù)傳遞機(jī)制深入分析實(shí)現(xiàn)原理

    實(shí)際項(xiàng)目開發(fā)中,如果涉及到多張表操作時(shí),為了保證業(yè)務(wù)數(shù)據(jù)的一致性,大家一般都會(huì)采用事務(wù)機(jī)制,好多小伙伴可能只是簡(jiǎn)單了解一下,遇到事務(wù)失效的情況,便會(huì)無從下手,下面這篇文章主要給大家介紹了關(guān)于Spring事務(wù)傳遞機(jī)制的相關(guān)資料,需要的朋友可以參考下
    2023-03-03
  • Dubbo負(fù)載均衡策略介紹

    Dubbo負(fù)載均衡策略介紹

    負(fù)載均衡改善了跨多個(gè)計(jì)算資源(例如計(jì)算機(jī),計(jì)算機(jī)集群,網(wǎng)絡(luò)鏈接,中央處理單元或磁盤驅(qū)動(dòng)的的工作負(fù)載分布。負(fù)載平衡旨在優(yōu)化資源使用,最大化吞吐量,最小化響應(yīng)時(shí)間,并避免任何單個(gè)資源的過載
    2022-09-09
  • Java基礎(chǔ)開發(fā)之JDBC操作數(shù)據(jù)庫(kù)增刪改查,分頁(yè)查詢實(shí)例詳解

    Java基礎(chǔ)開發(fā)之JDBC操作數(shù)據(jù)庫(kù)增刪改查,分頁(yè)查詢實(shí)例詳解

    這篇文章主要介紹了Java基礎(chǔ)開發(fā)之JDBC操作數(shù)據(jù)庫(kù)增刪改查,分頁(yè)查詢實(shí)例詳解,需要的朋友可以參考下
    2020-02-02
  • Java操作MongoDB模糊查詢和分頁(yè)查詢

    Java操作MongoDB模糊查詢和分頁(yè)查詢

    這篇文章主要介紹了Java操作MongoDB模糊查詢和分頁(yè)查詢的相關(guān)資料,需要的朋友可以參考下
    2016-04-04
  • 深入淺出學(xué)習(xí)AQS組件

    深入淺出學(xué)習(xí)AQS組件

    AQS ( AbstractQueuedSynchronizer)是一個(gè)用來構(gòu)建鎖和同步器的框架,使用AQS能簡(jiǎn)單且高效地構(gòu)造出應(yīng)用廣泛的大量的同步器,下面小編和大家來一起學(xué)習(xí)一下吧
    2019-05-05
  • Maven多個(gè)項(xiàng)目實(shí)現(xiàn)聚合過程解析

    Maven多個(gè)項(xiàng)目實(shí)現(xiàn)聚合過程解析

    這篇文章主要介紹了Maven多個(gè)項(xiàng)目實(shí)現(xiàn)聚合過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • 關(guān)于Java限流功能的簡(jiǎn)單實(shí)現(xiàn)

    關(guān)于Java限流功能的簡(jiǎn)單實(shí)現(xiàn)

    這篇文章主要介紹了關(guān)于Java限流功能的簡(jiǎn)單實(shí)現(xiàn),在Java中,限流是一種常見的技術(shù)手段,用于控制系統(tǒng)的訪問速率,以保護(hù)系統(tǒng)免受過載和濫用,需要的朋友可以參考下
    2023-07-07
  • Javabean基于xstream包實(shí)現(xiàn)轉(zhuǎn)XML文檔的方法

    Javabean基于xstream包實(shí)現(xiàn)轉(zhuǎn)XML文檔的方法

    這篇文章主要介紹了Javabean基于xstream包實(shí)現(xiàn)轉(zhuǎn)XML文檔的方法,結(jié)合具體實(shí)例形式分析了xstream包用于轉(zhuǎn)換xml文件的具體使用技巧,需要的朋友可以參考下
    2017-05-05
  • Java連接SQL?Server數(shù)據(jù)庫(kù)的超詳細(xì)教程

    Java連接SQL?Server數(shù)據(jù)庫(kù)的超詳細(xì)教程

    在Java應(yīng)用程序中我們經(jīng)常需要與數(shù)據(jù)庫(kù)進(jìn)行交互,一種常見的數(shù)據(jù)庫(kù)是Microsoft?SQL?Server,下面這篇文章主要給大家介紹了關(guān)于Java連接SQL?Server數(shù)據(jù)庫(kù)的超詳細(xì)教程,需要的朋友可以參考下
    2024-01-01

最新評(píng)論