变量和数据类型

一、什么是程序?
    (程序是为解决某个特定的问题而用计算机语言所编写的指令的集合)
二、什么是数据结构?
    (计算机存储和组织数据的一种方式,内存就像储物柜,用来存放各种类型的数据.对于程序员来说,数据存入内存只是第一步,还要考虑:a.怎样找到存入的数据?<即数据对应的十六进制的内存地址>; b.存入的数据能否修改)。写程序就是在做内存存取,先把数据存入内存,需要的时候取出来做处理。
    1.内存地址不好记怎么办?
        为特定地址的内存起个别名,通过别名找到存储的数据,该别名就是变量名。变量就是数据存储空间的表示(本质上讲就是内存中的一块存储区域,通过变量名就可以访问此区域)
    2.变量的声明和使用
        a.声明一个变量以分配空间(根据数据类型来开辟空间,如 int a;占4个字节)
        b.为变量赋值(将数据存入空间,如 a = 20;)
        c.使用变量(取出数据,使用。如:System.out.println(a);<根据变量a就可以找到该区域存储的数据>)
    3.标识符命名规则
        (1).什么是标识符:凡是在程序中起名字的地方都可以称之为标识符. 

        (2).变量名不能以数字开头,不能包含关键字,要见名知意.具体参看预科知识.

三、关键字
    1.关键字的定义和特点
        1)定义:java 语言赋予特定含义的英文单词
        2)特点:所有的字母都为小写
    2.用于定义数据类型的关键字
        class interface byte short int long float double char boolean void
    3.用于定义数据类型值的关键字
        true false null
    4.用于定义流程控制的关键字
        If else switch case default while do for break continue return
    5.用于定义访问权限修饰符的关键字
        private protected public
    6.用于定义类、 函数、 变量修饰符的关键字
        abstract final static synchronized
    7.用于定义类与类之间关系的关键字
        extends implements
    8.用于定义建立实例及引用实例、 判断实例的关键字
        new this super instanceof
    9.用于异常处理的关键字
        try catch finally throw throws
    10.用于包的关键字
        package import
    11.其他修饰符关键字
        native strictfp transient volatile assert
四、标识符
    1.标识符的定义
        用来作为标识的一种符号, 在程序中自定义的一些名称。 (包括: 包名、 类名、 变量名、 方法名)
    2.标识符的组成
        1)由 26 个英文字母大小写、 数字(0-9)、 符号(_ 、 $)组成。
        2)命名规则(不能违反):不能以数字开头、 不能是关键字
        3)java 中严格区分大小写
        4)命名规范(要遵守的):见名知意
        5)驼峰式命名法 myEnglishScore
        6)匈牙利命名法 my_english_score
    3.java 中的名称规范
        1)包名:多单词组成时所有字母都小写(xxxyyyzzz)
        2)类名:首字母大写(XxxYyyZzz)
        3)变量名和函数名:多单词组成时, 第一个单词首字母小写,第二个单词开始每个单词首字母大写(驼峰式命名法)
        4)常量名:所有的字母都大写, 多单词时每个单词下面用_连接(XXX_YYY_ZZZ)
        5)String(字符串):凡是用双引号引起来的都是字符串 如:String name=” 张三” , 这里的 String 是数据类型, name 是标识符。 注意: 任何其他的数据类型+字符串, 都将变成字符串
 。

五、Java数据类型

     java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间.(基本数据类型存的是内容,而引用数据类型存的是地址)

    栈内存:用于存放此方法调用过程当中的临时变量,如:基本数据类型
    堆内存:一般存放new出来的对象,即引用类型
    自动类型转换也叫隐式转换(Implicit Casting):一般为小转大
    强制类型转换也叫显示转换(Explicit Casting):一般为大转小

    单独使用++的时候不管其在前还是在后,都是自身加1;当有赋值运算符的时候,++在后先赋值,再自身加1,++在前,先自身加1,再赋值.

六、 变量与常量
    1.什么是常量?
        在程序运行时, 不会被修改的量。 (如:20,90.5...)
    2.什么是变量?
        1)概念: 存储数据的基本单元(本质:数据存储的空间表示)。即,
            (a)java 内存中的一个存储区域
            (b)该区域有自己的名称(变量名)和类型(数据类型)
            (c)该区域的数据可以在同一类型范围内不断变化
       2)变量名的本质:内存地址的别名。
       3)为什么要定义变量?
            用来不断地存放同一类型的常量, 并可以重复使用。
    3.变量的声明
        声明的结构: 数据类型 标识符
        比如: String name;

    4.变量的赋值
        比如: name = “小明” ;
    5.变量的定义(声明的同时并初始化)
        相当于变量的声明+变量的赋值
        比如: String name = “孙” ;
        注意:Java 是一种强数据类型的语言, 所以我们在存储数据的时候一定要定义数据的类型。
    6.变量的使用
        方法一:先声明, 再赋值

        方法二:变量的定义(即声明的同时并初始化)

