Java笔记-基础语法(二)

一 数据与数据类型 

    程序开发离不开数据,其实说白了程序就是用来处理数据的。在Java中我们要学习数据的类型及数据量。通常数据是会发生变化的,而数据的处理逻辑是不发生变化的。例如商品的数量种类是会变化的,用户的数量也是会变化的,但购买的流程通常不会变化。

    软件可以分为两个部分,一个部分是“数据”;另一个部分是“数据处理的逻辑”。 即程序 = 数据 + 逻辑。

1.1数据类型

    Java中的数据类型分两种:基本数据类型和引用数据类型。

                        

    基本数据类型是Java语言中内置的类型,分别是整数类型、小数类型、字符类型、布尔类型。这四类基本类型是最简单、最基础的类型。

    引用数据类型是强大的数据类型,它是基于基本数据类型创建的。JavaSE中提供了一个超级类库,类库中包含了近万种引用数据类型。

1.2常量

    Java中的数据量分为常量和变量,这里先介绍常量!常量就是不变的数据量,例如100就是常量,任何数据量都有其类型,那么100这个常量是什么类型呢?回忆一下基本类型中有四类,分别是整数、小数(浮点数)、字符、布尔。那么100是哪一类型呢?没错,就是整数常量!

        整数类型

            十进制表示方式:正常数字   如 13、25等

            二进制表示方式:以0b(0B)开头    如0b1011 、0B1001

            十六进制表示方式:以0x(0X)开头   数字以0-9及A-F组成  如0x23A2、0xa、0x10

            八进制表示方式:以0开头   如01、07、0721

        小数类型

            如1.0、-3.15、3.168等

        布尔类型

            true、false

        字符类型

            如'a','A', '0', '家';字符必须使用’’ 包裹,并且其中只能且仅能包含一个字符。

        字符串类型

            字符串String类型是一种引用类型,我们先了解作为常量类型的使用方式,如“我爱Java”,“0123”,“”,“null”

            字符串必须使用“”包裹,其中可以包含0~N个字符。

1.3变量

    前面我们已经学习了常量,接下来我们要学习变量。在Java中变量的应用比常量的应用要多很多。所以变量也是尤为重要的知识点!

    什么是变量?变量是一个内存中的小盒子(小容器),容器是什么?生活中也有很多容器,例如水杯是容器,用来装载水;你家里的大衣柜是容器,用来装载衣裤;饭盒是容器,用来装载饭菜。那么变量是装载什么的呢?答案是数据!结论:变量是内存中装载数据的小盒子,你只能用它来存数据和取数据。

1.4计算机存储单元

    变量是内存中的小容器,用来存储数据。那么计算机内存是怎么存储数据的呢?无论是内存(临时存储)还是硬盘(永久存储),计算机存储设备的最小信息单元叫“位(bit)”,我们又称之为“比特位”,通常用小写的字母b表示。而计算机最小的存储单元叫“字节(byte)”,通常用大写字母B表示,字节是由连续的8个位组成。

    当程序需要使用存储空间时,操作系统最小会分派给程序1个字节,而不是1个位。你可能会说,如果程序只需要1个位的空间,系统分派不能只分派1个位吗?答案是不能!这就像你只需要1支烟,你到商店去买烟,商店分派的最小单元是1盒(20支),他不可能卖给你1支烟。

    你可能会想,1个字节(8位)可以存储很大的数值了,1位最大是9那么8位最大值为99999999。你错了,因为计算机是采用二进行存储的,而不是我们生活中常用的十进制。所以1个字节存储的最大数据是11111111的二进制数。

    除了字节外还有一些常用的存储单位,大家可能比较熟悉,我们一起来看看:

        1B(字节) = 8bit

        1KB = 1024B

        1MB = 1024KB

        1GB = 1024MB

        1TB = 1024GB

        1PB = 1024TB

