zoukankan      html  css  js  c++  java
  • JavaSE基础入门_002_Java语言基础

    语言基础

    前置知识

    1. 什么是内存?

      1. 内存是瞬时状态下的储存空间,限制内存的原因:造价高、工业设计上的瓶颈。

    2. JAVA虚拟机(JAVA程序)默认分配到的物理内存是1/8。

    3. bit(位) -> Byte(字节) -> KB -> MB -> GB -> TB -> PB -> EB -> ZB -> YB -> BB -> NB ->DB -> CB -> XB

      1. bit --> Byte 是 8进制,其他都是1024进制

         

    变量的概念

    • 概念: 计算机内存中的一块储存空间,是存储数据的基本单元。

      • 整个内存就像是一个酒店,当中包含了多个房间

      • 房间的类型有所不同(单人间、两人间……)

      • 每个房间都有唯一的门牌号

      • 每个房间的住客也不相同

     

    • 酒店的房间——变量【组成如下:】

      • 房间的类型——数据类型

      • 房间门牌号——变量名

      • 房间的住客——值

     

    • 变量的定义流程:

      • 声明:

        • 数据类型 变量名;

        • int money; // 开辟整数变量空间

           

      • 赋值:

        • 变量名 = 值;

        • money = 100; // 将整数值赋给变量

           

    • 注意:Java是强类型语言,变量的类型必须与数据的类型一致。

    变量的定义方式

    • 声明变量的3种方式

      • 先声明,再赋值【常用】

        • 数据类型 变量名;

        • 变量名 = 值;

           

    • 声明并赋值:【常用】

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

     

    System.out.println()//输出括号内的内容后换行

     

    • 多个同类型变量的声明与赋值:【了解】

      • 数据类型 变量1,变量2,变量3 = 值3 , 变量4, 变量5 = 值5;

     

    注意:变量需要初始化【先赋值,再使用】;否则,会报错:尚未初始化。

     

    数据类型

    • Java中的变量具有严格的数据类型区分。(强类型语言)

    • 在Java语言中,任何一个值,都有其对应类型的变量。

    Java中的数据类型:

    基本数据类型引用数据类型
    整数 字符串
    小数 数组
    布尔 对象
    字符  
    1. 二进制表现形式:

      1. byte == 8 bit 0000 0000

        例如:

        十进制二进制
        1 0000 0001
        3 0000 0011
        5 0000 0101
        7 0000 0111
    数据类型字节长度
    byte 1
    short 2
    int 4
    long 8

    int为整数的默认类型,long型数据 需要在数据后面带 L;例如:

    long l = 2147483678L;

    基本数据类型(小数/浮点数)

    类型字节长度
    float 4
    double 8

    科学计数法:

    2E3 = 2 * (10 ^3) = 2000

    注意:

    • double为浮点数的默认类型,如需为float类型,需要在值的后面追加“F”

    • float f = 3.43F

    近似值:

    • float:4个字节 单精度

      • 32bit 1bit符号位 8bits指数位 23bits尾数位

    • double:8个字节 双精度

      • 64bit 1bit符号位 11bits指数位 52bits尾数位

    布尔

    类型字节取值范围描述
    boolean 1字节 true/false 仅可描述“真”或者“假”
    • 可直接赋值true/false

    • 也可以赋值一个结果为true/false的表达式

    • 注意:Java中的Boolean不能参与算数运算

     

    字符型

    类型字节取值范围(无符号数)描述
    char 2字节 0~65535 Unicode字符集(万国符)

    英文对应的ASCII编码;中文或其它国家语言对应Unicode编码。

    • Unicode字符集支持ASCII编码

    • Unicode中每个字符都对应一个十进制整数,从而可以使用多种方式赋值

      • 字符赋值:char c1 = 'A';(通过''述为字符赋值)

      • 整数赋值:char c2 = 65;(通过十进制65在字符集中对应的字符赋值)

      • 进制赋值:char c3 = 'u0041';(通过十六进制【u】41在字符集中对应的字符赋值)

     

    转义字符

    • 如果需要在程序中输出一个单引号字符,该如何完成?

      转义字符描述
      换行符
      缩进(制表符)
      反斜线
      ' 单引号
      '' 双引号

     

    引用数据类型(字符串)

    类型取值范围字符编码
    String 任何“ ”之间的字面值 Unicode字符序列

     

    • String类型的字面取值:

      String str = "你好";

    类型转换

    • 自动类型转换:

      • 两种类型相互兼容。

      • 目标类型大于源类型。

     

    • 强制类型转换:

      • 两种类型相互兼容

      • 目标类型小于源类型

    short s = 123;
    byte b = (byte)s;

     

    可能会丢失精度的情况:

    【长度大的数据类型向长度小的强制转换】

    • 小数强转为整数

    double x = 12.34;
    int y = (int)x;
    //输出 y:12
    • 整数强转为整数(大的往小的里面放)

    short m = 258;
    byte n = (byte)m;
    //输出 n:2
    • 强制类型转换规则:

      • 整数长度足够,数据完整。

      • 例如:

      • int i = 100;   byte b = (byte)i;   // b = 100;
    • 整数长度不够,数据截断

      • 例如:

      • int i = 10000;  byte b = (byte)i;   //b = 16 (符号位变化,可能变为负数)

         

    • 小数强转整数,数据截断

      • 例如:

      • double d = 2.5;   int i = (int)d;   // i = 2(小数位舍掉)

     

    • 字符整数互转,数据完整

      • 例如:

      • char c = 65;    int i = c;  //i = 65
    • boolean的取值为true/false,不可与其他类型转换。

     

    表达式

    • 使用运算符链接的变量或字面值,并可以得到一个最终结果。

    • 例如:

      • 1 + 2;

      • int a = 3; a - 2;

      • int b = 10; int c = 20; b*c; c / b;

      • short d = 100; int e = 200; d > e; d <= e;

     

    自动类型提升

    • 进行算术运算时:

      • 两个操作数有一个为double,计算结果提升为double。

      • 如果操作数中没有double,有一个为float,计算结果提升为float。

      • 如果操作数中没有float,有一个为long,计算结果提升为long。

      • 如果操作数中没有long,有一个为int,计算结果提升为int。

      • 如果操作数中没有int,均为short或者byte,计算结果仍旧提升为int。

    • 特殊:任何类型与String相加(+)时,实际为拼接,其结果自动提升为String。

     

    运算符

    • 算数运算符:两个操作数进行计算

      • 操作符描述
        + 加、求和
        - 减、秋茶
        * 乘、求积
        / 除、求商
        % 模、求余
    • 算数运算符:一元运算符(一元:只有一个操作数)

      • 操作符描述
        ++ 递增、自增1
        -- 递减、自减1
    • 赋值运算符:等号右边赋值给等号左边

      • 操作符描述
        = 直接赋值
        += 求和后赋值
        -= 求差后赋值
        *= 求积后赋值
        /= 求商后赋值
        %= 求余后赋值
    • 关系运算符:两个操作数进行比较

      • 操作符描述
        > 大于
        < 小于
        >= 大于等于
        <= 小于等于
        == 等于
        != 不等于
    • 逻辑运算符:两个boolean类型的操作数或表达式进行逻辑比较

      • 操作符语义描述
        && 与(并且) 两边同时为真。结果为真
        || 或(或者) 一边同时真。结果为真
        非(取反) 取原来的反,即原真现假,原假现真
    • 三元运算符:将判断后的结果赋值给变量

      • 操作符语义描述
        ?: 布尔表达式?结果1:结果2 当表达式结果真,获得结果1;当表达式结果为假,获得结果2
      //三元运算符使用:
     String tag = date == "07"?"Happy":"all right";

    控制台输入

    • 程序运行中,可在控制台(终端)手动录入数据,再让程序继续运行。

    • 导包语法:import 包名.类名;//将外部class文件功能引入到自身文件中.

    • 使用顺序

      • 导入 java.util.Scanner

      • 声明Scanner类型的变量

      • 使用Scanner类中对应的函数(区分类型):

        • .nextInt(); //获得整数

        • .nextDouble(); //获得小数

        • .next(); //获得字符串

        • .next().charAt(0); //获得首个字符

    • 注意:如果输入了不匹配的数据,则会产生: java.util.InputMismatchException [输入不匹配的错误]

     

    总结

    • 变量:

      • 计算机内存中的一块储存空间,是存储数据的基本单元

    • 数据类型:

      • 基本数据类型(8种), 引用数据类型(String, 数组, 对象)

    • 运算符:

      • 算术运算符, 赋值运算符, 关系运算符, 逻辑运算符,三元运算符

    • 类型转换:

      • 自动类型转换, 强制类型转换

    • 类型提升:

      • 数字间的常规类型提升,字符串的特殊类型提升

    • 控制台录入:

      • 引入工具包,声明Scanner, 调用对应函数接受控制台录入数据.

  • 相关阅读:
    linux安装 Android Studio详细教程,支持性较差,需要安装最新底层库内核的linux
    QT、QTE、qtopia区别
    Sublime Text 有哪些使用技巧
    华为5700交换机通过外部开源protal和本地aaa用户认证的一些问题
    离奇“undefined reference”错误分析与解决方案
    GNU工具链学习笔记
    gcc和ld 中的参数 --whole-archive 和 --no-whole-archive
    揭开Linux操作系统的Swap交换区之谜
    invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause
    学习JavaScript
  • 原文地址:https://www.cnblogs.com/77-is-here/p/12858986.html
Copyright © 2011-2022 走看看