Java_基础_数据类型/基本运算符

概述

  java语言从1995年sun公司推出发展至今已经有22个年头,现在已经是使用最多的语言之一了。java又是一个比较容易入门的语言,我第一门接触的语言就是java。java发展。java的核心就是面向对象编程,其中多态、继承、封装来体现java的面向对象编程思想,还有java中的集合、流、反射等等。今天我会从最基础的数据类型和基本运算符开始说起:虽然说java的底层是由c去实现的,不过java和c还是有很多的不同也可以相互调用也就是JNI,我们会在以后去说去。

数据类型

     在java中的数据类型分基本数据类型和引用数据类型

基本数据类型分为四类八种:

整数型:byte,short、int、long

浮点型:float、double

字符型:char

布尔型:boolean

下面就细致的说一下每个类型的区边。

整数型:包含所有整数。

byte: 1字节 取值范围是-128~127(0也算是正数之一)

short: 2字节 -2^15~2^15-1

int: 4字节 -2^31~2^31-1(常用)

long: 8字节 -2^63~2^63-1

浮点型:包含所有小数.

float: 4字节 -3.403E38~3.403E38(常用)

double: 8字节 -1.798E308~1.798E308

字符型:

char 4字节 0~65535

布尔型:只有

boolean 1字节 理论上是占八分之一个字节,因为一个开关就可以决定是true和false了,但是java中boolean类型没有明确指定他的大

一般在代码中我们对数据会进行赋值为变量和常量来使用,其中java的变量是什么我们用三个问题去描述。

A:什么是变量

在程序执行的过程中,在某个范围内其值可以发生改变的量

B:变量的定义格式

数据类型 变量名 = 变量值;

C:为什么要定义变量

用来不断的存放同一类型的常量,并可以重复使用

在C问题中提出了常量这一概念,那么什么是常量呢,常量在java中被定义为其值被第一次赋值后就不可被改变的量,我们称之为常量。

定义格式是:public static final 数据类型 常量名 = 常量值;

注意:

1.变量/常量 名必须是一个有效的标识符;

2.变量/常量 名不可使用java中的关键字;

3.变量/常量 名不可重复;

4.应选择有意义的单词作为 变量/常量 名;

数据类型的转换:数据类型的转换分为隐式转换和强制转换

隐式转换:Java中的默认转换规则,取值范围小的数据类型与取值范围大的数据类型进行运算,会先将小的数据类型提升为大的,再运算.

强制转换:当所占字节较多的数据类型赋值给所占类型较少的的数据类型时,因为会丢失精度所以java会提示编写者进行一次强制的类型转换.转换个格式为:

b = (byte)(a + b);

注意如果超出了被赋值的数据类型的取值范围得到的结果会与你期望的结果不同;会丢失超出范围的字节。

byte b1 = 3;

byte b2 = 4;

byte b3 = b1 + b2;

* b1和b2是两个变量,变量里面存储的值都是变化的,所以在程序运行中JVM是无法判断里面具体的值

* byte类型的变量在进行运算的时候,会自动类型提升为int类型

这里涉及了二进制的运算我会单独开一篇文章起解释;

引用数据类型:class(类),interface(接口),array(数组);

在这里我不会,不过我会在后面去详细解释引用数据类型,会在说面向对象时候去说.

基本运算符:

java中的运算符分为了:算数运算符,赋值运算符,比较(关系)运算符,逻辑运算符,位运算符,和三元运算符:

算数运算符:+(加),-(减),*(乘),/(除),%(取余),++(自增),--(自减)

其中"+","-"也可以作为数据的正负号,剩下加减乘除大家应该都经常使用的,取余和自增自减估计用的相对少一点.

%:就是字面意思取到余数,比如7%4就是3,8%4就是0

++:自加。对原有的数据进行+1,不过这里要注意的是++的位子如果是在数据的后面是代表参与运算完成后自增一,如果是在数据的前面,就是会在自增后去参与运算;