七、 基本数据类型
    java 中的数据类型分为基本数据类型(8 种)和引用数据类型(如: String)
    1. 数据类型
        1)定义:用来确定存储在内存中的数据的类型(注意:变量开辟的内存空间的大小是根据数据的类型来确定的)
        2)为什么一定要数据类型?
            因为 java 是一种强类型的编程语言。 所有的变量必须先定
义后使用, 所有变量都必须指定一种数据类型。
    2. 分类
        1) 数值类型
            整型(默认值是 int )   浮点型 ( 默认值是 double)
        2) 字符类型
            注意: 使用的时候要用单引号引起来的单个字符(如: ’ A’ 、‘男’ 、 ’ 1’ )
         类型     占用字节数       位数         取值范围
         byte      1 字节             8bit         -128-127
         short     2 字节             16bit      -32768-32767
         int         4 字节             32bit      -2^31-2^31-1
         long      8 字节             64bit      -2^63-2^63
         float      4 字节             32bit
         double  8 字节             64bit
         char       2 字节            16bit       0-65535

        3)布尔类型(boolean):一般用来判断逻辑条件

        类型 占用字节数 位数
          true 1 字节 8bit
          false 1 字节 8bit

八、 基本数据类型之间的转换

        1.前提条件:两种类型要兼容
        2.转换规则
            1)当占字节数少的类型赋值占字节数大的时候(即:小转大:自动转换)
                比如: byte num1=15;   int num2=num1;
            2)当占字节数大的类型赋值给占字节数小的类型的时候(即:大转小:强制转换)
                比如: int num1=1;    short num2=(short)num1;
        总结:
            1.自动类型转换是安全的, 强制类型转换可能导致精度的损失。 一个式子的类型由最高的数据类型决定。
            2.char 的存储类型是十进制, 表现形式是字符, 对应的关系
查询 unicode 码表。 此外, 在用 char 做运算的时候, 用的是十进制; 做字符串的拼接的时候用的是表现形式。
九、 输入语句 (scanner)
    步骤 :
        1. 导包 :import java.util.Scanner;或者 import java.util.*;
            注意:lang 包下的类使用的时候不需要导包, 其他包下的类在使用的时候都需要导包。
        2. 创建 Scanner 对象
            //创建用于从键盘输入的对象, 可以反复使用
                Scanner input = new Scanner(System.in);
       3.
四种最常用的数据类型的输入方法
             Scanner input = new Scanner(System. in );
                // 获取一个整型
            int i = input.nextInt();
                // 获取一个 double
            double d = input.nextDouble();
                // 获取一个字符串
            String string = input.next();
                // 获取一个字符

            char c = input.next().charAt(0);

十、 基本数据类型的包装类
    基本数据类型 对应的包装类(引用数据类型)
    byte                 Byte
    short                Short
    int                    Integer
    long                 Long
    float                 Float
    double             Double
    char                 Character
    boolean           Boolean
1.基本数据类型最实用的作用就是用于基本数据类型和字符
串类型之间的转换

    (1)整数与字符串之间的转换
        a)整数转换为字符串
            ①用连接符: +
                int num = 123;
                String str = num + “12” ;

            ②用包装类:Integer.toString(num);
                int num = 123;
                String str = Integer.toString(num);
        B)字符串转换为整数
                Integer.parseInt(String s);
                String str = “121” ;
                Int num = Integer.parseInt(str);
    (2)小数与字符串之间的转换
        a)小数转换为字符串
                Double.toString(double d);
                double num = 2.5;
                String str = Double.toString(num);
        b)字符串转换为小数
                Double.parseDouble(String s);
                String str = “12.5” ;

                double num = Double.parseDouble(str);

十一、 算术运算符
    1.+ 的作用

        (1)做加法 (2)做正号, 表示正数(一般省略不写) (3)做字符串的拼接

          字符串+任何数据类型=字符串类型
            System.out.println("" + 1 + 2);// 12
            System.out.println(1 + "" + 2 + 3);// 123

            System.out.println(1 + 2 + "" + 3);// 33

    2.- 的作用
        (1)做减法 (2)表示负数
    3.* 的作用
        做乘法, 乘号不可以省略
    4./ 的作用

        (1)取整 注意:除号两边如果都是整数, 则结果就是整数; 只要有一边为小数, 结果就做除法运算。

        System.out.println(5 / 2);// 2
        System.out.println(5 / 2.0);// 2.5
        System.out.println(5 / 0);// 0 不能做分母
        System.out.println(5 / 0.0);// Infinity(无限趋近于0,但是不等于 0)

        System.out.println(5 * 0.0);// 0.0

    5.% 的作用
        (1)取余(取模)
            System.out.println(5 % 2);// 1

            System.out.println(5 % 2.0);// 1.0

    6.++ -- 的作用

    (1)单独存在的时候, 在前或在后都是自增(或自减)1

        int i = 1;
        i++;

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

        int i = 1;

        ++i;

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

   (2)不单独存在的时候, 在前先自增(或自减)先赋值, 再执行其他语句; 在后先赋值, 先执行其他语句, 再赋值。