1.5基本类型之4类8种

    我们知道不同的容器装载不同的物品。变量也是如此,在创建变量时需要指定变量的数据类型,例如整型变量、浮点型变量等等。结论:变量必须要有明确的类型,什么类型的变量装载什么类型的数据。

    水杯是用来装水的,那么水杯能装多少水呢?一吨?我们知道水杯在创建时不只确定了要装载的是水(数据类型),而且还确定了能装多少水(数据类型的具体种类)。变量也是如此,需要指定变量能装载什么类型的数据,同时也要指定变量能装载多大的数据。

    Java中基本类型一共4类,把这4类展开后共8种基本类型。我们今后编写程序时使用的是这8种基本类型而不是4类,这8种基本类型指定了范围。

            

    注意:String不属于基本类型,是引用类型,但使用方法和基本类型一样;整数默认int类型,浮点数默认double类型;long类型常量必须添加了“L/l”后缀;float类型常量必须添加“F/f”后缀

1.6数据类型转换

    不同类型的变量是否可以在一起运算呢?答案是可以的,但要先进行类型转换再运算。下面我们来学习一下类型转换。其实,我们所学习的数据,它的表示方式是可以灵活多变的,比如把小数转换成整数的转换的过程中,数据遵循一个原则:

        范围小的数据类型值(如byte),可以直接转换为范围大的数据类型值(如int);

        范围大的数据类型值(如int),不可以直接转换为范围小的数据类型值(如byte);

    那么,大家还记得每种类型表示数据的范围吗?忘记了不要紧,我来告诉大家,将各种数据类型按照数据范围从小到大依次列出:byte -> short -> int -> long -> float -> double。(boolean不参与转换)

     关于数据类型转换有两种方式,我们来学习一下:

    自动类型转换

        表示范围小的数据类型转换成范围大的数据类型,这种方式称为自动类型转换

        自动类型转换格式:范围大的数据类型 变量 = 范围小的数据类型值;如:double d = 1000

      强制类型转换(可能会丢失精度)

        表示范围大的数据类型转换成范围小的数据类型,这种方式称为强制类型转换

        强制类型转换格式:范围小的数据类型  变量 = (范围小的数据类型) 范围大的数据类型值;如:int  i = (int)6.71;  //i的值为6

二 运算符

2.1算术运算符

    我们在使用算术运算符时,记得要注意下列事项:

        加法运算符在连接字符串时要注意,只有直接与字符串相加才会转成字符串。

        除法“/”当两边为整数时,取整数部分,舍余数。当其中一边为浮点型时,按正常规则相除。

        “%”为整除取余符号,小数取余没有意义。结果符号与被取余符号相同。

        整数做被除数,0不能做除数,否则报错。

                        

注意:++,--运算符后置时,先使用变量a原有值参与运算操作,运算操作完成后,变量a的值自增1或者自减1;后置后自增。

          ++,--运算符前置时,先将变量a的值自增1或者自减1,然后使用更新后的新值参与运算操作。前置先自增

2.2赋值运算符

                        

注意:+=, -=, *=, /=, %= 运算符会将等号左右两边计算,将结果自动强转成等号左边的数据类型,再赋值给等号左边的变量。如

byte x = 10;x += 20;// 相当于 x = (byte)(x+20)

2.3比较运算符

    比较运算符,又叫关系运算符,它是用来判断两个操作数的大小关系及是否相等关系的,结果是布尔值true或者false。

                        

2.4逻辑运算符

    逻辑运算符,它是用于布尔值进行运算的,运算的最终结果为布尔值true或false。

                         

注意:逻辑运算符通常连接两个其他表达式计算后的布尔值结果当使用短路与或者短路或时,只要能判断出结果则后边的部分就不再判断(即不运行)。

2.5三元运算符  

    接下来我们要学习的三元运算符与之前的运算符不同。之前学习的均为一元或者二元运算符。元即参与运算的数据。格式:

         (条件表达式)?表达式1:表达式2;

    三元运算符运算规则:先判断条件表达式的值,若为true,运算结果为表达式1;若false,运算结果为表达式2。

2.6运算符优先级  

    在学习运算符的过程中,我们发现,当多个运算符一起使用的时候,容易出现不清晰先后运算顺序的问题,现在我们来学习下运算符之间的运算优先级。

    下图是每种运算符的优先级,按照运算先后顺序排序(优先级相同的情况下,按照从左到右的顺序依次运算):

                        