--:自减。对原有的数据进行-1,同自增一样.

例:

int x,y,z;

x = 2;

y = x++;

z = ++x;

System.out.println("y = " + y +" , z = " + z);

输出结果:y = 2 , z = 4

赋值运算符:=,+=,-=,*=,/=,%=

=:并不像数学中一样的将左边的值赋给右边,而是将右边的值赋值给左边.

+=:将左边的数据与右边的数据进行相加后再赋值给左边的数据;

-=:将左边的数据与右边的数据进行相减后再赋值给左边的数据;

*=:将左边的数据与右边的数据进行相乘后再赋值给左边的数据;

/=:将左边的数据与右边的数据进行相除后再赋值给左边的数据;

%=:将左边的数据与右边的数据进行取余后再赋值给左边的数据;

比较(关系)运算符:>,<,==,>=,<=,!=

>:比较左方是否大于右方;

<:比较左方是否小于右方;

==:比较左右是否相等;

>=:比较左方是否大于等于右方;

<=:比较左方是否小于等于右方;

!=:比较左方是否不等于右方;

注意:

其中除了"=="与"!="可以比较所有基本数据类型和引用数据类型外,剩下的只可以比较整型,浮点型,字符型;

比较运算符返回值皆为boolean类型

逻辑运算符:&(与),&&,|(或),||,!(非),^(异或)

&:有false则false。

|:有true则true。

^:相同为false,不同为true。

!:非false则true,非true则false。

特点:偶数个不改变本身

注意:

逻辑运算符操作数据必须是boolean型.

位运算符:&,|,^,~ ,>>,>>>,<<

&:有0则0

|:有1则1

^:相同则0,不同则1

~:按位取反

<<:左移 左边最高位丢弃,右边补齐0

>>:右移 最高位是0,左边补齐0;最高为是1,左边补齐1

>>>:无符号右移 无论最高位是0还是1,左边补齐0

注意:

位运算符操作的是底层的二进制所以也是最高效的运算方式,我会单独写一篇文章去叙说二进制运算和位运算符的使用方式和场景.

三元运算符:(关系表达式) ? 表达式1 : 表达式2;

若关系表达式为true则会返回表达式1,相反是false会返回表达式2;

注意:

简单的逻辑判断使用三元运算符更加简洁,较复杂的逻辑则建议使用if...else语句替代,(简单说明两者区边,三元运算符发生了运算符的赋值动作,也就是有运算的,而if语句则没有运算结果,只有判断.)

关于运算符的优先级:

运算顺序:增量减量运算>算术运算>比较运算>逻辑运算>赋值运算

特定符号运算顺序:

1 () 括号

2 +,- 正负号

3 ++,--,! 一元运算

4 *,/,% 乘除

5 +,- 加减

6 >>,>>>,<< 位运算

7 <,>,<=,>= 比较大小

8 ==,!= 比较是否相等

9 & 位与运算

10 ^ 位异或运算

11 | 位或运算

12 && 逻辑与运算

13 || 逻辑或运算

14 ?: 三元运算

15 = 赋值运算

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

推荐阅读更多精彩内容

  • Win7下如何打开DOS控制台? a:开始--所有程序--附件--命令提示符 b:开始--搜索程序和文件--cmd...
    逍遥叹6阅读 1,584评论 4 12
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,540评论 18 399
  • 昨天说到我儿子当“御时官”掉的大,其实我才是那个真正和时间“死磕”几十年,掉的巨大的人。 不知道起因是什...
    小小的心思阅读 295评论 0 0
  • 5点50分,还在睡觉的我,被手机吵醒,传来一个男性的声音,叫我把车弄开,我一想,楼下的位置很空啊,我弟是把车停在角...
    大红茶阅读 370评论 0 0
  • 我们好像许久断了联系 那段情绪我早已没了体会 回忆永远拿不来回味 截留的总是自惭形秽 所有的执着,到头...
    迷小希阅读 295评论 5 2