java基础——No1

1. java介绍

1.1 java的特性

1.2 java的执行过程

            编译型:先编译后执行;例如 C java
            解释型:边解释边运行;例如:javascript 等脚本语言
        java属于编译型语言:
            java源文件先编译成.class字节码文件;
            jvm加载.class字节码文件进行解释执行;
        面试题:
            java语言为什么是跨平台的?
                1) java先编译为统一格式的字节码文件.class文件;
                2) 使用统一标准的jvm进行统一执行.class字节码文件;

2. java注释

java的注释一般有三种:
    单行注释:
        // 注释内容
        /*       */
    多行注释:
        /*
         * 注释内容
         *
        */    
    doc注释:
        /**
         * 注释内容
         *
        */    
    注意:doc注释多用在类、方法、变量等;可以使用jdk的doc命令生成api使用说明文档;
要求:
    代码中至少要有30%的注释内容;
    也即是 10行代码中至少要写3行注释内容;
    后期要求每个同学必须写注释;

3.java数据类型

4.1 数据类型的分类
    基本数据类型:java有8种基本数据类型;
    引用数据类型(对象数据类型):存储在内存堆中,需要申请内存空间;  
4.2 基本数据类型
    数值型:
        整型:byte(1字节) short(2字节) int(4字节) long(8字节)
            默认值:0
            默认类型:int
        浮点型:float(4字节) double(8字节)
            默认值:0.0
            默认类型:double
    布尔型:
        boolean(与编译器有关)
            默认值:false
    字符型:
        char(2字节) 
            默认值:'\u0000'
        赋值要求:
            char类型要求赋值的字符有且仅有一个,并且使用 '' 引出;
            '' 不能为空,其中可以为 英文字符、汉字、Unicode编码;
            char类型进行默认类型转换,会直接转换为int类型;
    
    默认类型的处理:
        long的处理:可以数值后面添加后缀L或者l;
        float的处理:后缀F或者f;
    
    数据类型转换问题:
        1)默认(自动)转换
            从范围小类型到范围到类型;
            从整型到浮点型;
            从字符型到int型;
            基本数据类型中几种常见的转换路线:
            byte --> short --> int -->long
            char --> int -->long
            整型 --> 浮点型
        2)强制类型转换
            从范围大到范围小;
            语法格式:
                使用小括号进行强制类型转换;
                范围小类型  ii = (范围小类型)范围到类型变量;  
            造成精度丢失;【注意】   
    基本数据类型常见的注意事项:
        整型:会对结果记性截取只保留整数部分;如果运算结果为int类型,则运算结果中即便有小数部分,也值保留整数部分,小数部分会被舍弃
        整型中的 byte short char 可以直接赋值其范围内的数值,而不需要进行强制类型转换;        
        表达式的运算结果的数据类型和表达式中的最高类型保持一致;
        如果运算表达式中只有byte、short、char类型,则运算结果为int类型;【特殊情况】

4.String类

  String不是java的数据类型,也不是java的关键字;
       只是java基础类库中的一个类名;
       String 类的赋值 使用 "" 引出;引号中可以有0个、1个、多个字符;
       这一点和char类型进行区别比较;
       String类型可以 + 进行拼接计算;类似于C++中的运算符重载;    

    字符串中的转义字符的使用:
        针对一些特殊的字符需要进行转义才能使用;
        在Java里面也支持多种转义字符的使用,
        例如:换行(\n)、制表符(\t)、\(\\)、双引号(\")、单引号(\')

5. 运算符

5.1 算术运算符
    + - * / %
    += -= *= /= %=
    +=形式类似于:
        a+=b;
        等价于:
        a= a+b;   
5.2 位运算符
    & | ^ ~ 【扩展:自行补充运算规则】
    位运算:对二进制数值按位进行计算;
    位运算的效率非常高;
    位运算操作的数值都是以补码的形式存在的;【★★★】【扩展:什么是补码】
    计算机中的所有的数都是以补码的形式存在的。【课外补充了解一下】
    【补充@0302】
    位移运算:
    << 左移/不带符号左移/有符号左移 : 等价于这个数乘以2的n次方;
          二进制下,符号位不变,其他各位向左移动n位,空余的位填充0;
    >> 右移/不带符号右移/有符号右移 : 等价于这个数除以2的n次方;
          二进制下,符号位不变,其他各位向右移动n位,空余的位填充符号位的值(符号位是0就填充0,符号位是1就填充1);
    >>> 无符号右移/带符号右移
          二进制下,符号位参与移动,连同符号位向右移动n位,空余的位填充0;
          该运算只对正数有意义,对负数没有意义;

5.3 自增自减运算
    ++  -- 
    在当前变量的基础之上,进行+1或者-1运算;
    自增自减分为先增后增;先减后减两种情况;
    
    在自增自减表达式中有两种值:
        一种是变量自身的值;
        一种是正个表达式的值;
    例如代码:
        int iii2 = 1;
        int iii3 = ++iii2;
    先增:
        先增运算表达式 是  ++iii2;
        这个表达式整体有一个运算结果值;其中还有变量iii2自身的值;
        先增:表达式的值是变量的值+1;变量自身的值+1;
    同理:
        后增:表达式的值是变量之前的值;变量自身的值+1;   
    自减运算也是一样的道理; 
5.4 比较运算
    > < == != >= <= 
    比较运算的表达式结果的数据类型为boolean类型;   
5.5 逻辑运算
    非 !  与 &&  或 ||
    进行逻辑判定的运算;
    逻辑运算要求运算表达式中的数据类型为boolean类型,且运算结果也为boolean类型;
    因为比较运算的结果是boolean类型,因此逻辑运算经常与比较运算进行搭配使用;
    // 课堂扩展作业:
    逻辑运算的运算法则?

    总结:
        非: false 变 true ;true变false;
        与:只有true和true与结果为true;其他都为false;
        或:只有false和false或结果为false;其他都为true;
    
    逻辑运算与位运算的区别:
        逻辑运算是对boolean类型进行操作;
        位运算是对二进制的 0 或 1 进行操作;   
    
    因为逻辑与和逻辑或运算的特点,会产生逻辑运算短路的现象:
        特点:
            与:只有true和true与结果为true;其他都为false;
            或:只有false和false或结果为false;其他都为true;  
    逻辑短路:
        逻辑与短路:
            有多个连续的与运算时,从左往右,如果遇到一个操作数为false,
            则该操作数之后的其他的与运算不在执行,直接返回表达式结果为false;
        逻辑或短路:
            有多个连续的或运算时,从左往右,如果遇到一个操作数为true,
            则该操作数之后的其他的或运算不再执行,直接返回表达式的结果为true;

    逻辑短路扩展:【该知识点不作为课堂内容讲解,作为课外扩展知识进行了解即可】
        其实jvm对于混合的与或运算也会进行短路优化;具体规则作为课外扩展知识;
        混合运算的逻辑短路规则是结合了与和或运算优先级的判定;

    逻辑短路的目的和意义所在:
        jvm使用逻辑运算的特点进行jvm优化的一种手段;    
5.6 问号表达式/三目运算符
    判定表达式?结果表达式1:结果表达式2;
    运算规则:
        如果判定表达式为true,则整个问号表达式的结果是结果表达式1;否则,是结果表达式2;
    问号表达式可以进行嵌套使用,等价于if-else语句;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值