三 引用数据类型

3.1Scanner类

    我们要学的Scanner类是属于引用数据类型,我们先了解下引用数据类型。引用数据类型的使用与定义基本数据类型变量不同,引用数据类型的变量定义及赋值有一个相对固定的步骤或格式:

        数据类型  变量名  =  new 数据类型();每种引用数据类型都有其功能,我们可以调用该类型实例的功能。

        变量名.方法名();

    Scanner类是引用数据类型的一种,我们可以使用该类来完成用户键盘录入,获取到录入的数据。Scanner使用步骤:

        ①导包:import  java.util.Scanner;

        ②创建对象实例:Scanner  sc = new Scanner(System.in);

        ③调用方法:int  i=sc.nextInt();    //用来接收控制台录入的整数

                        String  s=sc.next();    //用来接收控制台录入的字符串

3.2Random类

    我们来学习下,用来产生随机数的类Random,它也属于引用数据类型。这个Random类,它可以产生多种数据类型的随机数,在这里我们主要介绍生成整数与小数的方式。方法简介:

        public int nextInt(int maxValue)     产生[0,maxValue)范围的随机整数,包含0,不包含maxValue;

        public double nextDouble()  产生[0,1)范围的随机小数,包含0.0,不包含1.0。

        引用数据类型的使用方式,在学习键盘录入Scanner时,我们已经学习过,在这里,再次回顾一下:

    Random使用方式:

        ①import导包:import  java.util.Random 

        ②创建实例格式:Random 变量名 = new Random();

        ③调用方法

                        Random  r = new Random(); // 创建Random类的实例

                        int  i = r.nextInt(100);  // 得到0-100范围内的随机整数,将产生的随机整数赋值给i变量

                        double  d = r.nextDouble(); //得到0.0-1.0范围内的随机小数,将产生的随机小数赋值给d变量

四 流程控制语句

4.1选择结构

    接下来要学习的if条件语句分为三种语法格式,每一种格式都有它自身的特点,下面我们分别进行介绍。

                                          

三元运算符,它和if-else语句类似,语法如下:判断条件 ? 表达式1 : 表达式2

    switch 条件语句也是一种很常用的选择语句,它和if条件语句不同,它只能针对某个表达式的值作出判断,从而决定程序执行哪一段代码。代码2体现了switch的特性:case的穿透性。用法如下所示:

     

注意:switch语句中的表达式的数据类型,要求如下:

            JDK1.7及之后数据类型接受:byte  short  int  char  enum(枚举)  String

4.2循环语句

while循环:while( 循环条件 ) { 执行语句...  }

    while循环语句和选择结构if语句有些相似,都是根据条件判断来决定是否执行大括号内的执行语句。区别在于,while语句会反复地进行条件判断,只要条件成立,{}内的执行语句就会执行,直到条件不成立,while循环结束。

for循环:for( 初始化表达式;循环条件;操作表达式 ) { 执行语句...  }

    for循环语句是最常用的循环语句,一般用在循环次数已知的情况下。

do...while循环do{ 执行语句...  }while( 循环条件  )

    do…while循环语句和while循环语句功能类似,关键字do后面{}中的执行语句是循环体。do…while循环语句将循环条件放在了循环体的后面。这也就意味着,循环体会无条件执行一次,然后再根据循环条件来决定是否继续执行。

无限循环

    while( true ){ }或for(;;){ }。无限循环存在的原因是并不知道循环多少次,而是根据某些条件,来控制循环。

跳转语句:(break,continue)

    跳转语句用于实现循环执行过程中程序流程的跳转,在Java中的跳转语句有break语句和continue语句。

    总结:break跳出本层循环,要想跳出某个外层循环,须在外层循环添加标记;

              continue结束本次循环,进入下一次循环;

              在嵌套循环语句中,continue语句后面也可以通过使用标记的方式结束本次外层循环,用法与break语句相似。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值