Java之数据类型与运算符详解

数据类型

1.首先我们介绍一下什么是变量

变量指的是程序运行时可变的量. 相当于开辟一块内存空间来保存一些数据.

类型则是对变量的种类进行了划分, 不同的类型的变量具有不同的特性.

我们所讨论的 "变量" 主要和我们的 "内存" 这样的硬件设备密切相关.

2.变量的类型

在Java中变量分为整型变量、浮点型变量、字符型变量、字节类型变量、布尔类型变量和字符串类型变量。

注Java中String也就是字符串类型,它是一个类,也就是如下图的引用类型



3.整型变量:

①int

在Java中一个int占4个字节,与操作系统无关,不像c语言分32位,64位等~

基本语法格式:

int 变量名 = 初始值;

代码示例:

public class TestDemo {

    public static void main(String[] args) {

        int a = 10;

        System.out.println(a);

    }

}

运行结果:


注:

1.int 表示变量的类型是一个整型

2.变量名是变量的标识后续都是通过这个名字来使用变量

3.Java 中 = 表示赋值(和数学不一样), 意思是给变量设置一个初始值

4. 初始化操作是可选的, 但是建议创建变量的时候都显式初始化

5. 最后不要忘记分号, 否则会编译失败

我们来测一下int的范围代码如下:

public class TestDemo {

    public static void main(String[] args) {

        System.out.println(Integer.MAX_VALUE);//int的最大值

        System.out.println(Integer.MIN_VALUE);//int的最小值

    }

}

运行结果是

表示int是4个字节 4个字节的范围是[-2^31,2^31-1]

②long

long与int对变量命名规则类似,Java中long占8个字节。

long 变量名 = 初始值;//建议数字最后加上大写的L或者小写的l,便于区分。

public class TestDemo {

    public static void main(String[] args) {

        long a = 10L;

        System.out.println(a);

        System.out.println(Long.MAX_VALUE);//long的最大值

        System.out.println(Long.MIN_VALUE);//long的最小值

    }

}

运行结果:

表明long 的范围是[-2^63,2^63-1]

③short

short占2个字节

short 变量名 = 初始值;

4.浮点型变量

①float

基本格式: 单精度浮点型float,占4个字节。

float 变量名 = 初始值;//建议初始值后加大写F或小写f表示这个数是一个单精度浮点型!

public class TestDemo {

    public static void main(String[] args) {

        float a = 10L;

        System.out.println(a);

    }

}

运行结果:


②double

基本格式:双精度浮点型,占8个字节。

double 变量名 = 初始值;

public class TestDemo {

    public static void main(String[] args) {

        double a = 12.5;

        System.out.println(a);

    }

}

运行结果:


5.字符型变量

char

char占2个字节!Java中字符都是用Unicode编码

char 变量名 = 初始值;

代码示例:

public class TestDemo {

    public static void main(String[] args) {

        char a ='A';

        System.out.println(a);

    }

}

运行结果:


6.字节型变量

byte

byte 变量名 =初始值;

7.布尔类型变量

boolean

boolean 变量名 = 初始值;

注:boolean只有false和true两个值!

Java 的 boolean 类型和 int 不能相互转换, 不存在 1 表示 true, 0 表示 false 这样的用法

8.字符串类型变量

String

串通常是用" "包含;

String 变量名 = 初始值;

public class TestDemo {

    public static void main(String[] args) {

        String name = "zhangsan";

        System.out.println(name);

    }

}

Java中可以实现两个字符串"相加",此相加并不是真正的相加,只是将字符串拼接到另一个字符串的后面。

public class TestDemo {

    public static void main(String[] args) {

        String name1 = "zhangsan";

        String name2 = "lisi";

        System.out.println(name1+name2);

    }

}

运算符

1.算术运算符 :+ - * / %

代码如下:

public class TestDemo {

    public static void main(String[] args) {

        int a=5;

        int b=2;

        System.out.println(a+b);//加法运算符结果是7

        System.out.println(a-b);//减法运算符结果是3

        System.out.println(a*b);//乘法运算符结果是10

        System.out.println(a/b);//除法运算符结果是2

        System.out.println(a%b);//求余运算符结果是1

    }

}

注:0不能作为除数!

public class TestDemo {

    public static void main(String[] args) {

        int a = 5;

        int b = 0;

        System.out.println(a/b);

    }

}


会抛出0不能作为除数的异常!

2.增量运算符:+= -= *= /= %=

public class TestDemo {

    public static void main(String[] args) {

        int a = 5;

        a+=1;//等价于a=a+1;此时a=6;

        System.out.println(a);//6

        a-=1;//等价于a=a-1;上次执行完a+=1时a已经变成了6,这时执行a-=1 a变成了5

        System.out.println(a);//5

        a*=2;//等价于a=a*2 此时a=10;

        System.out.println(a);//10

        a/=2;//等价于a=a/2;此时a=5;

        System.out.println(a);//5

        a%=2;//等价于a=a%2;此时a=1

        System.out.println(a);//1

    }

}

3.自增 自减运算符 前缀++ 后缀++ 前缀-- 后缀--

public class TestDemo {

    public static void main(String[] args) {

        int a=1;

        int b=a++;//等价于b=a a=a+1此时b=1 a=2;

        System.out.println(b);//1

        System.out.println(a);//2

        b=++a;//等价于a=a+1 b=a 此时a=3 b=3;

        System.out.println(b);//3

        System.out.println(a);//3

        b=a--;//等价于b=a a=a-1 此时b=3 a=2;

        System.out.println(b);//3

        System.out.println(a);//2

        b=--a;//等价于a=a-1 b=a 此时a=1 b=1

        System.out.println(b);//1

        System.out.println(a);//

    }

}

4.逻辑运算符:&&(与) ||(或)  !(非)

逻辑运算符的操作数(操作数往往是关系运算符的结果)和返回值都是 boolean 也就是说 只有2值 true 或 false

public class TestDemo {

    public static void main(String[] args) {

        int a = 10;

        int b =5;

        int c =6;

        System.out.println(a>b&&a>c);//T

        System.out.println(a>b||a>c);//T

        System.out.println(a!=b);//T

        System.out.println();

        System.out.println(a<b&&a>c);//F短路求值,&&运算符中一假为假!

        System.out.println(a<b||a>c);//T 或运算符中一真为真!

    }

}


短路求值!

结论: 1. 对于 && , 如果左侧表达式值为 比特科技 false, 则表达式的整体的值一定是 false, 无需计算右侧表达式

2. 对于 ||, 如果左侧表达式值为 true, 则表达式的整体的值一定是 true, 无需计算右侧表达式.

5.位运算符

&(按位与) |(按位或)  ~(按位取反) ^(按位异或)

位指二进制位

public class TestDemo {

    public static void main(String[] args) {

        int a=3;

        int b=4;

        System.out.println(a&b);//0

        System.out.println(a|b);//7

        System.out.println(a^b);//7

        System.out.println(~a);//-4

    }

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,013评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,205评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,370评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,168评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,153评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,954评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,271评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,916评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,382评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,877评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,989评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,624评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,209评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,199评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,418评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,401评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,700评论 2 345

推荐阅读更多精彩内容