zoukankan      html  css  js  c++  java
  • JavaSE教程-02Java基本语法-思维导图

    思维导图看不清楚时:
    1)可以将图片另存为图片,保存在本地来查看
    2)右击在新标签中打开放大查看
    这里写图片描述

    1.注释

    定义:用于解释说明程序作用的文字

    注释类别

    单行注释

    格式: //注释文字

    多行注释

    格式: /* 注释文字 */

    文档注释

    格式:/* 注释文字 /
    区别于多行注释:多一个*

    2.关键字

    定义:被Java语言赋予特定含义的单词,又称保留字

    goto和const作为保留字存在,目前并不使用

    关键字有哪些

    这里写图片描述
    这里写图片描述

    3.标识符

    定义:程序中需要我们自己来命名的,比如类名,方法名,变量名

    标识符命名规则

    • 由字母、数字、下划线、$组成,但不能以数字开头

      大小写敏感

      不得使用java中的关键字和保留字

      建议采用驼峰式写法,比如定义一个系统用户类 SystemUser

    4.常量与变量

    ##常量

    程序中,固定不变的值

    变量

    变量用来存储程序执行中用到的数据

    变量存储的数据是可以改变的

    变量定义格式
    数据类型 变量名 = 初始化值;

    5.数据类型

    Java语言是强类型语言,对于每一种数据都定义了明确的数据类型,在内存中为每种数据类型分配了不同的内存空间

    数据类型

    这里写图片描述

    各种类型数据占用空间与范围
    这里写图片描述
    这里写图片描述

    注意:char是占2个字节

    其他

    • 1字节 = 8位,即2^8
    • 数据分类的目的:合理利用内存
    • 开发中:整数一般采用int和 long, 小数:double

    规则

    1. 变量必须先声明,并且初始化后才能使用;
    2. 声明变量必须有数据类型
    3. 同一作用域内变量不能重复定义
    4. 变量名小写开头
    5. 变量的赋值不能越界

    6,数据类型的转换问题

    赋值时的转换

    默认转换(把小的赋值给大的)
    

    byte-short-int-long-float-double

    强制转换(把大的赋值给小的)
    

    目标类型 变量名=(目标类型)变量值;

    运算时的转换,掌握+号运算符(默认转换)

    **注意:**float类型数据赋值时,必须进行数据转换,因为小数默认为double类型

    转换方式:
    1.float a=(float)1.01; 在数值前加(float)
    2.float a=1.01f; 在数值后面加f

    所有的小数均默认是double类型,要用float类型时必须进行类型转换

    在运算中直接使用的整数均为int类型,所以int类型一下的类型与其运算时都会变为int类型,若赋值给int一下的类型,则会损失精度。
    如short a=2 ; a=a+2;输出a是会损失精度,因为a+2的结果为int类型,会溢出。
    但“+=”会自动做类型转换,a+=2时,此时不会损失精度

    6.表达式的概念

    表达式的概念:操作数+运算符+操作数,就组成一个表达式

    7.运算符

    算术运算符

    算术运算符(+、-、*、/、%、++、–、注意区分前置和后置的区别)

    /和%区别:前者为除号,后者为取模

    %(取模)的正负号由被除数(分子)决定,如3%2,-3%2结果分别为1和-1

    +加法运算:运算中从前往后执行,+(加号)前后数据一个为字符时,则都会转换为字符后运算
    System.out.println(1+1+“1”);//21
    System.out.println(“1”+1+1);//111

    +(加号):在左右操作数均为数值时,+为加号;若有一个是字符,+为连接符。
    字符串和任意类型的数据相加,结果均为字符串

    /除法结果数据类型

    分子和分母同类型时,结果类型还是该类型,如10/3 结果为3.
    10.0/3.0 结果为3.33335
    若均为整数时,结果不会四舍五入,不会3.9取为4,结果是取去除余数得到的整数

    分子和分母类型不同时,取范围大的数据类型,如10/3.0 结果为3.3335

    n++:会先把原先的结果输出,再加1
    ++n:会先加1后,在输出

    int a = 8;
    int b = (a++)+(++a)+(a*10);//118
    分析:a++先输出8,在加1使a变为9;++a先加1再输出,a变为10;最后加100,得到118

    注意:
    a.运算中对变量进行操作,会改变变量
    b.println中对变量进行操作,也会改变变量

    赋值运算符

    赋值运算符(= , +=, -=, *=, /=, %=)

    short s=1; s = s+1; //丢失精确度 运算时,ss + 1会转换为int类型
    short s=1; s+=1;//s 2 运算时, += 会自动做类型转换的处理

    关系(比较)运算符

    ==:相等
    !=:不相等

    :大于
    <:小于
    =:大于等于
    <=:小于等于

    关系运算符的结果都是boolean类型,true 或者 false

    注意:=和==区别

    int x = 10;
    int y = 10;
    boolean flag = (x == y);
    //boolean flag = (x = y);//error
    分析:先给x赋值为y,再给flag赋值,x为数值,flag为布尔值,会报错。将flag类型改为int就不会报错了
    System.out.println(flag);//true

    boolean b1 = true;
    boolean b2 = false;
    boolean b3 = (b1 == b2);
    System.out.println(b3);//false
    boolean b4 = (b1 = b2);//flase 此时不存在上题的类型冲突,不会报错

    逻辑运算符

    &(与) 、|(或) 、!(非)&&(短路与)、||(短路或)、^(异或)

    语法规则

    & 一个为假,则为假 逻辑与

    | 一个为真,则为真 逻辑或

    !非false则true,非true则false

    && 一个为假,则为假 短路与

    || 一个为真,则为真 短路或

    ^ 两个不同,则为true,相同则为false

    短路与和逻辑与的区别(&& vs & || vs |)

    短路与,只要前面可以确定结果是false,那么后面就不管了

    逻辑与,就算前面可以确定结果是false,它也要去计算后面的值

    短路或,只要前面可以确定结果是true,那么后面就不管了

    逻辑或,就算前面可以确定结果是true,它也要去计算后面的值

    证明逻辑与或和短路与非的区别

    方法一

    public class Zy07{
        public static void main(String[] args){
            //设计一个实验证明&和&&的区别
            /*
                结论:
                短路与&&,只要前面可以确定结果是false,那么后面就不管了
                逻辑与&,就算前面可以确定结果是false,它也要去计算后面的值
    
                短路或||,只要前面可以确定结果是true,那么后面就不管了
                逻辑或|,就算前面可以确定结果是true,它也要去计算后面的值
    
                设计个实验证明这个结论
            */
    
            boolean c1 = 1>2&&2>(3/0);
            //boolean c1 = 1>2&2>(3/0);
            /*使用&时会报错,说3的除数不能为0,说明运算了后面的部分
                而使用&&时不会报错
            */
            System.out.println(c1);//false
    
        }
    }

    该法利用分母不能取零来判断

    方法二

    public class Test2{
        public static void main(String[] args){
            int a=1;
            int b=1;
            System.out.println(a<0&b++>0);//false
            System.out.println(b);//2
    
            System.out.println(a<0&&b++>0);
            System.out.println(b);//2
    
        }
    }

    该法利用a和b是否发生变化来判断

    三目运算符

    格式:
    (关系表达式)?表达式1:表达式2;

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

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

    练习:取两个数中的最大值

    8.转义字符

    定义:通过“”来改变后面所跟字符的含义
    这里写图片描述

  • 相关阅读:
    Android:Butter Knife 8.0.1配置
    webAPI获得链接客户端IP地址
    解决WebClient或HttpWebRequest首次连接缓慢问题
    Android Studio中有用的快捷键栏
    SQL十进制和十六进制相互转换
    SQL分组查询每组前几条数据
    POJ 1011 Sticks
    POJ 1144 Network(割点)
    求无向图中的割边(桥)
    POJ 2553 The Bottom of a Graph
  • 原文地址:https://www.cnblogs.com/TCB-Java/p/6770170.html
Copyright © 2011-2022 走看看