0x04Java基础
浏览 365 | 评论 0 | 字数 5791
硝基苯
2023年02月08日
  • 关键字和保留字

    关键字(keyword)中所有字母都都为小写
    27434-pxhl8k8x8yg.png
    43878-vhzulbzs54.png

    Java保留字(reserved word):现有Java版本尚未使用,但以后版本可能会作为关键字使用:goto、const。

    特殊关键字的使用:
    1.break/continue:

    • break:跳出循环
    • continue:结束当次循环

    2.label-break直接结束指定循环

    label:for (int i = 2; i<=100000; i++){
                boolean isFlag = true;
                 for(int j =2; j <= Math.sqrt(i); j++){
                    if(i % j ==0){
                        //count++;
                        isFlag = false;
                        break label;//直接结束指定标识的一层循环结构
                    }
                }
                if(isFlag){
                //if(count == 0 ){
                    //输出会消耗时间
                    System.out.println(i + "是质数");
                }
            }

    3.label-continue开始下一次指定循环

    label:for (int i = 2; i<=100000; i++){
                boolean isFlag = true;
                 for(int j =2; j <= Math.sqrt(i); j++){
                    if(i % j ==0){
                        //count++;
                        isFlag = false;
                        continue label;//直接结束指定标识的一层循环结构
                    }
                }
                if(isFlag){
                //if(count == 0 ){
                    //输出会消耗时间
                    System.out.println(i + "是质数");
                }
            }
    

    标识符(identifier)

    标识符的使用
    1.标识符:凡是自己可以起名字的地方都叫标识符。
    比如:类名、变量名、方法名、接口名、包名…

    ⒉.标识符的命名规则:-->如果不遵守如下的规则,编译不通过,需要大家严格遵守

    由26个英文字母大小写,0-9 ,_或$组成
    数字不可以开头。
    不可以使用关键字和保留字,但能包含关键字和保留字。
    Java中严格区分大小写,长度无限制。
    标识符不能包含空格。

    3.Java中的名称命名规范:
    包名:多单词组成时所有字母都小写:xxxyyyzzz
    类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
    变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz
    常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YY_ZZZ

    4.
    注意1:在起名字时,为了提高阅读性,要尽量有意义,“见名知意”
    注意2:Java采用Unicode字符集,因此标识符也可以使用汉字声明,但是不建议使用

    变量

    变量的使用
    1.java定义变量的格式:数据类型 变量名 = 变量值;

    2、说明:
    变量必须先声明,后使用
    变量都定义在其作用域内。在作用域内,它是有效的。换句话说,出了作用域,就失效了
    同一个作用域内,不可以声明两个同名的变量

    Java定义的数据类型
    13282-l63joyie0tb.png
    整数型
    97017-tsrrtswur4a.png
    long型不加l则会用int型去存,超出范围则报错

    浮点型
    49713-3gbsr9zo9rr.png
    float不加F默认为double,相当于从高到低,会报错
    字符型
    71950-kn519jq9rd.png
    19202-led9dti102b.png
    char只能放一个,不能为空

    布尔型:
    true、false

    基本数据类型之间的运算规则:

    前提:这里讨论只是7种基本数据类型变量间的运算。不包含boolean类型的。
    1.自动类型提升:
    结论:当容量(范围)小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型。byte 、char 、short --> int --> long -->float --> double
    特别的:

    • 当byte、 char 、short三种类型的变量做运算时(包括同类型),结果为int型
    • String与其相加只做连结
      2.强制类型转换:自动类型提升运算的逆运算。(自动类型从小到高,但是强转是从高到小)

    ①需要使用强转符:()
    ②注意点:强制类型转换,可能会导致精度缺失

    String类型变量的使用

    1. String属于引用数据类型,翻译为:字符串
      2.声明string类型变量时,使用一对""
    2. String可以和8种基本数据类型变量做运算,且运算只能是连接运算: +
      例如:String a = "123" + true /输出:123true

    4.运算的结果仍然是String类型
    练习:

    char c =  'a'
    int num = 10
    String str = 'hello'
    System.out.println(c + num + str );  // 107hello
    System.out.println(c + str + num ); // ahello10
    System.out.println(c + (num + str) ); // a10hello
    System.out.println((c + num) + str ); // 107hello
    System.out.println(str + num +c ); hello10a

    ''表示char
    ""表示String

    运算符

    算术运算符
    52970-bis93qlvqb5.png
    ++自增不会改变本身变量的数据类型

    比较运算符
    66905-c70b6ayqrtm.png
    82192-0p6ojq4fy2.png
    &&只要第一个条件不满足,后面的条件就不再判断
    &要对所有的条件都进行判断
    ||只要满足第一个条件,后面的条件就不再判断
    |要对所有的他条件都进行判断

    位运算符
    51983-oy5i7sh1wv.png1.位运算符操作的都是整型数据
    2.<<:在一定范围内,每向左移1位,相当于 * 2

    : 在一定范围内,每向右移1位,相当于 / 2

    三元运算符

    1.结构:(条件表达式)?表达式1:表达式2
    2.说明
    条件表达式的结果为boolean类型
    根据条件表达式真或假,决定执行表达式1,还是表达式2.
    如果表达式为true,则执行表达式1。
    如果表达式为false,则执行表达式2。
    表达式1和表达式2的类型要求是一致的。
    三元运算符可以嵌套使用
    3.凡是可以用三元运算符的,都可以改为if-else,反之,不成立
    4.如果程序既可以使用三元运算符,又可以使用if-else结构,要么优先选择三元运算符。原因:简介,执行效率高

    运算符的优先级
    85760-fatx92ljkot.png

    程序流程控制

    顺序结构:程序从上到下逐行进行,中间没有任何判断和跳转

    分支结构:根据条件,选择性的执行某段代码
    if-else语句三种格式:
    01169-7lmoy8wrewk.png
    77289-4ww536u3gbm.png
    switch-case语句
    16577-p4zzgyb53j.png
    说明:
    根据switch表达式中的值,依次匹配各个case中的常量。一旦匹配成功,则进入相应case结构中,调用其执行语句。
    当调用完执行语句以后,则仍然继续向下执行其他case结构中的执行语句,直到遇到break关键字或此switch-case结构末尾结束为止。

    break,可以使用在switch-case结构中,表示一旦执行到此关键字,就跳出switch-case结构

    switch结构中的表达式,只能是如下的6种数据类型之一:byte、short、char、int、枚举类型(JDK5.0新增)、String类型(JDK7.0新增)

    break关键字可选的。

    default:相当于if-else结构中的else,default结构是可选的

    凡是可以使用switch-case的结构,都可以转换为if-else。反之,不成立。
    写分支结构时,当发现既可以使用switch-case(case情况不多)又可以使用if-else时,我们优先选择使用switch-case。原因效率较高

    如果case中的执行语句相同,则可以考虑进行合并
    例如:

    case 1:
    case 2:
    case 3:
      System.out.println("输出结果相同");
      break;
    case 4:
    …

    循环结构:根据循环条件,重复性的执行某段代码

    For循环结构的使用
    一、循环结构的4个要素
    ①初始化条件
    ②循环条件--->是boolean类型
    ③循环体
    ④迭代条件

    二、for循环的结构for(① ; ② ; ④){
    ③}
    执行过程:① - ② - ③ - ④ - ② - ③ - ④ - . . . - ②

            for (int i = 1; i <= 5; i++){
                System.out.println("yes");
            }
    for(System.out.println('a'); num <= 3; System.out.println('c'), num++){
         System.out.println('b');
    }//输出abcbcbc

    while循环结构的使用

    while(①){
       ②;
    }

    说明:
    1.写while循环千万小心不要丢了迭代条件。一旦丢了,就可能导致死循环
    2.我们写程序,要避免出现死循环。
    3.for循环和while循环可以相互转换

    do-while循环结构:

    do{
    }while();

    先执行do再判断

    本文作者:硝基苯
    本文链接:https://www.c6sec.com/index.php/archives/785/
    最后修改时间:2023-02-08 21:25:08
    本站未注明转载的文章均为原创,并采用 CC BY-NC-SA 4.0 授权协议,转载请注明来源,谢谢!
    评论已关闭
    评论列表
    暂无评论