int a = 1;
System.
out.println(a++);// 1
System.out.println(a);// 2
System.out.println(++a);// 3

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

----------------------------------------------

int a = 1;
int b = ++a;
System.
out.println(b);// 2

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

----------------------------------------------------

int x = 1;
System.
out.println("num=" +
(x++) + (++x));
// num=13 

十二、 包装类
    包含每种基本数据类型的相关属性, 如: 最大值、 最小值等, 以及相关操作的方法。 主要用来和字符串进行转换
    1.利用包装类求整数的最大值和最小值
    
byte maxValue = Byte.MAX_VALUE;
byte minValue = Byte.MIN_VALUE;
System.
out.println(maxValue);// 127
System.out.println(minValue);// -128
    2. 利用包装类求浮点数的最大值和最小值 
double maxValue = Double.MAX_VALUE;
double minValue = Double.MIN_VALUE;
System.
out.println(maxValue);
System.
out.println(minValue);
十三、 运算符
    1. 赋值运算符
short s = 2;
s += 2;
// 不会报错, 因为+=java 中有强转的作用
s = s + 2;// 需要强制类型转换 s=(short) (s+2);
System.out.println(s);
2. 运算符的优先级
    算术运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符 ( 小括号的优先级最高 )
十四、 特殊运算符 ( 三目运算符 )
    1. 格式: ( 条件表达式 )?( 表达式 1):( 表达式 2);
    如果条件表达式的值为 true , 运算后的结果为表达式 1 。 如果条件表达式的值为 false , 运算后的结果为表达式 2
    比如
:
        int x = 3, y = 4, z;
        z = (x >
y ) ? x : y;
        System.
out .println(z);
    2. 优点与缺点
        可以简化 if-else 代码。 因为它是一个运算符, 所以运算必须要有一个结果。
十五、 比较字符串
    1.==
        对于基本数据类型来讲, 比较的是是否是同一个对象 ( 即是否引用同一个地址 )
    2. .equals()
        比较的是指向对象的值是否相等 ( 即内容是否一样 ) , 如果用 == 比较的是内存地址是否一样 。
十六、 
    1. 什么是方法?
        方法是定义在类中具有某种特定功能的代码块。
    2.方法由什么组成?
        访问修饰符 返回值的类型 方法名(参数)
   (1) 访问修饰符 : 代表该方法所具备的访问权限
   (2)返回值类型 : 方法运行后结果的类型
   (3)返回值 : 功能完成之后反馈给调用者的数据 ( 方法运算后的结果, 将结果返回给调用者, 通过关键字 return 返回 )
   (4)参数 : 完成功能时需要调用者提供的数据, 参数分为形参和实参。 ( 形式参数 : 定义方法时的参数叫形参, 是一个变量,可有可无, 根据需求来确定需要不需要; 调用方法的时候传入的参数叫实参。 )
   (5)方法名不能以数字开头, 不能是关键字, 首字母小写,驼峰式命名法。
注意:
    1)在方法的定义中, 方法的返回类型与 return 后面的常量或者变量类型要保持一致; 若方法返回类型为空(void), return 可以省略不写(return,表示返回到方法的调用端)。
    2)在方法调用时, 给方法传递的参数需要与方法定义时的参数保持一致(参数个数一致、 参数类型一致)。
    3)方法只能调用方法, 不可以在方法中定义方法, 方法只能定义在类中。
    4)定义方法时的参数都是形参, 调用方法时的参数都是实参。
    5)每个方法只干一件事, 否则方法的复用性会降低。
    6)同一个类中的静态方法, 可以通过类名.方法名调用, 也可以直接方法名调用; 不同类中的静态方法, 通过类名.方法名来调用。
十七、 方法的分类
    1. 根据返回值是否为空, 有没有参数, 分为 :
        1)无参-返回值为空
        2)无参-返回值不为空
        3)有参-返回值为空
        4)有参-返回值不为空

    2. 系统已经封装好的方法和自定义的方法
十八、 变量的作用域和周期
    1 、 能同时声明两个相同变量名的变量吗? 为什么?
        可以, 只要两个变量的作用域不冲突就可以。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值