数据类型和运算符1 零基础学习java

12月24日。

java语言是一门强类型语言

强类型包含两方面的含义

1.所有的变量必须先声明、后使用。

为什么呢?

因为声明了,运行时计算机才能划分计算机空间给他。根据变量不同,或者在堆里,或者在栈里。

使用,就是读写这个空间内的值,但是没有声明的话,连存在的空间都没有,那么读写也就无从谈起。

以下列出了一些变量的声明实例。注意有些包含了初始化过程。 

int a, b, c; // 声明三个int型整数:a、 b、c 

int d = 3, e = 4, f = 5; // 声明三个整数并赋予初值 

byte z = 22; // 声明并初始化 z 

String s = “runoob”; // 声明并初始化字符串 s 

double pi = 3.14159; // 声明了双精度浮点型变量 pi 

char x = ‘x’; // 声明变量 x 的值是字符 ‘x’。 

这里看到一个有意思的知识点:

静态变量一定要先声明后赋值

这标题看着让人很纳闷,什么叫做变量一定要先声明后赋值?Java中的变量不都是先声明后使用的吗?难道还能先使用后声明?能不能暂且不说,我们先来看一个例子,代码如下:

public class Client {

    public static  int i=1;  // 给变量赋值

    static{  

        i=100; 

    } 

    public static void main(String[] args) { 

          System.out.println(i); 

    } 

}

测试输出结果,输出100嘛!对,确实是100。

后面把这段代码变换一下位置:

public class Client {

    static {

        i = 100;

    }

    public static int i = 1;

    public static void main(String[] args) {

        System.out.println(i);

    }

}

变量i的声明和赋值调换了位置,现在的问题是:这段程序能否编译?如果可以编译那输出是多少?还要注意:这个变量i可是先使用(也就是赋值)后声明的。

答案是:可以编译,没有任何问题,输出是1。对,你没有看错,输出确实是1,而不是100。仅仅调换了一下位置,输出就变了,而且变量i还真是先使用后声明的,难道这世界真的颠倒了?

这要从静态变量的诞生说起了,静态变量是类加载时被分配到数据区(Data Area)的,它在内存中只有一个拷贝,不会被分配多次,其后的所有赋值操作都是值改变,地址则保持不变。我们知道JVM初始化变量是先声明空间,然后再赋值的,也就是说:

int i=100;

在JVM中是分开执行,等价于: 

 int i;//分配地址空间 

 i=100;//赋值

静态变量是在类初始化时首先被加载的,JVM会去查找类中所有的静态声明,然后分配空间,注意这时候只是完成了地址空间的分配,还没有赋值,之后JVM会根据类中静态赋值(包括静态类赋值和静态块赋值)的先后顺序来执行。对于程序来说,就是先声明了int类型的地址空间,并把地址传递给了i,然后按照类中的先后顺序执行赋值动作,首先执行静态块中i=100,接着执行i=1,那最后的结果就是i=1了。

如果有多个静态块对i继续赋值呢?

i当然还是等于1了,谁的位置最靠后谁有最终的决定权。

2.指定类型的变量只能接受类型与之匹配的值

强类型 语言可以在编译过程中发现源代码的错误,从而保证程序更加健壮。

java语言提供了风的基本数据类型,

例如:整型 byte short int long 四种

字符型 char

浮点型 float double 2种

布尔型 boolean

基本类型大致上可以分为两类:

数值类型、布尔类型。

数值类型包括整型、字符型和浮点型,所有数值类型之间可以进行类型转换,这种类型转换又包括自动类型转换和强制类型转换


java语言还提供了一系列功能丰富的运算符。

这些运算符包括所有的算数运算符,以及功能丰富的位运算符、比较运算符、逻辑运算符,这些运算符都是java编程的基础。将运算符和操作数链接在一起就形成了表达式。

这里有几个名词解释不太懂:

操作数:参与运算的常量或者变量称为操作数。


表达式:用运算符把常量或者变量连接起来符合java语法的式子就可以称为表达式。

不同运算符连接的式子体现的是不同类型的表达式。


运算符:对常量和变量进行操作的符号称为运算符。

算术运算符:+、-、*、/、%、++、--

    /和%的区别?

    /:除法,得到商

    符号相同为正,不同为负

    %:除法,得到余数

    符号和第一个操作数相同

    %的应用:

      x%3 等于 0 说明x能被3整除

      x%2 等1 说明x是奇数

          等0 说明x是偶数

++,--运算符

 作用:++就是加1,--就是减1。

      自增自减运算符

    ++,--在运算的时候,可以放在操作数的前面,也可以放在操作数的后面

      A:单独使用

       没有区别

      B:参与其他操作使用

        后面:先操作,再自增

        前面:先自增,再操作

  赋值运算符

              基本:=

    扩展:+=

  扩展的赋值运算符隐含了强制类型转换:

    int a = 10;

    a += 20;

    a = (a的数据类型)(a + 20)

比较运算符==,!=,>,>=,<,<=

  注意:

    A:比较运算符的结果肯定是boolean。

    B:你到底是使用"="还是使用"==",你自己要清楚。

逻辑运算符:&、|、!、^、&&、||

    注意:

    逻辑运算符用于连接关系表达式

    结论:

    &: 有false则false  

    |: 有true则true 

    !:改变结果,取反

    ^:相同false,不同true

最常用的逻辑运算符;

    !,&&,||

          &&和&:

    结果一样,但是&&具有短路效果,左边如果是false,右边不执行。

  ||和|:

    结果一样,但是||具有短路效果,左边如果是true,右边不执行。

三目运算符 格式:?:

  (比较表达式)?表达式1:表达式2;

  执行流程:

    如果条件为true,运算后的结果是表达式1;

    如果条件为false,运算后的结果是表达式2;

  需求:获取两个数据中的最大值

  嵌套使用(获取三个数的最大值)

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

推荐阅读更多精彩内容

  • Win7下如何打开DOS控制台? a:开始--所有程序--附件--命令提示符 b:开始--搜索程序和文件--cmd...
    逍遥叹6阅读 1,586评论 4 12
  • 这是16年5月份编辑的一份比较杂乱适合自己观看的学习记录文档,今天18年5月份再次想写文章,发现简书还为我保存起的...
    Jenaral阅读 2,729评论 2 9
  • 夜已深,汽车飞驰而过的声音和点滴雨声交织在一起,竟觉得有些静了。 秋意渐浓,不论你喜欢还是讨厌,它依旧...
    向日葵的梦LI阅读 145评论 0 1
  • 目标客户群体: 1、请写出你现在行业的5个目标客户群 · 新微商大咖商学院的学员 · 对设计和构图有兴趣的人 · ...
    SIEWLIN设计顽童阅读 95评论 0 0
  • 使用transaction.add() : 对两个Fragment进行切换 使用add()情况下:两个Fragme...
    zoustin阅读 4,672评论 0 3